sqlspec 0.47.0__cp314-cp314-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 (621) hide show
  1. f68e0789eb443ecb1c2c__mypyc.cp314-win_amd64.pyd +0 -0
  2. sqlspec/__init__.py +167 -0
  3. sqlspec/__main__.py +12 -0
  4. sqlspec/__metadata__.py +14 -0
  5. sqlspec/_typing.py +714 -0
  6. sqlspec/adapters/__init__.py +0 -0
  7. sqlspec/adapters/adbc/__init__.py +13 -0
  8. sqlspec/adapters/adbc/_typing.py +106 -0
  9. sqlspec/adapters/adbc/adk/__init__.py +5 -0
  10. sqlspec/adapters/adbc/adk/store.py +1280 -0
  11. sqlspec/adapters/adbc/config.py +378 -0
  12. sqlspec/adapters/adbc/core.cp314-win_amd64.pyd +0 -0
  13. sqlspec/adapters/adbc/core.py +922 -0
  14. sqlspec/adapters/adbc/data_dictionary.py +339 -0
  15. sqlspec/adapters/adbc/driver.py +534 -0
  16. sqlspec/adapters/adbc/events/__init__.py +5 -0
  17. sqlspec/adapters/adbc/events/store.py +285 -0
  18. sqlspec/adapters/adbc/litestar/__init__.py +5 -0
  19. sqlspec/adapters/adbc/litestar/store.py +534 -0
  20. sqlspec/adapters/adbc/type_converter.cp314-win_amd64.pyd +0 -0
  21. sqlspec/adapters/adbc/type_converter.py +142 -0
  22. sqlspec/adapters/aiomysql/__init__.py +21 -0
  23. sqlspec/adapters/aiomysql/_typing.py +137 -0
  24. sqlspec/adapters/aiomysql/adk/__init__.py +5 -0
  25. sqlspec/adapters/aiomysql/adk/store.py +678 -0
  26. sqlspec/adapters/aiomysql/config.py +305 -0
  27. sqlspec/adapters/aiomysql/core.cp314-win_amd64.pyd +0 -0
  28. sqlspec/adapters/aiomysql/core.py +536 -0
  29. sqlspec/adapters/aiomysql/data_dictionary.py +121 -0
  30. sqlspec/adapters/aiomysql/driver.py +386 -0
  31. sqlspec/adapters/aiomysql/events/__init__.py +5 -0
  32. sqlspec/adapters/aiomysql/events/store.py +104 -0
  33. sqlspec/adapters/aiomysql/litestar/__init__.py +5 -0
  34. sqlspec/adapters/aiomysql/litestar/store.py +314 -0
  35. sqlspec/adapters/aiosqlite/__init__.py +26 -0
  36. sqlspec/adapters/aiosqlite/_typing.py +109 -0
  37. sqlspec/adapters/aiosqlite/adk/__init__.py +5 -0
  38. sqlspec/adapters/aiosqlite/adk/store.py +829 -0
  39. sqlspec/adapters/aiosqlite/config.py +315 -0
  40. sqlspec/adapters/aiosqlite/core.cp314-win_amd64.pyd +0 -0
  41. sqlspec/adapters/aiosqlite/core.py +315 -0
  42. sqlspec/adapters/aiosqlite/data_dictionary.py +202 -0
  43. sqlspec/adapters/aiosqlite/driver.py +311 -0
  44. sqlspec/adapters/aiosqlite/events/__init__.py +5 -0
  45. sqlspec/adapters/aiosqlite/events/store.py +20 -0
  46. sqlspec/adapters/aiosqlite/litestar/__init__.py +5 -0
  47. sqlspec/adapters/aiosqlite/litestar/store.py +279 -0
  48. sqlspec/adapters/aiosqlite/pool.cp314-win_amd64.pyd +0 -0
  49. sqlspec/adapters/aiosqlite/pool.py +734 -0
  50. sqlspec/adapters/asyncmy/__init__.py +21 -0
  51. sqlspec/adapters/asyncmy/_typing.py +113 -0
  52. sqlspec/adapters/asyncmy/adk/__init__.py +5 -0
  53. sqlspec/adapters/asyncmy/adk/store.py +644 -0
  54. sqlspec/adapters/asyncmy/config.py +307 -0
  55. sqlspec/adapters/asyncmy/core.cp314-win_amd64.pyd +0 -0
  56. sqlspec/adapters/asyncmy/core.py +538 -0
  57. sqlspec/adapters/asyncmy/data_dictionary.py +122 -0
  58. sqlspec/adapters/asyncmy/driver.py +391 -0
  59. sqlspec/adapters/asyncmy/events/__init__.py +5 -0
  60. sqlspec/adapters/asyncmy/events/store.py +104 -0
  61. sqlspec/adapters/asyncmy/litestar/__init__.py +5 -0
  62. sqlspec/adapters/asyncmy/litestar/store.py +296 -0
  63. sqlspec/adapters/asyncpg/__init__.py +26 -0
  64. sqlspec/adapters/asyncpg/_typing.py +103 -0
  65. sqlspec/adapters/asyncpg/adk/__init__.py +5 -0
  66. sqlspec/adapters/asyncpg/adk/store.py +483 -0
  67. sqlspec/adapters/asyncpg/config.py +575 -0
  68. sqlspec/adapters/asyncpg/core.cp314-win_amd64.pyd +0 -0
  69. sqlspec/adapters/asyncpg/core.py +480 -0
  70. sqlspec/adapters/asyncpg/data_dictionary.py +157 -0
  71. sqlspec/adapters/asyncpg/driver.py +487 -0
  72. sqlspec/adapters/asyncpg/events/__init__.py +6 -0
  73. sqlspec/adapters/asyncpg/events/_hub.py +181 -0
  74. sqlspec/adapters/asyncpg/events/backend.py +210 -0
  75. sqlspec/adapters/asyncpg/events/store.py +40 -0
  76. sqlspec/adapters/asyncpg/litestar/__init__.py +5 -0
  77. sqlspec/adapters/asyncpg/litestar/store.py +251 -0
  78. sqlspec/adapters/bigquery/__init__.py +15 -0
  79. sqlspec/adapters/bigquery/_typing.py +108 -0
  80. sqlspec/adapters/bigquery/config.py +362 -0
  81. sqlspec/adapters/bigquery/core.cp314-win_amd64.pyd +0 -0
  82. sqlspec/adapters/bigquery/core.py +768 -0
  83. sqlspec/adapters/bigquery/data_dictionary.py +120 -0
  84. sqlspec/adapters/bigquery/driver.py +542 -0
  85. sqlspec/adapters/bigquery/events/__init__.py +5 -0
  86. sqlspec/adapters/bigquery/events/store.py +139 -0
  87. sqlspec/adapters/bigquery/litestar/__init__.py +5 -0
  88. sqlspec/adapters/bigquery/litestar/store.py +325 -0
  89. sqlspec/adapters/bigquery/type_converter.cp314-win_amd64.pyd +0 -0
  90. sqlspec/adapters/bigquery/type_converter.py +107 -0
  91. sqlspec/adapters/cockroach_asyncpg/__init__.py +26 -0
  92. sqlspec/adapters/cockroach_asyncpg/_typing.py +73 -0
  93. sqlspec/adapters/cockroach_asyncpg/adk/__init__.py +3 -0
  94. sqlspec/adapters/cockroach_asyncpg/adk/store.py +465 -0
  95. sqlspec/adapters/cockroach_asyncpg/config.py +248 -0
  96. sqlspec/adapters/cockroach_asyncpg/core.cp314-win_amd64.pyd +0 -0
  97. sqlspec/adapters/cockroach_asyncpg/core.py +55 -0
  98. sqlspec/adapters/cockroach_asyncpg/data_dictionary.py +110 -0
  99. sqlspec/adapters/cockroach_asyncpg/driver.py +142 -0
  100. sqlspec/adapters/cockroach_asyncpg/events/__init__.py +3 -0
  101. sqlspec/adapters/cockroach_asyncpg/events/store.py +20 -0
  102. sqlspec/adapters/cockroach_asyncpg/litestar/__init__.py +3 -0
  103. sqlspec/adapters/cockroach_asyncpg/litestar/store.py +142 -0
  104. sqlspec/adapters/cockroach_psycopg/__init__.py +39 -0
  105. sqlspec/adapters/cockroach_psycopg/_typing.py +137 -0
  106. sqlspec/adapters/cockroach_psycopg/adk/__init__.py +13 -0
  107. sqlspec/adapters/cockroach_psycopg/adk/store.py +1039 -0
  108. sqlspec/adapters/cockroach_psycopg/config.py +511 -0
  109. sqlspec/adapters/cockroach_psycopg/core.cp314-win_amd64.pyd +0 -0
  110. sqlspec/adapters/cockroach_psycopg/core.py +63 -0
  111. sqlspec/adapters/cockroach_psycopg/data_dictionary.py +220 -0
  112. sqlspec/adapters/cockroach_psycopg/driver.py +273 -0
  113. sqlspec/adapters/cockroach_psycopg/events/__init__.py +6 -0
  114. sqlspec/adapters/cockroach_psycopg/events/store.py +34 -0
  115. sqlspec/adapters/cockroach_psycopg/litestar/__init__.py +3 -0
  116. sqlspec/adapters/cockroach_psycopg/litestar/store.py +327 -0
  117. sqlspec/adapters/duckdb/__init__.py +29 -0
  118. sqlspec/adapters/duckdb/_typing.py +104 -0
  119. sqlspec/adapters/duckdb/adk/__init__.py +14 -0
  120. sqlspec/adapters/duckdb/adk/store.py +935 -0
  121. sqlspec/adapters/duckdb/config.py +386 -0
  122. sqlspec/adapters/duckdb/core.cp314-win_amd64.pyd +0 -0
  123. sqlspec/adapters/duckdb/core.py +332 -0
  124. sqlspec/adapters/duckdb/data_dictionary.py +140 -0
  125. sqlspec/adapters/duckdb/driver.py +426 -0
  126. sqlspec/adapters/duckdb/events/__init__.py +5 -0
  127. sqlspec/adapters/duckdb/events/store.py +57 -0
  128. sqlspec/adapters/duckdb/litestar/__init__.py +5 -0
  129. sqlspec/adapters/duckdb/litestar/store.py +330 -0
  130. sqlspec/adapters/duckdb/pool.cp314-win_amd64.pyd +0 -0
  131. sqlspec/adapters/duckdb/pool.py +350 -0
  132. sqlspec/adapters/duckdb/type_converter.cp314-win_amd64.pyd +0 -0
  133. sqlspec/adapters/duckdb/type_converter.py +118 -0
  134. sqlspec/adapters/mysqlconnector/__init__.py +39 -0
  135. sqlspec/adapters/mysqlconnector/_typing.py +186 -0
  136. sqlspec/adapters/mysqlconnector/adk/__init__.py +15 -0
  137. sqlspec/adapters/mysqlconnector/adk/store.py +1183 -0
  138. sqlspec/adapters/mysqlconnector/config.py +421 -0
  139. sqlspec/adapters/mysqlconnector/core.cp314-win_amd64.pyd +0 -0
  140. sqlspec/adapters/mysqlconnector/core.py +472 -0
  141. sqlspec/adapters/mysqlconnector/data_dictionary.py +230 -0
  142. sqlspec/adapters/mysqlconnector/driver.py +516 -0
  143. sqlspec/adapters/mysqlconnector/events/__init__.py +8 -0
  144. sqlspec/adapters/mysqlconnector/events/store.py +98 -0
  145. sqlspec/adapters/mysqlconnector/litestar/__init__.py +5 -0
  146. sqlspec/adapters/mysqlconnector/litestar/store.py +426 -0
  147. sqlspec/adapters/oracledb/__init__.py +39 -0
  148. sqlspec/adapters/oracledb/_json_handlers.cp314-win_amd64.pyd +0 -0
  149. sqlspec/adapters/oracledb/_json_handlers.py +196 -0
  150. sqlspec/adapters/oracledb/_param_types.cp314-win_amd64.pyd +0 -0
  151. sqlspec/adapters/oracledb/_param_types.py +46 -0
  152. sqlspec/adapters/oracledb/_typing.py +258 -0
  153. sqlspec/adapters/oracledb/_uuid_handlers.cp314-win_amd64.pyd +0 -0
  154. sqlspec/adapters/oracledb/_uuid_handlers.py +163 -0
  155. sqlspec/adapters/oracledb/_vector_handlers.cp314-win_amd64.pyd +0 -0
  156. sqlspec/adapters/oracledb/_vector_handlers.py +228 -0
  157. sqlspec/adapters/oracledb/adk/__init__.py +21 -0
  158. sqlspec/adapters/oracledb/adk/store.py +2453 -0
  159. sqlspec/adapters/oracledb/config.py +575 -0
  160. sqlspec/adapters/oracledb/core.cp314-win_amd64.pyd +0 -0
  161. sqlspec/adapters/oracledb/core.py +820 -0
  162. sqlspec/adapters/oracledb/data_dictionary.py +404 -0
  163. sqlspec/adapters/oracledb/driver.py +1277 -0
  164. sqlspec/adapters/oracledb/events/__init__.py +16 -0
  165. sqlspec/adapters/oracledb/events/_hub.py +345 -0
  166. sqlspec/adapters/oracledb/events/backend.py +300 -0
  167. sqlspec/adapters/oracledb/events/store.py +420 -0
  168. sqlspec/adapters/oracledb/litestar/__init__.py +5 -0
  169. sqlspec/adapters/oracledb/litestar/store.py +781 -0
  170. sqlspec/adapters/oracledb/migrations.py +539 -0
  171. sqlspec/adapters/oracledb/type_converter.cp314-win_amd64.pyd +0 -0
  172. sqlspec/adapters/oracledb/type_converter.py +211 -0
  173. sqlspec/adapters/psqlpy/__init__.py +18 -0
  174. sqlspec/adapters/psqlpy/_typing.py +121 -0
  175. sqlspec/adapters/psqlpy/adk/__init__.py +5 -0
  176. sqlspec/adapters/psqlpy/adk/store.py +591 -0
  177. sqlspec/adapters/psqlpy/config.py +376 -0
  178. sqlspec/adapters/psqlpy/core.cp314-win_amd64.pyd +0 -0
  179. sqlspec/adapters/psqlpy/core.py +694 -0
  180. sqlspec/adapters/psqlpy/data_dictionary.py +121 -0
  181. sqlspec/adapters/psqlpy/driver.py +411 -0
  182. sqlspec/adapters/psqlpy/events/__init__.py +6 -0
  183. sqlspec/adapters/psqlpy/events/_hub.py +204 -0
  184. sqlspec/adapters/psqlpy/events/backend.py +210 -0
  185. sqlspec/adapters/psqlpy/events/store.py +20 -0
  186. sqlspec/adapters/psqlpy/litestar/__init__.py +5 -0
  187. sqlspec/adapters/psqlpy/litestar/store.py +270 -0
  188. sqlspec/adapters/psqlpy/type_converter.cp314-win_amd64.pyd +0 -0
  189. sqlspec/adapters/psqlpy/type_converter.py +113 -0
  190. sqlspec/adapters/psycopg/__init__.py +38 -0
  191. sqlspec/adapters/psycopg/_typing.py +218 -0
  192. sqlspec/adapters/psycopg/adk/__init__.py +10 -0
  193. sqlspec/adapters/psycopg/adk/store.py +1106 -0
  194. sqlspec/adapters/psycopg/config.py +695 -0
  195. sqlspec/adapters/psycopg/core.cp314-win_amd64.pyd +0 -0
  196. sqlspec/adapters/psycopg/core.py +520 -0
  197. sqlspec/adapters/psycopg/data_dictionary.py +278 -0
  198. sqlspec/adapters/psycopg/driver.py +1033 -0
  199. sqlspec/adapters/psycopg/events/__init__.py +20 -0
  200. sqlspec/adapters/psycopg/events/_hub.py +388 -0
  201. sqlspec/adapters/psycopg/events/backend.py +398 -0
  202. sqlspec/adapters/psycopg/events/store.py +42 -0
  203. sqlspec/adapters/psycopg/litestar/__init__.py +5 -0
  204. sqlspec/adapters/psycopg/litestar/store.py +554 -0
  205. sqlspec/adapters/psycopg/type_converter.cp314-win_amd64.pyd +0 -0
  206. sqlspec/adapters/psycopg/type_converter.py +93 -0
  207. sqlspec/adapters/pymysql/__init__.py +21 -0
  208. sqlspec/adapters/pymysql/_typing.py +92 -0
  209. sqlspec/adapters/pymysql/adk/__init__.py +5 -0
  210. sqlspec/adapters/pymysql/adk/store.py +657 -0
  211. sqlspec/adapters/pymysql/config.py +176 -0
  212. sqlspec/adapters/pymysql/core.cp314-win_amd64.pyd +0 -0
  213. sqlspec/adapters/pymysql/core.py +469 -0
  214. sqlspec/adapters/pymysql/data_dictionary.py +120 -0
  215. sqlspec/adapters/pymysql/driver.py +271 -0
  216. sqlspec/adapters/pymysql/events/__init__.py +5 -0
  217. sqlspec/adapters/pymysql/events/store.py +50 -0
  218. sqlspec/adapters/pymysql/litestar/__init__.py +5 -0
  219. sqlspec/adapters/pymysql/litestar/store.py +232 -0
  220. sqlspec/adapters/pymysql/pool.cp314-win_amd64.pyd +0 -0
  221. sqlspec/adapters/pymysql/pool.py +184 -0
  222. sqlspec/adapters/spanner/__init__.py +33 -0
  223. sqlspec/adapters/spanner/_typing.py +102 -0
  224. sqlspec/adapters/spanner/adk/__init__.py +5 -0
  225. sqlspec/adapters/spanner/adk/store.py +758 -0
  226. sqlspec/adapters/spanner/config.py +355 -0
  227. sqlspec/adapters/spanner/core.cp314-win_amd64.pyd +0 -0
  228. sqlspec/adapters/spanner/core.py +263 -0
  229. sqlspec/adapters/spanner/data_dictionary.py +120 -0
  230. sqlspec/adapters/spanner/driver.py +407 -0
  231. sqlspec/adapters/spanner/events/__init__.py +5 -0
  232. sqlspec/adapters/spanner/events/store.py +187 -0
  233. sqlspec/adapters/spanner/litestar/__init__.py +5 -0
  234. sqlspec/adapters/spanner/litestar/store.py +291 -0
  235. sqlspec/adapters/spanner/type_converter.cp314-win_amd64.pyd +0 -0
  236. sqlspec/adapters/spanner/type_converter.py +342 -0
  237. sqlspec/adapters/sqlite/__init__.py +19 -0
  238. sqlspec/adapters/sqlite/_typing.py +123 -0
  239. sqlspec/adapters/sqlite/adk/__init__.py +5 -0
  240. sqlspec/adapters/sqlite/adk/store.py +992 -0
  241. sqlspec/adapters/sqlite/config.py +240 -0
  242. sqlspec/adapters/sqlite/core.cp314-win_amd64.pyd +0 -0
  243. sqlspec/adapters/sqlite/core.py +357 -0
  244. sqlspec/adapters/sqlite/data_dictionary.py +198 -0
  245. sqlspec/adapters/sqlite/driver.py +527 -0
  246. sqlspec/adapters/sqlite/events/__init__.py +5 -0
  247. sqlspec/adapters/sqlite/events/store.py +20 -0
  248. sqlspec/adapters/sqlite/litestar/__init__.py +5 -0
  249. sqlspec/adapters/sqlite/litestar/store.py +316 -0
  250. sqlspec/adapters/sqlite/pool.cp314-win_amd64.pyd +0 -0
  251. sqlspec/adapters/sqlite/pool.py +237 -0
  252. sqlspec/adapters/sqlite/type_converter.cp314-win_amd64.pyd +0 -0
  253. sqlspec/adapters/sqlite/type_converter.py +114 -0
  254. sqlspec/base.py +832 -0
  255. sqlspec/builder/__init__.py +181 -0
  256. sqlspec/builder/_base.cp314-win_amd64.pyd +0 -0
  257. sqlspec/builder/_base.py +1071 -0
  258. sqlspec/builder/_column.cp314-win_amd64.pyd +0 -0
  259. sqlspec/builder/_column.py +521 -0
  260. sqlspec/builder/_ddl.cp314-win_amd64.pyd +0 -0
  261. sqlspec/builder/_ddl.py +1691 -0
  262. sqlspec/builder/_delete.cp314-win_amd64.pyd +0 -0
  263. sqlspec/builder/_delete.py +95 -0
  264. sqlspec/builder/_dml.cp314-win_amd64.pyd +0 -0
  265. sqlspec/builder/_dml.py +386 -0
  266. sqlspec/builder/_explain.cp314-win_amd64.pyd +0 -0
  267. sqlspec/builder/_explain.py +579 -0
  268. sqlspec/builder/_expression_wrappers.cp314-win_amd64.pyd +0 -0
  269. sqlspec/builder/_expression_wrappers.py +46 -0
  270. sqlspec/builder/_factory.cp314-win_amd64.pyd +0 -0
  271. sqlspec/builder/_factory.py +1884 -0
  272. sqlspec/builder/_insert.cp314-win_amd64.pyd +0 -0
  273. sqlspec/builder/_insert.py +405 -0
  274. sqlspec/builder/_join.cp314-win_amd64.pyd +0 -0
  275. sqlspec/builder/_join.py +489 -0
  276. sqlspec/builder/_merge.cp314-win_amd64.pyd +0 -0
  277. sqlspec/builder/_merge.py +823 -0
  278. sqlspec/builder/_parsing_utils.cp314-win_amd64.pyd +0 -0
  279. sqlspec/builder/_parsing_utils.py +295 -0
  280. sqlspec/builder/_select.cp314-win_amd64.pyd +0 -0
  281. sqlspec/builder/_select.py +1666 -0
  282. sqlspec/builder/_temporal.cp314-win_amd64.pyd +0 -0
  283. sqlspec/builder/_temporal.py +167 -0
  284. sqlspec/builder/_update.cp314-win_amd64.pyd +0 -0
  285. sqlspec/builder/_update.py +173 -0
  286. sqlspec/builder/_vector_distance.cp314-win_amd64.pyd +0 -0
  287. sqlspec/builder/_vector_distance.py +330 -0
  288. sqlspec/cli.py +1095 -0
  289. sqlspec/config.py +2383 -0
  290. sqlspec/core/__init__.py +372 -0
  291. sqlspec/core/_correlation.cp314-win_amd64.pyd +0 -0
  292. sqlspec/core/_correlation.py +176 -0
  293. sqlspec/core/_pagination.py +42 -0
  294. sqlspec/core/_pool.cp314-win_amd64.pyd +0 -0
  295. sqlspec/core/_pool.py +76 -0
  296. sqlspec/core/cache.cp314-win_amd64.pyd +0 -0
  297. sqlspec/core/cache.py +1085 -0
  298. sqlspec/core/compiler.cp314-win_amd64.pyd +0 -0
  299. sqlspec/core/compiler.py +1090 -0
  300. sqlspec/core/config_runtime.cp314-win_amd64.pyd +0 -0
  301. sqlspec/core/config_runtime.py +174 -0
  302. sqlspec/core/explain.cp314-win_amd64.pyd +0 -0
  303. sqlspec/core/explain.py +275 -0
  304. sqlspec/core/filters.cp314-win_amd64.pyd +0 -0
  305. sqlspec/core/filters.py +969 -0
  306. sqlspec/core/hashing.cp314-win_amd64.pyd +0 -0
  307. sqlspec/core/hashing.py +266 -0
  308. sqlspec/core/metrics.cp314-win_amd64.pyd +0 -0
  309. sqlspec/core/metrics.py +83 -0
  310. sqlspec/core/parameters/__init__.py +72 -0
  311. sqlspec/core/parameters/_alignment.cp314-win_amd64.pyd +0 -0
  312. sqlspec/core/parameters/_alignment.py +283 -0
  313. sqlspec/core/parameters/_converter.cp314-win_amd64.pyd +0 -0
  314. sqlspec/core/parameters/_converter.py +554 -0
  315. sqlspec/core/parameters/_processor.cp314-win_amd64.pyd +0 -0
  316. sqlspec/core/parameters/_processor.py +1182 -0
  317. sqlspec/core/parameters/_registry.cp314-win_amd64.pyd +0 -0
  318. sqlspec/core/parameters/_registry.py +206 -0
  319. sqlspec/core/parameters/_transformers.cp314-win_amd64.pyd +0 -0
  320. sqlspec/core/parameters/_transformers.py +324 -0
  321. sqlspec/core/parameters/_types.cp314-win_amd64.pyd +0 -0
  322. sqlspec/core/parameters/_types.py +536 -0
  323. sqlspec/core/parameters/_validator.cp314-win_amd64.pyd +0 -0
  324. sqlspec/core/parameters/_validator.py +171 -0
  325. sqlspec/core/pipeline.cp314-win_amd64.pyd +0 -0
  326. sqlspec/core/pipeline.py +333 -0
  327. sqlspec/core/query_modifiers.cp314-win_amd64.pyd +0 -0
  328. sqlspec/core/query_modifiers.py +508 -0
  329. sqlspec/core/result/__init__.py +25 -0
  330. sqlspec/core/result/_base.cp314-win_amd64.pyd +0 -0
  331. sqlspec/core/result/_base.py +1232 -0
  332. sqlspec/core/result/_io.cp314-win_amd64.pyd +0 -0
  333. sqlspec/core/result/_io.py +28 -0
  334. sqlspec/core/splitter.cp314-win_amd64.pyd +0 -0
  335. sqlspec/core/splitter.py +1021 -0
  336. sqlspec/core/sqlcommenter.cp314-win_amd64.pyd +0 -0
  337. sqlspec/core/sqlcommenter.py +249 -0
  338. sqlspec/core/stack.cp314-win_amd64.pyd +0 -0
  339. sqlspec/core/stack.py +163 -0
  340. sqlspec/core/statement.cp314-win_amd64.pyd +0 -0
  341. sqlspec/core/statement.py +1865 -0
  342. sqlspec/core/type_converter.cp314-win_amd64.pyd +0 -0
  343. sqlspec/core/type_converter.py +340 -0
  344. sqlspec/data_dictionary/__init__.py +22 -0
  345. sqlspec/data_dictionary/_loader.cp314-win_amd64.pyd +0 -0
  346. sqlspec/data_dictionary/_loader.py +138 -0
  347. sqlspec/data_dictionary/_registry.cp314-win_amd64.pyd +0 -0
  348. sqlspec/data_dictionary/_registry.py +74 -0
  349. sqlspec/data_dictionary/_types.cp314-win_amd64.pyd +0 -0
  350. sqlspec/data_dictionary/_types.py +121 -0
  351. sqlspec/data_dictionary/dialects/__init__.py +21 -0
  352. sqlspec/data_dictionary/dialects/bigquery.cp314-win_amd64.pyd +0 -0
  353. sqlspec/data_dictionary/dialects/bigquery.py +81 -0
  354. sqlspec/data_dictionary/dialects/cockroachdb.cp314-win_amd64.pyd +0 -0
  355. sqlspec/data_dictionary/dialects/cockroachdb.py +54 -0
  356. sqlspec/data_dictionary/dialects/duckdb.cp314-win_amd64.pyd +0 -0
  357. sqlspec/data_dictionary/dialects/duckdb.py +47 -0
  358. sqlspec/data_dictionary/dialects/mysql.cp314-win_amd64.pyd +0 -0
  359. sqlspec/data_dictionary/dialects/mysql.py +53 -0
  360. sqlspec/data_dictionary/dialects/oracle.cp314-win_amd64.pyd +0 -0
  361. sqlspec/data_dictionary/dialects/oracle.py +197 -0
  362. sqlspec/data_dictionary/dialects/postgres.cp314-win_amd64.pyd +0 -0
  363. sqlspec/data_dictionary/dialects/postgres.py +69 -0
  364. sqlspec/data_dictionary/dialects/spanner.cp314-win_amd64.pyd +0 -0
  365. sqlspec/data_dictionary/dialects/spanner.py +37 -0
  366. sqlspec/data_dictionary/dialects/sqlite.cp314-win_amd64.pyd +0 -0
  367. sqlspec/data_dictionary/dialects/sqlite.py +59 -0
  368. sqlspec/data_dictionary/sql/.gitkeep +0 -0
  369. sqlspec/data_dictionary/sql/bigquery/columns.sql +23 -0
  370. sqlspec/data_dictionary/sql/bigquery/foreign_keys.sql +34 -0
  371. sqlspec/data_dictionary/sql/bigquery/indexes.sql +19 -0
  372. sqlspec/data_dictionary/sql/bigquery/tables.sql +33 -0
  373. sqlspec/data_dictionary/sql/bigquery/version.sql +3 -0
  374. sqlspec/data_dictionary/sql/cockroachdb/columns.sql +34 -0
  375. sqlspec/data_dictionary/sql/cockroachdb/foreign_keys.sql +40 -0
  376. sqlspec/data_dictionary/sql/cockroachdb/indexes.sql +32 -0
  377. sqlspec/data_dictionary/sql/cockroachdb/tables.sql +44 -0
  378. sqlspec/data_dictionary/sql/cockroachdb/version.sql +3 -0
  379. sqlspec/data_dictionary/sql/duckdb/columns.sql +23 -0
  380. sqlspec/data_dictionary/sql/duckdb/foreign_keys.sql +36 -0
  381. sqlspec/data_dictionary/sql/duckdb/indexes.sql +19 -0
  382. sqlspec/data_dictionary/sql/duckdb/tables.sql +38 -0
  383. sqlspec/data_dictionary/sql/duckdb/version.sql +3 -0
  384. sqlspec/data_dictionary/sql/mysql/columns.sql +23 -0
  385. sqlspec/data_dictionary/sql/mysql/foreign_keys.sql +28 -0
  386. sqlspec/data_dictionary/sql/mysql/indexes.sql +26 -0
  387. sqlspec/data_dictionary/sql/mysql/tables.sql +33 -0
  388. sqlspec/data_dictionary/sql/mysql/version.sql +3 -0
  389. sqlspec/data_dictionary/sql/oracle/columns.sql +23 -0
  390. sqlspec/data_dictionary/sql/oracle/foreign_keys.sql +48 -0
  391. sqlspec/data_dictionary/sql/oracle/indexes.sql +44 -0
  392. sqlspec/data_dictionary/sql/oracle/tables.sql +25 -0
  393. sqlspec/data_dictionary/sql/oracle/version.sql +20 -0
  394. sqlspec/data_dictionary/sql/postgres/columns.sql +34 -0
  395. sqlspec/data_dictionary/sql/postgres/foreign_keys.sql +40 -0
  396. sqlspec/data_dictionary/sql/postgres/indexes.sql +56 -0
  397. sqlspec/data_dictionary/sql/postgres/tables.sql +44 -0
  398. sqlspec/data_dictionary/sql/postgres/version.sql +3 -0
  399. sqlspec/data_dictionary/sql/spanner/columns.sql +23 -0
  400. sqlspec/data_dictionary/sql/spanner/foreign_keys.sql +70 -0
  401. sqlspec/data_dictionary/sql/spanner/indexes.sql +30 -0
  402. sqlspec/data_dictionary/sql/spanner/tables.sql +9 -0
  403. sqlspec/data_dictionary/sql/spanner/version.sql +3 -0
  404. sqlspec/data_dictionary/sql/sqlite/columns.sql +23 -0
  405. sqlspec/data_dictionary/sql/sqlite/foreign_keys.sql +22 -0
  406. sqlspec/data_dictionary/sql/sqlite/indexes.sql +7 -0
  407. sqlspec/data_dictionary/sql/sqlite/tables.sql +28 -0
  408. sqlspec/data_dictionary/sql/sqlite/version.sql +3 -0
  409. sqlspec/dialects/__init__.py +22 -0
  410. sqlspec/dialects/_compat.cp314-win_amd64.pyd +0 -0
  411. sqlspec/dialects/_compat.py +14 -0
  412. sqlspec/dialects/postgres/__init__.py +9 -0
  413. sqlspec/dialects/postgres/_generators.cp314-win_amd64.pyd +0 -0
  414. sqlspec/dialects/postgres/_generators.py +57 -0
  415. sqlspec/dialects/postgres/_operators.cp314-win_amd64.pyd +0 -0
  416. sqlspec/dialects/postgres/_operators.py +81 -0
  417. sqlspec/dialects/postgres/_paradedb.py +50 -0
  418. sqlspec/dialects/postgres/_pgvector.py +36 -0
  419. sqlspec/dialects/spanner/__init__.py +6 -0
  420. sqlspec/dialects/spanner/_generators.cp314-win_amd64.pyd +0 -0
  421. sqlspec/dialects/spanner/_generators.py +206 -0
  422. sqlspec/dialects/spanner/_spangres.py +77 -0
  423. sqlspec/dialects/spanner/_spanner.py +179 -0
  424. sqlspec/driver/__init__.py +49 -0
  425. sqlspec/driver/_async.cp314-win_amd64.pyd +0 -0
  426. sqlspec/driver/_async.py +1830 -0
  427. sqlspec/driver/_common.cp314-win_amd64.pyd +0 -0
  428. sqlspec/driver/_common.py +2292 -0
  429. sqlspec/driver/_exception_handler.cp314-win_amd64.pyd +0 -0
  430. sqlspec/driver/_exception_handler.py +108 -0
  431. sqlspec/driver/_query_cache.cp314-win_amd64.pyd +0 -0
  432. sqlspec/driver/_query_cache.py +96 -0
  433. sqlspec/driver/_sql_helpers.cp314-win_amd64.pyd +0 -0
  434. sqlspec/driver/_sql_helpers.py +139 -0
  435. sqlspec/driver/_storage_helpers.cp314-win_amd64.pyd +0 -0
  436. sqlspec/driver/_storage_helpers.py +153 -0
  437. sqlspec/driver/_sync.cp314-win_amd64.pyd +0 -0
  438. sqlspec/driver/_sync.py +1817 -0
  439. sqlspec/exceptions.cp314-win_amd64.pyd +0 -0
  440. sqlspec/exceptions.py +480 -0
  441. sqlspec/extensions/__init__.py +0 -0
  442. sqlspec/extensions/adk/__init__.py +84 -0
  443. sqlspec/extensions/adk/_config_utils.py +199 -0
  444. sqlspec/extensions/adk/_types.cp314-win_amd64.pyd +0 -0
  445. sqlspec/extensions/adk/_types.py +41 -0
  446. sqlspec/extensions/adk/artifact/__init__.py +57 -0
  447. sqlspec/extensions/adk/artifact/_types.cp314-win_amd64.pyd +0 -0
  448. sqlspec/extensions/adk/artifact/_types.py +32 -0
  449. sqlspec/extensions/adk/artifact/service.py +508 -0
  450. sqlspec/extensions/adk/artifact/store.py +361 -0
  451. sqlspec/extensions/adk/converters.py +212 -0
  452. sqlspec/extensions/adk/memory/__init__.py +69 -0
  453. sqlspec/extensions/adk/memory/_types.cp314-win_amd64.pyd +0 -0
  454. sqlspec/extensions/adk/memory/_types.py +30 -0
  455. sqlspec/extensions/adk/memory/converters.py +225 -0
  456. sqlspec/extensions/adk/memory/service.py +316 -0
  457. sqlspec/extensions/adk/memory/store.py +525 -0
  458. sqlspec/extensions/adk/migrations/0001_create_adk_tables.py +184 -0
  459. sqlspec/extensions/adk/migrations/__init__.py +0 -0
  460. sqlspec/extensions/adk/service.py +279 -0
  461. sqlspec/extensions/adk/store.py +590 -0
  462. sqlspec/extensions/events/__init__.py +51 -0
  463. sqlspec/extensions/events/_channel.py +703 -0
  464. sqlspec/extensions/events/_hints.cp314-win_amd64.pyd +0 -0
  465. sqlspec/extensions/events/_hints.py +45 -0
  466. sqlspec/extensions/events/_models.py +23 -0
  467. sqlspec/extensions/events/_payload.cp314-win_amd64.pyd +0 -0
  468. sqlspec/extensions/events/_payload.py +69 -0
  469. sqlspec/extensions/events/_protocols.py +134 -0
  470. sqlspec/extensions/events/_queue.py +462 -0
  471. sqlspec/extensions/events/_store.py +209 -0
  472. sqlspec/extensions/events/migrations/0001_create_event_queue.py +59 -0
  473. sqlspec/extensions/events/migrations/__init__.py +3 -0
  474. sqlspec/extensions/fastapi/__init__.py +22 -0
  475. sqlspec/extensions/fastapi/extension.py +391 -0
  476. sqlspec/extensions/fastapi/providers.cp314-win_amd64.pyd +0 -0
  477. sqlspec/extensions/fastapi/providers.py +712 -0
  478. sqlspec/extensions/flask/__init__.py +38 -0
  479. sqlspec/extensions/flask/_state.py +87 -0
  480. sqlspec/extensions/flask/_utils.py +71 -0
  481. sqlspec/extensions/flask/extension.py +539 -0
  482. sqlspec/extensions/litestar/__init__.py +31 -0
  483. sqlspec/extensions/litestar/_utils.py +52 -0
  484. sqlspec/extensions/litestar/channels.py +165 -0
  485. sqlspec/extensions/litestar/cli.py +102 -0
  486. sqlspec/extensions/litestar/config.py +90 -0
  487. sqlspec/extensions/litestar/handlers.py +316 -0
  488. sqlspec/extensions/litestar/migrations/0001_create_session_table.py +137 -0
  489. sqlspec/extensions/litestar/migrations/__init__.py +3 -0
  490. sqlspec/extensions/litestar/plugin.py +1066 -0
  491. sqlspec/extensions/litestar/providers.cp314-win_amd64.pyd +0 -0
  492. sqlspec/extensions/litestar/providers.py +784 -0
  493. sqlspec/extensions/litestar/store.py +298 -0
  494. sqlspec/extensions/otel/__init__.py +58 -0
  495. sqlspec/extensions/prometheus/__init__.py +113 -0
  496. sqlspec/extensions/sanic/__init__.py +19 -0
  497. sqlspec/extensions/sanic/_state.py +43 -0
  498. sqlspec/extensions/sanic/_utils.py +127 -0
  499. sqlspec/extensions/sanic/extension.py +647 -0
  500. sqlspec/extensions/starlette/__init__.py +22 -0
  501. sqlspec/extensions/starlette/_state.py +42 -0
  502. sqlspec/extensions/starlette/_utils.py +96 -0
  503. sqlspec/extensions/starlette/extension.py +374 -0
  504. sqlspec/extensions/starlette/middleware.py +281 -0
  505. sqlspec/loader.cp314-win_amd64.pyd +0 -0
  506. sqlspec/loader.py +727 -0
  507. sqlspec/migrations/__init__.py +39 -0
  508. sqlspec/migrations/base.cp314-win_amd64.pyd +0 -0
  509. sqlspec/migrations/base.py +862 -0
  510. sqlspec/migrations/commands.py +2151 -0
  511. sqlspec/migrations/context.cp314-win_amd64.pyd +0 -0
  512. sqlspec/migrations/context.py +157 -0
  513. sqlspec/migrations/fix.cp314-win_amd64.pyd +0 -0
  514. sqlspec/migrations/fix.py +204 -0
  515. sqlspec/migrations/loaders.cp314-win_amd64.pyd +0 -0
  516. sqlspec/migrations/loaders.py +443 -0
  517. sqlspec/migrations/runner.cp314-win_amd64.pyd +0 -0
  518. sqlspec/migrations/runner.py +1195 -0
  519. sqlspec/migrations/squash.cp314-win_amd64.pyd +0 -0
  520. sqlspec/migrations/squash.py +490 -0
  521. sqlspec/migrations/templates.cp314-win_amd64.pyd +0 -0
  522. sqlspec/migrations/templates.py +234 -0
  523. sqlspec/migrations/tracker.cp314-win_amd64.pyd +0 -0
  524. sqlspec/migrations/tracker.py +792 -0
  525. sqlspec/migrations/utils.cp314-win_amd64.pyd +0 -0
  526. sqlspec/migrations/utils.py +256 -0
  527. sqlspec/migrations/validation.cp314-win_amd64.pyd +0 -0
  528. sqlspec/migrations/validation.py +359 -0
  529. sqlspec/migrations/version.cp314-win_amd64.pyd +0 -0
  530. sqlspec/migrations/version.py +446 -0
  531. sqlspec/observability/__init__.py +57 -0
  532. sqlspec/observability/_common.cp314-win_amd64.pyd +0 -0
  533. sqlspec/observability/_common.py +77 -0
  534. sqlspec/observability/_config.cp314-win_amd64.pyd +0 -0
  535. sqlspec/observability/_config.py +364 -0
  536. sqlspec/observability/_diagnostics.cp314-win_amd64.pyd +0 -0
  537. sqlspec/observability/_diagnostics.py +74 -0
  538. sqlspec/observability/_dispatcher.cp314-win_amd64.pyd +0 -0
  539. sqlspec/observability/_dispatcher.py +200 -0
  540. sqlspec/observability/_formatters/__init__.py +13 -0
  541. sqlspec/observability/_formatters/_aws.cp314-win_amd64.pyd +0 -0
  542. sqlspec/observability/_formatters/_aws.py +102 -0
  543. sqlspec/observability/_formatters/_azure.cp314-win_amd64.pyd +0 -0
  544. sqlspec/observability/_formatters/_azure.py +96 -0
  545. sqlspec/observability/_formatters/_base.cp314-win_amd64.pyd +0 -0
  546. sqlspec/observability/_formatters/_base.py +57 -0
  547. sqlspec/observability/_formatters/_gcp.cp314-win_amd64.pyd +0 -0
  548. sqlspec/observability/_formatters/_gcp.py +131 -0
  549. sqlspec/observability/_formatting.py +58 -0
  550. sqlspec/observability/_observer.cp314-win_amd64.pyd +0 -0
  551. sqlspec/observability/_observer.py +361 -0
  552. sqlspec/observability/_runtime.cp314-win_amd64.pyd +0 -0
  553. sqlspec/observability/_runtime.py +461 -0
  554. sqlspec/observability/_sampling.cp314-win_amd64.pyd +0 -0
  555. sqlspec/observability/_sampling.py +188 -0
  556. sqlspec/observability/_spans.cp314-win_amd64.pyd +0 -0
  557. sqlspec/observability/_spans.py +161 -0
  558. sqlspec/protocols.py +955 -0
  559. sqlspec/py.typed +0 -0
  560. sqlspec/service.py +433 -0
  561. sqlspec/storage/__init__.py +48 -0
  562. sqlspec/storage/_arrow_payload.py +68 -0
  563. sqlspec/storage/_paths.cp314-win_amd64.pyd +0 -0
  564. sqlspec/storage/_paths.py +58 -0
  565. sqlspec/storage/_utils.py +46 -0
  566. sqlspec/storage/backends/__init__.py +1 -0
  567. sqlspec/storage/backends/base.cp314-win_amd64.pyd +0 -0
  568. sqlspec/storage/backends/base.py +374 -0
  569. sqlspec/storage/backends/fsspec.py +574 -0
  570. sqlspec/storage/backends/local.py +468 -0
  571. sqlspec/storage/backends/obstore.py +956 -0
  572. sqlspec/storage/errors.cp314-win_amd64.pyd +0 -0
  573. sqlspec/storage/errors.py +102 -0
  574. sqlspec/storage/pipeline.cp314-win_amd64.pyd +0 -0
  575. sqlspec/storage/pipeline.py +628 -0
  576. sqlspec/storage/registry.cp314-win_amd64.pyd +0 -0
  577. sqlspec/storage/registry.py +329 -0
  578. sqlspec/typing.py +405 -0
  579. sqlspec/utils/__init__.py +7 -0
  580. sqlspec/utils/arrow_helpers.py +384 -0
  581. sqlspec/utils/config_tools.cp314-win_amd64.pyd +0 -0
  582. sqlspec/utils/config_tools.py +314 -0
  583. sqlspec/utils/correlation.cp314-win_amd64.pyd +0 -0
  584. sqlspec/utils/correlation.py +134 -0
  585. sqlspec/utils/deprecation.cp314-win_amd64.pyd +0 -0
  586. sqlspec/utils/deprecation.py +157 -0
  587. sqlspec/utils/dispatch.cp314-win_amd64.pyd +0 -0
  588. sqlspec/utils/dispatch.py +101 -0
  589. sqlspec/utils/fixtures.cp314-win_amd64.pyd +0 -0
  590. sqlspec/utils/fixtures.py +260 -0
  591. sqlspec/utils/logging.cp314-win_amd64.pyd +0 -0
  592. sqlspec/utils/logging.py +251 -0
  593. sqlspec/utils/module_loader.py +306 -0
  594. sqlspec/utils/portal.cp314-win_amd64.pyd +0 -0
  595. sqlspec/utils/portal.py +377 -0
  596. sqlspec/utils/schema.cp314-win_amd64.pyd +0 -0
  597. sqlspec/utils/schema.py +1040 -0
  598. sqlspec/utils/serializers/__init__.py +30 -0
  599. sqlspec/utils/serializers/_json.cp314-win_amd64.pyd +0 -0
  600. sqlspec/utils/serializers/_json.py +415 -0
  601. sqlspec/utils/serializers/_numpy.cp314-win_amd64.pyd +0 -0
  602. sqlspec/utils/serializers/_numpy.py +65 -0
  603. sqlspec/utils/serializers/_schema.cp314-win_amd64.pyd +0 -0
  604. sqlspec/utils/serializers/_schema.py +285 -0
  605. sqlspec/utils/singleton.cp314-win_amd64.pyd +0 -0
  606. sqlspec/utils/singleton.py +41 -0
  607. sqlspec/utils/sync_tools.cp314-win_amd64.pyd +0 -0
  608. sqlspec/utils/sync_tools.py +316 -0
  609. sqlspec/utils/text.cp314-win_amd64.pyd +0 -0
  610. sqlspec/utils/text.py +109 -0
  611. sqlspec/utils/type_converters.cp314-win_amd64.pyd +0 -0
  612. sqlspec/utils/type_converters.py +216 -0
  613. sqlspec/utils/type_guards.cp314-win_amd64.pyd +0 -0
  614. sqlspec/utils/type_guards.py +1508 -0
  615. sqlspec/utils/uuids.cp314-win_amd64.pyd +0 -0
  616. sqlspec/utils/uuids.py +241 -0
  617. sqlspec-0.47.0.dist-info/METADATA +202 -0
  618. sqlspec-0.47.0.dist-info/RECORD +621 -0
  619. sqlspec-0.47.0.dist-info/WHEEL +4 -0
  620. sqlspec-0.47.0.dist-info/entry_points.txt +6 -0
  621. sqlspec-0.47.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,516 @@
1
+ """MysqlConnector MySQL driver implementation.
2
+
3
+ Provides MySQL/MariaDB connectivity with parameter style conversion,
4
+ type coercion, error handling, and transaction management.
5
+ """
6
+
7
+ from collections.abc import Sized
8
+ from typing import TYPE_CHECKING, Any, Final, cast
9
+
10
+ import mysql.connector
11
+ from mysql.connector.constants import FieldType
12
+
13
+ from sqlspec.adapters.mysqlconnector.core import (
14
+ build_insert_statement,
15
+ collect_rows,
16
+ create_mapped_exception,
17
+ default_statement_config,
18
+ detect_json_columns_from_description,
19
+ driver_profile,
20
+ format_identifier,
21
+ normalize_execute_many_parameters,
22
+ normalize_execute_parameters,
23
+ normalize_lastrowid,
24
+ resolve_column_names,
25
+ resolve_many_rowcount,
26
+ resolve_rowcount,
27
+ )
28
+ from sqlspec.adapters.mysqlconnector.data_dictionary import (
29
+ MysqlConnectorAsyncDataDictionary,
30
+ MysqlConnectorSyncDataDictionary,
31
+ )
32
+ from sqlspec.core import ArrowResult, get_cache_config, register_driver_profile
33
+ from sqlspec.driver import (
34
+ AsyncDriverAdapterBase,
35
+ BaseAsyncExceptionHandler,
36
+ BaseSyncExceptionHandler,
37
+ SyncDriverAdapterBase,
38
+ )
39
+ from sqlspec.exceptions import SQLSpecError
40
+ from sqlspec.utils.logging import get_logger
41
+ from sqlspec.utils.serializers import from_json
42
+ from sqlspec.utils.type_guards import supports_json_type
43
+
44
+ if TYPE_CHECKING:
45
+ from collections.abc import Callable
46
+
47
+ from sqlspec.adapters.mysqlconnector._typing import MysqlConnectorAsyncConnection, MysqlConnectorSyncConnection
48
+ from sqlspec.core import SQL, StatementConfig
49
+ from sqlspec.driver import ExecutionResult
50
+ from sqlspec.storage import StorageBridgeJob, StorageDestination, StorageFormat, StorageTelemetry
51
+
52
+ from sqlspec.adapters.mysqlconnector._typing import (
53
+ MysqlConnectorAsyncCursor,
54
+ MysqlConnectorAsyncSessionContext,
55
+ MysqlConnectorSyncCursor,
56
+ MysqlConnectorSyncSessionContext,
57
+ )
58
+
59
+ __all__ = (
60
+ "MysqlConnectorAsyncCursor",
61
+ "MysqlConnectorAsyncDriver",
62
+ "MysqlConnectorAsyncExceptionHandler",
63
+ "MysqlConnectorAsyncSessionContext",
64
+ "MysqlConnectorSyncCursor",
65
+ "MysqlConnectorSyncDriver",
66
+ "MysqlConnectorSyncExceptionHandler",
67
+ "MysqlConnectorSyncSessionContext",
68
+ )
69
+
70
+ logger = get_logger("sqlspec.adapters.mysqlconnector")
71
+
72
+ json_type_value = FieldType.JSON if supports_json_type(FieldType) else None
73
+ MYSQLCONNECTOR_JSON_TYPE_CODES: Final[set[int]] = {json_type_value} if json_type_value is not None else set()
74
+
75
+
76
+ class MysqlConnectorSyncExceptionHandler(BaseSyncExceptionHandler):
77
+ """Context manager for handling mysql-connector sync exceptions."""
78
+
79
+ __slots__ = ()
80
+
81
+ def _handle_exception(self, exc_type: "type[BaseException] | None", exc_val: "BaseException") -> bool:
82
+ if exc_type is None:
83
+ return False
84
+ if issubclass(exc_type, mysql.connector.Error):
85
+ result = create_mapped_exception(exc_val, logger=logger)
86
+ if result is True:
87
+ return True
88
+ self.pending_exception = cast("Exception", result)
89
+ return True
90
+ return False
91
+
92
+
93
+ class MysqlConnectorSyncDriver(SyncDriverAdapterBase):
94
+ """MySQL/MariaDB database driver using mysql-connector sync library."""
95
+
96
+ __slots__ = ("_data_dictionary",)
97
+ dialect = "mysql"
98
+
99
+ def __init__(
100
+ self,
101
+ connection: "MysqlConnectorSyncConnection",
102
+ statement_config: "StatementConfig | None" = None,
103
+ driver_features: "dict[str, Any] | None" = None,
104
+ ) -> None:
105
+ if statement_config is None:
106
+ statement_config = default_statement_config.replace(
107
+ enable_caching=get_cache_config().compiled_cache_enabled
108
+ )
109
+
110
+ super().__init__(connection=connection, statement_config=statement_config, driver_features=driver_features)
111
+ self._data_dictionary: MysqlConnectorSyncDataDictionary | None = None
112
+
113
+ def dispatch_execute(self, cursor: Any, statement: "SQL") -> "ExecutionResult":
114
+ sql, prepared_parameters = self._get_compiled_sql(statement, self.statement_config)
115
+ cursor.execute(sql, normalize_execute_parameters(prepared_parameters))
116
+
117
+ if statement.returns_rows():
118
+ fetched_data = cursor.fetchall()
119
+ description = cursor.description or None
120
+ column_names = resolve_column_names(description)
121
+ json_indexes = detect_json_columns_from_description(description, MYSQLCONNECTOR_JSON_TYPE_CODES)
122
+ deserializer = cast("Callable[[Any], Any]", self.driver_features.get("json_deserializer", from_json))
123
+ rows, column_names, row_format = collect_rows(
124
+ fetched_data, description, json_indexes, deserializer, column_names=column_names, logger=logger
125
+ )
126
+
127
+ return self.create_execution_result(
128
+ cursor,
129
+ selected_data=rows,
130
+ column_names=column_names,
131
+ data_row_count=len(rows),
132
+ is_select_result=True,
133
+ row_format=row_format,
134
+ )
135
+
136
+ affected_rows = resolve_rowcount(cursor)
137
+ last_id = normalize_lastrowid(cursor)
138
+ return self.create_execution_result(cursor, rowcount_override=affected_rows, last_inserted_id=last_id)
139
+
140
+ def dispatch_execute_many(self, cursor: Any, statement: "SQL") -> "ExecutionResult":
141
+ sql, prepared_parameters = self._get_compiled_sql(statement, self.statement_config)
142
+
143
+ prepared_parameters = normalize_execute_many_parameters(prepared_parameters)
144
+ parameter_count = len(prepared_parameters) if isinstance(prepared_parameters, Sized) else None
145
+ cursor.executemany(sql, prepared_parameters)
146
+
147
+ affected_rows = resolve_many_rowcount(cursor, prepared_parameters, fallback_count=parameter_count)
148
+ return self.create_execution_result(cursor, rowcount_override=affected_rows, is_many_result=True)
149
+
150
+ def dispatch_execute_script(self, cursor: Any, statement: "SQL") -> "ExecutionResult":
151
+ sql, prepared_parameters = self._get_compiled_sql(statement, self.statement_config)
152
+ statements = self.split_script_statements(sql, statement.statement_config, strip_trailing_semicolon=True)
153
+
154
+ successful_count = 0
155
+ last_cursor = cursor
156
+
157
+ for stmt in statements:
158
+ cursor.execute(stmt, normalize_execute_parameters(prepared_parameters))
159
+ successful_count += 1
160
+
161
+ return self.create_execution_result(
162
+ last_cursor, statement_count=len(statements), successful_statements=successful_count, is_script_result=True
163
+ )
164
+
165
+ def begin(self) -> None:
166
+ try:
167
+ with MysqlConnectorSyncCursor(self.connection) as cursor:
168
+ cursor.execute("BEGIN")
169
+ except mysql.connector.Error as e:
170
+ msg = f"Failed to begin MySQL transaction: {e}"
171
+ raise SQLSpecError(msg) from e
172
+
173
+ def commit(self) -> None:
174
+ try:
175
+ self.connection.commit()
176
+ except mysql.connector.Error as e:
177
+ msg = f"Failed to commit MySQL transaction: {e}"
178
+ raise SQLSpecError(msg) from e
179
+
180
+ def rollback(self) -> None:
181
+ try:
182
+ self.connection.rollback()
183
+ except mysql.connector.Error as e:
184
+ msg = f"Failed to rollback MySQL transaction: {e}"
185
+ raise SQLSpecError(msg) from e
186
+
187
+ def with_cursor(self, connection: "MysqlConnectorSyncConnection") -> "MysqlConnectorSyncCursor":
188
+ return MysqlConnectorSyncCursor(connection)
189
+
190
+ def handle_database_exceptions(self) -> "MysqlConnectorSyncExceptionHandler":
191
+ return MysqlConnectorSyncExceptionHandler()
192
+
193
+ def select_to_storage(
194
+ self,
195
+ statement: "SQL | str",
196
+ destination: "StorageDestination",
197
+ /,
198
+ *parameters: Any,
199
+ statement_config: "StatementConfig | None" = None,
200
+ partitioner: "dict[str, object] | None" = None,
201
+ format_hint: "StorageFormat | None" = None,
202
+ telemetry: "StorageTelemetry | None" = None,
203
+ **kwargs: Any,
204
+ ) -> "StorageBridgeJob":
205
+ self._require_capability("arrow_export_enabled")
206
+ arrow_result = self.select_to_arrow(statement, *parameters, statement_config=statement_config, **kwargs)
207
+ pipeline = self._storage_pipeline()
208
+ telemetry_payload = self._write_result_to_storage_sync(
209
+ arrow_result, destination, format_hint=format_hint, pipeline=pipeline
210
+ )
211
+ self._attach_partition_telemetry(telemetry_payload, partitioner)
212
+ return self._create_storage_job(telemetry_payload, telemetry)
213
+
214
+ def load_from_arrow(
215
+ self,
216
+ table: str,
217
+ source: "ArrowResult | Any",
218
+ *,
219
+ partitioner: "dict[str, object] | None" = None,
220
+ overwrite: bool = False,
221
+ telemetry: "StorageTelemetry | None" = None,
222
+ ) -> "StorageBridgeJob":
223
+ self._require_capability("arrow_import_enabled")
224
+ arrow_table = self._coerce_arrow_table(source)
225
+ if overwrite:
226
+ statement = f"TRUNCATE TABLE {format_identifier(table)}"
227
+ exc_handler = self.handle_database_exceptions()
228
+ with exc_handler, self.with_cursor(self.connection) as cursor:
229
+ cursor.execute(statement)
230
+ if exc_handler.pending_exception is not None:
231
+ raise exc_handler.pending_exception from None
232
+
233
+ columns, records = self._arrow_table_to_rows(arrow_table)
234
+ if records:
235
+ insert_sql = build_insert_statement(table, columns)
236
+ prepared_records = (
237
+ self.prepare_driver_parameters(records, self.statement_config, is_many=True)
238
+ if self._arrow_table_needs_parameter_preparation(arrow_table)
239
+ else records
240
+ )
241
+ exc_handler = self.handle_database_exceptions()
242
+ with exc_handler, self.with_cursor(self.connection) as cursor:
243
+ cursor.executemany(insert_sql, cast("Any", prepared_records))
244
+ if exc_handler.pending_exception is not None:
245
+ raise exc_handler.pending_exception from None
246
+
247
+ telemetry_payload = self._build_ingest_telemetry(arrow_table)
248
+ telemetry_payload["destination"] = table
249
+ self._attach_partition_telemetry(telemetry_payload, partitioner)
250
+ return self._create_storage_job(telemetry_payload, telemetry)
251
+
252
+ def load_from_storage(
253
+ self,
254
+ table: str,
255
+ source: "StorageDestination",
256
+ *,
257
+ file_format: "StorageFormat",
258
+ partitioner: "dict[str, object] | None" = None,
259
+ overwrite: bool = False,
260
+ ) -> "StorageBridgeJob":
261
+ arrow_table, inbound = self._read_arrow_from_storage_sync(source, file_format=file_format)
262
+ return self.load_from_arrow(table, arrow_table, partitioner=partitioner, overwrite=overwrite, telemetry=inbound)
263
+
264
+ @property
265
+ def data_dictionary(self) -> "MysqlConnectorSyncDataDictionary":
266
+ if self._data_dictionary is None:
267
+ self._data_dictionary = MysqlConnectorSyncDataDictionary()
268
+ return self._data_dictionary
269
+
270
+ def collect_rows(self, cursor: Any, fetched: "list[Any]") -> "tuple[list[Any], list[str], int]":
271
+ """Collect mysql-connector sync rows for the direct execution path."""
272
+ description = cursor.description or None
273
+ column_names = resolve_column_names(description)
274
+ json_indexes = detect_json_columns_from_description(description, MYSQLCONNECTOR_JSON_TYPE_CODES)
275
+ deserializer = cast("Callable[[Any], Any]", self.driver_features.get("json_deserializer", from_json))
276
+ rows, column_names, _row_format = collect_rows(
277
+ fetched, description, json_indexes, deserializer, column_names=column_names, logger=logger
278
+ )
279
+ return rows, column_names, len(rows)
280
+
281
+ def resolve_rowcount(self, cursor: Any) -> int:
282
+ """Resolve rowcount from mysql-connector cursor for the direct execution path."""
283
+ return resolve_rowcount(cursor)
284
+
285
+ def _connection_in_transaction(self) -> bool:
286
+ autocommit = getattr(self.connection, "autocommit", None)
287
+ if autocommit is not None:
288
+ try:
289
+ return not bool(autocommit)
290
+ except Exception:
291
+ return False
292
+ return False
293
+
294
+
295
+ class MysqlConnectorAsyncExceptionHandler(BaseAsyncExceptionHandler):
296
+ """Async context manager for handling mysql-connector exceptions."""
297
+
298
+ __slots__ = ()
299
+
300
+ def _handle_exception(self, exc_type: "type[BaseException] | None", exc_val: "BaseException") -> bool:
301
+ if exc_type is None:
302
+ return False
303
+ if issubclass(exc_type, mysql.connector.Error):
304
+ result = create_mapped_exception(exc_val, logger=logger)
305
+ if result is True:
306
+ return True
307
+ self.pending_exception = cast("Exception", result)
308
+ return True
309
+ return False
310
+
311
+
312
+ class MysqlConnectorAsyncDriver(AsyncDriverAdapterBase):
313
+ """MySQL/MariaDB database driver using mysql-connector async library."""
314
+
315
+ __slots__ = ("_data_dictionary",)
316
+ dialect = "mysql"
317
+
318
+ def __init__(
319
+ self,
320
+ connection: "MysqlConnectorAsyncConnection",
321
+ statement_config: "StatementConfig | None" = None,
322
+ driver_features: "dict[str, Any] | None" = None,
323
+ ) -> None:
324
+ if statement_config is None:
325
+ statement_config = default_statement_config.replace(
326
+ enable_caching=get_cache_config().compiled_cache_enabled
327
+ )
328
+
329
+ super().__init__(connection=connection, statement_config=statement_config, driver_features=driver_features)
330
+ self._data_dictionary: MysqlConnectorAsyncDataDictionary | None = None
331
+
332
+ async def dispatch_execute(self, cursor: Any, statement: "SQL") -> "ExecutionResult":
333
+ sql, prepared_parameters = self._get_compiled_sql(statement, self.statement_config)
334
+ await cursor.execute(sql, normalize_execute_parameters(prepared_parameters))
335
+
336
+ if statement.returns_rows():
337
+ fetched_data = await cursor.fetchall()
338
+ description = cursor.description or None
339
+ column_names = resolve_column_names(description)
340
+ json_indexes = detect_json_columns_from_description(description, MYSQLCONNECTOR_JSON_TYPE_CODES)
341
+ deserializer = cast("Callable[[Any], Any]", self.driver_features.get("json_deserializer", from_json))
342
+ rows, column_names, row_format = collect_rows(
343
+ fetched_data, description, json_indexes, deserializer, column_names=column_names, logger=logger
344
+ )
345
+
346
+ return self.create_execution_result(
347
+ cursor,
348
+ selected_data=rows,
349
+ column_names=column_names,
350
+ data_row_count=len(rows),
351
+ is_select_result=True,
352
+ row_format=row_format,
353
+ )
354
+
355
+ affected_rows = resolve_rowcount(cursor)
356
+ last_id = normalize_lastrowid(cursor)
357
+ return self.create_execution_result(cursor, rowcount_override=affected_rows, last_inserted_id=last_id)
358
+
359
+ async def dispatch_execute_many(self, cursor: Any, statement: "SQL") -> "ExecutionResult":
360
+ sql, prepared_parameters = self._get_compiled_sql(statement, self.statement_config)
361
+
362
+ prepared_parameters = normalize_execute_many_parameters(prepared_parameters)
363
+ parameter_count = len(prepared_parameters) if isinstance(prepared_parameters, Sized) else None
364
+ await cursor.executemany(sql, prepared_parameters)
365
+
366
+ affected_rows = resolve_many_rowcount(cursor, prepared_parameters, fallback_count=parameter_count)
367
+ return self.create_execution_result(cursor, rowcount_override=affected_rows, is_many_result=True)
368
+
369
+ async def dispatch_execute_script(self, cursor: Any, statement: "SQL") -> "ExecutionResult":
370
+ sql, prepared_parameters = self._get_compiled_sql(statement, self.statement_config)
371
+ statements = self.split_script_statements(sql, statement.statement_config, strip_trailing_semicolon=True)
372
+
373
+ successful_count = 0
374
+ last_cursor = cursor
375
+
376
+ for stmt in statements:
377
+ await cursor.execute(stmt, normalize_execute_parameters(prepared_parameters))
378
+ successful_count += 1
379
+
380
+ return self.create_execution_result(
381
+ last_cursor, statement_count=len(statements), successful_statements=successful_count, is_script_result=True
382
+ )
383
+
384
+ async def begin(self) -> None:
385
+ try:
386
+ async with MysqlConnectorAsyncCursor(self.connection) as cursor:
387
+ await cursor.execute("BEGIN")
388
+ except mysql.connector.Error as e:
389
+ msg = f"Failed to begin MySQL transaction: {e}"
390
+ raise SQLSpecError(msg) from e
391
+
392
+ async def commit(self) -> None:
393
+ try:
394
+ await self.connection.commit()
395
+ except mysql.connector.Error as e:
396
+ msg = f"Failed to commit MySQL transaction: {e}"
397
+ raise SQLSpecError(msg) from e
398
+
399
+ async def rollback(self) -> None:
400
+ try:
401
+ await self.connection.rollback()
402
+ except mysql.connector.Error as e:
403
+ msg = f"Failed to rollback MySQL transaction: {e}"
404
+ raise SQLSpecError(msg) from e
405
+
406
+ def with_cursor(self, connection: "MysqlConnectorAsyncConnection") -> "MysqlConnectorAsyncCursor":
407
+ return MysqlConnectorAsyncCursor(connection)
408
+
409
+ def handle_database_exceptions(self) -> "MysqlConnectorAsyncExceptionHandler":
410
+ return MysqlConnectorAsyncExceptionHandler()
411
+
412
+ async def select_to_storage(
413
+ self,
414
+ statement: "SQL | str",
415
+ destination: "StorageDestination",
416
+ /,
417
+ *parameters: Any,
418
+ statement_config: "StatementConfig | None" = None,
419
+ partitioner: "dict[str, object] | None" = None,
420
+ format_hint: "StorageFormat | None" = None,
421
+ telemetry: "StorageTelemetry | None" = None,
422
+ **kwargs: Any,
423
+ ) -> "StorageBridgeJob":
424
+ self._require_capability("arrow_export_enabled")
425
+ arrow_result = await self.select_to_arrow(statement, *parameters, statement_config=statement_config, **kwargs)
426
+ async_pipeline = self._storage_pipeline()
427
+ telemetry_payload = await self._write_result_to_storage_async(
428
+ arrow_result, destination, format_hint=format_hint, pipeline=async_pipeline
429
+ )
430
+ self._attach_partition_telemetry(telemetry_payload, partitioner)
431
+ return self._create_storage_job(telemetry_payload, telemetry)
432
+
433
+ async def load_from_arrow(
434
+ self,
435
+ table: str,
436
+ source: "ArrowResult | Any",
437
+ *,
438
+ partitioner: "dict[str, object] | None" = None,
439
+ overwrite: bool = False,
440
+ telemetry: "StorageTelemetry | None" = None,
441
+ ) -> "StorageBridgeJob":
442
+ self._require_capability("arrow_import_enabled")
443
+ arrow_table = self._coerce_arrow_table(source)
444
+ if overwrite:
445
+ statement = f"TRUNCATE TABLE {format_identifier(table)}"
446
+ exc_handler = self.handle_database_exceptions()
447
+ async with exc_handler, self.with_cursor(self.connection) as cursor:
448
+ await cursor.execute(statement)
449
+ if exc_handler.pending_exception is not None:
450
+ raise exc_handler.pending_exception from None
451
+
452
+ columns, records = self._arrow_table_to_rows(arrow_table)
453
+ if records:
454
+ insert_sql = build_insert_statement(table, columns)
455
+ prepared_records = (
456
+ self.prepare_driver_parameters(records, self.statement_config, is_many=True)
457
+ if self._arrow_table_needs_parameter_preparation(arrow_table)
458
+ else records
459
+ )
460
+ exc_handler = self.handle_database_exceptions()
461
+ async with exc_handler, self.with_cursor(self.connection) as cursor:
462
+ await cursor.executemany(insert_sql, cast("Any", prepared_records))
463
+ if exc_handler.pending_exception is not None:
464
+ raise exc_handler.pending_exception from None
465
+
466
+ telemetry_payload = self._build_ingest_telemetry(arrow_table)
467
+ telemetry_payload["destination"] = table
468
+ self._attach_partition_telemetry(telemetry_payload, partitioner)
469
+ return self._create_storage_job(telemetry_payload, telemetry)
470
+
471
+ async def load_from_storage(
472
+ self,
473
+ table: str,
474
+ source: "StorageDestination",
475
+ *,
476
+ file_format: "StorageFormat",
477
+ partitioner: "dict[str, object] | None" = None,
478
+ overwrite: bool = False,
479
+ ) -> "StorageBridgeJob":
480
+ arrow_table, inbound = await self._read_arrow_from_storage_async(source, file_format=file_format)
481
+ return await self.load_from_arrow(
482
+ table, arrow_table, partitioner=partitioner, overwrite=overwrite, telemetry=inbound
483
+ )
484
+
485
+ @property
486
+ def data_dictionary(self) -> "MysqlConnectorAsyncDataDictionary":
487
+ if self._data_dictionary is None:
488
+ self._data_dictionary = MysqlConnectorAsyncDataDictionary()
489
+ return self._data_dictionary
490
+
491
+ def collect_rows(self, cursor: Any, fetched: "list[Any]") -> "tuple[list[Any], list[str], int]":
492
+ """Collect mysql-connector async rows for the direct execution path."""
493
+ description = cursor.description or None
494
+ column_names = resolve_column_names(description)
495
+ json_indexes = detect_json_columns_from_description(description, MYSQLCONNECTOR_JSON_TYPE_CODES)
496
+ deserializer = cast("Callable[[Any], Any]", self.driver_features.get("json_deserializer", from_json))
497
+ rows, column_names, _row_format = collect_rows(
498
+ fetched, description, json_indexes, deserializer, column_names=column_names, logger=logger
499
+ )
500
+ return rows, column_names, len(rows)
501
+
502
+ def resolve_rowcount(self, cursor: Any) -> int:
503
+ """Resolve rowcount from mysql-connector cursor for the direct execution path."""
504
+ return resolve_rowcount(cursor)
505
+
506
+ def _connection_in_transaction(self) -> bool:
507
+ in_tx = getattr(self.connection, "in_transaction", None)
508
+ if in_tx is not None:
509
+ try:
510
+ return bool(in_tx)
511
+ except Exception:
512
+ return False
513
+ return False
514
+
515
+
516
+ register_driver_profile("mysql-connector", driver_profile)
@@ -0,0 +1,8 @@
1
+ """Events helpers for the MysqlConnector adapter."""
2
+
3
+ from sqlspec.adapters.mysqlconnector.events.store import (
4
+ MysqlConnectorAsyncEventQueueStore,
5
+ MysqlConnectorSyncEventQueueStore,
6
+ )
7
+
8
+ __all__ = ("MysqlConnectorAsyncEventQueueStore", "MysqlConnectorSyncEventQueueStore")
@@ -0,0 +1,98 @@
1
+ """MysqlConnector event queue store with MySQL-specific DDL."""
2
+
3
+ from typing import Any, Final
4
+
5
+ from sqlspec.adapters.mysqlconnector.config import MysqlConnectorAsyncConfig, MysqlConnectorSyncConfig
6
+ from sqlspec.extensions.events import BaseEventQueueStore
7
+
8
+ __all__ = ("MysqlConnectorAsyncEventQueueStore", "MysqlConnectorSyncEventQueueStore")
9
+
10
+ SCHEMA_QUALIFIED_SEGMENTS: Final[int] = 2
11
+
12
+
13
+ def _mysql_column_types() -> "tuple[str, str, str]":
14
+ """Return MySQL-specific column types for the event queue."""
15
+ return "JSON", "JSON", "DATETIME(6)"
16
+
17
+
18
+ def _mysql_timestamp_default() -> str:
19
+ """Return MySQL-specific timestamp default."""
20
+ return "CURRENT_TIMESTAMP(6)"
21
+
22
+
23
+ def _mysql_build_index_sql(store: Any) -> str | None:
24
+ """Build MySQL-specific index SQL that checks for existing indexes.
25
+
26
+ MySQL doesn't support CREATE INDEX IF NOT EXISTS, so we use a workaround
27
+ with information_schema to check if the index already exists.
28
+
29
+ Args:
30
+ store: Event queue store instance with table_name and _index_name().
31
+
32
+ Returns:
33
+ MySQL-specific index creation SQL using prepared statements.
34
+ """
35
+ table_name: str = store.table_name
36
+ segments = table_name.split(".", 1)
37
+
38
+ if len(segments) == SCHEMA_QUALIFIED_SEGMENTS:
39
+ schema = segments[0]
40
+ table = segments[1]
41
+ schema_selector = f"'{schema}'"
42
+ else:
43
+ table = segments[0]
44
+ schema_selector = "DATABASE()"
45
+
46
+ index_name: str = store._index_name()
47
+
48
+ return (
49
+ "SET @sqlspec_events_idx_exists := ("
50
+ "SELECT COUNT(1) FROM information_schema.statistics "
51
+ f"WHERE table_schema = {schema_selector} "
52
+ f"AND table_name = '{table}' "
53
+ f"AND index_name = '{index_name}');"
54
+ "SET @sqlspec_events_idx_stmt := IF(@sqlspec_events_idx_exists = 0, "
55
+ f"'ALTER TABLE {table_name} ADD INDEX {index_name} (channel, status, available_at)', "
56
+ "'SELECT 1');"
57
+ "PREPARE sqlspec_events_stmt FROM @sqlspec_events_idx_stmt;"
58
+ "EXECUTE sqlspec_events_stmt;"
59
+ "DEALLOCATE PREPARE sqlspec_events_stmt;"
60
+ )
61
+
62
+
63
+ class MysqlConnectorSyncEventQueueStore(BaseEventQueueStore[MysqlConnectorSyncConfig]):
64
+ """Queue DDL for mysql-connector synchronous configs.
65
+
66
+ MySQL uses JSON for efficient JSON storage and DATETIME(6) for
67
+ microsecond precision timestamps.
68
+ """
69
+
70
+ __slots__ = ()
71
+
72
+ def _column_types(self) -> "tuple[str, str, str]":
73
+ return _mysql_column_types()
74
+
75
+ def _timestamp_default(self) -> str:
76
+ return _mysql_timestamp_default()
77
+
78
+ def _build_index_sql(self) -> str | None:
79
+ return _mysql_build_index_sql(self)
80
+
81
+
82
+ class MysqlConnectorAsyncEventQueueStore(BaseEventQueueStore[MysqlConnectorAsyncConfig]):
83
+ """Queue DDL for mysql-connector async configs.
84
+
85
+ MySQL uses JSON for efficient JSON storage and DATETIME(6) for
86
+ microsecond precision timestamps.
87
+ """
88
+
89
+ __slots__ = ()
90
+
91
+ def _column_types(self) -> "tuple[str, str, str]":
92
+ return _mysql_column_types()
93
+
94
+ def _timestamp_default(self) -> str:
95
+ return _mysql_timestamp_default()
96
+
97
+ def _build_index_sql(self) -> str | None:
98
+ return _mysql_build_index_sql(self)
@@ -0,0 +1,5 @@
1
+ """Litestar helpers for the MysqlConnector adapter."""
2
+
3
+ from sqlspec.adapters.mysqlconnector.litestar.store import MysqlConnectorAsyncStore, MysqlConnectorSyncStore
4
+
5
+ __all__ = ("MysqlConnectorAsyncStore", "MysqlConnectorSyncStore")