polardbxengine/mysql-test/suite/ndb/t/ndb_alter_table_dml.test

116 lines
2.6 KiB
Plaintext

#
# Testing' alter table partition by key' with concurrent dml.
#
--source include/have_multi_ndb.inc
connect (j1,localhost,root,,test);
connect (j2,localhost,root,,test);
connect (j3,localhost,root,,test);
connect (j4,localhost,root,,test);
connect (ddl,localhost,root,,test);
connection ddl;
create table parent(a int primary key, b int, key(b)) engine=ndb
comment="NDB_TABLE=PARTITION_BALANCE=FOR_RP_BY_LDM";
create table child(a int primary key, b int) engine=ndb
comment="NDB_TABLE=PARTITION_BALANCE=FOR_RP_BY_LDM";
insert into parent values (1,1), (2,2), (3,3), (4,4);
insert into parent select a+4, b+4 from parent;
insert into parent select a+8, b+8 from parent;
insert into parent select a+16, b+16 from parent;
insert into parent select a+32, b+32 from parent;
insert into parent select a+64, b+64 from parent;
insert into parent select a+128, b+128 from parent;
insert into parent select a+256, b+256 from parent;
insert into parent select a+512, b+512 from parent;
insert into parent select a+1024, b+1024 from parent;
insert into parent select a+2048, b+2048 from parent;
insert into parent select a+4096, b+4096 from parent;
insert into child select * from parent;
connection j1;
set ndb_join_pushdown = false;
explain
select count(*)
from parent join child
on (parent.b = child.a)
where parent.b > 5;
--disable_query_log
delimiter %;
create procedure queryload (seconds int)
begin
set @x=time_to_sec(current_time()) + seconds;
set ndb_join_pushdown = false;
repeat
select count(*)
from parent join child
on (parent.b = child.a)
where parent.b > 5;
until @x <= time_to_sec(current_time())
end repeat;
end%
delimiter ;%
--enable_query_log
--echo Starting engines...
connection j1;
send call queryload(10);
connection j2;
send call queryload(10);
connection j3;
send call queryload(10);
connection j4;
send call queryload(10);
sleep 3;
connection server2;
--echo Beginning alter table child partition by key(a) partitions 4;
alter table child partition by key(a) partitions 4;
--echo Completed.
connection j1;
--disable_result_log
--error 0,ER_NO_SUCH_TABLE,ER_TABLE_DEF_CHANGED
reap;
--enable_result_log
connection j2;
--disable_result_log
--error 0,ER_NO_SUCH_TABLE,ER_TABLE_DEF_CHANGED
reap;
--enable_result_log
connection j3;
--disable_result_log
--error 0,ER_NO_SUCH_TABLE,ER_TABLE_DEF_CHANGED
reap;
--enable_result_log
connection j4;
--disable_result_log
--error 0,ER_NO_SUCH_TABLE,ER_TABLE_DEF_CHANGED
reap;
--enable_result_log
connection ddl;
--echo Ending test. Droping table parent
drop table parent;
drop table child;
drop procedure queryload;