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