1--source include/have_partition.inc 2 3# DATA DIRECTORY 4# Make directory for partition data 5let $data_dir_path= $MYSQLTEST_VARDIR/mysql-test-data-dir; 6--mkdir $data_dir_path 7let $DATA_PATH= DATA DIRECTORY = '$data_dir_path'; 8 9# INDEX DIRECTORY 10# Make directory for partition index 11let $idx_dir_path= $MYSQLTEST_VARDIR/mysql-test-idx-dir; 12--mkdir $idx_dir_path 13let $INDEX_PATH= INDEX DIRECTORY = '$idx_dir_path'; 14 15 16--echo # Additional tests for WL#5217 by QA, testplan 1.1 17 18let $TABLENAME= t1; 19--disable_result_log 20--disable_query_log 21--source suite/parts/inc/partition-dml_cr_tab.inc 22--enable_result_log 23--enable_query_log 24--source suite/parts/inc/partition-dml_ins_tab.inc 25 26--enable_connect_log 27 28CREATE USER test_user_1 IDENTIFIED BY 'testpw'; 29CREATE USER test_user_2 IDENTIFIED BY 'testpw'; 30GRANT ALL PRIVILEGES ON test.* TO test_user_1; 31GRANT ALL PRIVILEGES ON test.* TO test_user_2; 32 33--echo # FILE is needed to use the DATA DIRECTORY or INDEX DIRECTORY option 34--echo # Need to disable warnings as this gives warning 1287 except when 35--echo # running in embedded mode 36--disable_warnings 37GRANT FILE ON *.* TO test_user_2 IDENTIFIED BY 'testpw'; 38--enable_warnings 39 40connect (session1, localhost, test_user_1,'testpw',test); 41--sorted_result 42SELECT * FROM t1 PARTITION (`p0-29`); 43--echo send 44send 45UPDATE t1 PARTITION (`p0-29`) SET b='p0-29-upd-1' WHERE a BETWEEN 0 AND 9; 46 47connect (session2, localhost, test_user_2,'testpw',test); 48let $wait_condition= SELECT count(*)= 4 FROM t1 WHERE b ='p0-29-upd-1'; 49--source include/wait_condition.inc 50--sorted_result 51SELECT * FROM t1 PARTITION (`p30-299`); 52UPDATE t1 PARTITION (`p30-299`) SET b='p30-299-upd' WHERE a BETWEEN 30 AND 39; 53--sorted_result 54SELECT * FROM t1 PARTITION (`p30-299`); 55--sorted_result 56SELECT * FROM t1 PARTITION (`p300-2999`); 57UPDATE t1 PARTITION (`p300-2999`) SET b='p300-2999-upd' WHERE a BETWEEN 300 AND 309; 58--sorted_result 59SELECT * FROM t1 PARTITION (`p300-2999`); 60--sorted_result 61SELECT * FROM t1 PARTITION (`p3000-299999`); 62UPDATE t1 PARTITION (`p3000-299999`) SET b='p3000-299999-upd' WHERE a BETWEEN 3000 AND 3009; 63--sorted_result 64SELECT * FROM t1 PARTITION (`p3000-299999`); 65UPDATE t1 PARTITION (`p0-29`) SET b='p0-29-upd-2' WHERE a BETWEEN 0 AND 9; 66--sorted_result 67SELECT * FROM t1 PARTITION (`p0-29`); 68UPDATE t1 PARTITION (subp3) SET b='subp3-upd'; 69UPDATE t1 PARTITION (subp4) SET b='subp4-upd'; 70UPDATE t1 PARTITION (subp5) SET b='subp5-upd'; 71--sorted_result 72SELECT * FROM t1 PARTITION (subp3); 73--sorted_result 74SELECT * FROM t1 PARTITION (subp4); 75--sorted_result 76SELECT * FROM t1 PARTITION (subp5); 77SELECT * FROM t1 PARTITION (subp4,subp5,subp3) order by b,a; 78 79connection session1; 80--echo reap 81reap; 82--sorted_result 83SELECT * FROM t1 PARTITION (`p0-29`); 84 85connection session2; 86--sorted_result 87SELECT * FROM t1 PARTITION (`p0-29`); 88SELECT 89(SELECT count(*) FROM t1 PARTITION (pneg,`p0-29`,`p30-299`,`p300-2999`,`p3000-299999`)) = 90(SELECT count(*) FROM t1) as `MUST BE TRUE (1)` ; 91 92# 2) empty (sub)partitions 93let $TABLENAME= t2; 94--disable_result_log 95--disable_query_log 96--source suite/parts/inc/partition-dml_cr_tab.inc 97--enable_result_log 98--enable_query_log 99 100SELECT * FROM t2 PARTITION (`p30-299`); 101UPDATE t2 PARTITION (`p30-299`) SET b='p30-299-upd' WHERE a BETWEEN 30 AND 39; 102DELETE FROM t2 PARTITION (`p30-299`) WHERE a BETWEEN 30 AND 39; 103SELECT * FROM t2 PARTITION (`p300-2999`); 104UPDATE t2 PARTITION (`p300-2999`) SET b='p300-2999-upd' WHERE a BETWEEN 300 AND 309; 105DELETE FROM t2 PARTITION (`p300-2999`) WHERE a BETWEEN 300 AND 309; 106SELECT * FROM t2 PARTITION (`p3000-299999`); 107UPDATE t2 PARTITION (`p3000-299999`) SET b='p3000-299999-upd' WHERE a BETWEEN 3000 AND 3009; 108DELETE FROM t2 PARTITION (`p3000-299999`) WHERE a BETWEEN 3000 AND 3009; 109SELECT * FROM t2 PARTITION (`p0-29`); 110UPDATE t2 PARTITION (`p0-29`) SET b='p0-29-upd-2' WHERE a BETWEEN 0 AND 9; 111DELETE FROM t2 PARTITION (`p0-29`) WHERE a BETWEEN 0 AND 9; 112UPDATE t2 PARTITION (subp3) SET b='subp3-upd'; 113DELETE FROM t2 PARTITION (subp3); 114UPDATE t2 PARTITION (subp4) SET b='subp4-upd'; 115DELETE FROM t2 PARTITION (subp4); 116UPDATE t2 PARTITION (subp5) SET b='subp5-upd'; 117DELETE FROM t2 PARTITION (subp5); 118UPDATE t2 PARTITION (subp4,subp5,subp3) SET b='subp-upd'; 119DELETE FROM t2 PARTITION (subp4,subp5,subp3); 120SELECT * FROM t2 PARTITION (subp3); 121SELECT * FROM t2 PARTITION (subp4); 122SELECT * FROM t2 PARTITION (subp5); 123 124disconnect session1; 125disconnect session2; 126connection default; 127DROP TABLE t1, t2; 128--error 0,1 129--rmdir $data_dir_path/test 130--rmdir $data_dir_path 131--rmdir $idx_dir_path 132DROP USER test_user_1; 133DROP USER test_user_2; 134 135