[BUGFIX] Suppress error while creation of database tables without keys 04/42204/4
authorBenjamin Kott <benjamin.kott@outlook.com>
Sun, 2 Aug 2015 16:46:20 +0000 (18:46 +0200)
committerJigal van Hemert <jigal.van.hemert@typo3.org>
Sun, 2 Aug 2015 19:23:40 +0000 (21:23 +0200)
Resolves: #68693
Releases: master
Change-Id: Id565735069e266f896d326e9943dd9d7d67f7537
Reviewed-on: http://review.typo3.org/42204
Reviewed-by: Michael Oehlhof <typo3@oehlhof.de>
Reviewed-by: Andreas Fernandez <typo3@scripting-base.de>
Tested-by: Andreas Fernandez <typo3@scripting-base.de>
Reviewed-by: Jigal van Hemert <jigal.van.hemert@typo3.org>
Tested-by: Jigal van Hemert <jigal.van.hemert@typo3.org>
typo3/sysext/core/Classes/Database/SqlParser.php

index 7e391ae..70e7daf 100644 (file)
@@ -1691,15 +1691,17 @@ class 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') {
-                               $key = key($kCfg);
-                               $fields = current($kCfg);
-                               $fieldsKeys[] = 'UNIQUE KEY ' . $key . ' (' . implode(',', $fields) . ')';
-                       } else {
-                               $fieldsKeys[] = 'KEY ' . $kN . ' (' . implode(',', $kCfg) . ')';
+               if ($components['KEYS']) {
+                       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) . ')';
+                               }
                        }
                }
                // Make query: