1
######## include/ddl5.inc ######
3
# Stress the storage engine with rapid CREATE/DROP TABLE/INDEX
4
# and following SELECT/INSERT/SHOW etc.
5
# Subtest 5 variants (5A - 5D)
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/ddl1.inc.
19
# Creation of this test:
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
#----------------------------------------------------------------------
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
42
# Determine the current time.
44
# Run execution loops till the planned runtime is reached
47
let $loop_run= $loop_size;
56
--echo # Error: Unexpected content within t1.
67
if (`EXECUTE stmt_break`)
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
82
eval PREPARE create_table FROM "$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";
89
# Determine the current time.
91
# Run execution loops till the planned runtime is reached
94
let $loop_run= $loop_size;
99
if (`EXECUTE select_record`)
103
--echo # Error: Unexpected content within t1.
106
EXECUTE select_record;
114
if (`EXECUTE stmt_break`)
119
DEALLOCATE PREPARE create_table;
120
DEALLOCATE PREPARE insert_into;
121
DEALLOCATE PREPARE select_record;
122
DEALLOCATE PREPARE drop_table;
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
134
# Determine the current time.
136
# Run execution loops till the planned runtime is reached
139
let $loop_run= $loop_size;
146
if (`$select_record`)
150
--echo # Error: Unexpected content within t1.
163
if (`EXECUTE stmt_break`)
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
178
eval PREPARE create_table FROM "$create_table";
179
EXECUTE create_table;
180
eval PREPARE select_record FROM "$select_record";
182
eval PREPARE insert_into FROM "$insert_into";
183
eval PREPARE drop_table FROM "$drop_table";
187
# Determine the current time.
189
# Run execution loops till the planned runtime is reached
192
let $loop_run= $loop_size;
195
EXECUTE create_table;
199
if (`EXECUTE select_record`)
203
--echo # Error: Unexpected content within t1.
206
EXECUTE select_record;
216
if (`EXECUTE stmt_break`)
221
DEALLOCATE PREPARE create_table;
222
DEALLOCATE PREPARE select_record;
224
DEALLOCATE PREPARE insert_into;
225
DEALLOCATE PREPARE drop_table;