MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ddl5.inc
1 ######## include/ddl5.inc ######
2 #
3 # Stress the storage engine with rapid CREATE/DROP TABLE/INDEX
4 # and following SELECT/INSERT/SHOW etc.
5 # Subtest 5 variants (5A - 5D)
6 #
7 # The variables
8 # $loop_size -- number of rounds till we look at the clock again
9 # $runtime -- rough intended runtime per subtest variant
10 # $engine_type -- storage engine to be used in CREATE TABLE
11 # must be set within the routine sourcing this script.
12 #
13 # Other stuff which must already exist:
14 # - connection con2
15 # - stmt_start and stmt_break prepared by the default connection
16 #
17 # Please look for more details within include/ddl1.inc.
18 #
19 # Creation of this test:
20 # 2007-07-04 mleich
21 #
22 
23 #----------------------------------------------------------------------
24 # Settings for Subtest 5 variants
25 # Scenario: CREATE TABLE with AUTOINC/INSERT/SELECT/DROP TABLE
26 let $create_table= CREATE TABLE t1 (f1 MEDIUMINT NOT NULL AUTO_INCREMENT,f2 BIGINT, UNIQUE(f1)) ENGINE = $engine_type;
27 let $insert_into= INSERT INTO t1 SET f2 = 9;
28 let $select_record= SELECT f1 <> 1 OR f1 IS NULL FROM t1 WHERE f2 = 9;
29 let $drop_table= DROP TABLE t1;
30 #----------------------------------------------------------------------
31 
32 #
33 --echo # Subtest 5A (one connection, no PREPARE/EXECUTE)
34 --echo # connection action
35 --echo # default: $create_table
36 --echo # default: $insert_into
37 --echo # default: $select_record
38 --echo # default: $drop_table
39 --disable_query_log
40 connection default;
41 let $run= 1;
42 # Determine the current time.
43 EXECUTE stmt_start;
44 # Run execution loops till the planned runtime is reached
45 while ($run)
46 {
47  let $loop_run= $loop_size;
48  while ($loop_run)
49  {
50  eval $create_table;
51  eval $insert_into;
52  if (`$select_record`)
53  {
54  --enable_result_log
55  --enable_query_log
56  --echo # Error: Unexpected content within t1.
57  --echo # Expected: 0
58  --echo # Got:
59  eval $select_record;
60  SELECT * FROM t1;
61  --echo # abort
62  exit;
63  }
64  eval $drop_table;
65  dec $loop_run;
66  }
67  if (`EXECUTE stmt_break`)
68  {
69  let $run= 0;
70  }
71 }
72 --enable_query_log
73 #
74 --echo # Subtest 5B (one connection, use PREPARE/EXECUTE)
75 --echo # connection action
76 --echo # default: $create_table
77 --echo # default: $insert_into
78 --echo # default: $select_record
79 --echo # default: $drop_table
80 --disable_query_log
81 connection default;
82 eval PREPARE create_table FROM "$create_table";
83 EXECUTE create_table;
84 eval PREPARE insert_into FROM "$insert_into";
85 eval PREPARE select_record FROM "$select_record";
86 eval PREPARE drop_table FROM "$drop_table";
87 EXECUTE drop_table;
88 let $run= 1;
89 # Determine the current time.
90 EXECUTE stmt_start;
91 # Run execution loops till the planned runtime is reached
92 while ($run)
93 {
94  let $loop_run= $loop_size;
95  while ($loop_run)
96  {
97  EXECUTE create_table;
98  EXECUTE insert_into;
99  if (`EXECUTE select_record`)
100  {
101  --enable_result_log
102  --enable_query_log
103  --echo # Error: Unexpected content within t1.
104  --echo # Expected: 0
105  --echo # Got:
106  EXECUTE select_record;
107  SELECT * FROM t1;
108  --echo # abort
109  exit;
110  }
111  EXECUTE drop_table;
112  dec $loop_run;
113  }
114  if (`EXECUTE stmt_break`)
115  {
116  let $run= 0;
117  }
118 }
119 DEALLOCATE PREPARE create_table;
120 DEALLOCATE PREPARE insert_into;
121 DEALLOCATE PREPARE select_record;
122 DEALLOCATE PREPARE drop_table;
123 --enable_query_log
124 #
125 --echo # Subtest 5C (two connections, no PREPARE/EXECUTE)
126 --echo # connection action
127 --echo # default: $create_table
128 --echo # con2: $insert_into
129 --echo # default: $select_record
130 --echo # con2: $drop_table
131 --disable_query_log
132 connection default;
133 let $run= 1;
134 # Determine the current time.
135 EXECUTE stmt_start;
136 # Run execution loops till the planned runtime is reached
137 while ($run)
138 {
139  let $loop_run= $loop_size;
140  while ($loop_run)
141  {
142  eval $create_table;
143  connection con2;
144  eval $insert_into;
145  connection default;
146  if (`$select_record`)
147  {
148  --enable_result_log
149  --enable_query_log
150  --echo # Error: Unexpected content within t1.
151  --echo # Expected: 0
152  --echo # Got:
153  eval $select_record;
154  SELECT * FROM t1;
155  --echo # abort
156  exit;
157  }
158  connection con2;
159  eval $drop_table;
160  connection default;
161  dec $loop_run;
162  }
163  if (`EXECUTE stmt_break`)
164  {
165  let $run= 0;
166  }
167 }
168 --enable_query_log
169 #
170 --echo # Subtest 5D (two connections, use PREPARE/EXECUTE)
171 --echo # connection action
172 --echo # default: $create_table
173 --echo # con2: $insert_into
174 --echo # default: $select_record
175 --echo # con2: $drop_table
176 --disable_query_log
177 connection default;
178 eval PREPARE create_table FROM "$create_table";
179 EXECUTE create_table;
180 eval PREPARE select_record FROM "$select_record";
181 connection con2;
182 eval PREPARE insert_into FROM "$insert_into";
183 eval PREPARE drop_table FROM "$drop_table";
184 EXECUTE drop_table;
185 connection default;
186 let $run= 1;
187 # Determine the current time.
188 EXECUTE stmt_start;
189 # Run execution loops till the planned runtime is reached
190 while ($run)
191 {
192  let $loop_run= $loop_size;
193  while ($loop_run)
194  {
195  EXECUTE create_table;
196  connection con2;
197  EXECUTE insert_into;
198  connection default;
199  if (`EXECUTE select_record`)
200  {
201  --enable_result_log
202  --enable_query_log
203  --echo # Error: Unexpected content within t1.
204  --echo # Expected: 0
205  --echo # Got:
206  EXECUTE select_record;
207  SELECT * FROM t1;
208  --echo # abort
209  exit;
210  }
211  connection con2;
212  EXECUTE drop_table;
213  connection default;
214  dec $loop_run;
215  }
216  if (`EXECUTE stmt_break`)
217  {
218  let $run= 0;
219  }
220 }
221 DEALLOCATE PREPARE create_table;
222 DEALLOCATE PREPARE select_record;
223 connection con2;
224 DEALLOCATE PREPARE insert_into;
225 DEALLOCATE PREPARE drop_table;
226 connection default;
227 --enable_query_log