From c8a852fd34aac8ae61e6351be832c22155ddd633 Mon Sep 17 00:00:00 2001 From: addshore Date: Fri, 5 Jan 2018 15:37:30 +0000 Subject: [PATCH] Set a default delimiter in Database::sourceStream Discovered while debugging I7a4071072d802a82ecf7d16fbf8882ff8c79287f DatabaseIntegration test alters the delimiter for the database instance and it never gets set back. Simply set the delimiter back to a default value at the start of sourceSteam (for each new file pointer) which could have a new delimiter. Change-Id: Ib829b1c8d87271526fa6826910d40c304c778b32 --- includes/libs/rdbms/database/Database.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/includes/libs/rdbms/database/Database.php b/includes/libs/rdbms/database/Database.php index 15e02ad085..30c9cdd744 100644 --- a/includes/libs/rdbms/database/Database.php +++ b/includes/libs/rdbms/database/Database.php @@ -3390,6 +3390,12 @@ abstract class Database implements IDatabase, IMaintainableDatabase, LoggerAware $fname = __METHOD__, callable $inputCallback = null ) { + $delimiterReset = new ScopedCallback( + function ( $delimiter ) { + $this->delimiter = $delimiter; + }, + [ $this->delimiter ] + ); $cmd = ''; while ( !feof( $fp ) ) { @@ -3435,6 +3441,7 @@ abstract class Database implements IDatabase, IMaintainableDatabase, LoggerAware } } + ScopedCallback::consume( $delimiterReset ); return true; } -- 2.20.1