mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
BUG#32943: Fixed buggy lock handling of ALTER TABLE for partitioning
mysql-test/r/partition_range.result: Added new test cases for lock tables and ALTER TABLE for partitions, also added a test case with a trigger. mysql-test/t/partition_range.test: Added new test cases for lock tables and ALTER TABLE for partitions, also added a test case with a trigger. sql/mysql_priv.h: Added WFRM_KEEP_SHARE for use of code not to be used otherwise sql/sql_partition.cc: Removed get_name_lock and release_name_lock, use close_data_files_and_morph_locks which leaves an exclusive name lock after completing. Reopen table after completing if under lock tables Updated comments sql/sql_table.cc: Ensure that code to set partition syntax isn't used other than when specifically asked to do it.
This commit is contained in:
@ -1,4 +1,26 @@
|
||||
drop table if exists t1, t2;
|
||||
create table t1 (a integer)
|
||||
partition by range (a)
|
||||
( partition p0 values less than (4),
|
||||
partition p1 values less than (100));
|
||||
create trigger tr1 before insert on t1
|
||||
for each row begin
|
||||
set @a = 1;
|
||||
end|
|
||||
alter table t1 drop partition p0;
|
||||
drop table t1;
|
||||
create table t1 (a integer)
|
||||
partition by range (a)
|
||||
( partition p0 values less than (4),
|
||||
partition p1 values less than (100));
|
||||
LOCK TABLES t1 WRITE;
|
||||
alter table t1 drop partition p0;
|
||||
alter table t1 reorganize partition p1 into
|
||||
( partition p0 values less than (4),
|
||||
partition p1 values less than (100));
|
||||
alter table t1 add partition ( partition p2 values less than (200));
|
||||
UNLOCK TABLES;
|
||||
drop table t1;
|
||||
create table t1 (a int unsigned)
|
||||
partition by range (a)
|
||||
(partition pnull values less than (0),
|
||||
|
Reference in New Issue
Block a user