Backported changeset 9689 from trunk: Fixed bug #16501
authorXavier Perseguers <typo3@perseguers.ch>
Tue, 30 Nov 2010 15:22:57 +0000 (15:22 +0000)
committerXavier Perseguers <typo3@perseguers.ch>
Tue, 30 Nov 2010 15:22:57 +0000 (15:22 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/branches/TYPO3_4-3@9691 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
t3lib/class.t3lib_sqlparser.php

index 576cb48..4840fb5 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-11-30  Xavier Perseguers  <typo3@perseguers.ch>
+
+       * Fixed bug #16501: DBAL does not support multi-column indexes in create table queries
+
 2010-11-30  Steffen Kamper  <steffen@typo3.org>
 
        * Fixed bug #16614: common.js resets TYPO3 namespace (Thanks to Peter Kühn)
index ae565b5..19295a7 100644 (file)
@@ -1488,11 +1488,13 @@ class t3lib_sqlparser {
                foreach($components['FIELDS'] as $fN => $fCfg)  {
                        $fieldsKeys[]=$fN.' '.$this->compileFieldCfg($fCfg['definition']);
                }
-               foreach($components['KEYS'] as $kN => $kCfg)    {
-                       if ($kN == 'PRIMARYKEY')        {
-                               $fieldsKeys[]='PRIMARY KEY ('.implode(',', $kCfg).')';
-                       } elseif ($kN == 'UNIQUE')      {
-                               $fieldsKeys[]='UNIQUE '.$kN.' ('.implode(',', $kCfg).')';
+               foreach ($components['KEYS'] as $kN => $kCfg) {
+                       if ($kN === 'PRIMARYKEY') {
+                               $fieldsKeys[] = 'PRIMARY KEY (' . implode(',', $kCfg) . ')';
+                       } elseif ($kN === 'UNIQUE') {
+                               $key = key($kCfg);
+                               $fields = current($kCfg);
+                               $fieldsKeys[] = 'UNIQUE KEY ' . $key . ' (' . implode(',', $fields) . ')';
                        } else {
                                $fieldsKeys[]='KEY '.$kN.' ('.implode(',', $kCfg).')';
                        }