From: addshore Date: Fri, 5 Jan 2018 15:37:30 +0000 (+0000) Subject: Set a default delimiter in Database::sourceStream X-Git-Tag: 1.31.0-rc.0~986^2 X-Git-Url: https://git.cyclocoop.org/%7B%24admin_url%7Dcompta/operations/modifier.php?a=commitdiff_plain;h=c8a852fd34aac8ae61e6351be832c22155ddd633;p=lhc%2Fweb%2Fwiklou.git 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 --- 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; }