mySQL 5.0.11 sources for tomato
[tomato.git] / release / src / router / mysql / mysql-test / suite / stress / include / ddl8.inc
blob85a70770a56e82c96918899b5d2c159d752af47c
1 ######## include/ddl8.inc ######
3 # Stress the storage engine with rapid CREATE/DROP TABLE/INDEX
4 # and following SELECT/INSERT/SHOW etc.
5 # Subtest 8 variants (8A - 8D)
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.
13 # Other stuff which must already exist:
14 # - connection con2
15 # - stmt_start and stmt_break prepared by the default connection
17 # Please look for more details within include/ddl1.inc.
19 # Creation of this test:
20 # 2007-07-04 mleich
24 #----------------------------------------------------------------------
25 # Settings for Subtest 8 variants
26 # Scenario: CREATE INDEX variant1/SHOW/DROP INDEX/
27 #           CREATE INDEX variant2/SHOW/DROP INDEX
28 let $create_index1=  CREATE INDEX IDX ON t1 (f2);
29 let $create_index2=  CREATE UNIQUE INDEX IDX ON t1 (f2);
30 let $show_table=     SHOW CREATE TABLE t1;
31 let $drop_index=     DROP INDEX IDX ON t1;
32 eval CREATE TABLE t1 (f1 BIGINT, f2 BIGINT, UNIQUE(f1)) ENGINE=$engine_type;
33 INSERT INTO t1 VALUES(1,1);
34 eval $create_index1;
35 let $cr_value1= INITIALIZED;
36 let $cr_value1= query_get_value($show_table, Create Table, 1);
37 eval $drop_index;
38 eval $create_index2;
39 let $cr_value2= INITIALIZED;
40 let $cr_value2= query_get_value($show_table, Create Table, 1);
41 eval $drop_index;
42 if (`SELECT '$cr_value1' = '$cr_value2'`)
44    --echo # Error during generation of prerequisites.
45    --echo # cr_value1 equals cr_value2
46    --echo # cr_value1: $cr_value1
47    --echo # cr_value2: $cr_value2
48    --echo # abort
49    exit;
51 #----------------------------------------------------------------------
54 --echo # Subtest 8A (one connection, no PREPARE/EXECUTE)
55 --echo #    connection  action
56 --echo #    default:    $create_index1
57 --echo #    default:    $show_table
58 --echo #    default:    $drop_index
59 --echo #    default:    $create_index2
60 --echo #    default:    $show_table
61 --echo #    default:    $drop_index
62 --disable_query_log
63 --disable_result_log
64 connection default;
65 let $run= 1;
66 # Determine the current time.
67 EXECUTE stmt_start;
68 # Run execution loops till the planned runtime is reached
69 while ($run)
71    let $loop_run= $loop_size;
72    while ($loop_run)
73    {
74       eval $create_index1;
75       let $value= INITIALIZED;
76       let $value= query_get_value($show_table, Create Table, 1);
77       if (`SELECT '$value' <> '$cr_value1'`)
78       {
79          --echo # Error: Unexpected SHOW CREATE TABLE output
80          --echo # Got:      $value
81          --echo # Expected: $cr_value1
82          --echo # abort
83          exit;
84       }
85       eval $drop_index;
86       eval $create_index2;
87       let $value= INITIALIZED;
88       let $value= query_get_value($show_table, Create Table, 1);
89       if (`SELECT '$value' <> '$cr_value2'`)
90       {
91          --echo # Error: Unexpected SHOW CREATE TABLE output
92          --echo # Got:      $value
93          --echo # Expected: $cr_value2
94          --echo # abort
95          exit;
96       }
97       eval $drop_index;
98       dec $loop_run;
99    }
100    if (`EXECUTE stmt_break`)
101    {
102       let $run= 0;
103    }
105 --enable_result_log
106 --enable_query_log
108 --echo # Subtest 8B (one connection, use PREPARE/EXECUTE)
109 --echo #    connection  action
110 --echo #    default:    $create_index1
111 --echo #    default:    $show_table
112 --echo #    default:    $drop_index
113 --echo #    default:    $create_index2
114 --echo #    default:    $show_table
115 --echo #    default:    $drop_index
116 --disable_query_log
117 --disable_result_log
118 connection default;
119 eval PREPARE create_index1 FROM "$create_index1";
120 eval PREPARE create_index2 FROM "$create_index2";
121 EXECUTE create_index1;
122 eval PREPARE show_table FROM "$show_table";
123 eval PREPARE drop_index FROM "$drop_index";
124 EXECUTE drop_index;
125 let $run= 1;
126 # Determine the current time.
127 EXECUTE stmt_start;
128 # Run execution loops till the planned runtime is reached
129 while ($run)
131    let $loop_run= $loop_size;
132    while ($loop_run)
133    {
134       EXECUTE create_index1;
135       let $value= INITIALIZED;
136       let $value= query_get_value(EXECUTE show_table, Create Table, 1);
137       if (`SELECT '$value' <> '$cr_value1'`)
138       {
139          --echo # Error: Unexpected SHOW CREATE TABLE output
140          --echo # Got:      $value
141          --echo # Expected: $cr_value1
142          --echo # abort
143          exit;
144       }
145       EXECUTE drop_index;
146       EXECUTE create_index2;
147       let $value= INITIALIZED;
148       let $value= query_get_value(EXECUTE show_table, Create Table, 1);
149       if (`SELECT '$value' <> '$cr_value2'`)
150       {
151          --echo # Error: Unexpected SHOW CREATE TABLE output
152          --echo # Got:      $value
153          --echo # Expected: $cr_value2
154          --echo # abort
155          exit;
156       }
157       EXECUTE drop_index;
158       dec $loop_run;
159    }
160    if (`EXECUTE stmt_break`)
161    {
162       let $run= 0;
163    }
165 DEALLOCATE PREPARE create_index1;
166 DEALLOCATE PREPARE create_index2;
167 DEALLOCATE PREPARE show_table;
168 DEALLOCATE PREPARE drop_index;
169 --enable_result_log
170 --enable_query_log
172 --echo # Subtest 8C (two connections, no PREPARE/EXECUTE)
173 --echo #    connection  action
174 --echo #    default:    $create_index1
175 --echo #    con2:       $show_table
176 --echo #    default:    $drop_index
177 --echo #    default:    $create_index2
178 --echo #    con2:       $show_table
179 --echo #    default:    $drop_index
180 --disable_query_log
181 --disable_result_log
182 connection default;
183 let $run= 1;
184 # Determine the current time.
185 EXECUTE stmt_start;
186 # Run execution loops till the planned runtime is reached
187 while ($run)
189    let $loop_run= $loop_size;
190    while ($loop_run)
191    {
192       eval $create_index1;
193       connection con2;
194       let $value= INITIALIZED;
195       let $value= query_get_value($show_table, Create Table, 1);
196       if (`SELECT '$value' <> '$cr_value1'`)
197       {
198          --echo # Error: Unexpected SHOW CREATE TABLE output
199          --echo # Got:      $value
200          --echo # Expected: $cr_value1
201          --echo # abort
202          exit;
203       }
204       connection default;
205       eval $drop_index;
206       eval $create_index2;
207       connection con2;
208       let $value= INITIALIZED;
209       let $value= query_get_value($show_table, Create Table, 1);
210       if (`SELECT '$value' <> '$cr_value2'`)
211       {
212          --echo # Error: Unexpected SHOW CREATE TABLE output
213          --echo # Got:      $value
214          --echo # Expected: $cr_value2
215          --echo # abort
216          exit;
217       }
218       connection default;
219       eval $drop_index;
220       dec $loop_run;
221    }
222    if (`EXECUTE stmt_break`)
223    {
224       let $run= 0;
225    }
227 --enable_result_log
228 --enable_query_log
230 --echo # Subtest 8D (two connections, use PREPARE/EXECUTE)
231 --echo #    connection  action
232 --echo #    default:    $create_index1
233 --echo #    con2:       $show_table
234 --echo #    default:    $drop_index
235 --echo #    default:    $create_index2
236 --echo #    con2:       $show_table
237 --echo #    default:    $drop_index
238 --disable_query_log
239 --disable_result_log
240 connection default;
241 eval PREPARE create_index1 FROM "$create_index1";
242 eval PREPARE create_index2 FROM "$create_index2";
243 eval PREPARE drop_index FROM "$drop_index";
244 EXECUTE create_index1;
245 connection con2;
246 eval PREPARE show_table FROM "$show_table";
247 connection default;
248 EXECUTE drop_index;
249 let $run= 1;
250 # Determine the current time.
251 EXECUTE stmt_start;
252 # Run execution loops till the planned runtime is reached
253 while ($run)
255    let $loop_run= $loop_size;
256    while ($loop_run)
257    {
258       EXECUTE create_index1;
259       connection con2;
260       let $value= INITIALIZED;
261       let $value= query_get_value(EXECUTE show_table, Create Table, 1);
262       if (`SELECT '$value' <> '$cr_value1'`)
263       {
264          --echo # Error: Unexpected SHOW CREATE TABLE output
265          --echo # Got:      $value
266          --echo # Expected: $cr_value1
267          --echo # abort
268          exit;
269       }
270       connection default;
271       EXECUTE drop_index;
272       EXECUTE create_index2;
273       connection con2;
274       let $value= INITIALIZED;
275       let $value= query_get_value(EXECUTE show_table, Create Table, 1);
276       if (`SELECT '$value' <> '$cr_value2'`)
277       {
278          --echo # Error: Unexpected SHOW CREATE TABLE output
279          --echo # Got:      $value
280          --echo # Expected: $cr_value2
281          --echo # abort
282          exit;
283       }
284       connection default;
285       EXECUTE drop_index;
286       dec $loop_run;
287    }
288    if (`EXECUTE stmt_break`)
289    {
290       let $run= 0;
291    }
293 DEALLOCATE PREPARE create_index1;
294 DEALLOCATE PREPARE create_index2;
295 DEALLOCATE PREPARE drop_index;
296 connection con2;
297 DEALLOCATE PREPARE show_table;
298 connection default;
299 --enable_result_log
300 --enable_query_log
302 DROP TABLE t1;