X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Flibs%2Frdbms%2Fdatabase%2FDatabaseMysqlBase.php;h=454e0c2adeb6ed0b8131edaff05e331cb27b95cb;hb=99b65649c0f9b4ab1156cfc2ee50959d4b8a12c6;hp=57b75445ef0ce85fe27deb6643cfd08b5265fe2c;hpb=e81a7da6c000384b97319c269ffd1e67afcb8ea8;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/libs/rdbms/database/DatabaseMysqlBase.php b/includes/libs/rdbms/database/DatabaseMysqlBase.php index 57b75445ef..454e0c2ade 100644 --- a/includes/libs/rdbms/database/DatabaseMysqlBase.php +++ b/includes/libs/rdbms/database/DatabaseMysqlBase.php @@ -512,7 +512,8 @@ abstract class DatabaseMysqlBase extends Database { $destTable, $srcTable, $varMap, $conds, $fname = __METHOD__, $insertOptions = [], $selectOptions = [], $selectJoinConds = [] ) { - if ( $this->insertSelectIsSafe === null ) { + $isSafe = in_array( 'NO_AUTO_COLUMNS', $insertOptions, true ); + if ( !$isSafe && $this->insertSelectIsSafe === null ) { // In MySQL, an INSERT SELECT is only replication safe with row-based // replication or if innodb_autoinc_lock_mode is 0. When those // conditions aren't met, use non-native mode. @@ -533,7 +534,7 @@ abstract class DatabaseMysqlBase extends Database { (int)$row->innodb_autoinc_lock_mode === 0; } - if ( !$this->insertSelectIsSafe ) { + if ( !$isSafe && !$this->insertSelectIsSafe ) { return $this->nonNativeInsertSelect( $destTable, $srcTable,