Skip to content

Commit e947b85

Browse files
Merge remote-tracking branch '36022/create-temporary-table-like-replacement' into comm_jul
2 parents b4bcdc1 + a1f1ee3 commit e947b85

File tree

1 file changed

+6
-2
lines changed
  • lib/internal/Magento/Framework/DB/Adapter/Pdo

1 file changed

+6
-2
lines changed

lib/internal/Magento/Framework/DB/Adapter/Pdo/Mysql.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2257,10 +2257,14 @@ public function createTemporaryTable(\Magento\Framework\DB\Ddl\Table $table)
22572257
*/
22582258
public function createTemporaryTableLike($temporaryTableName, $originTableName, $ifNotExists = false)
22592259
{
2260-
$ifNotExistsSql = ($ifNotExists ? 'IF NOT EXISTS' : '');
2260+
$ifNotExistsSql = ($ifNotExists ? ' IF NOT EXISTS' : '');
22612261
$temporaryTable = $this->quoteIdentifier($this->_getTableName($temporaryTableName));
22622262
$originTable = $this->quoteIdentifier($this->_getTableName($originTableName));
2263-
$sql = sprintf('CREATE TEMPORARY TABLE %s %s LIKE %s', $ifNotExistsSql, $temporaryTable, $originTable);
2263+
$originCreate = $this->fetchPairs("SHOW CREATE TABLE {$originTable}");
2264+
$sql = reset($originCreate);
2265+
$sql = preg_replace('/\/\*!50100 TABLESPACE [^\s]+ \*\//', '', $sql);
2266+
$sql = str_replace('CREATE TABLE', 'CREATE TEMPORARY TABLE' . $ifNotExistsSql, $sql);
2267+
$sql = str_replace($originTable, $temporaryTable, $sql);
22642268

22652269
return $this->query($sql);
22662270
}

0 commit comments

Comments
 (0)