Current Path : /usr/opt/mysql57/mysql-test/suite/ndb/t/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //usr/opt/mysql57/mysql-test/suite/ndb/t/ndb_add_partition.test |
# The include statement below is a temp one for tests that are yet to #be ported to run with InnoDB, #but needs to be kept for tests that would need MyISAM in future. --source include/force_myisam_default.inc --source include/have_ndb.inc --disable_warnings DROP TABLE IF EXISTS t1,t2; --enable_warnings CREATE LOGFILE GROUP lg1 ADD UNDOFILE 'undofile.dat' INITIAL_SIZE 16M UNDO_BUFFER_SIZE = 1M ENGINE=NDB; CREATE TABLESPACE ts1 ADD DATAFILE 'datafile.dat' USE LOGFILE GROUP lg1 INITIAL_SIZE 64M ENGINE NDB; CREATE TABLE t1 (a int unsigned not null, b int unsigned not null, c int unsigned not null, primary key(a,c), unique (b)) ENGINE = NDB partition by key(a); CREATE TABLE t2 (a int unsigned not null, b int unsigned not null, c int unsigned not null, primary key(a,b), unique (b)) ENGINE = NDB STORAGE DISK TABLESPACE ts1 partition by key(a); CREATE TABLE t3 (a int unsigned not null, b int unsigned not null, c int unsigned not null, primary key(a,b), unique (b)) MAX_ROWS=50000000 ENGINE = NDB; CREATE TABLE t4 (a int unsigned not null, b int unsigned not null, c int unsigned not null, primary key(a,b), unique (b)) ENGINE = NDB; CREATE TABLE t5 (a int unsigned not null, b int unsigned not null, c int unsigned null, primary key(a,b), unique (b), unique (c)) ENGINE = NDB partition by key(a) partitions 3; # Fragment counts for unique index must be equal to main table # if main table is hashmap partitioned let ndb_database=test; let ndb_table=t1; --source suite/ndb/include/ndb_check_unique_index.inc let ndb_database=test; let ndb_table=t2; --source suite/ndb/include/ndb_check_unique_index.inc let ndb_database=test; let ndb_table=t3; --source suite/ndb/include/ndb_check_unique_index.inc let ndb_database=test; let ndb_table=t4; --source suite/ndb/include/ndb_check_unique_index.inc let ndb_database=test; let ndb_table=t5; --source suite/ndb/include/ndb_check_unique_index.inc # let $t1_part_count_start = query_get_value(select count(*) as Value from information_schema.partitions where table_schema = 'test' and table_name = 't1', Value, 1); let $t2_part_count_start = query_get_value(select count(*) as Value from information_schema.partitions where table_schema = 'test' and table_name = 't2', Value, 1); let $t3_part_count_start = query_get_value(select count(*) as Value from information_schema.partitions where table_schema = 'test' and table_name = 't3', Value, 1); let $t4_part_count_start = query_get_value(select count(*) as Value from information_schema.partitions where table_schema = 'test' and table_name = 't4', Value, 1); INSERT INTO t1 VALUES (1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5), (6,6,6),(7,7,7),(8,8,8),(9,9,9),(10,10,10), (11,11,11),(12,12,12),(13,13,13),(14,14,14),(15,15,15), (16,16,16),(17,17,17),(18,18,18),(19,19,19),(20,20,20), (21,21,21),(22,22,22),(23,23,23),(24,24,24),(25,25,25), (26,26,26),(27,27,27),(28,28,28),(29,29,29),(30,30,30), (31,31,31),(32,32,32),(33,33,33),(34,34,34),(35,35,35), (36,36,36),(37,37,37),(38,38,38),(39,39,39),(40,40,40), (41,41,41),(42,42,42),(43,43,43),(44,44,44),(45,45,45), (46,46,46),(47,47,47),(48,48,48),(49,49,49),(50,50,50), (51,51,51),(52,52,52),(53,53,53),(54,54,54),(55,55,55), (56,56,56),(57,57,57),(58,58,58),(59,59,59),(60,60,60), (61,61,61),(62,62,62),(63,63,63),(64,64,64),(65,65,65), (66,66,66),(67,67,67),(68,68,68),(69,69,69),(70,70,70), (71,71,71),(72,72,72),(73,73,73),(74,74,74),(75,75,75), (76,76,76),(77,77,77),(78,78,78),(79,79,79),(80,80,80), (81,81,81),(82,82,82),(83,83,83),(84,84,84),(85,85,85), (86,86,86),(87,87,87),(88,88,88),(89,89,89),(90,90,90), (91,91,91),(92,92,92),(93,93,93),(94,94,94),(95,95,95), (96,96,96),(97,97,97),(98,98,98),(99,99,99),(100,100,100); insert into t2 select * from t1; insert into t3 select * from t1; insert into t4 select * from t1; insert into t5 (a,b,c) select a,b,if(a%2,b,NULL) as c from t1; select count(*) from t1; select count(*) from t2; select count(*) from t3; select count(*) from t4; select count(*) from t5; --sorted_result select * from t1 where a < 20; --sorted_result select * from t1 where a = 20; --sorted_result select * from t1 where a = 30; --sorted_result select * from t1 where a = 40; --sorted_result select * from t1 where a = 50; select * from t1 where b = 20; select * from t1 where b = 30; select * from t1 where b = 40; select * from t1 where b = 50; --sorted_result select * from t2 where a < 20; --sorted_result select * from t2 where a = 20; --sorted_result select * from t2 where a = 30; --sorted_result select * from t2 where a = 40; --sorted_result select * from t2 where a = 50; select * from t2 where b = 20; select * from t2 where b = 30; select * from t2 where b = 40; select * from t2 where b = 50; --sorted_result select * from t3 where a < 20; --sorted_result select * from t3 where a = 20; --sorted_result select * from t3 where a = 30; --sorted_result select * from t3 where a = 40; --sorted_result select * from t3 where a = 50; select * from t3 where b = 20; select * from t3 where b = 30; select * from t3 where b = 40; select * from t3 where b = 50; --sorted_result select * from t4 where a < 20; --sorted_result select * from t4 where a = 20; --sorted_result select * from t4 where a = 30; --sorted_result select * from t4 where a = 40; --sorted_result select * from t4 where a = 50; select * from t4 where b = 20; select * from t4 where b = 30; select * from t4 where b = 40; select * from t4 where b = 50; alter online table t1 reorganize partition; alter online table t2 reorganize partition; --echo Cannot use normal reorganize partition on t3 as it has explicit MAX_ROWS set --error ER_ALTER_OPERATION_NOT_SUPPORTED alter online table t3 reorganize partition; show warnings; alter online table t3 max_rows=50000000; alter online table t4 reorganize partition; --error ER_ALTER_OPERATION_NOT_SUPPORTED alter online table t5 partition by key() partitions 6; let $t1_part_count_now = query_get_value(select count(*) as Value from information_schema.partitions where table_schema = 'test' and table_name = 't1', Value, 1); let $t2_part_count_now = query_get_value(select count(*) as Value from information_schema.partitions where table_schema = 'test' and table_name = 't2', Value, 1); let $t3_part_count_now = query_get_value(select count(*) as Value from information_schema.partitions where table_schema = 'test' and table_name = 't3', Value, 1); let $t4_part_count_now = query_get_value(select count(*) as Value from information_schema.partitions where table_schema = 'test' and table_name = 't4', Value, 1); --disable_query_log --echo Check partitions added, expect 0 in all cases --echo partitions added to t1 eval select $t1_part_count_now - $t1_part_count_start as t1_added; --echo partitions added to t2 eval select $t2_part_count_now - $t2_part_count_start as t2_added; --echo partitions added to t3 eval select $t3_part_count_now - $t3_part_count_start as t3_added; --echo partitions added to t4 eval select $t4_part_count_now - $t4_part_count_start as t4_added; --enable_query_log alter online table t1 add partition partitions 1; alter online table t2 add partition partitions 4; alter online table t3 max_rows=100000000; # Expansion of max rows --error ER_ALTER_OPERATION_NOT_SUPPORTED alter online table t4 max_rows=100000000; # Attempted introduction of max rows - fails let $t1_part_count_now = query_get_value(select count(*) as Value from information_schema.partitions where table_schema = 'test' and table_name = 't1', Value, 1); let $t2_part_count_now = query_get_value(select count(*) as Value from information_schema.partitions where table_schema = 'test' and table_name = 't2', Value, 1); let $t3_part_count_now = query_get_value(select count(*) as Value from information_schema.partitions where table_schema = 'test' and table_name = 't3', Value, 1); let $t4_part_count_now = query_get_value(select count(*) as Value from information_schema.partitions where table_schema = 'test' and table_name = 't4', Value, 1); --disable_query_log --echo partitions added to t1 (expect 1) eval select $t1_part_count_now - $t1_part_count_start as t1_added; --echo partitions added to t2 (expect 4) eval select $t2_part_count_now - $t2_part_count_start as t2_added; --echo partitions added to t3 (expect 2) eval select $t3_part_count_now - $t3_part_count_start as t3_added; --echo partitions added to t4 (expect 0) eval select $t4_part_count_now - $t4_part_count_start as t4_added; --enable_query_log # reorganize partition not support if not default partitioning # and after a add partition it's no longer default --error ER_REORG_NO_PARAM_ERROR alter online table t1 reorganize partition; # Following will fail as t3 has an explicit MAX_ROWS set --error ER_ALTER_OPERATION_NOT_SUPPORTED alter online table t3 reorganize partition; show warnings; # t4 reorg will succeed as t4 has no explicit MAX_ROWS alter online table t4 reorganize partition; select count(*) from t1; select count(*) from t2; --sorted_result select * from t1 where a < 20; --sorted_result select * from t1 where a = 20; --sorted_result select * from t1 where a = 30; --sorted_result select * from t1 where a = 40; --sorted_result select * from t1 where a = 50; select * from t1 where b = 20; select * from t1 where b = 30; select * from t1 where b = 40; select * from t1 where b = 50; --sorted_result select * from t2 where a < 20; --sorted_result select * from t2 where a = 20; --sorted_result select * from t2 where a = 30; --sorted_result select * from t2 where a = 40; --sorted_result select * from t2 where a = 50; select * from t2 where b = 20; select * from t2 where b = 30; select * from t2 where b = 40; select * from t2 where b = 50; --sorted_result select * from t3 where a < 20; --sorted_result select * from t3 where a = 20; --sorted_result select * from t3 where a = 30; --sorted_result select * from t3 where a = 40; --sorted_result select * from t3 where a = 50; select * from t3 where b = 20; select * from t3 where b = 30; select * from t3 where b = 40; select * from t3 where b = 50; --sorted_result select * from t4 where a < 20; --sorted_result select * from t4 where a = 20; --sorted_result select * from t4 where a = 30; --sorted_result select * from t4 where a = 40; --sorted_result select * from t4 where a = 50; select * from t4 where b = 20; select * from t4 where b = 30; select * from t4 where b = 40; select * from t4 where b = 50; let ndb_database=test; let ndb_table=t4; --source suite/ndb/include/ndb_check_unique_index.inc drop table t4; alter online table t1 add partition partitions 2; alter online table t2 add partition partitions 1; alter online table t3 max_rows=150000000; let $t1_part_count_now = query_get_value(select count(*) as Value from information_schema.partitions where table_schema = 'test' and table_name = 't1', Value, 1); let $t2_part_count_now = query_get_value(select count(*) as Value from information_schema.partitions where table_schema = 'test' and table_name = 't2', Value, 1); let $t3_part_count_now = query_get_value(select count(*) as Value from information_schema.partitions where table_schema = 'test' and table_name = 't3', Value, 1); --disable_query_log --echo partitions added to t1 (expect 3) eval select $t1_part_count_now - $t1_part_count_start as t1_added; --echo partitions added to t2 (expect 5) eval select $t2_part_count_now - $t2_part_count_start as t2_added; --echo partitions added to t3 (expect 4) eval select $t3_part_count_now - $t3_part_count_start as t3_added; --enable_query_log select count(*) from t1; select count(*) from t2; --sorted_result select * from t1 where a < 20; --sorted_result select * from t1 where a = 20; --sorted_result select * from t1 where a = 30; --sorted_result select * from t1 where a = 40; --sorted_result select * from t1 where a = 50; select * from t1 where b = 20; select * from t1 where b = 30; select * from t1 where b = 40; select * from t1 where b = 50; --sorted_result select * from t2 where a < 20; --sorted_result select * from t2 where a = 20; --sorted_result select * from t2 where a = 30; --sorted_result select * from t2 where a = 40; --sorted_result select * from t2 where a = 50; select * from t2 where b = 20; select * from t2 where b = 30; select * from t2 where b = 40; select * from t2 where b = 50; --sorted_result select * from t3 where a < 20; --sorted_result select * from t3 where a = 20; --sorted_result select * from t3 where a = 30; --sorted_result select * from t3 where a = 40; --sorted_result select * from t3 where a = 50; select * from t3 where b = 20; select * from t3 where b = 30; select * from t3 where b = 40; select * from t3 where b = 50; # Fragment counts for unique index may now differ from main table # since unique index do not reorg let ndb_database=test; let ndb_table=t1; --source suite/ndb/include/ndb_check_unique_index.inc let ndb_database=test; let ndb_table=t2; --source suite/ndb/include/ndb_check_unique_index.inc let ndb_database=test; let ndb_table=t3; --source suite/ndb/include/ndb_check_unique_index.inc let ndb_database=test; let ndb_table=t5; --source suite/ndb/include/ndb_check_unique_index.inc drop table t1,t2,t3,t5; alter tablespace ts1 drop datafile 'datafile.dat' engine = ndb; drop tablespace ts1 engine = ndb; drop logfile group lg1 engine = ndb;