mirror of https://github.com/MariaDB/server
Browse Source
Reason: ======== SAVEPOINT A; <Bulk DDL FAILS> ROLLBACK TO SAVEPOINT A; When DDL bulk operation fails, InnoDB does rollback the whole transaction and it makes the transaction state to TRX_STATE_NOT_STARTED. In innobase_rollback_to_savepoint(), InnoDB fails with invalid transaction state. Fix: === - InnoDB should rollback the bulk insert operation alone instead of complete transaction rollback when InnoDB bulk DDL operation fails. This can be achieved by bulk_rollback_low(). row_mysql_handle_errors(): Avoid complete rollback of transaction when DB_TEMP_FILE_WRITE_FAIL error happens. convert_error_code_to_mysql(): Since InnoDB does partial rollback, remove innodb_transaction_abort() call for DB_TEMP_FILE_WRITE_FAIL error.10.11-MDEV-36787
5 changed files with 33 additions and 8 deletions
Loading…
Reference in new issue