1# dialects/mysql/reserved_words.py
2# Copyright (C) 2005-2025 the SQLAlchemy authors and contributors
3# <see AUTHORS file>
4#
5# This module is part of SQLAlchemy and is released under
6# the MIT License: https://www.opensource.org/licenses/mit-license.php
7
8# generated using:
9# https://gist.github.com/kkirsche/4f31f2153ed7a3248be1ec44ca6ddbc9
10#
11# https://mariadb.com/kb/en/reserved-words/
12# includes: Reserved Words, Oracle Mode (separate set unioned)
13# excludes: Exceptions, Function Names
14
15RESERVED_WORDS_MARIADB = {
16 "accessible",
17 "add",
18 "all",
19 "alter",
20 "analyze",
21 "and",
22 "as",
23 "asc",
24 "asensitive",
25 "before",
26 "between",
27 "bigint",
28 "binary",
29 "blob",
30 "both",
31 "by",
32 "call",
33 "cascade",
34 "case",
35 "change",
36 "char",
37 "character",
38 "check",
39 "collate",
40 "column",
41 "condition",
42 "constraint",
43 "continue",
44 "convert",
45 "create",
46 "cross",
47 "current_date",
48 "current_role",
49 "current_time",
50 "current_timestamp",
51 "current_user",
52 "cursor",
53 "database",
54 "databases",
55 "day_hour",
56 "day_microsecond",
57 "day_minute",
58 "day_second",
59 "dec",
60 "decimal",
61 "declare",
62 "default",
63 "delayed",
64 "delete",
65 "desc",
66 "describe",
67 "deterministic",
68 "distinct",
69 "distinctrow",
70 "div",
71 "do_domain_ids",
72 "double",
73 "drop",
74 "dual",
75 "each",
76 "else",
77 "elseif",
78 "enclosed",
79 "escaped",
80 "except",
81 "exists",
82 "exit",
83 "explain",
84 "false",
85 "fetch",
86 "float",
87 "float4",
88 "float8",
89 "for",
90 "force",
91 "foreign",
92 "from",
93 "fulltext",
94 "general",
95 "grant",
96 "group",
97 "having",
98 "high_priority",
99 "hour_microsecond",
100 "hour_minute",
101 "hour_second",
102 "if",
103 "ignore",
104 "ignore_domain_ids",
105 "ignore_server_ids",
106 "in",
107 "index",
108 "infile",
109 "inner",
110 "inout",
111 "insensitive",
112 "insert",
113 "int",
114 "int1",
115 "int2",
116 "int3",
117 "int4",
118 "int8",
119 "integer",
120 "intersect",
121 "interval",
122 "into",
123 "is",
124 "iterate",
125 "join",
126 "key",
127 "keys",
128 "kill",
129 "leading",
130 "leave",
131 "left",
132 "like",
133 "limit",
134 "linear",
135 "lines",
136 "load",
137 "localtime",
138 "localtimestamp",
139 "lock",
140 "long",
141 "longblob",
142 "longtext",
143 "loop",
144 "low_priority",
145 "master_heartbeat_period",
146 "master_ssl_verify_server_cert",
147 "match",
148 "maxvalue",
149 "mediumblob",
150 "mediumint",
151 "mediumtext",
152 "middleint",
153 "minute_microsecond",
154 "minute_second",
155 "mod",
156 "modifies",
157 "natural",
158 "no_write_to_binlog",
159 "not",
160 "null",
161 "numeric",
162 "offset",
163 "on",
164 "optimize",
165 "option",
166 "optionally",
167 "or",
168 "order",
169 "out",
170 "outer",
171 "outfile",
172 "over",
173 "page_checksum",
174 "parse_vcol_expr",
175 "partition",
176 "position",
177 "precision",
178 "primary",
179 "procedure",
180 "purge",
181 "range",
182 "read",
183 "read_write",
184 "reads",
185 "real",
186 "recursive",
187 "ref_system_id",
188 "references",
189 "regexp",
190 "release",
191 "rename",
192 "repeat",
193 "replace",
194 "require",
195 "resignal",
196 "restrict",
197 "return",
198 "returning",
199 "revoke",
200 "right",
201 "rlike",
202 "rows",
203 "row_number",
204 "schema",
205 "schemas",
206 "second_microsecond",
207 "select",
208 "sensitive",
209 "separator",
210 "set",
211 "show",
212 "signal",
213 "slow",
214 "smallint",
215 "spatial",
216 "specific",
217 "sql",
218 "sql_big_result",
219 "sql_calc_found_rows",
220 "sql_small_result",
221 "sqlexception",
222 "sqlstate",
223 "sqlwarning",
224 "ssl",
225 "starting",
226 "stats_auto_recalc",
227 "stats_persistent",
228 "stats_sample_pages",
229 "straight_join",
230 "table",
231 "terminated",
232 "then",
233 "tinyblob",
234 "tinyint",
235 "tinytext",
236 "to",
237 "trailing",
238 "trigger",
239 "true",
240 "undo",
241 "union",
242 "unique",
243 "unlock",
244 "unsigned",
245 "update",
246 "usage",
247 "use",
248 "using",
249 "utc_date",
250 "utc_time",
251 "utc_timestamp",
252 "values",
253 "varbinary",
254 "varchar",
255 "varcharacter",
256 "varying",
257 "when",
258 "where",
259 "while",
260 "window",
261 "with",
262 "write",
263 "xor",
264 "year_month",
265 "zerofill",
266}.union(
267 {
268 "body",
269 "elsif",
270 "goto",
271 "history",
272 "others",
273 "package",
274 "period",
275 "raise",
276 "rowtype",
277 "system",
278 "system_time",
279 "versioning",
280 "without",
281 }
282)
283
284# https://dev.mysql.com/doc/refman/8.3/en/keywords.html
285# https://dev.mysql.com/doc/refman/8.0/en/keywords.html
286# https://dev.mysql.com/doc/refman/5.7/en/keywords.html
287# https://dev.mysql.com/doc/refman/5.6/en/keywords.html
288# includes: MySQL x.0 Keywords and Reserved Words
289# excludes: MySQL x.0 New Keywords and Reserved Words,
290# MySQL x.0 Removed Keywords and Reserved Words
291RESERVED_WORDS_MYSQL = {
292 "accessible",
293 "add",
294 "admin",
295 "all",
296 "alter",
297 "analyze",
298 "and",
299 "array",
300 "as",
301 "asc",
302 "asensitive",
303 "before",
304 "between",
305 "bigint",
306 "binary",
307 "blob",
308 "both",
309 "by",
310 "call",
311 "cascade",
312 "case",
313 "change",
314 "char",
315 "character",
316 "check",
317 "collate",
318 "column",
319 "condition",
320 "constraint",
321 "continue",
322 "convert",
323 "create",
324 "cross",
325 "cube",
326 "cume_dist",
327 "current_date",
328 "current_time",
329 "current_timestamp",
330 "current_user",
331 "cursor",
332 "database",
333 "databases",
334 "day_hour",
335 "day_microsecond",
336 "day_minute",
337 "day_second",
338 "dec",
339 "decimal",
340 "declare",
341 "default",
342 "delayed",
343 "delete",
344 "dense_rank",
345 "desc",
346 "describe",
347 "deterministic",
348 "distinct",
349 "distinctrow",
350 "div",
351 "double",
352 "drop",
353 "dual",
354 "each",
355 "else",
356 "elseif",
357 "empty",
358 "enclosed",
359 "escaped",
360 "except",
361 "exists",
362 "exit",
363 "explain",
364 "false",
365 "fetch",
366 "first_value",
367 "float",
368 "float4",
369 "float8",
370 "for",
371 "force",
372 "foreign",
373 "from",
374 "fulltext",
375 "function",
376 "general",
377 "generated",
378 "get",
379 "get_master_public_key",
380 "grant",
381 "group",
382 "grouping",
383 "groups",
384 "having",
385 "high_priority",
386 "hour_microsecond",
387 "hour_minute",
388 "hour_second",
389 "if",
390 "ignore",
391 "ignore_server_ids",
392 "in",
393 "index",
394 "infile",
395 "inner",
396 "inout",
397 "insensitive",
398 "insert",
399 "int",
400 "int1",
401 "int2",
402 "int3",
403 "int4",
404 "int8",
405 "integer",
406 "intersect",
407 "interval",
408 "into",
409 "io_after_gtids",
410 "io_before_gtids",
411 "is",
412 "iterate",
413 "join",
414 "json_table",
415 "key",
416 "keys",
417 "kill",
418 "lag",
419 "last_value",
420 "lateral",
421 "lead",
422 "leading",
423 "leave",
424 "left",
425 "like",
426 "limit",
427 "linear",
428 "lines",
429 "load",
430 "localtime",
431 "localtimestamp",
432 "lock",
433 "long",
434 "longblob",
435 "longtext",
436 "loop",
437 "low_priority",
438 "master_bind",
439 "master_heartbeat_period",
440 "master_ssl_verify_server_cert",
441 "match",
442 "maxvalue",
443 "mediumblob",
444 "mediumint",
445 "mediumtext",
446 "member",
447 "middleint",
448 "minute_microsecond",
449 "minute_second",
450 "mod",
451 "modifies",
452 "natural",
453 "no_write_to_binlog",
454 "not",
455 "nth_value",
456 "ntile",
457 "null",
458 "numeric",
459 "of",
460 "on",
461 "optimize",
462 "optimizer_costs",
463 "option",
464 "optionally",
465 "or",
466 "order",
467 "out",
468 "outer",
469 "outfile",
470 "over",
471 "parse_gcol_expr",
472 "parallel",
473 "partition",
474 "percent_rank",
475 "persist",
476 "persist_only",
477 "precision",
478 "primary",
479 "procedure",
480 "purge",
481 "qualify",
482 "range",
483 "rank",
484 "read",
485 "read_write",
486 "reads",
487 "real",
488 "recursive",
489 "references",
490 "regexp",
491 "release",
492 "rename",
493 "repeat",
494 "replace",
495 "require",
496 "resignal",
497 "restrict",
498 "return",
499 "revoke",
500 "right",
501 "rlike",
502 "role",
503 "row",
504 "row_number",
505 "rows",
506 "schema",
507 "schemas",
508 "second_microsecond",
509 "select",
510 "sensitive",
511 "separator",
512 "set",
513 "show",
514 "signal",
515 "slow",
516 "smallint",
517 "spatial",
518 "specific",
519 "sql",
520 "sql_after_gtids",
521 "sql_before_gtids",
522 "sql_big_result",
523 "sql_calc_found_rows",
524 "sql_small_result",
525 "sqlexception",
526 "sqlstate",
527 "sqlwarning",
528 "ssl",
529 "starting",
530 "stored",
531 "straight_join",
532 "system",
533 "table",
534 "terminated",
535 "then",
536 "tinyblob",
537 "tinyint",
538 "tinytext",
539 "to",
540 "trailing",
541 "trigger",
542 "true",
543 "undo",
544 "union",
545 "unique",
546 "unlock",
547 "unsigned",
548 "update",
549 "usage",
550 "use",
551 "using",
552 "utc_date",
553 "utc_time",
554 "utc_timestamp",
555 "values",
556 "varbinary",
557 "varchar",
558 "varcharacter",
559 "varying",
560 "virtual",
561 "when",
562 "where",
563 "while",
564 "window",
565 "with",
566 "write",
567 "xor",
568 "year_month",
569 "zerofill",
570}