drizzle-orm 0.36.4 → 0.37.0-3f3eb73

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 (482) hide show
  1. package/column-builder.cjs.map +1 -1
  2. package/column-builder.d.cts +4 -3
  3. package/column-builder.d.ts +4 -3
  4. package/column-builder.js.map +1 -1
  5. package/durable-sqlite/driver.cjs +64 -0
  6. package/durable-sqlite/driver.cjs.map +1 -0
  7. package/durable-sqlite/driver.d.cts +9 -0
  8. package/durable-sqlite/driver.d.ts +9 -0
  9. package/durable-sqlite/driver.js +42 -0
  10. package/durable-sqlite/driver.js.map +1 -0
  11. package/durable-sqlite/index.cjs +25 -0
  12. package/durable-sqlite/index.cjs.map +1 -0
  13. package/durable-sqlite/index.d.cts +2 -0
  14. package/durable-sqlite/index.d.ts +2 -0
  15. package/durable-sqlite/index.js +3 -0
  16. package/durable-sqlite/index.js.map +1 -0
  17. package/durable-sqlite/migrator.cjs +85 -0
  18. package/durable-sqlite/migrator.cjs.map +1 -0
  19. package/durable-sqlite/migrator.d.cts +14 -0
  20. package/durable-sqlite/migrator.d.ts +14 -0
  21. package/durable-sqlite/migrator.js +61 -0
  22. package/durable-sqlite/migrator.js.map +1 -0
  23. package/durable-sqlite/session.cjs +131 -0
  24. package/durable-sqlite/session.cjs.map +1 -0
  25. package/durable-sqlite/session.d.cts +46 -0
  26. package/durable-sqlite/session.d.ts +46 -0
  27. package/durable-sqlite/session.js +107 -0
  28. package/durable-sqlite/session.js.map +1 -0
  29. package/mysql-core/utils.d.cts +1 -2
  30. package/mysql-core/utils.d.ts +1 -2
  31. package/mysql-core/view.cjs.map +1 -1
  32. package/mysql-core/view.d.cts +2 -3
  33. package/mysql-core/view.d.ts +2 -3
  34. package/mysql-core/view.js.map +1 -1
  35. package/neon-http/driver.cjs +1 -1
  36. package/neon-http/driver.cjs.map +1 -1
  37. package/neon-http/driver.d.cts +2 -2
  38. package/neon-http/driver.d.ts +2 -2
  39. package/neon-http/driver.js +1 -1
  40. package/neon-http/driver.js.map +1 -1
  41. package/neon-http/session.cjs.map +1 -1
  42. package/neon-http/session.js.map +1 -1
  43. package/package.json +784 -3
  44. package/pg-core/db.cjs +4 -2
  45. package/pg-core/db.cjs.map +1 -1
  46. package/pg-core/db.d.cts +2 -2
  47. package/pg-core/db.d.ts +2 -2
  48. package/pg-core/db.js +4 -2
  49. package/pg-core/db.js.map +1 -1
  50. package/pg-core/query-builders/count.cjs +1 -0
  51. package/pg-core/query-builders/count.cjs.map +1 -1
  52. package/pg-core/query-builders/count.d.cts +2 -1
  53. package/pg-core/query-builders/count.d.ts +2 -1
  54. package/pg-core/query-builders/count.js +1 -0
  55. package/pg-core/query-builders/count.js.map +1 -1
  56. package/pg-core/query-builders/delete.cjs.map +1 -1
  57. package/pg-core/query-builders/delete.js.map +1 -1
  58. package/pg-core/query-builders/insert.cjs +1 -9
  59. package/pg-core/query-builders/insert.cjs.map +1 -1
  60. package/pg-core/query-builders/insert.js +1 -9
  61. package/pg-core/query-builders/insert.js.map +1 -1
  62. package/pg-core/query-builders/query.cjs.map +1 -1
  63. package/pg-core/query-builders/query.js.map +1 -1
  64. package/pg-core/query-builders/refresh-materialized-view.cjs.map +1 -1
  65. package/pg-core/query-builders/refresh-materialized-view.js.map +1 -1
  66. package/pg-core/query-builders/select.cjs +2 -10
  67. package/pg-core/query-builders/select.cjs.map +1 -1
  68. package/pg-core/query-builders/select.js +8 -11
  69. package/pg-core/query-builders/select.js.map +1 -1
  70. package/pg-core/query-builders/update.cjs +1 -7
  71. package/pg-core/query-builders/update.cjs.map +1 -1
  72. package/pg-core/query-builders/update.d.cts +2 -2
  73. package/pg-core/query-builders/update.d.ts +2 -2
  74. package/pg-core/query-builders/update.js +6 -8
  75. package/pg-core/query-builders/update.js.map +1 -1
  76. package/pg-core/session.cjs.map +1 -1
  77. package/pg-core/session.d.cts +2 -1
  78. package/pg-core/session.d.ts +2 -1
  79. package/pg-core/session.js.map +1 -1
  80. package/pg-core/utils.d.cts +2 -3
  81. package/pg-core/utils.d.ts +2 -3
  82. package/pg-core/view.cjs.map +1 -1
  83. package/pg-core/view.d.cts +4 -5
  84. package/pg-core/view.d.ts +4 -5
  85. package/pg-core/view.js.map +1 -1
  86. package/query-builders/select.types.cjs.map +1 -1
  87. package/query-builders/select.types.d.cts +2 -2
  88. package/query-builders/select.types.d.ts +2 -2
  89. package/singlestore/driver.cjs +113 -0
  90. package/singlestore/driver.cjs.map +1 -0
  91. package/singlestore/driver.d.cts +52 -0
  92. package/singlestore/driver.d.ts +52 -0
  93. package/singlestore/driver.js +89 -0
  94. package/singlestore/driver.js.map +1 -0
  95. package/singlestore/index.cjs +25 -0
  96. package/singlestore/index.cjs.map +1 -0
  97. package/singlestore/index.d.cts +2 -0
  98. package/singlestore/index.d.ts +2 -0
  99. package/singlestore/index.js +3 -0
  100. package/singlestore/index.js.map +1 -0
  101. package/singlestore/migrator.cjs +33 -0
  102. package/singlestore/migrator.cjs.map +1 -0
  103. package/singlestore/migrator.d.cts +3 -0
  104. package/singlestore/migrator.d.ts +3 -0
  105. package/singlestore/migrator.js +9 -0
  106. package/singlestore/migrator.js.map +1 -0
  107. package/singlestore/session.cjs +258 -0
  108. package/singlestore/session.cjs.map +1 -0
  109. package/singlestore/session.d.cts +52 -0
  110. package/singlestore/session.d.ts +52 -0
  111. package/singlestore/session.js +236 -0
  112. package/singlestore/session.js.map +1 -0
  113. package/singlestore-core/alias.cjs +32 -0
  114. package/singlestore-core/alias.cjs.map +1 -0
  115. package/singlestore-core/alias.d.cts +4 -0
  116. package/singlestore-core/alias.d.ts +4 -0
  117. package/singlestore-core/alias.js +8 -0
  118. package/singlestore-core/alias.js.map +1 -0
  119. package/singlestore-core/columns/all.cjs +80 -0
  120. package/singlestore-core/columns/all.cjs.map +1 -0
  121. package/singlestore-core/columns/all.d.cts +51 -0
  122. package/singlestore-core/columns/all.d.ts +51 -0
  123. package/singlestore-core/columns/all.js +56 -0
  124. package/singlestore-core/columns/all.js.map +1 -0
  125. package/singlestore-core/columns/bigint.cjs +96 -0
  126. package/singlestore-core/columns/bigint.cjs.map +1 -0
  127. package/singlestore-core/columns/bigint.d.cts +54 -0
  128. package/singlestore-core/columns/bigint.d.ts +54 -0
  129. package/singlestore-core/columns/bigint.js +68 -0
  130. package/singlestore-core/columns/bigint.js.map +1 -0
  131. package/singlestore-core/columns/binary.cjs +60 -0
  132. package/singlestore-core/columns/binary.cjs.map +1 -0
  133. package/singlestore-core/columns/binary.d.cts +28 -0
  134. package/singlestore-core/columns/binary.d.ts +28 -0
  135. package/singlestore-core/columns/binary.js +34 -0
  136. package/singlestore-core/columns/binary.js.map +1 -0
  137. package/singlestore-core/columns/boolean.cjs +62 -0
  138. package/singlestore-core/columns/boolean.cjs.map +1 -0
  139. package/singlestore-core/columns/boolean.d.cts +24 -0
  140. package/singlestore-core/columns/boolean.d.ts +24 -0
  141. package/singlestore-core/columns/boolean.js +36 -0
  142. package/singlestore-core/columns/boolean.js.map +1 -0
  143. package/singlestore-core/columns/char.cjs +62 -0
  144. package/singlestore-core/columns/char.cjs.map +1 -0
  145. package/singlestore-core/columns/char.d.cts +31 -0
  146. package/singlestore-core/columns/char.d.ts +31 -0
  147. package/singlestore-core/columns/char.js +36 -0
  148. package/singlestore-core/columns/char.js.map +1 -0
  149. package/singlestore-core/columns/common.cjs +82 -0
  150. package/singlestore-core/columns/common.cjs.map +1 -0
  151. package/singlestore-core/columns/common.d.cts +42 -0
  152. package/singlestore-core/columns/common.d.ts +42 -0
  153. package/singlestore-core/columns/common.js +55 -0
  154. package/singlestore-core/columns/common.js.map +1 -0
  155. package/singlestore-core/columns/custom.cjs +77 -0
  156. package/singlestore-core/columns/custom.cjs.map +1 -0
  157. package/singlestore-core/columns/custom.d.cts +156 -0
  158. package/singlestore-core/columns/custom.d.ts +156 -0
  159. package/singlestore-core/columns/custom.js +51 -0
  160. package/singlestore-core/columns/custom.js.map +1 -0
  161. package/singlestore-core/columns/date.cjs +93 -0
  162. package/singlestore-core/columns/date.cjs.map +1 -0
  163. package/singlestore-core/columns/date.common.cjs +48 -0
  164. package/singlestore-core/columns/date.common.cjs.map +1 -0
  165. package/singlestore-core/columns/date.common.d.cts +16 -0
  166. package/singlestore-core/columns/date.common.d.ts +16 -0
  167. package/singlestore-core/columns/date.common.js +23 -0
  168. package/singlestore-core/columns/date.common.js.map +1 -0
  169. package/singlestore-core/columns/date.d.cts +53 -0
  170. package/singlestore-core/columns/date.d.ts +53 -0
  171. package/singlestore-core/columns/date.js +65 -0
  172. package/singlestore-core/columns/date.js.map +1 -0
  173. package/singlestore-core/columns/datetime.cjs +106 -0
  174. package/singlestore-core/columns/datetime.cjs.map +1 -0
  175. package/singlestore-core/columns/datetime.d.cts +54 -0
  176. package/singlestore-core/columns/datetime.d.ts +54 -0
  177. package/singlestore-core/columns/datetime.js +78 -0
  178. package/singlestore-core/columns/datetime.js.map +1 -0
  179. package/singlestore-core/columns/decimal.cjs +76 -0
  180. package/singlestore-core/columns/decimal.cjs.map +1 -0
  181. package/singlestore-core/columns/decimal.d.cts +32 -0
  182. package/singlestore-core/columns/decimal.d.ts +32 -0
  183. package/singlestore-core/columns/decimal.js +50 -0
  184. package/singlestore-core/columns/decimal.js.map +1 -0
  185. package/singlestore-core/columns/double.cjs +72 -0
  186. package/singlestore-core/columns/double.cjs.map +1 -0
  187. package/singlestore-core/columns/double.d.cts +32 -0
  188. package/singlestore-core/columns/double.d.ts +32 -0
  189. package/singlestore-core/columns/double.js +46 -0
  190. package/singlestore-core/columns/double.js.map +1 -0
  191. package/singlestore-core/columns/enum.cjs +67 -0
  192. package/singlestore-core/columns/enum.cjs.map +1 -0
  193. package/singlestore-core/columns/enum.d.cts +31 -0
  194. package/singlestore-core/columns/enum.d.ts +31 -0
  195. package/singlestore-core/columns/enum.js +41 -0
  196. package/singlestore-core/columns/enum.js.map +1 -0
  197. package/singlestore-core/columns/float.cjs +72 -0
  198. package/singlestore-core/columns/float.cjs.map +1 -0
  199. package/singlestore-core/columns/float.d.cts +32 -0
  200. package/singlestore-core/columns/float.d.ts +32 -0
  201. package/singlestore-core/columns/float.js +46 -0
  202. package/singlestore-core/columns/float.js.map +1 -0
  203. package/singlestore-core/columns/index.cjs +71 -0
  204. package/singlestore-core/columns/index.cjs.map +1 -0
  205. package/singlestore-core/columns/index.d.cts +25 -0
  206. package/singlestore-core/columns/index.d.ts +25 -0
  207. package/singlestore-core/columns/index.js +26 -0
  208. package/singlestore-core/columns/index.js.map +1 -0
  209. package/singlestore-core/columns/int.cjs +65 -0
  210. package/singlestore-core/columns/int.cjs.map +1 -0
  211. package/singlestore-core/columns/int.d.cts +28 -0
  212. package/singlestore-core/columns/int.d.ts +28 -0
  213. package/singlestore-core/columns/int.js +39 -0
  214. package/singlestore-core/columns/int.js.map +1 -0
  215. package/singlestore-core/columns/json.cjs +59 -0
  216. package/singlestore-core/columns/json.cjs.map +1 -0
  217. package/singlestore-core/columns/json.d.cts +24 -0
  218. package/singlestore-core/columns/json.d.ts +24 -0
  219. package/singlestore-core/columns/json.js +33 -0
  220. package/singlestore-core/columns/json.js.map +1 -0
  221. package/singlestore-core/columns/mediumint.cjs +65 -0
  222. package/singlestore-core/columns/mediumint.cjs.map +1 -0
  223. package/singlestore-core/columns/mediumint.d.cts +26 -0
  224. package/singlestore-core/columns/mediumint.d.ts +26 -0
  225. package/singlestore-core/columns/mediumint.js +39 -0
  226. package/singlestore-core/columns/mediumint.js.map +1 -0
  227. package/singlestore-core/columns/real.cjs +68 -0
  228. package/singlestore-core/columns/real.cjs.map +1 -0
  229. package/singlestore-core/columns/real.d.cts +30 -0
  230. package/singlestore-core/columns/real.d.ts +30 -0
  231. package/singlestore-core/columns/real.js +42 -0
  232. package/singlestore-core/columns/real.js.map +1 -0
  233. package/singlestore-core/columns/serial.cjs +64 -0
  234. package/singlestore-core/columns/serial.cjs.map +1 -0
  235. package/singlestore-core/columns/serial.d.cts +24 -0
  236. package/singlestore-core/columns/serial.d.ts +24 -0
  237. package/singlestore-core/columns/serial.js +38 -0
  238. package/singlestore-core/columns/serial.js.map +1 -0
  239. package/singlestore-core/columns/smallint.cjs +65 -0
  240. package/singlestore-core/columns/smallint.cjs.map +1 -0
  241. package/singlestore-core/columns/smallint.d.cts +26 -0
  242. package/singlestore-core/columns/smallint.d.ts +26 -0
  243. package/singlestore-core/columns/smallint.js +39 -0
  244. package/singlestore-core/columns/smallint.js.map +1 -0
  245. package/singlestore-core/columns/text.cjs +80 -0
  246. package/singlestore-core/columns/text.cjs.map +1 -0
  247. package/singlestore-core/columns/text.d.cts +46 -0
  248. package/singlestore-core/columns/text.d.ts +46 -0
  249. package/singlestore-core/columns/text.js +51 -0
  250. package/singlestore-core/columns/text.js.map +1 -0
  251. package/singlestore-core/columns/time.cjs +56 -0
  252. package/singlestore-core/columns/time.cjs.map +1 -0
  253. package/singlestore-core/columns/time.d.cts +23 -0
  254. package/singlestore-core/columns/time.d.ts +23 -0
  255. package/singlestore-core/columns/time.js +30 -0
  256. package/singlestore-core/columns/time.js.map +1 -0
  257. package/singlestore-core/columns/timestamp.cjs +97 -0
  258. package/singlestore-core/columns/timestamp.cjs.map +1 -0
  259. package/singlestore-core/columns/timestamp.d.cts +49 -0
  260. package/singlestore-core/columns/timestamp.d.ts +49 -0
  261. package/singlestore-core/columns/timestamp.js +69 -0
  262. package/singlestore-core/columns/timestamp.js.map +1 -0
  263. package/singlestore-core/columns/tinyint.cjs +65 -0
  264. package/singlestore-core/columns/tinyint.cjs.map +1 -0
  265. package/singlestore-core/columns/tinyint.d.cts +26 -0
  266. package/singlestore-core/columns/tinyint.d.ts +26 -0
  267. package/singlestore-core/columns/tinyint.js +39 -0
  268. package/singlestore-core/columns/tinyint.js.map +1 -0
  269. package/singlestore-core/columns/varbinary.cjs +61 -0
  270. package/singlestore-core/columns/varbinary.cjs.map +1 -0
  271. package/singlestore-core/columns/varbinary.d.cts +26 -0
  272. package/singlestore-core/columns/varbinary.d.ts +26 -0
  273. package/singlestore-core/columns/varbinary.js +35 -0
  274. package/singlestore-core/columns/varbinary.js.map +1 -0
  275. package/singlestore-core/columns/varchar.cjs +63 -0
  276. package/singlestore-core/columns/varchar.cjs.map +1 -0
  277. package/singlestore-core/columns/varchar.d.cts +29 -0
  278. package/singlestore-core/columns/varchar.d.ts +29 -0
  279. package/singlestore-core/columns/varchar.js +37 -0
  280. package/singlestore-core/columns/varchar.js.map +1 -0
  281. package/singlestore-core/columns/year.cjs +56 -0
  282. package/singlestore-core/columns/year.cjs.map +1 -0
  283. package/singlestore-core/columns/year.d.cts +23 -0
  284. package/singlestore-core/columns/year.d.ts +23 -0
  285. package/singlestore-core/columns/year.js +30 -0
  286. package/singlestore-core/columns/year.js.map +1 -0
  287. package/singlestore-core/db.cjs +261 -0
  288. package/singlestore-core/db.cjs.map +1 -0
  289. package/singlestore-core/db.d.cts +231 -0
  290. package/singlestore-core/db.d.ts +231 -0
  291. package/singlestore-core/db.js +242 -0
  292. package/singlestore-core/db.js.map +1 -0
  293. package/singlestore-core/dialect.cjs +607 -0
  294. package/singlestore-core/dialect.cjs.map +1 -0
  295. package/singlestore-core/dialect.d.cts +64 -0
  296. package/singlestore-core/dialect.d.ts +64 -0
  297. package/singlestore-core/dialect.js +589 -0
  298. package/singlestore-core/dialect.js.map +1 -0
  299. package/singlestore-core/expressions.cjs +49 -0
  300. package/singlestore-core/expressions.cjs.map +1 -0
  301. package/singlestore-core/expressions.d.cts +8 -0
  302. package/singlestore-core/expressions.d.ts +8 -0
  303. package/singlestore-core/expressions.js +22 -0
  304. package/singlestore-core/expressions.js.map +1 -0
  305. package/singlestore-core/index.cjs +47 -0
  306. package/singlestore-core/index.cjs.map +1 -0
  307. package/singlestore-core/index.d.cts +13 -0
  308. package/singlestore-core/index.d.ts +13 -0
  309. package/singlestore-core/index.js +14 -0
  310. package/singlestore-core/index.js.map +1 -0
  311. package/singlestore-core/indexes.cjs +88 -0
  312. package/singlestore-core/indexes.cjs.map +1 -0
  313. package/singlestore-core/indexes.d.cts +62 -0
  314. package/singlestore-core/indexes.d.ts +62 -0
  315. package/singlestore-core/indexes.js +60 -0
  316. package/singlestore-core/indexes.js.map +1 -0
  317. package/singlestore-core/primary-keys.cjs +68 -0
  318. package/singlestore-core/primary-keys.cjs.map +1 -0
  319. package/singlestore-core/primary-keys.d.cts +30 -0
  320. package/singlestore-core/primary-keys.d.ts +30 -0
  321. package/singlestore-core/primary-keys.js +42 -0
  322. package/singlestore-core/primary-keys.js.map +1 -0
  323. package/singlestore-core/query-builders/count.cjs +73 -0
  324. package/singlestore-core/query-builders/count.cjs.map +1 -0
  325. package/singlestore-core/query-builders/count.d.cts +25 -0
  326. package/singlestore-core/query-builders/count.d.ts +25 -0
  327. package/singlestore-core/query-builders/count.js +49 -0
  328. package/singlestore-core/query-builders/count.js.map +1 -0
  329. package/singlestore-core/query-builders/delete.cjs +123 -0
  330. package/singlestore-core/query-builders/delete.cjs.map +1 -0
  331. package/singlestore-core/query-builders/delete.d.cts +83 -0
  332. package/singlestore-core/query-builders/delete.d.ts +83 -0
  333. package/singlestore-core/query-builders/delete.js +99 -0
  334. package/singlestore-core/query-builders/delete.js.map +1 -0
  335. package/singlestore-core/query-builders/index.cjs +33 -0
  336. package/singlestore-core/query-builders/index.cjs.map +1 -0
  337. package/singlestore-core/query-builders/index.d.cts +6 -0
  338. package/singlestore-core/query-builders/index.d.ts +6 -0
  339. package/singlestore-core/query-builders/index.js +7 -0
  340. package/singlestore-core/query-builders/index.js.map +1 -0
  341. package/singlestore-core/query-builders/insert.cjs +146 -0
  342. package/singlestore-core/query-builders/insert.cjs.map +1 -0
  343. package/singlestore-core/query-builders/insert.d.cts +106 -0
  344. package/singlestore-core/query-builders/insert.d.ts +106 -0
  345. package/singlestore-core/query-builders/insert.js +121 -0
  346. package/singlestore-core/query-builders/insert.js.map +1 -0
  347. package/singlestore-core/query-builders/query-builder.cjs +99 -0
  348. package/singlestore-core/query-builders/query-builder.cjs.map +1 -0
  349. package/singlestore-core/query-builders/query-builder.d.cts +33 -0
  350. package/singlestore-core/query-builders/query-builder.d.ts +33 -0
  351. package/singlestore-core/query-builders/query-builder.js +75 -0
  352. package/singlestore-core/query-builders/query-builder.js.map +1 -0
  353. package/singlestore-core/query-builders/query.cjs +126 -0
  354. package/singlestore-core/query-builders/query.cjs.map +1 -0
  355. package/singlestore-core/query-builders/query.d.cts +42 -0
  356. package/singlestore-core/query-builders/query.d.ts +42 -0
  357. package/singlestore-core/query-builders/query.js +103 -0
  358. package/singlestore-core/query-builders/query.js.map +1 -0
  359. package/singlestore-core/query-builders/select.cjs +687 -0
  360. package/singlestore-core/query-builders/select.cjs.map +1 -0
  361. package/singlestore-core/query-builders/select.d.cts +585 -0
  362. package/singlestore-core/query-builders/select.d.ts +585 -0
  363. package/singlestore-core/query-builders/select.js +662 -0
  364. package/singlestore-core/query-builders/select.js.map +1 -0
  365. package/singlestore-core/query-builders/select.types.cjs +17 -0
  366. package/singlestore-core/query-builders/select.types.cjs.map +1 -0
  367. package/singlestore-core/query-builders/select.types.d.cts +137 -0
  368. package/singlestore-core/query-builders/select.types.d.ts +137 -0
  369. package/singlestore-core/query-builders/select.types.js +1 -0
  370. package/singlestore-core/query-builders/select.types.js.map +1 -0
  371. package/singlestore-core/query-builders/update.cjs +147 -0
  372. package/singlestore-core/query-builders/update.cjs.map +1 -0
  373. package/singlestore-core/query-builders/update.d.cts +102 -0
  374. package/singlestore-core/query-builders/update.d.ts +102 -0
  375. package/singlestore-core/query-builders/update.js +122 -0
  376. package/singlestore-core/query-builders/update.js.map +1 -0
  377. package/singlestore-core/schema.cjs +56 -0
  378. package/singlestore-core/schema.cjs.map +1 -0
  379. package/singlestore-core/schema.d.cts +22 -0
  380. package/singlestore-core/schema.d.ts +22 -0
  381. package/singlestore-core/schema.js +29 -0
  382. package/singlestore-core/schema.js.map +1 -0
  383. package/singlestore-core/session.cjs +87 -0
  384. package/singlestore-core/session.cjs.map +1 -0
  385. package/singlestore-core/session.d.cts +66 -0
  386. package/singlestore-core/session.d.ts +66 -0
  387. package/singlestore-core/session.js +61 -0
  388. package/singlestore-core/session.js.map +1 -0
  389. package/singlestore-core/subquery.cjs +17 -0
  390. package/singlestore-core/subquery.cjs.map +1 -0
  391. package/singlestore-core/subquery.d.cts +5 -0
  392. package/singlestore-core/subquery.d.ts +5 -0
  393. package/singlestore-core/subquery.js +1 -0
  394. package/singlestore-core/subquery.js.map +1 -0
  395. package/singlestore-core/table.cjs +73 -0
  396. package/singlestore-core/table.cjs.map +1 -0
  397. package/singlestore-core/table.d.cts +40 -0
  398. package/singlestore-core/table.d.ts +40 -0
  399. package/singlestore-core/table.js +46 -0
  400. package/singlestore-core/table.js.map +1 -0
  401. package/singlestore-core/unique-constraint.cjs +82 -0
  402. package/singlestore-core/unique-constraint.cjs.map +1 -0
  403. package/singlestore-core/unique-constraint.d.cts +24 -0
  404. package/singlestore-core/unique-constraint.d.ts +24 -0
  405. package/singlestore-core/unique-constraint.js +54 -0
  406. package/singlestore-core/unique-constraint.js.map +1 -0
  407. package/singlestore-core/utils.cjs +65 -0
  408. package/singlestore-core/utils.cjs.map +1 -0
  409. package/singlestore-core/utils.d.cts +13 -0
  410. package/singlestore-core/utils.d.ts +13 -0
  411. package/singlestore-core/utils.js +41 -0
  412. package/singlestore-core/utils.js.map +1 -0
  413. package/singlestore-core/view-base.cjs +33 -0
  414. package/singlestore-core/view-base.cjs.map +1 -0
  415. package/singlestore-core/view-base.d.cts +9 -0
  416. package/singlestore-core/view-base.d.ts +9 -0
  417. package/singlestore-core/view-base.js +9 -0
  418. package/singlestore-core/view-base.js.map +1 -0
  419. package/singlestore-core/view-common.cjs +29 -0
  420. package/singlestore-core/view-common.cjs.map +1 -0
  421. package/singlestore-core/view-common.d.cts +1 -0
  422. package/singlestore-core/view-common.d.ts +1 -0
  423. package/singlestore-core/view-common.js +5 -0
  424. package/singlestore-core/view-common.js.map +1 -0
  425. package/singlestore-core/view.cjs +146 -0
  426. package/singlestore-core/view.cjs.map +1 -0
  427. package/singlestore-core/view.d.cts +65 -0
  428. package/singlestore-core/view.d.ts +65 -0
  429. package/singlestore-core/view.js +119 -0
  430. package/singlestore-core/view.js.map +1 -0
  431. package/singlestore-proxy/driver.cjs +62 -0
  432. package/singlestore-proxy/driver.cjs.map +1 -0
  433. package/singlestore-proxy/driver.d.cts +13 -0
  434. package/singlestore-proxy/driver.d.ts +13 -0
  435. package/singlestore-proxy/driver.js +42 -0
  436. package/singlestore-proxy/driver.js.map +1 -0
  437. package/singlestore-proxy/index.cjs +25 -0
  438. package/singlestore-proxy/index.cjs.map +1 -0
  439. package/singlestore-proxy/index.d.cts +2 -0
  440. package/singlestore-proxy/index.d.ts +2 -0
  441. package/singlestore-proxy/index.js +3 -0
  442. package/singlestore-proxy/index.js.map +1 -0
  443. package/singlestore-proxy/migrator.cjs +60 -0
  444. package/singlestore-proxy/migrator.cjs.map +1 -0
  445. package/singlestore-proxy/migrator.d.cts +4 -0
  446. package/singlestore-proxy/migrator.d.ts +4 -0
  447. package/singlestore-proxy/migrator.js +36 -0
  448. package/singlestore-proxy/migrator.js.map +1 -0
  449. package/singlestore-proxy/session.cjs +127 -0
  450. package/singlestore-proxy/session.cjs.map +1 -0
  451. package/singlestore-proxy/session.d.cts +50 -0
  452. package/singlestore-proxy/session.d.ts +50 -0
  453. package/singlestore-proxy/session.js +101 -0
  454. package/singlestore-proxy/session.js.map +1 -0
  455. package/sql/sql.cjs +8 -0
  456. package/sql/sql.cjs.map +1 -1
  457. package/sql/sql.d.cts +10 -2
  458. package/sql/sql.d.ts +10 -2
  459. package/sql/sql.js +7 -0
  460. package/sql/sql.js.map +1 -1
  461. package/sqlite-core/columns/blob.cjs +16 -2
  462. package/sqlite-core/columns/blob.cjs.map +1 -1
  463. package/sqlite-core/columns/blob.d.cts +2 -2
  464. package/sqlite-core/columns/blob.d.ts +2 -2
  465. package/sqlite-core/columns/blob.js +16 -2
  466. package/sqlite-core/columns/blob.js.map +1 -1
  467. package/sqlite-core/utils.d.cts +1 -2
  468. package/sqlite-core/utils.d.ts +1 -2
  469. package/sqlite-core/view.cjs.map +1 -1
  470. package/sqlite-core/view.d.cts +2 -3
  471. package/sqlite-core/view.d.ts +2 -3
  472. package/sqlite-core/view.js.map +1 -1
  473. package/utils.cjs +5 -0
  474. package/utils.cjs.map +1 -1
  475. package/utils.d.cts +3 -1
  476. package/utils.d.ts +3 -1
  477. package/utils.js +4 -0
  478. package/utils.js.map +1 -1
  479. package/version.cjs +1 -1
  480. package/version.d.cts +1 -1
  481. package/version.d.ts +1 -1
  482. package/version.js +1 -1
@@ -0,0 +1,607 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var dialect_exports = {};
20
+ __export(dialect_exports, {
21
+ SingleStoreDialect: () => SingleStoreDialect
22
+ });
23
+ module.exports = __toCommonJS(dialect_exports);
24
+ var import_alias = require("../alias.cjs");
25
+ var import_casing = require("../casing.cjs");
26
+ var import_column = require("../column.cjs");
27
+ var import_entity = require("../entity.cjs");
28
+ var import_errors = require("../errors.cjs");
29
+ var import_expressions = require("../expressions.cjs");
30
+ var import_relations = require("../relations.cjs");
31
+ var import_sql = require("../sql/sql.cjs");
32
+ var import_subquery = require("../subquery.cjs");
33
+ var import_table = require("../table.cjs");
34
+ var import_utils = require("../utils.cjs");
35
+ var import_view_common = require("../view-common.cjs");
36
+ var import_common = require("./columns/common.cjs");
37
+ var import_table2 = require("./table.cjs");
38
+ class SingleStoreDialect {
39
+ static [import_entity.entityKind] = "SingleStoreDialect";
40
+ /** @internal */
41
+ casing;
42
+ constructor(config) {
43
+ this.casing = new import_casing.CasingCache(config?.casing);
44
+ }
45
+ async migrate(migrations, session, config) {
46
+ const migrationsTable = config.migrationsTable ?? "__drizzle_migrations";
47
+ const migrationTableCreate = import_sql.sql`
48
+ create table if not exists ${import_sql.sql.identifier(migrationsTable)} (
49
+ id serial primary key,
50
+ hash text not null,
51
+ created_at bigint
52
+ )
53
+ `;
54
+ await session.execute(migrationTableCreate);
55
+ const dbMigrations = await session.all(
56
+ import_sql.sql`select id, hash, created_at from ${import_sql.sql.identifier(migrationsTable)} order by created_at desc limit 1`
57
+ );
58
+ const lastDbMigration = dbMigrations[0];
59
+ await session.transaction(async (tx) => {
60
+ for (const migration of migrations) {
61
+ if (!lastDbMigration || Number(lastDbMigration.created_at) < migration.folderMillis) {
62
+ for (const stmt of migration.sql) {
63
+ await tx.execute(import_sql.sql.raw(stmt));
64
+ }
65
+ await tx.execute(
66
+ import_sql.sql`insert into ${import_sql.sql.identifier(migrationsTable)} (\`hash\`, \`created_at\`) values(${migration.hash}, ${migration.folderMillis})`
67
+ );
68
+ }
69
+ }
70
+ });
71
+ }
72
+ escapeName(name) {
73
+ return `\`${name}\``;
74
+ }
75
+ escapeParam(_num) {
76
+ return `?`;
77
+ }
78
+ escapeString(str) {
79
+ return `'${str.replace(/'/g, "''")}'`;
80
+ }
81
+ buildWithCTE(queries) {
82
+ if (!queries?.length)
83
+ return void 0;
84
+ const withSqlChunks = [import_sql.sql`with `];
85
+ for (const [i, w] of queries.entries()) {
86
+ withSqlChunks.push(import_sql.sql`${import_sql.sql.identifier(w._.alias)} as (${w._.sql})`);
87
+ if (i < queries.length - 1) {
88
+ withSqlChunks.push(import_sql.sql`, `);
89
+ }
90
+ }
91
+ withSqlChunks.push(import_sql.sql` `);
92
+ return import_sql.sql.join(withSqlChunks);
93
+ }
94
+ buildDeleteQuery({ table, where, returning, withList, limit, orderBy }) {
95
+ const withSql = this.buildWithCTE(withList);
96
+ const returningSql = returning ? import_sql.sql` returning ${this.buildSelection(returning, { isSingleTable: true })}` : void 0;
97
+ const whereSql = where ? import_sql.sql` where ${where}` : void 0;
98
+ const orderBySql = this.buildOrderBy(orderBy);
99
+ const limitSql = this.buildLimit(limit);
100
+ return import_sql.sql`${withSql}delete from ${table}${whereSql}${orderBySql}${limitSql}${returningSql}`;
101
+ }
102
+ buildUpdateSet(table, set) {
103
+ const tableColumns = table[import_table.Table.Symbol.Columns];
104
+ const columnNames = Object.keys(tableColumns).filter(
105
+ (colName) => set[colName] !== void 0 || tableColumns[colName]?.onUpdateFn !== void 0
106
+ );
107
+ const setSize = columnNames.length;
108
+ return import_sql.sql.join(columnNames.flatMap((colName, i) => {
109
+ const col = tableColumns[colName];
110
+ const value = set[colName] ?? import_sql.sql.param(col.onUpdateFn(), col);
111
+ const res = import_sql.sql`${import_sql.sql.identifier(this.casing.getColumnCasing(col))} = ${value}`;
112
+ if (i < setSize - 1) {
113
+ return [res, import_sql.sql.raw(", ")];
114
+ }
115
+ return [res];
116
+ }));
117
+ }
118
+ buildUpdateQuery({ table, set, where, returning, withList, limit, orderBy }) {
119
+ const withSql = this.buildWithCTE(withList);
120
+ const setSql = this.buildUpdateSet(table, set);
121
+ const returningSql = returning ? import_sql.sql` returning ${this.buildSelection(returning, { isSingleTable: true })}` : void 0;
122
+ const whereSql = where ? import_sql.sql` where ${where}` : void 0;
123
+ const orderBySql = this.buildOrderBy(orderBy);
124
+ const limitSql = this.buildLimit(limit);
125
+ return import_sql.sql`${withSql}update ${table} set ${setSql}${whereSql}${orderBySql}${limitSql}${returningSql}`;
126
+ }
127
+ /**
128
+ * Builds selection SQL with provided fields/expressions
129
+ *
130
+ * Examples:
131
+ *
132
+ * `select <selection> from`
133
+ *
134
+ * `insert ... returning <selection>`
135
+ *
136
+ * If `isSingleTable` is true, then columns won't be prefixed with table name
137
+ */
138
+ buildSelection(fields, { isSingleTable = false } = {}) {
139
+ const columnsLen = fields.length;
140
+ const chunks = fields.flatMap(({ field }, i) => {
141
+ const chunk = [];
142
+ if ((0, import_entity.is)(field, import_sql.SQL.Aliased) && field.isSelectionField) {
143
+ chunk.push(import_sql.sql.identifier(field.fieldAlias));
144
+ } else if ((0, import_entity.is)(field, import_sql.SQL.Aliased) || (0, import_entity.is)(field, import_sql.SQL)) {
145
+ const query = (0, import_entity.is)(field, import_sql.SQL.Aliased) ? field.sql : field;
146
+ if (isSingleTable) {
147
+ chunk.push(
148
+ new import_sql.SQL(
149
+ query.queryChunks.map((c) => {
150
+ if ((0, import_entity.is)(c, import_common.SingleStoreColumn)) {
151
+ return import_sql.sql.identifier(this.casing.getColumnCasing(c));
152
+ }
153
+ return c;
154
+ })
155
+ )
156
+ );
157
+ } else {
158
+ chunk.push(query);
159
+ }
160
+ if ((0, import_entity.is)(field, import_sql.SQL.Aliased)) {
161
+ chunk.push(import_sql.sql` as ${import_sql.sql.identifier(field.fieldAlias)}`);
162
+ }
163
+ } else if ((0, import_entity.is)(field, import_column.Column)) {
164
+ if (isSingleTable) {
165
+ chunk.push(import_sql.sql.identifier(this.casing.getColumnCasing(field)));
166
+ } else {
167
+ chunk.push(field);
168
+ }
169
+ }
170
+ if (i < columnsLen - 1) {
171
+ chunk.push(import_sql.sql`, `);
172
+ }
173
+ return chunk;
174
+ });
175
+ return import_sql.sql.join(chunks);
176
+ }
177
+ buildLimit(limit) {
178
+ return typeof limit === "object" || typeof limit === "number" && limit >= 0 ? import_sql.sql` limit ${limit}` : void 0;
179
+ }
180
+ buildOrderBy(orderBy) {
181
+ return orderBy && orderBy.length > 0 ? import_sql.sql` order by ${import_sql.sql.join(orderBy, import_sql.sql`, `)}` : void 0;
182
+ }
183
+ buildSelectQuery({
184
+ withList,
185
+ fields,
186
+ fieldsFlat,
187
+ where,
188
+ having,
189
+ table,
190
+ joins,
191
+ orderBy,
192
+ groupBy,
193
+ limit,
194
+ offset,
195
+ lockingClause,
196
+ distinct,
197
+ setOperators
198
+ }) {
199
+ const fieldsList = fieldsFlat ?? (0, import_utils.orderSelectedFields)(fields);
200
+ for (const f of fieldsList) {
201
+ if ((0, import_entity.is)(f.field, import_column.Column) && (0, import_table.getTableName)(f.field.table) !== ((0, import_entity.is)(table, import_subquery.Subquery) ? table._.alias : (0, import_entity.is)(table, import_sql.SQL) ? void 0 : (0, import_table.getTableName)(table)) && !((table2) => joins?.some(
202
+ ({ alias }) => alias === (table2[import_table.Table.Symbol.IsAlias] ? (0, import_table.getTableName)(table2) : table2[import_table.Table.Symbol.BaseName])
203
+ ))(f.field.table)) {
204
+ const tableName = (0, import_table.getTableName)(f.field.table);
205
+ throw new Error(
206
+ `Your "${f.path.join("->")}" field references a column "${tableName}"."${f.field.name}", but the table "${tableName}" is not part of the query! Did you forget to join it?`
207
+ );
208
+ }
209
+ }
210
+ const isSingleTable = !joins || joins.length === 0;
211
+ const withSql = this.buildWithCTE(withList);
212
+ const distinctSql = distinct ? import_sql.sql` distinct` : void 0;
213
+ const selection = this.buildSelection(fieldsList, { isSingleTable });
214
+ const tableSql = (() => {
215
+ if ((0, import_entity.is)(table, import_table.Table) && table[import_table.Table.Symbol.OriginalName] !== table[import_table.Table.Symbol.Name]) {
216
+ return import_sql.sql`${import_sql.sql.identifier(table[import_table.Table.Symbol.OriginalName])} ${import_sql.sql.identifier(table[import_table.Table.Symbol.Name])}`;
217
+ }
218
+ return table;
219
+ })();
220
+ const joinsArray = [];
221
+ if (joins) {
222
+ for (const [index, joinMeta] of joins.entries()) {
223
+ if (index === 0) {
224
+ joinsArray.push(import_sql.sql` `);
225
+ }
226
+ const table2 = joinMeta.table;
227
+ const lateralSql = joinMeta.lateral ? import_sql.sql` lateral` : void 0;
228
+ if ((0, import_entity.is)(table2, import_table2.SingleStoreTable)) {
229
+ const tableName = table2[import_table2.SingleStoreTable.Symbol.Name];
230
+ const tableSchema = table2[import_table2.SingleStoreTable.Symbol.Schema];
231
+ const origTableName = table2[import_table2.SingleStoreTable.Symbol.OriginalName];
232
+ const alias = tableName === origTableName ? void 0 : joinMeta.alias;
233
+ joinsArray.push(
234
+ import_sql.sql`${import_sql.sql.raw(joinMeta.joinType)} join${lateralSql} ${tableSchema ? import_sql.sql`${import_sql.sql.identifier(tableSchema)}.` : void 0}${import_sql.sql.identifier(origTableName)}${alias && import_sql.sql` ${import_sql.sql.identifier(alias)}`} on ${joinMeta.on}`
235
+ );
236
+ } else if ((0, import_entity.is)(table2, import_sql.View)) {
237
+ const viewName = table2[import_view_common.ViewBaseConfig].name;
238
+ const viewSchema = table2[import_view_common.ViewBaseConfig].schema;
239
+ const origViewName = table2[import_view_common.ViewBaseConfig].originalName;
240
+ const alias = viewName === origViewName ? void 0 : joinMeta.alias;
241
+ joinsArray.push(
242
+ import_sql.sql`${import_sql.sql.raw(joinMeta.joinType)} join${lateralSql} ${viewSchema ? import_sql.sql`${import_sql.sql.identifier(viewSchema)}.` : void 0}${import_sql.sql.identifier(origViewName)}${alias && import_sql.sql` ${import_sql.sql.identifier(alias)}`} on ${joinMeta.on}`
243
+ );
244
+ } else {
245
+ joinsArray.push(
246
+ import_sql.sql`${import_sql.sql.raw(joinMeta.joinType)} join${lateralSql} ${table2} on ${joinMeta.on}`
247
+ );
248
+ }
249
+ if (index < joins.length - 1) {
250
+ joinsArray.push(import_sql.sql` `);
251
+ }
252
+ }
253
+ }
254
+ const joinsSql = import_sql.sql.join(joinsArray);
255
+ const whereSql = where ? import_sql.sql` where ${where}` : void 0;
256
+ const havingSql = having ? import_sql.sql` having ${having}` : void 0;
257
+ const orderBySql = this.buildOrderBy(orderBy);
258
+ const groupBySql = groupBy && groupBy.length > 0 ? import_sql.sql` group by ${import_sql.sql.join(groupBy, import_sql.sql`, `)}` : void 0;
259
+ const limitSql = this.buildLimit(limit);
260
+ const offsetSql = offset ? import_sql.sql` offset ${offset}` : void 0;
261
+ let lockingClausesSql;
262
+ if (lockingClause) {
263
+ const { config, strength } = lockingClause;
264
+ lockingClausesSql = import_sql.sql` for ${import_sql.sql.raw(strength)}`;
265
+ if (config.noWait) {
266
+ lockingClausesSql.append(import_sql.sql` no wait`);
267
+ } else if (config.skipLocked) {
268
+ lockingClausesSql.append(import_sql.sql` skip locked`);
269
+ }
270
+ }
271
+ const finalQuery = import_sql.sql`${withSql}select${distinctSql} ${selection} from ${tableSql}${joinsSql}${whereSql}${groupBySql}${havingSql}${orderBySql}${limitSql}${offsetSql}${lockingClausesSql}`;
272
+ if (setOperators.length > 0) {
273
+ return this.buildSetOperations(finalQuery, setOperators);
274
+ }
275
+ return finalQuery;
276
+ }
277
+ buildSetOperations(leftSelect, setOperators) {
278
+ const [setOperator, ...rest] = setOperators;
279
+ if (!setOperator) {
280
+ throw new Error("Cannot pass undefined values to any set operator");
281
+ }
282
+ if (rest.length === 0) {
283
+ return this.buildSetOperationQuery({ leftSelect, setOperator });
284
+ }
285
+ return this.buildSetOperations(
286
+ this.buildSetOperationQuery({ leftSelect, setOperator }),
287
+ rest
288
+ );
289
+ }
290
+ buildSetOperationQuery({
291
+ leftSelect,
292
+ setOperator: { type, isAll, rightSelect, limit, orderBy, offset }
293
+ }) {
294
+ const leftChunk = import_sql.sql`(${leftSelect.getSQL()}) `;
295
+ const rightChunk = import_sql.sql`(${rightSelect.getSQL()})`;
296
+ let orderBySql;
297
+ if (orderBy && orderBy.length > 0) {
298
+ const orderByValues = [];
299
+ for (const orderByUnit of orderBy) {
300
+ if ((0, import_entity.is)(orderByUnit, import_common.SingleStoreColumn)) {
301
+ orderByValues.push(import_sql.sql.identifier(this.casing.getColumnCasing(orderByUnit)));
302
+ } else if ((0, import_entity.is)(orderByUnit, import_sql.SQL)) {
303
+ for (let i = 0; i < orderByUnit.queryChunks.length; i++) {
304
+ const chunk = orderByUnit.queryChunks[i];
305
+ if ((0, import_entity.is)(chunk, import_common.SingleStoreColumn)) {
306
+ orderByUnit.queryChunks[i] = import_sql.sql.identifier(this.casing.getColumnCasing(chunk));
307
+ }
308
+ }
309
+ orderByValues.push(import_sql.sql`${orderByUnit}`);
310
+ } else {
311
+ orderByValues.push(import_sql.sql`${orderByUnit}`);
312
+ }
313
+ }
314
+ orderBySql = import_sql.sql` order by ${import_sql.sql.join(orderByValues, import_sql.sql`, `)} `;
315
+ }
316
+ const limitSql = typeof limit === "object" || typeof limit === "number" && limit >= 0 ? import_sql.sql` limit ${limit}` : void 0;
317
+ const operatorChunk = import_sql.sql.raw(`${type} ${isAll ? "all " : ""}`);
318
+ const offsetSql = offset ? import_sql.sql` offset ${offset}` : void 0;
319
+ return import_sql.sql`${leftChunk}${operatorChunk}${rightChunk}${orderBySql}${limitSql}${offsetSql}`;
320
+ }
321
+ buildInsertQuery({ table, values, ignore, onConflict }) {
322
+ const valuesSqlList = [];
323
+ const columns = table[import_table.Table.Symbol.Columns];
324
+ const colEntries = Object.entries(columns).filter(
325
+ ([_, col]) => !col.shouldDisableInsert()
326
+ );
327
+ const insertOrder = colEntries.map(([, column]) => import_sql.sql.identifier(this.casing.getColumnCasing(column)));
328
+ const generatedIdsResponse = [];
329
+ for (const [valueIndex, value] of values.entries()) {
330
+ const generatedIds = {};
331
+ const valueList = [];
332
+ for (const [fieldName, col] of colEntries) {
333
+ const colValue = value[fieldName];
334
+ if (colValue === void 0 || (0, import_entity.is)(colValue, import_sql.Param) && colValue.value === void 0) {
335
+ if (col.defaultFn !== void 0) {
336
+ const defaultFnResult = col.defaultFn();
337
+ generatedIds[fieldName] = defaultFnResult;
338
+ const defaultValue = (0, import_entity.is)(defaultFnResult, import_sql.SQL) ? defaultFnResult : import_sql.sql.param(defaultFnResult, col);
339
+ valueList.push(defaultValue);
340
+ } else if (!col.default && col.onUpdateFn !== void 0) {
341
+ const onUpdateFnResult = col.onUpdateFn();
342
+ const newValue = (0, import_entity.is)(onUpdateFnResult, import_sql.SQL) ? onUpdateFnResult : import_sql.sql.param(onUpdateFnResult, col);
343
+ valueList.push(newValue);
344
+ } else {
345
+ valueList.push(import_sql.sql`default`);
346
+ }
347
+ } else {
348
+ if (col.defaultFn && (0, import_entity.is)(colValue, import_sql.Param)) {
349
+ generatedIds[fieldName] = colValue.value;
350
+ }
351
+ valueList.push(colValue);
352
+ }
353
+ }
354
+ generatedIdsResponse.push(generatedIds);
355
+ valuesSqlList.push(valueList);
356
+ if (valueIndex < values.length - 1) {
357
+ valuesSqlList.push(import_sql.sql`, `);
358
+ }
359
+ }
360
+ const valuesSql = import_sql.sql.join(valuesSqlList);
361
+ const ignoreSql = ignore ? import_sql.sql` ignore` : void 0;
362
+ const onConflictSql = onConflict ? import_sql.sql` on duplicate key ${onConflict}` : void 0;
363
+ return {
364
+ sql: import_sql.sql`insert${ignoreSql} into ${table} ${insertOrder} values ${valuesSql}${onConflictSql}`,
365
+ generatedIds: generatedIdsResponse
366
+ };
367
+ }
368
+ sqlToQuery(sql2, invokeSource) {
369
+ return sql2.toQuery({
370
+ casing: this.casing,
371
+ escapeName: this.escapeName,
372
+ escapeParam: this.escapeParam,
373
+ escapeString: this.escapeString,
374
+ invokeSource
375
+ });
376
+ }
377
+ buildRelationalQuery({
378
+ fullSchema,
379
+ schema,
380
+ tableNamesMap,
381
+ table,
382
+ tableConfig,
383
+ queryConfig: config,
384
+ tableAlias,
385
+ nestedQueryRelation,
386
+ joinOn
387
+ }) {
388
+ let selection = [];
389
+ let limit, offset, orderBy, where;
390
+ const joins = [];
391
+ if (config === true) {
392
+ const selectionEntries = Object.entries(tableConfig.columns);
393
+ selection = selectionEntries.map(([key, value]) => ({
394
+ dbKey: value.name,
395
+ tsKey: key,
396
+ field: (0, import_alias.aliasedTableColumn)(value, tableAlias),
397
+ relationTableTsKey: void 0,
398
+ isJson: false,
399
+ selection: []
400
+ }));
401
+ } else {
402
+ const aliasedColumns = Object.fromEntries(
403
+ Object.entries(tableConfig.columns).map(([key, value]) => [key, (0, import_alias.aliasedTableColumn)(value, tableAlias)])
404
+ );
405
+ if (config.where) {
406
+ const whereSql = typeof config.where === "function" ? config.where(aliasedColumns, (0, import_relations.getOperators)()) : config.where;
407
+ where = whereSql && (0, import_alias.mapColumnsInSQLToAlias)(whereSql, tableAlias);
408
+ }
409
+ const fieldsSelection = [];
410
+ let selectedColumns = [];
411
+ if (config.columns) {
412
+ let isIncludeMode = false;
413
+ for (const [field, value] of Object.entries(config.columns)) {
414
+ if (value === void 0) {
415
+ continue;
416
+ }
417
+ if (field in tableConfig.columns) {
418
+ if (!isIncludeMode && value === true) {
419
+ isIncludeMode = true;
420
+ }
421
+ selectedColumns.push(field);
422
+ }
423
+ }
424
+ if (selectedColumns.length > 0) {
425
+ selectedColumns = isIncludeMode ? selectedColumns.filter((c) => config.columns?.[c] === true) : Object.keys(tableConfig.columns).filter((key) => !selectedColumns.includes(key));
426
+ }
427
+ } else {
428
+ selectedColumns = Object.keys(tableConfig.columns);
429
+ }
430
+ for (const field of selectedColumns) {
431
+ const column = tableConfig.columns[field];
432
+ fieldsSelection.push({ tsKey: field, value: column });
433
+ }
434
+ let selectedRelations = [];
435
+ if (config.with) {
436
+ selectedRelations = Object.entries(config.with).filter((entry) => !!entry[1]).map(([tsKey, queryConfig]) => ({ tsKey, queryConfig, relation: tableConfig.relations[tsKey] }));
437
+ }
438
+ let extras;
439
+ if (config.extras) {
440
+ extras = typeof config.extras === "function" ? config.extras(aliasedColumns, { sql: import_sql.sql }) : config.extras;
441
+ for (const [tsKey, value] of Object.entries(extras)) {
442
+ fieldsSelection.push({
443
+ tsKey,
444
+ value: (0, import_alias.mapColumnsInAliasedSQLToAlias)(value, tableAlias)
445
+ });
446
+ }
447
+ }
448
+ for (const { tsKey, value } of fieldsSelection) {
449
+ selection.push({
450
+ dbKey: (0, import_entity.is)(value, import_sql.SQL.Aliased) ? value.fieldAlias : tableConfig.columns[tsKey].name,
451
+ tsKey,
452
+ field: (0, import_entity.is)(value, import_column.Column) ? (0, import_alias.aliasedTableColumn)(value, tableAlias) : value,
453
+ relationTableTsKey: void 0,
454
+ isJson: false,
455
+ selection: []
456
+ });
457
+ }
458
+ let orderByOrig = typeof config.orderBy === "function" ? config.orderBy(aliasedColumns, (0, import_relations.getOrderByOperators)()) : config.orderBy ?? [];
459
+ if (!Array.isArray(orderByOrig)) {
460
+ orderByOrig = [orderByOrig];
461
+ }
462
+ orderBy = orderByOrig.map((orderByValue) => {
463
+ if ((0, import_entity.is)(orderByValue, import_column.Column)) {
464
+ return (0, import_alias.aliasedTableColumn)(orderByValue, tableAlias);
465
+ }
466
+ return (0, import_alias.mapColumnsInSQLToAlias)(orderByValue, tableAlias);
467
+ });
468
+ limit = config.limit;
469
+ offset = config.offset;
470
+ for (const {
471
+ tsKey: selectedRelationTsKey,
472
+ queryConfig: selectedRelationConfigValue,
473
+ relation
474
+ } of selectedRelations) {
475
+ const normalizedRelation = (0, import_relations.normalizeRelation)(schema, tableNamesMap, relation);
476
+ const relationTableName = (0, import_table.getTableUniqueName)(relation.referencedTable);
477
+ const relationTableTsName = tableNamesMap[relationTableName];
478
+ const relationTableAlias = `${tableAlias}_${selectedRelationTsKey}`;
479
+ const joinOn2 = (0, import_expressions.and)(
480
+ ...normalizedRelation.fields.map(
481
+ (field2, i) => (0, import_expressions.eq)(
482
+ (0, import_alias.aliasedTableColumn)(normalizedRelation.references[i], relationTableAlias),
483
+ (0, import_alias.aliasedTableColumn)(field2, tableAlias)
484
+ )
485
+ )
486
+ );
487
+ const builtRelation = this.buildRelationalQuery({
488
+ fullSchema,
489
+ schema,
490
+ tableNamesMap,
491
+ table: fullSchema[relationTableTsName],
492
+ tableConfig: schema[relationTableTsName],
493
+ queryConfig: (0, import_entity.is)(relation, import_relations.One) ? selectedRelationConfigValue === true ? { limit: 1 } : { ...selectedRelationConfigValue, limit: 1 } : selectedRelationConfigValue,
494
+ tableAlias: relationTableAlias,
495
+ joinOn: joinOn2,
496
+ nestedQueryRelation: relation
497
+ });
498
+ const field = import_sql.sql`${import_sql.sql.identifier(relationTableAlias)}.${import_sql.sql.identifier("data")}`.as(selectedRelationTsKey);
499
+ joins.push({
500
+ on: import_sql.sql`true`,
501
+ table: new import_subquery.Subquery(builtRelation.sql, {}, relationTableAlias),
502
+ alias: relationTableAlias,
503
+ joinType: "left",
504
+ lateral: true
505
+ });
506
+ selection.push({
507
+ dbKey: selectedRelationTsKey,
508
+ tsKey: selectedRelationTsKey,
509
+ field,
510
+ relationTableTsKey: relationTableTsName,
511
+ isJson: true,
512
+ selection: builtRelation.selection
513
+ });
514
+ }
515
+ }
516
+ if (selection.length === 0) {
517
+ throw new import_errors.DrizzleError({ message: `No fields selected for table "${tableConfig.tsName}" ("${tableAlias}")` });
518
+ }
519
+ let result;
520
+ where = (0, import_expressions.and)(joinOn, where);
521
+ if (nestedQueryRelation) {
522
+ let field = import_sql.sql`JSON_TO_ARRAY(${import_sql.sql.join(
523
+ selection.map(
524
+ ({ field: field2, tsKey, isJson }) => isJson ? import_sql.sql`${import_sql.sql.identifier(`${tableAlias}_${tsKey}`)}.${import_sql.sql.identifier("data")}` : (0, import_entity.is)(field2, import_sql.SQL.Aliased) ? field2.sql : field2
525
+ ),
526
+ import_sql.sql`, `
527
+ )})`;
528
+ if ((0, import_entity.is)(nestedQueryRelation, import_relations.Many)) {
529
+ field = import_sql.sql`json_agg(${field})`;
530
+ }
531
+ const nestedSelection = [{
532
+ dbKey: "data",
533
+ tsKey: "data",
534
+ field: field.as("data"),
535
+ isJson: true,
536
+ relationTableTsKey: tableConfig.tsName,
537
+ selection
538
+ }];
539
+ const needsSubquery = limit !== void 0 || offset !== void 0 || (orderBy?.length ?? 0) > 0;
540
+ if (needsSubquery) {
541
+ result = this.buildSelectQuery({
542
+ table: (0, import_alias.aliasedTable)(table, tableAlias),
543
+ fields: {},
544
+ fieldsFlat: [
545
+ {
546
+ path: [],
547
+ field: import_sql.sql.raw("*")
548
+ },
549
+ ...((orderBy?.length ?? 0) > 0 ? [{
550
+ path: [],
551
+ field: import_sql.sql`row_number() over (order by ${import_sql.sql.join(orderBy, import_sql.sql`, `)})`
552
+ }] : [])
553
+ ],
554
+ where,
555
+ limit,
556
+ offset,
557
+ setOperators: []
558
+ });
559
+ where = void 0;
560
+ limit = void 0;
561
+ offset = void 0;
562
+ orderBy = void 0;
563
+ } else {
564
+ result = (0, import_alias.aliasedTable)(table, tableAlias);
565
+ }
566
+ result = this.buildSelectQuery({
567
+ table: (0, import_entity.is)(result, import_table2.SingleStoreTable) ? result : new import_subquery.Subquery(result, {}, tableAlias),
568
+ fields: {},
569
+ fieldsFlat: nestedSelection.map(({ field: field2 }) => ({
570
+ path: [],
571
+ field: (0, import_entity.is)(field2, import_column.Column) ? (0, import_alias.aliasedTableColumn)(field2, tableAlias) : field2
572
+ })),
573
+ joins,
574
+ where,
575
+ limit,
576
+ offset,
577
+ orderBy,
578
+ setOperators: []
579
+ });
580
+ } else {
581
+ result = this.buildSelectQuery({
582
+ table: (0, import_alias.aliasedTable)(table, tableAlias),
583
+ fields: {},
584
+ fieldsFlat: selection.map(({ field }) => ({
585
+ path: [],
586
+ field: (0, import_entity.is)(field, import_column.Column) ? (0, import_alias.aliasedTableColumn)(field, tableAlias) : field
587
+ })),
588
+ joins,
589
+ where,
590
+ limit,
591
+ offset,
592
+ orderBy,
593
+ setOperators: []
594
+ });
595
+ }
596
+ return {
597
+ tableTsKey: tableConfig.tsName,
598
+ sql: result,
599
+ selection
600
+ };
601
+ }
602
+ }
603
+ // Annotate the CommonJS export names for ESM import in node:
604
+ 0 && (module.exports = {
605
+ SingleStoreDialect
606
+ });
607
+ //# sourceMappingURL=dialect.cjs.map