1 ######## include/ddl3.inc ######
3 # Stress the storage engine with rapid CREATE/DROP TABLE/INDEX
4 # and following SELECT/INSERT/SHOW etc.
5 # Subtest 3 variants (3A - 3D)
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:
15 # - stmt_start and stmt_break prepared by the default connection
17 # Please look for more details within include/ddl2.inc.
19 # Creation of this test:
24 #----------------------------------------------------------------------
25 # Settings for Subtest 3 variants
26 # Scenario: CREATE TABLE/CREATE TABLE(F)/DROP TABLE/DROP TABLE(F)
27 let $create_table= CREATE
TABLE t1 (f1 BIGINT NOT NULL) ENGINE=$engine_type;
28 let $drop_table= DROP
TABLE t1;
29 #----------------------------------------------------------------------
32 --echo # Subtest 3
A (one connection, no PREPARE/EXECUTE)
33 --echo # connection action
34 --echo #
default: $create_table
35 --echo #
default: $create_table (expect
to get ER_TABLE_EXISTS_ERROR)
36 --echo #
default: $drop_table
37 --echo #
default: $drop_table (expect
to get ER_BAD_TABLE_ERROR)
42 # Determine the current time.
44 # Run execution loops till the planned runtime is reached
47 let $loop_run= $loop_size;
51 --error 0,ER_TABLE_EXISTS_ERROR
55 --echo # Error: CREATE
TABLE was successful though we expected ER_TABLE_EXISTS_ERROR
60 --error 0,ER_BAD_TABLE_ERROR
64 --echo # Error: DROP
TABLE was successful though we expected ER_BAD_TABLE_ERROR)
70 if (`EXECUTE stmt_break`)
78 --echo # Subtest 3B (one connection, use PREPARE/EXECUTE)
79 --echo # connection action
80 --echo #
default: $create_table
81 --echo #
default: $create_table (expect
to get ER_TABLE_EXISTS_ERROR)
82 --echo #
default: $drop_table
83 --echo #
default: $drop_table (expect
to get ER_BAD_TABLE_ERROR)
89 eval PREPARE drop_table FROM
"$drop_table";
92 # Determine the current time.
94 # Run execution loops till the planned runtime is reached
97 let $loop_run= $loop_size;
101 --error 0,ER_TABLE_EXISTS_ERROR
105 --echo # Error: CREATE
TABLE was successful though we expected ER_TABLE_EXISTS_ERROR
110 --error 0,ER_BAD_TABLE_ERROR
114 --echo # Error: DROP
TABLE was successful though we expected ER_BAD_TABLE_ERROR)
120 if (`EXECUTE stmt_break`)
126 DEALLOCATE PREPARE drop_table;
130 --echo # Subtest 3C (two connections, no PREPARE/EXECUTE)
131 --echo # connection action
132 --echo #
default: $create_table
133 --echo # con2: $create_table (expect
to get ER_TABLE_EXISTS_ERROR)
134 --echo #
default: $drop_table
135 --echo # con2: $drop_table (expect
to get ER_BAD_TABLE_ERROR)
140 # Determine the current time.
142 # Run execution loops till the planned runtime is reached
145 let $loop_run= $loop_size;
150 --error 0,ER_TABLE_EXISTS_ERROR
154 --echo # Error: CREATE
TABLE was successful though we expected ER_TABLE_EXISTS_ERROR
161 --error 0,ER_BAD_TABLE_ERROR
165 --echo # Error: DROP
TABLE was successful though we expected ER_BAD_TABLE_ERROR)
172 if (`EXECUTE stmt_break`)
180 --echo # Subtest 3D (two connections, use PREPARE/EXECUTE)
181 --echo # connection action
182 --echo #
default: $create_table
183 --echo # con2: $create_table (expect
to get ER_TABLE_EXISTS_ERROR)
184 --echo #
default: $drop_table
185 --echo # con2: $drop_table (expect
to get ER_BAD_TABLE_ERROR)
189 eval PREPARE create_table FROM
"$create_table";
190 eval PREPARE drop_table FROM
"$drop_table";
193 eval PREPARE create_table FROM
"$create_table";
194 eval PREPARE drop_table FROM
"$drop_table";
198 # Determine the current time.
200 # Run execution loops till the planned runtime is reached
203 let $loop_run= $loop_size;
208 --error 0,ER_TABLE_EXISTS_ERROR
212 --echo # Error: CREATE
TABLE was successful though we expected ER_TABLE_EXISTS_ERROR
219 --error 0,ER_BAD_TABLE_ERROR
223 --echo # Error: DROP
TABLE was successful though we expected ER_BAD_TABLE_ERROR)
230 if (`EXECUTE stmt_break`)
236 DEALLOCATE PREPARE drop_table;
239 DEALLOCATE PREPARE drop_table;