1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
#
# The goal of this grammar is to stress test the operation of the HEAP storage engine by:
#
# * Creating a small set of tables and executing various operations over those tables
#
# * Employ TEMPORARY tables in as many DML contexts as possible
#
# This grammar goes together with the respective mysqld --init file that creates the tables
#
query:
insert | insert | insert |
select | delete | update ;
select:
SELECT select_list FROM table_name any_where |
SELECT select_list FROM table_name restrictive_where order_by |
SELECT select_list FROM table_name restrictive_where full_order_by LIMIT _digit ;
select_list:
field_name |
field_name , select_list ;
delete:
DELETE FROM table_name restrictive_where |
DELETE FROM table_name restrictive_where |
DELETE FROM table_name restrictive_where |
DELETE FROM table_name restrictive_where |
DELETE FROM table_name any_where full_order_by LIMIT _digit ;
update:
UPDATE table_name SET update_list restrictive_where |
UPDATE table_name SET update_list restrictive_where |
UPDATE table_name SET update_list restrictive_where |
UPDATE table_name SET update_list restrictive_where |
UPDATE table_name SET update_list any_where full_order_by LIMIT _digit ;
any_where:
permissive_where | restrictive_where;
restrictive_where:
WHERE field_name LIKE(CONCAT( _varchar(2), '%')) |
WHERE field_name = _varchar(2) |
WHERE field_name BETWEEN _varchar(2) AND _varchar(2) ;
permissive_where:
WHERE field_name comp_op value ;
comp_op:
> | < | >= | <= | <> | != | <=> ;
update_list:
field_name = value |
field_name = value , update_list ;
insert:
insert_single | insert_select |
insert_multi | insert_multi | insert_multi ;
insert_single:
INSERT IGNORE INTO table_name VALUES ( value , value , value , value ) ;
insert_multi:
INSERT IGNORE INTO table_name VALUES value_list ;
insert_select:
INSERT IGNORE INTO table_name SELECT * FROM table_name restrictive_where full_order_by LIMIT _tinyint_unsigned ;
order_by:
| ORDER BY field_name ;
full_order_by:
ORDER BY f1 , f2 , f3 , f4 ;
value_list:
( value , value, value , value ) |
( value , value, value , value ) , value_list |
( value , value, value , value ) , value_list ;
value:
small_value | large_value ;
small_value:
_digit | _varchar(1) | _varchar(2) | _varchar(32) | NULL ;
large_value:
_varchar(32) | _varchar(1024) | _data | NULL ;
field_name:
f1 | f2 | f3 | f4 ;
table_name:
heap_complex_indexes |
heap_large_block |
heap_noindexes_large |
heap_noindexes_small |
heap_oversize_pk |
heap_small_block |
heap_standard
;
|