SQLAlchemy 2.0.36__cp313-cp313-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. SQLAlchemy-2.0.36.dist-info/LICENSE +19 -0
  2. SQLAlchemy-2.0.36.dist-info/METADATA +243 -0
  3. SQLAlchemy-2.0.36.dist-info/RECORD +273 -0
  4. SQLAlchemy-2.0.36.dist-info/WHEEL +5 -0
  5. SQLAlchemy-2.0.36.dist-info/top_level.txt +1 -0
  6. sqlalchemy/__init__.py +294 -0
  7. sqlalchemy/connectors/__init__.py +18 -0
  8. sqlalchemy/connectors/aioodbc.py +174 -0
  9. sqlalchemy/connectors/asyncio.py +213 -0
  10. sqlalchemy/connectors/pyodbc.py +249 -0
  11. sqlalchemy/cyextension/__init__.py +6 -0
  12. sqlalchemy/cyextension/collections.cp313-win_amd64.pyd +0 -0
  13. sqlalchemy/cyextension/collections.pyx +409 -0
  14. sqlalchemy/cyextension/immutabledict.cp313-win_amd64.pyd +0 -0
  15. sqlalchemy/cyextension/immutabledict.pxd +8 -0
  16. sqlalchemy/cyextension/immutabledict.pyx +133 -0
  17. sqlalchemy/cyextension/processors.cp313-win_amd64.pyd +0 -0
  18. sqlalchemy/cyextension/processors.pyx +68 -0
  19. sqlalchemy/cyextension/resultproxy.cp313-win_amd64.pyd +0 -0
  20. sqlalchemy/cyextension/resultproxy.pyx +102 -0
  21. sqlalchemy/cyextension/util.cp313-win_amd64.pyd +0 -0
  22. sqlalchemy/cyextension/util.pyx +91 -0
  23. sqlalchemy/dialects/__init__.py +61 -0
  24. sqlalchemy/dialects/_typing.py +25 -0
  25. sqlalchemy/dialects/mssql/__init__.py +88 -0
  26. sqlalchemy/dialects/mssql/aioodbc.py +64 -0
  27. sqlalchemy/dialects/mssql/base.py +4010 -0
  28. sqlalchemy/dialects/mssql/information_schema.py +254 -0
  29. sqlalchemy/dialects/mssql/json.py +133 -0
  30. sqlalchemy/dialects/mssql/provision.py +162 -0
  31. sqlalchemy/dialects/mssql/pymssql.py +126 -0
  32. sqlalchemy/dialects/mssql/pyodbc.py +745 -0
  33. sqlalchemy/dialects/mysql/__init__.py +101 -0
  34. sqlalchemy/dialects/mysql/aiomysql.py +333 -0
  35. sqlalchemy/dialects/mysql/asyncmy.py +337 -0
  36. sqlalchemy/dialects/mysql/base.py +3494 -0
  37. sqlalchemy/dialects/mysql/cymysql.py +84 -0
  38. sqlalchemy/dialects/mysql/dml.py +219 -0
  39. sqlalchemy/dialects/mysql/enumerated.py +244 -0
  40. sqlalchemy/dialects/mysql/expression.py +141 -0
  41. sqlalchemy/dialects/mysql/json.py +81 -0
  42. sqlalchemy/dialects/mysql/mariadb.py +32 -0
  43. sqlalchemy/dialects/mysql/mariadbconnector.py +277 -0
  44. sqlalchemy/dialects/mysql/mysqlconnector.py +180 -0
  45. sqlalchemy/dialects/mysql/mysqldb.py +303 -0
  46. sqlalchemy/dialects/mysql/provision.py +110 -0
  47. sqlalchemy/dialects/mysql/pymysql.py +137 -0
  48. sqlalchemy/dialects/mysql/pyodbc.py +138 -0
  49. sqlalchemy/dialects/mysql/reflection.py +677 -0
  50. sqlalchemy/dialects/mysql/reserved_words.py +571 -0
  51. sqlalchemy/dialects/mysql/types.py +774 -0
  52. sqlalchemy/dialects/oracle/__init__.py +67 -0
  53. sqlalchemy/dialects/oracle/base.py +3271 -0
  54. sqlalchemy/dialects/oracle/cx_oracle.py +1483 -0
  55. sqlalchemy/dialects/oracle/dictionary.py +507 -0
  56. sqlalchemy/dialects/oracle/oracledb.py +431 -0
  57. sqlalchemy/dialects/oracle/provision.py +220 -0
  58. sqlalchemy/dialects/oracle/types.py +287 -0
  59. sqlalchemy/dialects/postgresql/__init__.py +167 -0
  60. sqlalchemy/dialects/postgresql/_psycopg_common.py +187 -0
  61. sqlalchemy/dialects/postgresql/array.py +425 -0
  62. sqlalchemy/dialects/postgresql/asyncpg.py +1274 -0
  63. sqlalchemy/dialects/postgresql/base.py +5008 -0
  64. sqlalchemy/dialects/postgresql/dml.py +310 -0
  65. sqlalchemy/dialects/postgresql/ext.py +496 -0
  66. sqlalchemy/dialects/postgresql/hstore.py +397 -0
  67. sqlalchemy/dialects/postgresql/json.py +333 -0
  68. sqlalchemy/dialects/postgresql/named_types.py +509 -0
  69. sqlalchemy/dialects/postgresql/operators.py +129 -0
  70. sqlalchemy/dialects/postgresql/pg8000.py +662 -0
  71. sqlalchemy/dialects/postgresql/pg_catalog.py +300 -0
  72. sqlalchemy/dialects/postgresql/provision.py +175 -0
  73. sqlalchemy/dialects/postgresql/psycopg.py +772 -0
  74. sqlalchemy/dialects/postgresql/psycopg2.py +886 -0
  75. sqlalchemy/dialects/postgresql/psycopg2cffi.py +61 -0
  76. sqlalchemy/dialects/postgresql/ranges.py +1029 -0
  77. sqlalchemy/dialects/postgresql/types.py +303 -0
  78. sqlalchemy/dialects/sqlite/__init__.py +57 -0
  79. sqlalchemy/dialects/sqlite/aiosqlite.py +396 -0
  80. sqlalchemy/dialects/sqlite/base.py +2805 -0
  81. sqlalchemy/dialects/sqlite/dml.py +240 -0
  82. sqlalchemy/dialects/sqlite/json.py +92 -0
  83. sqlalchemy/dialects/sqlite/provision.py +198 -0
  84. sqlalchemy/dialects/sqlite/pysqlcipher.py +155 -0
  85. sqlalchemy/dialects/sqlite/pysqlite.py +756 -0
  86. sqlalchemy/dialects/type_migration_guidelines.txt +145 -0
  87. sqlalchemy/engine/__init__.py +62 -0
  88. sqlalchemy/engine/_py_processors.py +136 -0
  89. sqlalchemy/engine/_py_row.py +128 -0
  90. sqlalchemy/engine/_py_util.py +74 -0
  91. sqlalchemy/engine/base.py +3375 -0
  92. sqlalchemy/engine/characteristics.py +155 -0
  93. sqlalchemy/engine/create.py +875 -0
  94. sqlalchemy/engine/cursor.py +2181 -0
  95. sqlalchemy/engine/default.py +2365 -0
  96. sqlalchemy/engine/events.py +951 -0
  97. sqlalchemy/engine/interfaces.py +3403 -0
  98. sqlalchemy/engine/mock.py +131 -0
  99. sqlalchemy/engine/processors.py +61 -0
  100. sqlalchemy/engine/reflection.py +2098 -0
  101. sqlalchemy/engine/result.py +2382 -0
  102. sqlalchemy/engine/row.py +401 -0
  103. sqlalchemy/engine/strategies.py +19 -0
  104. sqlalchemy/engine/url.py +910 -0
  105. sqlalchemy/engine/util.py +167 -0
  106. sqlalchemy/event/__init__.py +25 -0
  107. sqlalchemy/event/api.py +225 -0
  108. sqlalchemy/event/attr.py +655 -0
  109. sqlalchemy/event/base.py +470 -0
  110. sqlalchemy/event/legacy.py +246 -0
  111. sqlalchemy/event/registry.py +386 -0
  112. sqlalchemy/events.py +17 -0
  113. sqlalchemy/exc.py +830 -0
  114. sqlalchemy/ext/__init__.py +11 -0
  115. sqlalchemy/ext/associationproxy.py +2013 -0
  116. sqlalchemy/ext/asyncio/__init__.py +25 -0
  117. sqlalchemy/ext/asyncio/base.py +279 -0
  118. sqlalchemy/ext/asyncio/engine.py +1466 -0
  119. sqlalchemy/ext/asyncio/exc.py +21 -0
  120. sqlalchemy/ext/asyncio/result.py +961 -0
  121. sqlalchemy/ext/asyncio/scoping.py +1614 -0
  122. sqlalchemy/ext/asyncio/session.py +1936 -0
  123. sqlalchemy/ext/automap.py +1691 -0
  124. sqlalchemy/ext/baked.py +574 -0
  125. sqlalchemy/ext/compiler.py +570 -0
  126. sqlalchemy/ext/declarative/__init__.py +65 -0
  127. sqlalchemy/ext/declarative/extensions.py +548 -0
  128. sqlalchemy/ext/horizontal_shard.py +481 -0
  129. sqlalchemy/ext/hybrid.py +1514 -0
  130. sqlalchemy/ext/indexable.py +341 -0
  131. sqlalchemy/ext/instrumentation.py +450 -0
  132. sqlalchemy/ext/mutable.py +1073 -0
  133. sqlalchemy/ext/mypy/__init__.py +6 -0
  134. sqlalchemy/ext/mypy/apply.py +320 -0
  135. sqlalchemy/ext/mypy/decl_class.py +515 -0
  136. sqlalchemy/ext/mypy/infer.py +590 -0
  137. sqlalchemy/ext/mypy/names.py +335 -0
  138. sqlalchemy/ext/mypy/plugin.py +303 -0
  139. sqlalchemy/ext/mypy/util.py +357 -0
  140. sqlalchemy/ext/orderinglist.py +416 -0
  141. sqlalchemy/ext/serializer.py +181 -0
  142. sqlalchemy/future/__init__.py +16 -0
  143. sqlalchemy/future/engine.py +15 -0
  144. sqlalchemy/inspection.py +174 -0
  145. sqlalchemy/log.py +288 -0
  146. sqlalchemy/orm/__init__.py +170 -0
  147. sqlalchemy/orm/_orm_constructors.py +2571 -0
  148. sqlalchemy/orm/_typing.py +179 -0
  149. sqlalchemy/orm/attributes.py +2835 -0
  150. sqlalchemy/orm/base.py +973 -0
  151. sqlalchemy/orm/bulk_persistence.py +2123 -0
  152. sqlalchemy/orm/clsregistry.py +571 -0
  153. sqlalchemy/orm/collections.py +1620 -0
  154. sqlalchemy/orm/context.py +3268 -0
  155. sqlalchemy/orm/decl_api.py +1883 -0
  156. sqlalchemy/orm/decl_base.py +2190 -0
  157. sqlalchemy/orm/dependency.py +1304 -0
  158. sqlalchemy/orm/descriptor_props.py +1076 -0
  159. sqlalchemy/orm/dynamic.py +300 -0
  160. sqlalchemy/orm/evaluator.py +379 -0
  161. sqlalchemy/orm/events.py +3261 -0
  162. sqlalchemy/orm/exc.py +228 -0
  163. sqlalchemy/orm/identity.py +302 -0
  164. sqlalchemy/orm/instrumentation.py +754 -0
  165. sqlalchemy/orm/interfaces.py +1474 -0
  166. sqlalchemy/orm/loading.py +1682 -0
  167. sqlalchemy/orm/mapped_collection.py +557 -0
  168. sqlalchemy/orm/mapper.py +4432 -0
  169. sqlalchemy/orm/path_registry.py +811 -0
  170. sqlalchemy/orm/persistence.py +1782 -0
  171. sqlalchemy/orm/properties.py +886 -0
  172. sqlalchemy/orm/query.py +3396 -0
  173. sqlalchemy/orm/relationships.py +3500 -0
  174. sqlalchemy/orm/scoping.py +2165 -0
  175. sqlalchemy/orm/session.py +5301 -0
  176. sqlalchemy/orm/state.py +1143 -0
  177. sqlalchemy/orm/state_changes.py +198 -0
  178. sqlalchemy/orm/strategies.py +3473 -0
  179. sqlalchemy/orm/strategy_options.py +2569 -0
  180. sqlalchemy/orm/sync.py +164 -0
  181. sqlalchemy/orm/unitofwork.py +796 -0
  182. sqlalchemy/orm/util.py +2424 -0
  183. sqlalchemy/orm/writeonly.py +678 -0
  184. sqlalchemy/pool/__init__.py +44 -0
  185. sqlalchemy/pool/base.py +1515 -0
  186. sqlalchemy/pool/events.py +370 -0
  187. sqlalchemy/pool/impl.py +581 -0
  188. sqlalchemy/py.typed +0 -0
  189. sqlalchemy/schema.py +70 -0
  190. sqlalchemy/sql/__init__.py +145 -0
  191. sqlalchemy/sql/_dml_constructors.py +140 -0
  192. sqlalchemy/sql/_elements_constructors.py +1850 -0
  193. sqlalchemy/sql/_orm_types.py +20 -0
  194. sqlalchemy/sql/_py_util.py +75 -0
  195. sqlalchemy/sql/_selectable_constructors.py +635 -0
  196. sqlalchemy/sql/_typing.py +460 -0
  197. sqlalchemy/sql/annotation.py +585 -0
  198. sqlalchemy/sql/base.py +2185 -0
  199. sqlalchemy/sql/cache_key.py +1057 -0
  200. sqlalchemy/sql/coercions.py +1405 -0
  201. sqlalchemy/sql/compiler.py +7818 -0
  202. sqlalchemy/sql/crud.py +1669 -0
  203. sqlalchemy/sql/ddl.py +1378 -0
  204. sqlalchemy/sql/default_comparator.py +552 -0
  205. sqlalchemy/sql/dml.py +1817 -0
  206. sqlalchemy/sql/elements.py +5499 -0
  207. sqlalchemy/sql/events.py +455 -0
  208. sqlalchemy/sql/expression.py +162 -0
  209. sqlalchemy/sql/functions.py +2055 -0
  210. sqlalchemy/sql/lambdas.py +1449 -0
  211. sqlalchemy/sql/naming.py +212 -0
  212. sqlalchemy/sql/operators.py +2579 -0
  213. sqlalchemy/sql/roles.py +323 -0
  214. sqlalchemy/sql/schema.py +6158 -0
  215. sqlalchemy/sql/selectable.py +7004 -0
  216. sqlalchemy/sql/sqltypes.py +3827 -0
  217. sqlalchemy/sql/traversals.py +1024 -0
  218. sqlalchemy/sql/type_api.py +2339 -0
  219. sqlalchemy/sql/util.py +1486 -0
  220. sqlalchemy/sql/visitors.py +1165 -0
  221. sqlalchemy/testing/__init__.py +96 -0
  222. sqlalchemy/testing/assertions.py +989 -0
  223. sqlalchemy/testing/assertsql.py +516 -0
  224. sqlalchemy/testing/asyncio.py +135 -0
  225. sqlalchemy/testing/config.py +427 -0
  226. sqlalchemy/testing/engines.py +472 -0
  227. sqlalchemy/testing/entities.py +117 -0
  228. sqlalchemy/testing/exclusions.py +435 -0
  229. sqlalchemy/testing/fixtures/__init__.py +28 -0
  230. sqlalchemy/testing/fixtures/base.py +366 -0
  231. sqlalchemy/testing/fixtures/mypy.py +312 -0
  232. sqlalchemy/testing/fixtures/orm.py +227 -0
  233. sqlalchemy/testing/fixtures/sql.py +503 -0
  234. sqlalchemy/testing/pickleable.py +155 -0
  235. sqlalchemy/testing/plugin/__init__.py +6 -0
  236. sqlalchemy/testing/plugin/bootstrap.py +51 -0
  237. sqlalchemy/testing/plugin/plugin_base.py +779 -0
  238. sqlalchemy/testing/plugin/pytestplugin.py +868 -0
  239. sqlalchemy/testing/profiling.py +324 -0
  240. sqlalchemy/testing/provision.py +496 -0
  241. sqlalchemy/testing/requirements.py +1818 -0
  242. sqlalchemy/testing/schema.py +224 -0
  243. sqlalchemy/testing/suite/__init__.py +19 -0
  244. sqlalchemy/testing/suite/test_cte.py +211 -0
  245. sqlalchemy/testing/suite/test_ddl.py +389 -0
  246. sqlalchemy/testing/suite/test_deprecations.py +153 -0
  247. sqlalchemy/testing/suite/test_dialect.py +740 -0
  248. sqlalchemy/testing/suite/test_insert.py +630 -0
  249. sqlalchemy/testing/suite/test_reflection.py +3225 -0
  250. sqlalchemy/testing/suite/test_results.py +502 -0
  251. sqlalchemy/testing/suite/test_rowcount.py +258 -0
  252. sqlalchemy/testing/suite/test_select.py +1999 -0
  253. sqlalchemy/testing/suite/test_sequence.py +317 -0
  254. sqlalchemy/testing/suite/test_types.py +2141 -0
  255. sqlalchemy/testing/suite/test_unicode_ddl.py +189 -0
  256. sqlalchemy/testing/suite/test_update_delete.py +139 -0
  257. sqlalchemy/testing/util.py +537 -0
  258. sqlalchemy/testing/warnings.py +52 -0
  259. sqlalchemy/types.py +76 -0
  260. sqlalchemy/util/__init__.py +160 -0
  261. sqlalchemy/util/_collections.py +715 -0
  262. sqlalchemy/util/_concurrency_py3k.py +288 -0
  263. sqlalchemy/util/_has_cy.py +40 -0
  264. sqlalchemy/util/_py_collections.py +541 -0
  265. sqlalchemy/util/compat.py +301 -0
  266. sqlalchemy/util/concurrency.py +108 -0
  267. sqlalchemy/util/deprecations.py +401 -0
  268. sqlalchemy/util/langhelpers.py +2218 -0
  269. sqlalchemy/util/preloaded.py +150 -0
  270. sqlalchemy/util/queue.py +322 -0
  271. sqlalchemy/util/tool_support.py +201 -0
  272. sqlalchemy/util/topological.py +120 -0
  273. sqlalchemy/util/typing.py +629 -0
@@ -0,0 +1,571 @@
1
+ # dialects/mysql/reserved_words.py
2
+ # Copyright (C) 2005-2024 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
+ # mypy: ignore-errors
15
+
16
+ RESERVED_WORDS_MARIADB = {
17
+ "accessible",
18
+ "add",
19
+ "all",
20
+ "alter",
21
+ "analyze",
22
+ "and",
23
+ "as",
24
+ "asc",
25
+ "asensitive",
26
+ "before",
27
+ "between",
28
+ "bigint",
29
+ "binary",
30
+ "blob",
31
+ "both",
32
+ "by",
33
+ "call",
34
+ "cascade",
35
+ "case",
36
+ "change",
37
+ "char",
38
+ "character",
39
+ "check",
40
+ "collate",
41
+ "column",
42
+ "condition",
43
+ "constraint",
44
+ "continue",
45
+ "convert",
46
+ "create",
47
+ "cross",
48
+ "current_date",
49
+ "current_role",
50
+ "current_time",
51
+ "current_timestamp",
52
+ "current_user",
53
+ "cursor",
54
+ "database",
55
+ "databases",
56
+ "day_hour",
57
+ "day_microsecond",
58
+ "day_minute",
59
+ "day_second",
60
+ "dec",
61
+ "decimal",
62
+ "declare",
63
+ "default",
64
+ "delayed",
65
+ "delete",
66
+ "desc",
67
+ "describe",
68
+ "deterministic",
69
+ "distinct",
70
+ "distinctrow",
71
+ "div",
72
+ "do_domain_ids",
73
+ "double",
74
+ "drop",
75
+ "dual",
76
+ "each",
77
+ "else",
78
+ "elseif",
79
+ "enclosed",
80
+ "escaped",
81
+ "except",
82
+ "exists",
83
+ "exit",
84
+ "explain",
85
+ "false",
86
+ "fetch",
87
+ "float",
88
+ "float4",
89
+ "float8",
90
+ "for",
91
+ "force",
92
+ "foreign",
93
+ "from",
94
+ "fulltext",
95
+ "general",
96
+ "grant",
97
+ "group",
98
+ "having",
99
+ "high_priority",
100
+ "hour_microsecond",
101
+ "hour_minute",
102
+ "hour_second",
103
+ "if",
104
+ "ignore",
105
+ "ignore_domain_ids",
106
+ "ignore_server_ids",
107
+ "in",
108
+ "index",
109
+ "infile",
110
+ "inner",
111
+ "inout",
112
+ "insensitive",
113
+ "insert",
114
+ "int",
115
+ "int1",
116
+ "int2",
117
+ "int3",
118
+ "int4",
119
+ "int8",
120
+ "integer",
121
+ "intersect",
122
+ "interval",
123
+ "into",
124
+ "is",
125
+ "iterate",
126
+ "join",
127
+ "key",
128
+ "keys",
129
+ "kill",
130
+ "leading",
131
+ "leave",
132
+ "left",
133
+ "like",
134
+ "limit",
135
+ "linear",
136
+ "lines",
137
+ "load",
138
+ "localtime",
139
+ "localtimestamp",
140
+ "lock",
141
+ "long",
142
+ "longblob",
143
+ "longtext",
144
+ "loop",
145
+ "low_priority",
146
+ "master_heartbeat_period",
147
+ "master_ssl_verify_server_cert",
148
+ "match",
149
+ "maxvalue",
150
+ "mediumblob",
151
+ "mediumint",
152
+ "mediumtext",
153
+ "middleint",
154
+ "minute_microsecond",
155
+ "minute_second",
156
+ "mod",
157
+ "modifies",
158
+ "natural",
159
+ "no_write_to_binlog",
160
+ "not",
161
+ "null",
162
+ "numeric",
163
+ "offset",
164
+ "on",
165
+ "optimize",
166
+ "option",
167
+ "optionally",
168
+ "or",
169
+ "order",
170
+ "out",
171
+ "outer",
172
+ "outfile",
173
+ "over",
174
+ "page_checksum",
175
+ "parse_vcol_expr",
176
+ "partition",
177
+ "position",
178
+ "precision",
179
+ "primary",
180
+ "procedure",
181
+ "purge",
182
+ "range",
183
+ "read",
184
+ "read_write",
185
+ "reads",
186
+ "real",
187
+ "recursive",
188
+ "ref_system_id",
189
+ "references",
190
+ "regexp",
191
+ "release",
192
+ "rename",
193
+ "repeat",
194
+ "replace",
195
+ "require",
196
+ "resignal",
197
+ "restrict",
198
+ "return",
199
+ "returning",
200
+ "revoke",
201
+ "right",
202
+ "rlike",
203
+ "rows",
204
+ "row_number",
205
+ "schema",
206
+ "schemas",
207
+ "second_microsecond",
208
+ "select",
209
+ "sensitive",
210
+ "separator",
211
+ "set",
212
+ "show",
213
+ "signal",
214
+ "slow",
215
+ "smallint",
216
+ "spatial",
217
+ "specific",
218
+ "sql",
219
+ "sql_big_result",
220
+ "sql_calc_found_rows",
221
+ "sql_small_result",
222
+ "sqlexception",
223
+ "sqlstate",
224
+ "sqlwarning",
225
+ "ssl",
226
+ "starting",
227
+ "stats_auto_recalc",
228
+ "stats_persistent",
229
+ "stats_sample_pages",
230
+ "straight_join",
231
+ "table",
232
+ "terminated",
233
+ "then",
234
+ "tinyblob",
235
+ "tinyint",
236
+ "tinytext",
237
+ "to",
238
+ "trailing",
239
+ "trigger",
240
+ "true",
241
+ "undo",
242
+ "union",
243
+ "unique",
244
+ "unlock",
245
+ "unsigned",
246
+ "update",
247
+ "usage",
248
+ "use",
249
+ "using",
250
+ "utc_date",
251
+ "utc_time",
252
+ "utc_timestamp",
253
+ "values",
254
+ "varbinary",
255
+ "varchar",
256
+ "varcharacter",
257
+ "varying",
258
+ "when",
259
+ "where",
260
+ "while",
261
+ "window",
262
+ "with",
263
+ "write",
264
+ "xor",
265
+ "year_month",
266
+ "zerofill",
267
+ }.union(
268
+ {
269
+ "body",
270
+ "elsif",
271
+ "goto",
272
+ "history",
273
+ "others",
274
+ "package",
275
+ "period",
276
+ "raise",
277
+ "rowtype",
278
+ "system",
279
+ "system_time",
280
+ "versioning",
281
+ "without",
282
+ }
283
+ )
284
+
285
+ # https://dev.mysql.com/doc/refman/8.3/en/keywords.html
286
+ # https://dev.mysql.com/doc/refman/8.0/en/keywords.html
287
+ # https://dev.mysql.com/doc/refman/5.7/en/keywords.html
288
+ # https://dev.mysql.com/doc/refman/5.6/en/keywords.html
289
+ # includes: MySQL x.0 Keywords and Reserved Words
290
+ # excludes: MySQL x.0 New Keywords and Reserved Words,
291
+ # MySQL x.0 Removed Keywords and Reserved Words
292
+ RESERVED_WORDS_MYSQL = {
293
+ "accessible",
294
+ "add",
295
+ "admin",
296
+ "all",
297
+ "alter",
298
+ "analyze",
299
+ "and",
300
+ "array",
301
+ "as",
302
+ "asc",
303
+ "asensitive",
304
+ "before",
305
+ "between",
306
+ "bigint",
307
+ "binary",
308
+ "blob",
309
+ "both",
310
+ "by",
311
+ "call",
312
+ "cascade",
313
+ "case",
314
+ "change",
315
+ "char",
316
+ "character",
317
+ "check",
318
+ "collate",
319
+ "column",
320
+ "condition",
321
+ "constraint",
322
+ "continue",
323
+ "convert",
324
+ "create",
325
+ "cross",
326
+ "cube",
327
+ "cume_dist",
328
+ "current_date",
329
+ "current_time",
330
+ "current_timestamp",
331
+ "current_user",
332
+ "cursor",
333
+ "database",
334
+ "databases",
335
+ "day_hour",
336
+ "day_microsecond",
337
+ "day_minute",
338
+ "day_second",
339
+ "dec",
340
+ "decimal",
341
+ "declare",
342
+ "default",
343
+ "delayed",
344
+ "delete",
345
+ "dense_rank",
346
+ "desc",
347
+ "describe",
348
+ "deterministic",
349
+ "distinct",
350
+ "distinctrow",
351
+ "div",
352
+ "double",
353
+ "drop",
354
+ "dual",
355
+ "each",
356
+ "else",
357
+ "elseif",
358
+ "empty",
359
+ "enclosed",
360
+ "escaped",
361
+ "except",
362
+ "exists",
363
+ "exit",
364
+ "explain",
365
+ "false",
366
+ "fetch",
367
+ "first_value",
368
+ "float",
369
+ "float4",
370
+ "float8",
371
+ "for",
372
+ "force",
373
+ "foreign",
374
+ "from",
375
+ "fulltext",
376
+ "function",
377
+ "general",
378
+ "generated",
379
+ "get",
380
+ "get_master_public_key",
381
+ "grant",
382
+ "group",
383
+ "grouping",
384
+ "groups",
385
+ "having",
386
+ "high_priority",
387
+ "hour_microsecond",
388
+ "hour_minute",
389
+ "hour_second",
390
+ "if",
391
+ "ignore",
392
+ "ignore_server_ids",
393
+ "in",
394
+ "index",
395
+ "infile",
396
+ "inner",
397
+ "inout",
398
+ "insensitive",
399
+ "insert",
400
+ "int",
401
+ "int1",
402
+ "int2",
403
+ "int3",
404
+ "int4",
405
+ "int8",
406
+ "integer",
407
+ "intersect",
408
+ "interval",
409
+ "into",
410
+ "io_after_gtids",
411
+ "io_before_gtids",
412
+ "is",
413
+ "iterate",
414
+ "join",
415
+ "json_table",
416
+ "key",
417
+ "keys",
418
+ "kill",
419
+ "lag",
420
+ "last_value",
421
+ "lateral",
422
+ "lead",
423
+ "leading",
424
+ "leave",
425
+ "left",
426
+ "like",
427
+ "limit",
428
+ "linear",
429
+ "lines",
430
+ "load",
431
+ "localtime",
432
+ "localtimestamp",
433
+ "lock",
434
+ "long",
435
+ "longblob",
436
+ "longtext",
437
+ "loop",
438
+ "low_priority",
439
+ "master_bind",
440
+ "master_heartbeat_period",
441
+ "master_ssl_verify_server_cert",
442
+ "match",
443
+ "maxvalue",
444
+ "mediumblob",
445
+ "mediumint",
446
+ "mediumtext",
447
+ "member",
448
+ "middleint",
449
+ "minute_microsecond",
450
+ "minute_second",
451
+ "mod",
452
+ "modifies",
453
+ "natural",
454
+ "no_write_to_binlog",
455
+ "not",
456
+ "nth_value",
457
+ "ntile",
458
+ "null",
459
+ "numeric",
460
+ "of",
461
+ "on",
462
+ "optimize",
463
+ "optimizer_costs",
464
+ "option",
465
+ "optionally",
466
+ "or",
467
+ "order",
468
+ "out",
469
+ "outer",
470
+ "outfile",
471
+ "over",
472
+ "parse_gcol_expr",
473
+ "parallel",
474
+ "partition",
475
+ "percent_rank",
476
+ "persist",
477
+ "persist_only",
478
+ "precision",
479
+ "primary",
480
+ "procedure",
481
+ "purge",
482
+ "qualify",
483
+ "range",
484
+ "rank",
485
+ "read",
486
+ "read_write",
487
+ "reads",
488
+ "real",
489
+ "recursive",
490
+ "references",
491
+ "regexp",
492
+ "release",
493
+ "rename",
494
+ "repeat",
495
+ "replace",
496
+ "require",
497
+ "resignal",
498
+ "restrict",
499
+ "return",
500
+ "revoke",
501
+ "right",
502
+ "rlike",
503
+ "role",
504
+ "row",
505
+ "row_number",
506
+ "rows",
507
+ "schema",
508
+ "schemas",
509
+ "second_microsecond",
510
+ "select",
511
+ "sensitive",
512
+ "separator",
513
+ "set",
514
+ "show",
515
+ "signal",
516
+ "slow",
517
+ "smallint",
518
+ "spatial",
519
+ "specific",
520
+ "sql",
521
+ "sql_after_gtids",
522
+ "sql_before_gtids",
523
+ "sql_big_result",
524
+ "sql_calc_found_rows",
525
+ "sql_small_result",
526
+ "sqlexception",
527
+ "sqlstate",
528
+ "sqlwarning",
529
+ "ssl",
530
+ "starting",
531
+ "stored",
532
+ "straight_join",
533
+ "system",
534
+ "table",
535
+ "terminated",
536
+ "then",
537
+ "tinyblob",
538
+ "tinyint",
539
+ "tinytext",
540
+ "to",
541
+ "trailing",
542
+ "trigger",
543
+ "true",
544
+ "undo",
545
+ "union",
546
+ "unique",
547
+ "unlock",
548
+ "unsigned",
549
+ "update",
550
+ "usage",
551
+ "use",
552
+ "using",
553
+ "utc_date",
554
+ "utc_time",
555
+ "utc_timestamp",
556
+ "values",
557
+ "varbinary",
558
+ "varchar",
559
+ "varcharacter",
560
+ "varying",
561
+ "virtual",
562
+ "when",
563
+ "where",
564
+ "while",
565
+ "window",
566
+ "with",
567
+ "write",
568
+ "xor",
569
+ "year_month",
570
+ "zerofill",
571
+ }