mirror of
https://github.com/MariaDB/server.git
synced 2025-11-16 10:46:12 +01:00
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. |
||
|---|---|---|
| .. | ||
| include | ||
| r | ||
| t | ||