File: 0002-When-changing-from-a-non-primary-index-to-a-primary-.patch

package info (click to toggle)
php-doctrine-dbal 2.4.3-1~bpo70%2B1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy-backports
  • size: 1,520 kB
  • sloc: php: 16,373; makefile: 19
file content (31 lines) | stat: -rw-r--r-- 1,364 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
From: Bart Visscher <bartv@thisnet.nl>
Date: Thu, 18 Jul 2013 20:19:32 +0200
Subject: When changing from a non-primary index to a primary index,
 the dropped index isn't named PRIMARY

Origin: https://github.com/doctrine/dbal/pull/363
Bug-Debian: https://bugs.debian.org/756658
---
 lib/Doctrine/DBAL/Platforms/MySqlPlatform.php | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/lib/Doctrine/DBAL/Platforms/MySqlPlatform.php b/lib/Doctrine/DBAL/Platforms/MySqlPlatform.php
index 1230c9b..4791f36 100644
--- a/lib/Doctrine/DBAL/Platforms/MySqlPlatform.php
+++ b/lib/Doctrine/DBAL/Platforms/MySqlPlatform.php
@@ -642,6 +642,15 @@ class MySqlPlatform extends AbstractPlatform
                 }
             }
         }
+        foreach ($diff->changedIndexes as $changedKey => $changedIndex) {
+            if ($changedIndex->isPrimary() && $changedKey != 'PRIMARY') {
+                $index = $diff->changedIndexes[$changedKey];
+                $index = new Index($changedKey, $index->getColumns(), $index->isUnique(), false);
+                $diff->removedIndexes[$changedKey] = $index;
+                $diff->addedIndexes['PRIMARY'] = $diff->changedIndexes[$changedKey];
+                unset($diff->changedIndexes[$changedKey]);
+            }
+        }
 
         $sql = array_merge($sql, parent::getPreAlterTableIndexForeignKeySQL($diff));