line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package SQL::ReservedWords::MySQL; |
2
|
|
|
|
|
|
|
|
3
|
2
|
|
|
2
|
|
2698
|
use strict; |
|
2
|
|
|
|
|
5
|
|
|
2
|
|
|
|
|
79
|
|
4
|
2
|
|
|
2
|
|
11
|
use warnings; |
|
2
|
|
|
|
|
3
|
|
|
2
|
|
|
|
|
79
|
|
5
|
2
|
|
|
2
|
|
12
|
use vars '$VERSION'; |
|
2
|
|
|
|
|
4
|
|
|
2
|
|
|
|
|
231
|
|
6
|
|
|
|
|
|
|
|
7
|
|
|
|
|
|
|
$VERSION = '0.8'; |
8
|
|
|
|
|
|
|
|
9
|
2
|
|
|
2
|
|
13
|
use constant MYSQL32 => 0x01; |
|
2
|
|
|
|
|
4
|
|
|
2
|
|
|
|
|
148
|
|
10
|
2
|
|
|
2
|
|
26
|
use constant MYSQL40 => 0x02; |
|
2
|
|
|
|
|
4
|
|
|
2
|
|
|
|
|
94
|
|
11
|
2
|
|
|
2
|
|
11
|
use constant MYSQL41 => 0x04; |
|
2
|
|
|
|
|
3
|
|
|
2
|
|
|
|
|
84
|
|
12
|
2
|
|
|
2
|
|
8
|
use constant MYSQL50 => 0x08; |
|
2
|
|
|
|
|
4
|
|
|
2
|
|
|
|
|
87
|
|
13
|
2
|
|
|
2
|
|
10
|
use constant MYSQL51 => 0x10; |
|
2
|
|
|
|
|
8
|
|
|
2
|
|
|
|
|
14605
|
|
14
|
|
|
|
|
|
|
|
15
|
|
|
|
|
|
|
{ |
16
|
|
|
|
|
|
|
require Sub::Exporter; |
17
|
|
|
|
|
|
|
|
18
|
|
|
|
|
|
|
my @exports = qw[ |
19
|
|
|
|
|
|
|
is_reserved |
20
|
|
|
|
|
|
|
is_reserved_by_mysql3 |
21
|
|
|
|
|
|
|
is_reserved_by_mysql4 |
22
|
|
|
|
|
|
|
is_reserved_by_mysql5 |
23
|
|
|
|
|
|
|
reserved_by |
24
|
|
|
|
|
|
|
words |
25
|
|
|
|
|
|
|
]; |
26
|
|
|
|
|
|
|
|
27
|
|
|
|
|
|
|
Sub::Exporter->import( -setup => { exports => \@exports } ); |
28
|
|
|
|
|
|
|
} |
29
|
|
|
|
|
|
|
|
30
|
|
|
|
|
|
|
{ |
31
|
|
|
|
|
|
|
my %WORDS = ( |
32
|
|
|
|
|
|
|
ACCESSIBLE => MYSQL51, |
33
|
|
|
|
|
|
|
ADD => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
34
|
|
|
|
|
|
|
ALL => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
35
|
|
|
|
|
|
|
ALTER => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
36
|
|
|
|
|
|
|
ANALYZE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
37
|
|
|
|
|
|
|
AND => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
38
|
|
|
|
|
|
|
AS => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
39
|
|
|
|
|
|
|
ASC => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
40
|
|
|
|
|
|
|
ASENSITIVE => MYSQL50 | MYSQL51, |
41
|
|
|
|
|
|
|
BEFORE => MYSQL41 | MYSQL50 | MYSQL51, |
42
|
|
|
|
|
|
|
BETWEEN => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
43
|
|
|
|
|
|
|
BIGINT => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
44
|
|
|
|
|
|
|
BINARY => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
45
|
|
|
|
|
|
|
BLOB => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
46
|
|
|
|
|
|
|
BOTH => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
47
|
|
|
|
|
|
|
BY => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
48
|
|
|
|
|
|
|
CALL => MYSQL50 | MYSQL51, |
49
|
|
|
|
|
|
|
CASCADE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
50
|
|
|
|
|
|
|
CASE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
51
|
|
|
|
|
|
|
CHANGE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
52
|
|
|
|
|
|
|
CHAR => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
53
|
|
|
|
|
|
|
CHARACTER => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
54
|
|
|
|
|
|
|
CHECK => MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
55
|
|
|
|
|
|
|
COLLATE => MYSQL41 | MYSQL50 | MYSQL51, |
56
|
|
|
|
|
|
|
COLUMN => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
57
|
|
|
|
|
|
|
COLUMNS => MYSQL32 | MYSQL40 | MYSQL41, |
58
|
|
|
|
|
|
|
CONDITION => MYSQL50 | MYSQL51, |
59
|
|
|
|
|
|
|
CONNECTION => MYSQL50 | MYSQL51, |
60
|
|
|
|
|
|
|
CONSTRAINT => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
61
|
|
|
|
|
|
|
CONTINUE => MYSQL50 | MYSQL51, |
62
|
|
|
|
|
|
|
CONVERT => MYSQL41 | MYSQL50 | MYSQL51, |
63
|
|
|
|
|
|
|
CREATE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
64
|
|
|
|
|
|
|
CROSS => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
65
|
|
|
|
|
|
|
CURRENT_DATE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
66
|
|
|
|
|
|
|
CURRENT_TIME => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
67
|
|
|
|
|
|
|
CURRENT_TIMESTAMP => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
68
|
|
|
|
|
|
|
CURRENT_USER => MYSQL41 | MYSQL50 | MYSQL51, |
69
|
|
|
|
|
|
|
CURSOR => MYSQL50 | MYSQL51, |
70
|
|
|
|
|
|
|
DATABASE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
71
|
|
|
|
|
|
|
DATABASES => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
72
|
|
|
|
|
|
|
DAY_HOUR => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
73
|
|
|
|
|
|
|
DAY_MICROSECOND => MYSQL41 | MYSQL50 | MYSQL51, |
74
|
|
|
|
|
|
|
DAY_MINUTE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
75
|
|
|
|
|
|
|
DAY_SECOND => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
76
|
|
|
|
|
|
|
DEC => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
77
|
|
|
|
|
|
|
DECIMAL => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
78
|
|
|
|
|
|
|
DECLARE => MYSQL50 | MYSQL51, |
79
|
|
|
|
|
|
|
DEFAULT => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
80
|
|
|
|
|
|
|
DELAYED => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
81
|
|
|
|
|
|
|
DELETE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
82
|
|
|
|
|
|
|
DESC => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
83
|
|
|
|
|
|
|
DESCRIBE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
84
|
|
|
|
|
|
|
DETERMINISTIC => MYSQL50 | MYSQL51, |
85
|
|
|
|
|
|
|
DISTINCT => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
86
|
|
|
|
|
|
|
DISTINCTROW => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
87
|
|
|
|
|
|
|
DIV => MYSQL41 | MYSQL50 | MYSQL51, |
88
|
|
|
|
|
|
|
DOUBLE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
89
|
|
|
|
|
|
|
DROP => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
90
|
|
|
|
|
|
|
DUAL => MYSQL41 | MYSQL50 | MYSQL51, |
91
|
|
|
|
|
|
|
EACH => MYSQL50 | MYSQL51, |
92
|
|
|
|
|
|
|
ELSE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
93
|
|
|
|
|
|
|
ELSEIF => MYSQL50 | MYSQL51, |
94
|
|
|
|
|
|
|
ENCLOSED => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
95
|
|
|
|
|
|
|
ESCAPED => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
96
|
|
|
|
|
|
|
EXISTS => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
97
|
|
|
|
|
|
|
EXIT => MYSQL50 | MYSQL51, |
98
|
|
|
|
|
|
|
EXPLAIN => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
99
|
|
|
|
|
|
|
FALSE => MYSQL41 | MYSQL50 | MYSQL51, |
100
|
|
|
|
|
|
|
FETCH => MYSQL50 | MYSQL51, |
101
|
|
|
|
|
|
|
FIELDS => MYSQL32 | MYSQL40 | MYSQL41, |
102
|
|
|
|
|
|
|
FLOAT => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
103
|
|
|
|
|
|
|
FLOAT4 => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
104
|
|
|
|
|
|
|
FLOAT8 => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
105
|
|
|
|
|
|
|
FOR => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
106
|
|
|
|
|
|
|
FORCE => MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
107
|
|
|
|
|
|
|
FOREIGN => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
108
|
|
|
|
|
|
|
FROM => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
109
|
|
|
|
|
|
|
FULLTEXT => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
110
|
|
|
|
|
|
|
GOTO => MYSQL50 | MYSQL51, |
111
|
|
|
|
|
|
|
GRANT => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
112
|
|
|
|
|
|
|
GROUP => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
113
|
|
|
|
|
|
|
HAVING => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
114
|
|
|
|
|
|
|
HIGH_PRIORITY => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
115
|
|
|
|
|
|
|
HOUR_MICROSECOND => MYSQL41 | MYSQL50 | MYSQL51, |
116
|
|
|
|
|
|
|
HOUR_MINUTE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
117
|
|
|
|
|
|
|
HOUR_SECOND => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
118
|
|
|
|
|
|
|
IF => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
119
|
|
|
|
|
|
|
IGNORE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
120
|
|
|
|
|
|
|
IN => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
121
|
|
|
|
|
|
|
INDEX => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
122
|
|
|
|
|
|
|
INFILE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
123
|
|
|
|
|
|
|
INNER => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
124
|
|
|
|
|
|
|
INOUT => MYSQL50 | MYSQL51, |
125
|
|
|
|
|
|
|
INSENSITIVE => MYSQL50 | MYSQL51, |
126
|
|
|
|
|
|
|
INSERT => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
127
|
|
|
|
|
|
|
INT => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
128
|
|
|
|
|
|
|
INT1 => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
129
|
|
|
|
|
|
|
INT2 => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
130
|
|
|
|
|
|
|
INT3 => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
131
|
|
|
|
|
|
|
INT4 => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
132
|
|
|
|
|
|
|
INT8 => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
133
|
|
|
|
|
|
|
INTEGER => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
134
|
|
|
|
|
|
|
INTERVAL => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
135
|
|
|
|
|
|
|
INTO => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
136
|
|
|
|
|
|
|
IS => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
137
|
|
|
|
|
|
|
ITERATE => MYSQL50 | MYSQL51, |
138
|
|
|
|
|
|
|
JOIN => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
139
|
|
|
|
|
|
|
KEY => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
140
|
|
|
|
|
|
|
KEYS => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
141
|
|
|
|
|
|
|
KILL => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
142
|
|
|
|
|
|
|
LABEL => MYSQL50 | MYSQL51, |
143
|
|
|
|
|
|
|
LEADING => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
144
|
|
|
|
|
|
|
LEAVE => MYSQL50 | MYSQL51, |
145
|
|
|
|
|
|
|
LEFT => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
146
|
|
|
|
|
|
|
LIKE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
147
|
|
|
|
|
|
|
LIMIT => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
148
|
|
|
|
|
|
|
LINEAR => MYSQL51, |
149
|
|
|
|
|
|
|
LINES => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
150
|
|
|
|
|
|
|
LOAD => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
151
|
|
|
|
|
|
|
LOCALTIME => MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
152
|
|
|
|
|
|
|
LOCALTIMESTAMP => MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
153
|
|
|
|
|
|
|
LOCK => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
154
|
|
|
|
|
|
|
LONG => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
155
|
|
|
|
|
|
|
LONGBLOB => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
156
|
|
|
|
|
|
|
LONGTEXT => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
157
|
|
|
|
|
|
|
LOOP => MYSQL50 | MYSQL51, |
158
|
|
|
|
|
|
|
LOW_PRIORITY => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
159
|
|
|
|
|
|
|
MATCH => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
160
|
|
|
|
|
|
|
MEDIUMBLOB => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
161
|
|
|
|
|
|
|
MEDIUMINT => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
162
|
|
|
|
|
|
|
MEDIUMTEXT => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
163
|
|
|
|
|
|
|
MIDDLEINT => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
164
|
|
|
|
|
|
|
MINUTE_MICROSECOND => MYSQL41 | MYSQL50 | MYSQL51, |
165
|
|
|
|
|
|
|
MINUTE_SECOND => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
166
|
|
|
|
|
|
|
MOD => MYSQL41 | MYSQL50 | MYSQL51, |
167
|
|
|
|
|
|
|
MODIFIES => MYSQL50 | MYSQL51, |
168
|
|
|
|
|
|
|
NATURAL => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
169
|
|
|
|
|
|
|
NOT => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
170
|
|
|
|
|
|
|
NO_WRITE_TO_BINLOG => MYSQL41 | MYSQL50 | MYSQL51, |
171
|
|
|
|
|
|
|
NULL => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
172
|
|
|
|
|
|
|
NUMERIC => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
173
|
|
|
|
|
|
|
ON => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
174
|
|
|
|
|
|
|
OPTIMIZE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
175
|
|
|
|
|
|
|
OPTION => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
176
|
|
|
|
|
|
|
OPTIONALLY => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
177
|
|
|
|
|
|
|
OR => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
178
|
|
|
|
|
|
|
ORDER => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
179
|
|
|
|
|
|
|
OUT => MYSQL50 | MYSQL51, |
180
|
|
|
|
|
|
|
OUTER => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
181
|
|
|
|
|
|
|
OUTFILE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
182
|
|
|
|
|
|
|
PRECISION => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
183
|
|
|
|
|
|
|
PRIMARY => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
184
|
|
|
|
|
|
|
PRIVILEGES => MYSQL32 | MYSQL40 | MYSQL41, |
185
|
|
|
|
|
|
|
PROCEDURE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
186
|
|
|
|
|
|
|
PURGE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
187
|
|
|
|
|
|
|
RAID0 => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50, |
188
|
|
|
|
|
|
|
RANGE => MYSQL51, |
189
|
|
|
|
|
|
|
READ => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
190
|
|
|
|
|
|
|
READS => MYSQL50 | MYSQL51, |
191
|
|
|
|
|
|
|
READ_ONLY => MYSQL51, |
192
|
|
|
|
|
|
|
READ_WRITE => MYSQL51, |
193
|
|
|
|
|
|
|
REAL => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
194
|
|
|
|
|
|
|
REFERENCES => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
195
|
|
|
|
|
|
|
REGEXP => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
196
|
|
|
|
|
|
|
RELEASE => MYSQL50 | MYSQL51, |
197
|
|
|
|
|
|
|
RENAME => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
198
|
|
|
|
|
|
|
REPEAT => MYSQL50 | MYSQL51, |
199
|
|
|
|
|
|
|
REPLACE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
200
|
|
|
|
|
|
|
REQUIRE => MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
201
|
|
|
|
|
|
|
RESTRICT => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
202
|
|
|
|
|
|
|
RETURN => MYSQL50 | MYSQL51, |
203
|
|
|
|
|
|
|
REVOKE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
204
|
|
|
|
|
|
|
RIGHT => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
205
|
|
|
|
|
|
|
RLIKE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
206
|
|
|
|
|
|
|
SCHEMA => MYSQL50 | MYSQL51, |
207
|
|
|
|
|
|
|
SCHEMAS => MYSQL50 | MYSQL51, |
208
|
|
|
|
|
|
|
SECOND_MICROSECOND => MYSQL41 | MYSQL50 | MYSQL51, |
209
|
|
|
|
|
|
|
SELECT => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
210
|
|
|
|
|
|
|
SENSITIVE => MYSQL50 | MYSQL51, |
211
|
|
|
|
|
|
|
SEPARATOR => MYSQL41 | MYSQL50 | MYSQL51, |
212
|
|
|
|
|
|
|
SET => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
213
|
|
|
|
|
|
|
SHOW => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
214
|
|
|
|
|
|
|
SMALLINT => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
215
|
|
|
|
|
|
|
SONAME => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50, |
216
|
|
|
|
|
|
|
SPATIAL => MYSQL41 | MYSQL50 | MYSQL51, |
217
|
|
|
|
|
|
|
SPECIFIC => MYSQL50 | MYSQL51, |
218
|
|
|
|
|
|
|
SQL => MYSQL50 | MYSQL51, |
219
|
|
|
|
|
|
|
SQLEXCEPTION => MYSQL50 | MYSQL51, |
220
|
|
|
|
|
|
|
SQLSTATE => MYSQL50 | MYSQL51, |
221
|
|
|
|
|
|
|
SQLWARNING => MYSQL50 | MYSQL51, |
222
|
|
|
|
|
|
|
SQL_BIG_RESULT => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
223
|
|
|
|
|
|
|
SQL_CALC_FOUND_ROWS => MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
224
|
|
|
|
|
|
|
SQL_SMALL_RESULT => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
225
|
|
|
|
|
|
|
SSL => MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
226
|
|
|
|
|
|
|
STARTING => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
227
|
|
|
|
|
|
|
STRAIGHT_JOIN => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
228
|
|
|
|
|
|
|
TABLE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
229
|
|
|
|
|
|
|
TABLES => MYSQL32 | MYSQL40 | MYSQL41, |
230
|
|
|
|
|
|
|
TERMINATED => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
231
|
|
|
|
|
|
|
THEN => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
232
|
|
|
|
|
|
|
TINYBLOB => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
233
|
|
|
|
|
|
|
TINYINT => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
234
|
|
|
|
|
|
|
TINYTEXT => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
235
|
|
|
|
|
|
|
TO => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
236
|
|
|
|
|
|
|
TRAILING => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
237
|
|
|
|
|
|
|
TRIGGER => MYSQL50 | MYSQL51, |
238
|
|
|
|
|
|
|
TRUE => MYSQL41 | MYSQL50 | MYSQL51, |
239
|
|
|
|
|
|
|
UNDO => MYSQL50 | MYSQL51, |
240
|
|
|
|
|
|
|
UNION => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
241
|
|
|
|
|
|
|
UNIQUE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
242
|
|
|
|
|
|
|
UNLOCK => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
243
|
|
|
|
|
|
|
UNSIGNED => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
244
|
|
|
|
|
|
|
UPDATE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
245
|
|
|
|
|
|
|
UPGRADE => MYSQL50 | MYSQL51, |
246
|
|
|
|
|
|
|
USAGE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
247
|
|
|
|
|
|
|
USE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
248
|
|
|
|
|
|
|
USING => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
249
|
|
|
|
|
|
|
UTC_DATE => MYSQL41 | MYSQL50 | MYSQL51, |
250
|
|
|
|
|
|
|
UTC_TIME => MYSQL41 | MYSQL50 | MYSQL51, |
251
|
|
|
|
|
|
|
UTC_TIMESTAMP => MYSQL41 | MYSQL50 | MYSQL51, |
252
|
|
|
|
|
|
|
VALUES => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
253
|
|
|
|
|
|
|
VARBINARY => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
254
|
|
|
|
|
|
|
VARCHAR => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
255
|
|
|
|
|
|
|
VARCHARACTER => MYSQL41 | MYSQL50 | MYSQL51, |
256
|
|
|
|
|
|
|
VARYING => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
257
|
|
|
|
|
|
|
WHEN => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
258
|
|
|
|
|
|
|
WHERE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
259
|
|
|
|
|
|
|
WHILE => MYSQL50 | MYSQL51, |
260
|
|
|
|
|
|
|
WITH => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
261
|
|
|
|
|
|
|
WRITE => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
262
|
|
|
|
|
|
|
X509 => MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
263
|
|
|
|
|
|
|
XOR => MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
264
|
|
|
|
|
|
|
YEAR_MONTH => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
265
|
|
|
|
|
|
|
ZEROFILL => MYSQL32 | MYSQL40 | MYSQL41 | MYSQL50 | MYSQL51, |
266
|
|
|
|
|
|
|
); |
267
|
|
|
|
|
|
|
|
268
|
|
|
|
|
|
|
sub is_reserved { |
269
|
26
|
|
100
|
26
|
1
|
168
|
return $WORDS{ uc(pop || '') } || 0; |
270
|
|
|
|
|
|
|
} |
271
|
|
|
|
|
|
|
|
272
|
|
|
|
|
|
|
sub is_reserved_by_mysql3 { |
273
|
5
|
|
|
5
|
1
|
12
|
return &is_reserved & MYSQL32; |
274
|
|
|
|
|
|
|
} |
275
|
|
|
|
|
|
|
|
276
|
|
|
|
|
|
|
sub is_reserved_by_mysql4 { |
277
|
5
|
|
|
5
|
1
|
12
|
my $flags = &is_reserved; |
278
|
5
|
|
100
|
|
|
40
|
return $flags & MYSQL40 |
279
|
|
|
|
|
|
|
|| $flags & MYSQL41; |
280
|
|
|
|
|
|
|
} |
281
|
|
|
|
|
|
|
|
282
|
|
|
|
|
|
|
sub is_reserved_by_mysql5 { |
283
|
5
|
|
|
5
|
1
|
17
|
my $flags = &is_reserved; |
284
|
5
|
|
100
|
|
|
34
|
return $flags & MYSQL50 |
285
|
|
|
|
|
|
|
|| $flags & MYSQL51; |
286
|
|
|
|
|
|
|
} |
287
|
|
|
|
|
|
|
|
288
|
|
|
|
|
|
|
sub reserved_by { |
289
|
5
|
|
|
5
|
1
|
33
|
my $flags = &is_reserved; |
290
|
5
|
|
|
|
|
7
|
my @reserved_by = (); |
291
|
|
|
|
|
|
|
|
292
|
5
|
100
|
|
|
|
12
|
push @reserved_by, 'MySQL 3.2' if $flags & MYSQL32; |
293
|
5
|
100
|
|
|
|
11
|
push @reserved_by, 'MySQL 4.0' if $flags & MYSQL40; |
294
|
5
|
100
|
|
|
|
10
|
push @reserved_by, 'MySQL 4.1' if $flags & MYSQL41; |
295
|
5
|
100
|
|
|
|
9
|
push @reserved_by, 'MySQL 5.0' if $flags & MYSQL50; |
296
|
5
|
100
|
|
|
|
10
|
push @reserved_by, 'MySQL 5.1' if $flags & MYSQL51; |
297
|
|
|
|
|
|
|
|
298
|
5
|
|
|
|
|
32
|
return @reserved_by; |
299
|
|
|
|
|
|
|
} |
300
|
|
|
|
|
|
|
|
301
|
|
|
|
|
|
|
sub words { |
302
|
2
|
|
|
2
|
1
|
5212
|
return sort keys %WORDS; |
303
|
|
|
|
|
|
|
} |
304
|
|
|
|
|
|
|
} |
305
|
|
|
|
|
|
|
|
306
|
|
|
|
|
|
|
1; |
307
|
|
|
|
|
|
|
|
308
|
|
|
|
|
|
|
__END__ |