mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Bug #57663 Concurrent statement using stored function and DROP DATABASE
breaks SBR This pre-requisite patch refactors the code for dropping tables, used by DROP TABLE and DROP DATABASE. The patch moves the code for acquiring metadata locks out of mysql_rm_table_part2() and makes it the responsibility of the caller. This in preparation of changing the DROP DATABASE implementation to acquire all metadata locks before any changes are made. mysql_rm_table_part2() is renamed mysql_rm_table_no_locks() to reflect the change.
This commit is contained in:
@ -38,7 +38,7 @@ connection default;
|
||||
--echo # Con default
|
||||
SET DEBUG_SYNC= 'now WAIT_FOR removing_partitioning';
|
||||
SET DEBUG_SYNC= 'mdl_acquire_lock_wait SIGNAL waiting_for_alter';
|
||||
SET DEBUG_SYNC= 'rm_table_part2_before_delete_table WAIT_FOR partitioning_removed';
|
||||
SET DEBUG_SYNC= 'rm_table_no_locks_before_delete_table WAIT_FOR partitioning_removed';
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--echo # Con 1
|
||||
connection con1;
|
||||
@ -70,12 +70,12 @@ SET DEBUG_SYNC= 'alter_table_before_rename_result_table WAIT_FOR delete_done';
|
||||
--send ALTER TABLE t2 REMOVE PARTITIONING
|
||||
connection default;
|
||||
--echo # Con default
|
||||
SET SESSION debug= "+d,sleep_before_part2_delete_table";
|
||||
SET SESSION debug= "+d,sleep_before_no_locks_delete_table";
|
||||
SET DEBUG_SYNC= 'now WAIT_FOR removing_partitions';
|
||||
SET DEBUG_SYNC= 'rm_table_part2_before_delete_table SIGNAL waiting_for_alter';
|
||||
SET DEBUG_SYNC= 'rm_table_part2_before_binlog SIGNAL delete_done';
|
||||
SET DEBUG_SYNC= 'rm_table_no_locks_before_delete_table SIGNAL waiting_for_alter';
|
||||
SET DEBUG_SYNC= 'rm_table_no_locks_before_binlog SIGNAL delete_done';
|
||||
DROP TABLE IF EXISTS t2;
|
||||
SET SESSION debug= "-d,sleep_before_part2_delete_table";
|
||||
SET SESSION debug= "-d,sleep_before_no_locks_delete_table";
|
||||
--echo # Con 1
|
||||
connection con1;
|
||||
--error ER_NO_SUCH_TABLE
|
||||
|
Reference in New Issue
Block a user