~linuxjedi/drizzle/trunk-bug-667053

« back to all changes in this revision

Viewing changes to mysql-test/suite/stress/include/ddl4.inc

  • Committer: brian
  • Date: 2008-06-25 05:29:13 UTC
  • Revision ID: brian@localhost.localdomain-20080625052913-6upwo0jsrl4lnapl
clean slate

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
######## include/ddl4.inc ######
 
2
#
 
3
# Stress the storage engine with rapid CREATE/DROP TABLE/INDEX
 
4
# and following SELECT/INSERT/SHOW etc.
 
5
# Subtest 4 variants (4A - 4D)
 
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
#----------------------------------------------------------------------
 
25
# Settings for Subtest 4 variants
 
26
# Scenario: CREATE TABLE variant1/SHOW/DROP TABLE/SHOW(F)/
 
27
#           CREATE TABLE variant2/SHOW/DROP TABLE
 
28
let $create_table1=  CREATE TABLE t1 (f1 BIGINT, f2 BIGINT, UNIQUE(f1), UNIQUE (f2)) ENGINE=$engine_type;
 
29
let $create_table2=  CREATE TABLE t1 (f1 BIGINT) ENGINE=$engine_type;
 
30
let $show_table=     SHOW CREATE TABLE t1;
 
31
let $drop_table=     DROP TABLE t1;
 
32
#
 
33
eval $create_table1;
 
34
let $cr_value1= INITIALIZED;
 
35
let $cr_value1= query_get_value($show_table, Create Table, 1);
 
36
eval $drop_table;
 
37
eval $create_table2;
 
38
let $cr_value2= INITIALIZED;
 
39
let $cr_value2= query_get_value($show_table, Create Table, 1);
 
40
eval $drop_table;
 
41
if (`SELECT '$cr_value1' = '$cr_value2'`)
 
42
{
 
43
   --echo # Error during generation of prerequisites.
 
44
   --echo # cr_value1 equals cr_value2
 
45
   --echo # cr_value1: $cr_value1
 
46
   --echo # cr_value2: $cr_value2
 
47
   --echo # abort
 
48
   exit;
 
49
}
 
50
#----------------------------------------------------------------------
 
51
 
 
52
#
 
53
--echo # Subtest 4A (one connection, no PREPARE/EXECUTE)
 
54
--echo #    connection  action
 
55
--echo #    default:    $create_table1
 
56
--echo #    default:    $show_table
 
57
--echo #    default:    $drop_table
 
58
--echo #    default:    $show_table (expect to get ER_NO_SUCH_TABLE)
 
59
--echo #    default:    $create_table2
 
60
--echo #    default:    $show_table
 
61
--echo #    default:    $drop_table
 
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)
 
70
{
 
71
   let $loop_run= $loop_size;
 
72
   while ($loop_run)
 
73
   {
 
74
      eval $create_table1;
 
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_table;
 
86
      --error 0,ER_NO_SUCH_TABLE
 
87
      eval $show_table;
 
88
      if (!$mysql_errno)
 
89
      {
 
90
         --echo # Error: SHOW CREATE TABLE was successful though we expected ER_NO_SUCH_TABLE)
 
91
         --echo # abort
 
92
         exit;
 
93
      }
 
94
      eval $create_table2;
 
95
      let $value= INITIALIZED;
 
96
      let $value= query_get_value($show_table, Create Table, 1);
 
97
      if (`SELECT '$value' <> '$cr_value2'`)
 
98
      {
 
99
         --echo # Error: Unexpected SHOW CREATE TABLE output
 
100
         --echo # Got:      $value
 
101
         --echo # Expected: $cr_value2
 
102
         --echo # abort
 
103
         exit;
 
104
      }
 
105
      eval $drop_table;
 
106
      dec $loop_run;
 
107
   }
 
108
   if (`EXECUTE stmt_break`)
 
109
   {
 
110
      let $run= 0;
 
111
   }
 
112
}
 
113
--enable_result_log
 
114
--enable_query_log
 
115
#
 
116
--echo # Subtest 4B (one connection, use PREPARE/EXECUTE)
 
117
--echo #    connection  action
 
118
--echo #    default:    $create_table1
 
119
--echo #    default:    $show_table
 
120
--echo #    default:    $drop_table
 
121
--echo #    default:    $show_table (expect to get ER_NO_SUCH_TABLE)
 
122
--echo #    default:    $create_table2
 
123
--echo #    default:    $show_table
 
124
--echo #    default:    $drop_table
 
125
--disable_query_log
 
126
--disable_result_log
 
127
connection default;
 
128
eval PREPARE create_table1 FROM "$create_table1";
 
129
eval PREPARE create_table2 FROM "$create_table2";
 
130
EXECUTE create_table1;
 
131
eval PREPARE show_table FROM "$show_table";
 
132
eval PREPARE drop_table FROM "$drop_table";
 
133
EXECUTE drop_table;
 
134
let $run= 1;
 
135
# Determine the current time.
 
136
EXECUTE stmt_start;
 
137
# Run execution loops till the planned runtime is reached
 
138
while ($run)
 
139
{
 
140
   let $loop_run= $loop_size;
 
141
   while ($loop_run)
 
142
   {
 
143
      EXECUTE create_table1;
 
144
      let $value= INITIALIZED;
 
145
      let $value= query_get_value(EXECUTE show_table, Create Table, 1);
 
146
      if (`SELECT '$value' <> '$cr_value1'`)
 
147
      {
 
148
         --echo # Error: Unexpected SHOW CREATE TABLE output
 
149
         --echo # Got:      $value
 
150
         --echo # Expected: $cr_value1
 
151
         --echo # abort
 
152
         exit;
 
153
      }
 
154
      EXECUTE drop_table;
 
155
      --error 0,ER_NO_SUCH_TABLE
 
156
      EXECUTE show_table;
 
157
      if (!$mysql_errno)
 
158
      {
 
159
         --echo # Error: SHOW CREATE TABLE was successful though we expected ER_NO_SUCH_TABLE)
 
160
         --echo # abort
 
161
         exit;
 
162
      }
 
163
      EXECUTE create_table2;
 
164
      let $value= INITIALIZED;
 
165
      let $value= query_get_value(EXECUTE show_table, Create Table, 1);
 
166
      if (`SELECT '$value' <> '$cr_value2'`)
 
167
      {
 
168
         --echo # Error: Unexpected SHOW CREATE TABLE output
 
169
         --echo # Got:      $value
 
170
         --echo # Expected: $cr_value2
 
171
         --echo # abort
 
172
         exit;
 
173
      }
 
174
      EXECUTE drop_table;
 
175
      dec $loop_run;
 
176
   }
 
177
   if (`EXECUTE stmt_break`)
 
178
   {
 
179
      let $run= 0;
 
180
   }
 
181
}
 
182
DEALLOCATE PREPARE create_table1;
 
183
DEALLOCATE PREPARE create_table2;
 
184
DEALLOCATE PREPARE show_table;
 
185
DEALLOCATE PREPARE drop_table;
 
186
--enable_result_log
 
187
--enable_query_log
 
188
#
 
189
--echo # Subtest 4C (two connections, no PREPARE/EXECUTE)
 
190
--echo #    connection  action
 
191
--echo #    default:    $create_table1
 
192
--echo #    con2:       $show_table
 
193
--echo #    default:    $drop_table
 
194
--echo #    con2:       $show_table (expect to get ER_NO_SUCH_TABLE)
 
195
--echo #    default:    $create_table2
 
196
--echo #    con2:       $show_table
 
197
--echo #    default:    $drop_table
 
198
--disable_query_log
 
199
--disable_result_log
 
200
connection default;
 
201
let $run= 1;
 
202
# Determine the current time.
 
203
EXECUTE stmt_start;
 
204
# Run execution loops till the planned runtime is reached
 
205
while ($run)
 
206
{
 
207
   let $loop_run= $loop_size;
 
208
   while ($loop_run)
 
209
   {
 
210
      eval $create_table1;
 
211
      connection con2;
 
212
      let $value= INITIALIZED;
 
213
      let $value= query_get_value($show_table, Create Table, 1);
 
214
      if (`SELECT '$value' <> '$cr_value1'`)
 
215
      {
 
216
         --echo # Error: Unexpected SHOW CREATE TABLE output
 
217
         --echo # Got:      $value
 
218
         --echo # Expected: $cr_value1
 
219
         --echo # abort
 
220
         exit;
 
221
      }
 
222
      connection default;
 
223
      eval $drop_table;
 
224
      connection con2;
 
225
      --error 0,ER_NO_SUCH_TABLE
 
226
      eval $show_table;
 
227
      if (!$mysql_errno)
 
228
      {
 
229
         --echo # Error: SHOW CREATE TABLE was successful though we expected ER_NO_SUCH_TABLE)
 
230
         --echo # abort
 
231
         exit;
 
232
      }
 
233
      connection default;
 
234
      eval $create_table2;
 
235
      connection con2;
 
236
      let $value= INITIALIZED;
 
237
      let $value= query_get_value($show_table, Create Table, 1);
 
238
      if (`SELECT '$value' <> '$cr_value2'`)
 
239
      {
 
240
         --echo # Error: Unexpected SHOW CREATE TABLE output
 
241
         --echo # Got:      $value
 
242
         --echo # Expected: $cr_value2
 
243
         --echo # abort
 
244
         exit;
 
245
      }
 
246
      connection default;
 
247
      eval $drop_table;
 
248
      dec $loop_run;
 
249
   }
 
250
   if (`EXECUTE stmt_break`)
 
251
   {
 
252
      let $run= 0;
 
253
   }
 
254
}
 
255
--enable_result_log
 
256
--enable_query_log
 
257
#
 
258
--echo # Subtest 4D (two connections, use PREPARE/EXECUTE)
 
259
--echo #    connection  action
 
260
--echo #    default:    $create_table1
 
261
--echo #    con2:       $show_table
 
262
--echo #    default:    $drop_table
 
263
--echo #    con2:       $show_table (expect to get ER_NO_SUCH_TABLE)
 
264
--echo #    default:    $create_table2
 
265
--echo #    con2:       $show_table
 
266
--echo #    default:    $drop_table
 
267
--disable_query_log
 
268
--disable_result_log
 
269
connection default;
 
270
eval PREPARE create_table1 FROM "$create_table1";
 
271
eval PREPARE create_table2 FROM "$create_table2";
 
272
eval PREPARE drop_table FROM "$drop_table";
 
273
EXECUTE create_table1;
 
274
connection con2;
 
275
eval PREPARE show_table FROM "$show_table";
 
276
connection default;
 
277
EXECUTE drop_table;
 
278
let $run= 1;
 
279
# Determine the current time.
 
280
EXECUTE stmt_start;
 
281
# Run execution loops till the planned runtime is reached
 
282
while ($run)
 
283
{
 
284
   let $loop_run= $loop_size;
 
285
   while ($loop_run)
 
286
   {
 
287
      EXECUTE create_table1;
 
288
      connection con2;
 
289
      let $value= INITIALIZED;
 
290
      let $value= query_get_value(EXECUTE show_table, Create Table, 1);
 
291
      if (`SELECT '$value' <> '$cr_value1'`)
 
292
      {
 
293
         --echo # Error: Unexpected SHOW CREATE TABLE output
 
294
         --echo # Got:      $value
 
295
         --echo # Expected: $cr_value1
 
296
         --echo # abort
 
297
         exit;
 
298
      }
 
299
      connection default;
 
300
      EXECUTE drop_table;
 
301
      connection con2;
 
302
      --error 0,ER_NO_SUCH_TABLE
 
303
      EXECUTE show_table;
 
304
      if (!$mysql_errno)
 
305
      {
 
306
         --echo # Error: SHOW CREATE TABLE was successful though we expected ER_NO_SUCH_TABLE)
 
307
         --echo # abort
 
308
         exit;
 
309
      }
 
310
      connection default;
 
311
      EXECUTE create_table2;
 
312
      connection con2;
 
313
      let $value= INITIALIZED;
 
314
      let $value= query_get_value(EXECUTE show_table, Create Table, 1);
 
315
      if (`SELECT '$value' <> '$cr_value2'`)
 
316
      {
 
317
         --echo # Error: Unexpected SHOW CREATE TABLE output
 
318
         --echo # Got:      $value
 
319
         --echo # Expected: $cr_value2
 
320
         --echo # abort
 
321
         exit;
 
322
      }
 
323
      connection default;
 
324
      EXECUTE drop_table;
 
325
      dec $loop_run;
 
326
   }
 
327
   if (`EXECUTE stmt_break`)
 
328
   {
 
329
      let $run= 0;
 
330
   }
 
331
}
 
332
DEALLOCATE PREPARE create_table1;
 
333
DEALLOCATE PREPARE create_table2;
 
334
DEALLOCATE PREPARE drop_table;
 
335
connection con2;
 
336
DEALLOCATE PREPARE show_table;
 
337
connection default;
 
338
--enable_result_log
 
339
--enable_query_log