116 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			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;
 |