MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
partition-dml-1-2.inc
1 let $DATA_PATH=;
2 let $INDEX_PATH=;
3 --source include/have_partition.inc
4 
5 --echo # Additional tests for WL#5217 by QA, testplan 1.1
6 
7 let $TABLENAME= t1;
8 --source suite/parts/inc/partition-dml_cr_tab.inc
9 --source suite/parts/inc/partition-dml_ins_tab.inc
10 let $TABLENAME= t2;
11 --source suite/parts/inc/partition-dml_cr_tab.inc
12 
13 delimiter //;
14 CREATE
15 PROCEDURE p1 ()
16 BEGIN
17 DECLARE c11,c21 int;
18 DECLARE c12,c22 varchar(64);
19 DECLARE cur1 CURSOR FOR SELECT * FROM t1 PARTITION (pneg,`p0-29`,`p30-299`,`p300-2999`,`p3000-299999`) ORDER BY a,b;
20 DECLARE cur2 CURSOR FOR SELECT * FROM t1 ORDER BY a,b;
21 DECLARE CONTINUE HANDLER FOR NOT FOUND SET @done = 1;
22 OPEN cur1;
23 OPEN cur2;
24 read_loop: LOOP
25  FETCH cur1 INTO c11,c12;
26  FETCH cur2 INTO c21,c22;
27  IF !((c11=c21) AND (c12=c22)) THEN
28  SELECT c11,c12,c21,c22;
29  LEAVE read_loop;
30  END IF;
31  IF @done THEN
32  LEAVE read_loop;
33  END IF;
34 END LOOP;
35 CLOSE cur1;
36 CLOSE cur2;
37 END//
38 
39 CREATE PROCEDURE p2 ()
40 BEGIN
41 UPDATE t1 PARTITION (`p0-29`) SET b='p0-29-upd' WHERE a BETWEEN 3 AND 10;
42 END//
43 
44 CREATE PROCEDURE p3 ()
45 BEGIN
46 DELETE FROM t1 PARTITION (`p0-29`) WHERE b= 'p0-29-upd';
47 END//
48 
49 CREATE TRIGGER tr1 AFTER INSERT ON t2
50 FOR EACH ROW BEGIN
51  UPDATE t1 PARTITION (`p30-299`) SET b='p30-299-upd-trigger' WHERE a BETWEEN 30 AND 40;
52 END//
53 
54 delimiter ;//
55 
56 --disable_warnings
57 CALL p1;
58 --enable_warnings
59 CALL p2;
60 SELECT * FROM t1 PARTITION (`p0-29`) WHERE a BETWEEN 3 AND 10 ORDER BY a,b ;
61 SELECT * FROM t1 WHERE a BETWEEN 3 AND 10 ORDER BY a,b ;
62 CALL p3;
63 SELECT * FROM t1 PARTITION (`p0-29`) WHERE a BETWEEN 3 AND 10 ORDER BY a,b ;
64 CALL p3;
65 INSERT INTO t2 PARTITION (`p0-29`, subp3) VALUES (4, '(p0-29-)subp3');
66 SELECT * FROM t2 PARTITION (`p0-29`) WHERE a BETWEEN 3 AND 10 ORDER BY a,b ;
67 SELECT * FROM t1 PARTITION (`p30-299`) WHERE a BETWEEN 30 AND 40 ORDER BY a,b ;
68 
69 DELETE FROM t1 PARTITION (pneg, `p30-299`);
70 SELECT * FROM t1 ORDER BY a,b;
71 
72 --echo ########## Empty table t1 #########
73 DELETE FROM t1;
74 --disable_warnings
75 CALL p1;
76 --enable_warnings
77 CALL p2;
78 CALL p3;
79 
80 DROP PROCEDURE p1;
81 DROP PROCEDURE p2;
82 DROP PROCEDURE p3;
83 DROP TRIGGER tr1;
84 DROP TABLE t1;
85 DROP TABLE t2;
86