From fd75dffe4e4d9d5ccedc0b18ce2c8561c0491432 Mon Sep 17 00:00:00 2001
From: Thomas Hohn <thomas@hohn.dk>
Date: Sat, 25 Feb 2017 15:03:05 +0100
Subject: [PATCH] [BUGFIX] Add support for multi-line INSERT statements in
 static data

Join consecutive lines for INSERT statements in ext_tables_static+adt.sql
using a space instead of a linefeed to avoid parser errors.

Resolves: #78892
Releases: master
Change-Id: Ide550419b7ef41109a660a671b8aba65a33eb6b3
Reviewed-on: https://review.typo3.org/51854
Reviewed-by: Morton Jonuschat <m.jonuschat@mojocode.de>
Tested-by: Morton Jonuschat <m.jonuschat@mojocode.de>
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Helmut Hummel <typo3@helhum.io>
Tested-by: Helmut Hummel <typo3@helhum.io>
---
 .../core/Classes/Database/Schema/SqlReader.php  |  2 +-
 .../Unit/Database/Schema/SqlReaderTest.php      | 17 +++++++++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/typo3/sysext/core/Classes/Database/Schema/SqlReader.php b/typo3/sysext/core/Classes/Database/Schema/SqlReader.php
index 095b45ca8d48..5df5f8932f5c 100644
--- a/typo3/sysext/core/Classes/Database/Schema/SqlReader.php
+++ b/typo3/sysext/core/Classes/Database/Schema/SqlReader.php
@@ -102,7 +102,7 @@ class SqlReader
                 }
                 $statementArrayPointer++;
             } else {
-                $statementArray[$statementArrayPointer] .= LF;
+                $statementArray[$statementArrayPointer] .= ' ';
             }
         }
 
diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/SqlReaderTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/SqlReaderTest.php
index daedec83d1fd..1547714d7a8a 100644
--- a/typo3/sysext/core/Tests/Unit/Database/Schema/SqlReaderTest.php
+++ b/typo3/sysext/core/Tests/Unit/Database/Schema/SqlReaderTest.php
@@ -83,6 +83,23 @@ class SqlReaderTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
         $this->assertStringStartsWith('INSERT', array_pop($result));
     }
 
+    /**
+     * @test
+     */
+    public function getInsertStatementArrayResultWithNewline()
+    {
+        $result = $this->subject->getInsertStatementArray(
+            'CREATE TABLE aTestTable(' . LF . '  aTestField INT(11)' . LF . ');' .
+            LF .
+            'INSERT INTO aTestTable(`aTestField`) ' .
+            LF .
+            'VALUES(1);'
+        );
+
+        $this->assertCount(1, $result);
+        $this->assertSame('INSERT INTO aTestTable(`aTestField`) VALUES(1);', array_pop($result));
+    }
+
     /**
      * @test
      */
-- 
GitLab