Skip to content

Commit 10ff351

Browse files
committed
Make sure all (MySQL intersect MariaDB) keywords are present
"reserved" keywords are special and all keywords should be listed.
1 parent b271c86 commit 10ff351

6 files changed

+814
-182
lines changed

src/Tokenizer.php

+90
Original file line numberDiff line numberDiff line change
@@ -41,18 +41,25 @@ final class Tokenizer
4141
'AND',
4242
'AS',
4343
'ASC',
44+
'ASENSITIVE',
4445
'AUTOCOMMIT',
4546
'AUTO_INCREMENT',
4647
'BACKUP',
48+
'BEFORE',
4749
'BEGIN',
4850
'BETWEEN',
51+
'BIGINT',
52+
'BINARY',
4953
'BINLOG',
54+
'BLOB',
5055
'BOTH',
5156
'BY',
57+
'CALL',
5258
'CASCADE',
5359
'CASE',
5460
'CHANGE',
5561
'CHANGED',
62+
'CHAR',
5663
'CHARACTER',
5764
'CHARSET',
5865
'CHECK',
@@ -66,19 +73,29 @@ final class Tokenizer
6673
'COMMITTED',
6774
'COMPRESSED',
6875
'CONCURRENT',
76+
'CONDITION',
6977
'CONSTRAINT',
7078
'CONTAINS',
79+
'CONTINUE',
7180
'CONVERT',
7281
'CREATE',
7382
'CROSS',
7483
'CURRENT',
84+
'CURRENT_DATE',
85+
'CURRENT_TIME',
7586
'CURRENT_TIMESTAMP',
87+
'CURRENT_USER',
88+
'CURSOR',
7689
'DATABASE',
7790
'DATABASES',
7891
'DAY',
7992
'DAY_HOUR',
93+
'DAY_MICROSECOND',
8094
'DAY_MINUTE',
8195
'DAY_SECOND',
96+
'DEC',
97+
'DECIMAL',
98+
'DECLARE',
8299
'DEFAULT',
83100
'DEFINER',
84101
'DELAYED',
@@ -90,11 +107,15 @@ final class Tokenizer
90107
'DISTINCTROW',
91108
'DIV',
92109
'DO',
110+
'DOUBLE',
93111
'DROP',
112+
'DUAL',
94113
'DUMPFILE',
95114
'DUPLICATE',
96115
'DYNAMIC',
116+
'EACH',
97117
'ELSE',
118+
'ELSEIF',
98119
'ENCLOSED',
99120
'END',
100121
'ENGINE',
@@ -108,14 +129,20 @@ final class Tokenizer
108129
'EXEC',
109130
'EXECUTE',
110131
'EXISTS',
132+
'EXIT',
111133
'EXPLAIN',
112134
'EXTENDED',
135+
'FALSE',
113136
'FAST',
137+
'FETCH',
114138
'FIELDS',
115139
'FILE',
116140
'FILTER',
117141
'FIRST',
118142
'FIXED',
143+
'FLOAT',
144+
'FLOAT4',
145+
'FLOAT8',
119146
'FLUSH',
120147
'FOLLOWING',
121148
'FOR',
@@ -135,6 +162,7 @@ final class Tokenizer
135162
'HIGH_PRIORITY',
136163
'HOSTS',
137164
'HOUR',
165+
'HOUR_MICROSECOND',
138166
'HOUR_MINUTE',
139167
'HOUR_SECOND',
140168
'IDENTIFIED',
@@ -146,21 +174,32 @@ final class Tokenizer
146174
'INDEXES',
147175
'INFILE',
148176
'INNER',
177+
'INOUT',
178+
'INSENSITIVE',
149179
'INSERT',
150180
'INSERT_ID',
151181
'INSERT_METHOD',
182+
'INT',
183+
'INT1',
184+
'INT2',
185+
'INT3',
186+
'INT4',
187+
'INT8',
188+
'INTEGER',
152189
'INTERSECT',
153190
'INTERVAL',
154191
'INTO',
155192
'INVOKER',
156193
'IS',
157194
'ISOLATION',
195+
'ITERATE',
158196
'JOIN',
159197
'KEY',
160198
'KEYS',
161199
'KILL',
162200
'LAST_INSERT_ID',
163201
'LEADING',
202+
'LEAVE',
164203
'LEFT',
165204
'LEVEL',
166205
'LIKE',
@@ -169,35 +208,51 @@ final class Tokenizer
169208
'LINES',
170209
'LOAD',
171210
'LOCAL',
211+
'LOCALTIME',
212+
'LOCALTIMESTAMP',
172213
'LOCK',
173214
'LOCKS',
174215
'LOGS',
216+
'LONG',
217+
'LONGBLOB',
218+
'LONGTEXT',
219+
'LOOP',
175220
'LOW_PRIORITY',
176221
'MARIA',
177222
'MASTER',
178223
'MASTER_CONNECT_RETRY',
179224
'MASTER_HOST',
180225
'MASTER_LOG_FILE',
181226
'MATCH',
227+
'MAXVALUE',
182228
'MAX_CONNECTIONS_PER_HOUR',
183229
'MAX_QUERIES_PER_HOUR',
184230
'MAX_ROWS',
185231
'MAX_UPDATES_PER_HOUR',
186232
'MAX_USER_CONNECTIONS',
187233
'MEDIUM',
234+
'MEDIUMBLOB',
235+
'MEDIUMINT',
236+
'MEDIUMTEXT',
188237
'MERGE',
238+
'MIDDLEINT',
189239
'MINUTE',
240+
'MINUTE_MICROSECOND',
190241
'MINUTE_SECOND',
191242
'MIN_ROWS',
243+
'MOD',
192244
'MODE',
245+
'MODIFIES',
193246
'MODIFY',
194247
'MONTH',
195248
'MRG_MYISAM',
196249
'MYISAM',
197250
'NAMES',
198251
'NATURAL',
199252
'NOT',
253+
'NO_WRITE_TO_BINLOG',
200254
'NULL',
255+
'NUMERIC',
201256
'OFFSET',
202257
'ON',
203258
'OPEN',
@@ -206,6 +261,7 @@ final class Tokenizer
206261
'OPTIONALLY',
207262
'OR',
208263
'ORDER',
264+
'OUT',
209265
'OUTER',
210266
'OUTFILE',
211267
'OVER',
@@ -216,6 +272,7 @@ final class Tokenizer
216272
'PARTITIONS',
217273
'PASSWORD',
218274
'PRECEDING',
275+
'PRECISION',
219276
'PRIMARY',
220277
'PRIVILEGES',
221278
'PROCEDURE',
@@ -229,18 +286,24 @@ final class Tokenizer
229286
'RAID_TYPE',
230287
'RANGE',
231288
'READ',
289+
'READS',
232290
'READ_ONLY',
233291
'READ_WRITE',
292+
'REAL',
234293
'RECURSIVE',
235294
'REFERENCES',
236295
'REGEXP',
296+
'RELEASE',
237297
'RELOAD',
238298
'RENAME',
239299
'REPAIR',
300+
'REPEAT',
240301
'REPEATABLE',
241302
'REPLACE',
242303
'REPLICATION',
304+
'REQUIRE',
243305
'RESET',
306+
'RESIGNAL',
244307
'RESTORE',
245308
'RESTRICT',
246309
'RETURN',
@@ -252,20 +315,32 @@ final class Tokenizer
252315
'ROW',
253316
'ROWS',
254317
'ROW_FORMAT',
318+
'ROW_NUMBER',
319+
'SCHEMA',
320+
'SCHEMAS',
255321
'SECOND',
322+
'SECOND_MICROSECOND',
256323
'SECURITY',
257324
'SELECT',
325+
'SENSITIVE',
258326
'SEPARATOR',
259327
'SERIALIZABLE',
260328
'SESSION',
261329
'SET',
262330
'SHARE',
263331
'SHOW',
264332
'SHUTDOWN',
333+
'SIGNAL',
265334
'SLAVE',
335+
'SMALLINT',
266336
'SONAME',
267337
'SOUNDS',
338+
'SPATIAL',
339+
'SPECIFIC',
268340
'SQL',
341+
'SQLEXCEPTION',
342+
'SQLSTATE',
343+
'SQLWARNING',
269344
'SQL_AUTO_IS_NULL',
270345
'SQL_BIG_RESULT',
271346
'SQL_BIG_SELECTS',
@@ -285,6 +360,7 @@ final class Tokenizer
285360
'SQL_SLAVE_SKIP_COUNTER',
286361
'SQL_SMALL_RESULT',
287362
'SQL_WARNINGS',
363+
'SSL',
288364
'START',
289365
'STARTING',
290366
'STATUS',
@@ -300,15 +376,20 @@ final class Tokenizer
300376
'TERMINATED',
301377
'THEN',
302378
'TIES',
379+
'TINYBLOB',
380+
'TINYINT',
381+
'TINYTEXT',
303382
'TO',
304383
'TRAILING',
305384
'TRANSACTIONAL',
385+
'TRIGGER',
306386
'TRUE',
307387
'TRUNCATE',
308388
'TYPE',
309389
'TYPES',
310390
'UNBOUNDED',
311391
'UNCOMMITTED',
392+
'UNDO',
312393
'UNION',
313394
'UNIQUE',
314395
'UNLOCK',
@@ -317,17 +398,26 @@ final class Tokenizer
317398
'USAGE',
318399
'USE',
319400
'USING',
401+
'UTC_DATE',
402+
'UTC_TIME',
403+
'UTC_TIMESTAMP',
320404
'VALUES',
405+
'VARBINARY',
406+
'VARCHAR',
407+
'VARCHARACTER',
321408
'VARIABLES',
409+
'VARYING',
322410
'VIEW',
323411
'WHEN',
324412
'WHERE',
413+
'WHILE',
325414
'WINDOW',
326415
'WITH',
327416
'WORK',
328417
'WRITE',
329418
'XOR',
330419
'YEAR_MONTH',
420+
'ZEROFILL',
331421
];
332422

333423
/**

tests/SqlFormatterTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public function testHighlightBinary(): void
6969
$html = '<pre style="color: black; background-color: white;">' .
7070
'<span style="font-weight:bold;">SELECT</span> <span style="color: blue;">' .
7171
$binaryData .
72-
'</span> <span style="font-weight:bold;">AS</span> <span style="color: #333;">BINARY</span></pre>';
72+
'</span> <span style="font-weight:bold;">AS</span> <span style="font-weight:bold;">BINARY</span></pre>';
7373

7474
$this->assertSame($html, $this->formatter->highlight($sql));
7575
}

0 commit comments

Comments
 (0)