drizzle-orm 0.43.1-d1468f0 → 0.43.1-e3d1c4f

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 (866) hide show
  1. package/aws-data-api/pg/driver.cjs +7 -10
  2. package/aws-data-api/pg/driver.cjs.map +1 -1
  3. package/aws-data-api/pg/driver.d.cts +4 -4
  4. package/aws-data-api/pg/driver.d.ts +4 -4
  5. package/aws-data-api/pg/driver.js +7 -10
  6. package/aws-data-api/pg/driver.js.map +1 -1
  7. package/aws-data-api/pg/session.cjs +26 -20
  8. package/aws-data-api/pg/session.cjs.map +1 -1
  9. package/aws-data-api/pg/session.d.cts +6 -16
  10. package/aws-data-api/pg/session.d.ts +6 -16
  11. package/aws-data-api/pg/session.js +26 -20
  12. package/aws-data-api/pg/session.js.map +1 -1
  13. package/better-sqlite3/driver.cjs.map +1 -1
  14. package/better-sqlite3/driver.d.cts +4 -3
  15. package/better-sqlite3/driver.d.ts +4 -3
  16. package/better-sqlite3/driver.js.map +1 -1
  17. package/better-sqlite3/session.cjs +7 -13
  18. package/better-sqlite3/session.cjs.map +1 -1
  19. package/better-sqlite3/session.d.cts +6 -16
  20. package/better-sqlite3/session.d.ts +6 -16
  21. package/better-sqlite3/session.js +7 -13
  22. package/better-sqlite3/session.js.map +1 -1
  23. package/bun-sql/driver.cjs +3 -6
  24. package/bun-sql/driver.cjs.map +1 -1
  25. package/bun-sql/driver.d.cts +4 -3
  26. package/bun-sql/driver.d.ts +4 -3
  27. package/bun-sql/driver.js +3 -6
  28. package/bun-sql/driver.js.map +1 -1
  29. package/bun-sql/session.cjs +26 -29
  30. package/bun-sql/session.cjs.map +1 -1
  31. package/bun-sql/session.d.cts +6 -15
  32. package/bun-sql/session.d.ts +6 -15
  33. package/bun-sql/session.js +26 -29
  34. package/bun-sql/session.js.map +1 -1
  35. package/bun-sqlite/driver.cjs.map +1 -1
  36. package/bun-sqlite/driver.d.cts +4 -3
  37. package/bun-sqlite/driver.d.ts +4 -3
  38. package/bun-sqlite/driver.js.map +1 -1
  39. package/bun-sqlite/session.cjs +5 -5
  40. package/bun-sqlite/session.cjs.map +1 -1
  41. package/bun-sqlite/session.d.cts +5 -5
  42. package/bun-sqlite/session.d.ts +5 -5
  43. package/bun-sqlite/session.js +5 -5
  44. package/bun-sqlite/session.js.map +1 -1
  45. package/column-builder.cjs.map +1 -1
  46. package/column-builder.d.cts +7 -2
  47. package/column-builder.d.ts +7 -2
  48. package/column-builder.js.map +1 -1
  49. package/column.cjs +2 -0
  50. package/column.cjs.map +1 -1
  51. package/column.d.cts +6 -0
  52. package/column.d.ts +6 -0
  53. package/column.js +2 -0
  54. package/column.js.map +1 -1
  55. package/d1/driver.cjs +3 -6
  56. package/d1/driver.cjs.map +1 -1
  57. package/d1/driver.d.cts +2 -1
  58. package/d1/driver.d.ts +2 -1
  59. package/d1/driver.js +3 -6
  60. package/d1/driver.js.map +1 -1
  61. package/d1/session.cjs +24 -29
  62. package/d1/session.cjs.map +1 -1
  63. package/d1/session.d.cts +8 -17
  64. package/d1/session.d.ts +8 -17
  65. package/d1/session.js +24 -29
  66. package/d1/session.js.map +1 -1
  67. package/durable-sqlite/driver.cjs.map +1 -1
  68. package/durable-sqlite/driver.d.cts +2 -1
  69. package/durable-sqlite/driver.d.ts +2 -1
  70. package/durable-sqlite/driver.js.map +1 -1
  71. package/durable-sqlite/session.cjs +6 -6
  72. package/durable-sqlite/session.cjs.map +1 -1
  73. package/durable-sqlite/session.d.cts +5 -5
  74. package/durable-sqlite/session.d.ts +5 -5
  75. package/durable-sqlite/session.js +6 -6
  76. package/durable-sqlite/session.js.map +1 -1
  77. package/expo-sqlite/driver.cjs.map +1 -1
  78. package/expo-sqlite/driver.d.cts +2 -1
  79. package/expo-sqlite/driver.d.ts +2 -1
  80. package/expo-sqlite/driver.js.map +1 -1
  81. package/expo-sqlite/session.cjs +5 -5
  82. package/expo-sqlite/session.cjs.map +1 -1
  83. package/expo-sqlite/session.d.cts +5 -5
  84. package/expo-sqlite/session.d.ts +5 -5
  85. package/expo-sqlite/session.js +5 -5
  86. package/expo-sqlite/session.js.map +1 -1
  87. package/{cache/core/cache.cjs → extension-core/gel/index.cjs} +9 -23
  88. package/extension-core/gel/index.cjs.map +1 -0
  89. package/extension-core/gel/index.d.cts +67 -0
  90. package/extension-core/gel/index.d.ts +67 -0
  91. package/extension-core/gel/index.js +9 -0
  92. package/extension-core/gel/index.js.map +1 -0
  93. package/extension-core/index.cjs +42 -0
  94. package/extension-core/index.cjs.map +1 -0
  95. package/extension-core/index.d.cts +9 -0
  96. package/extension-core/index.d.ts +9 -0
  97. package/extension-core/index.js +15 -0
  98. package/extension-core/index.js.map +1 -0
  99. package/{errors → extension-core/mysql}/index.cjs +9 -16
  100. package/extension-core/mysql/index.cjs.map +1 -0
  101. package/extension-core/mysql/index.d.cts +69 -0
  102. package/extension-core/mysql/index.d.ts +69 -0
  103. package/extension-core/mysql/index.js +9 -0
  104. package/extension-core/mysql/index.js.map +1 -0
  105. package/extension-core/pg/index.cjs +33 -0
  106. package/extension-core/pg/index.cjs.map +1 -0
  107. package/extension-core/pg/index.d.cts +67 -0
  108. package/extension-core/pg/index.d.ts +67 -0
  109. package/extension-core/pg/index.js +9 -0
  110. package/extension-core/pg/index.js.map +1 -0
  111. package/extension-core/singlestore/index.cjs +33 -0
  112. package/extension-core/singlestore/index.cjs.map +1 -0
  113. package/extension-core/singlestore/index.d.cts +67 -0
  114. package/extension-core/singlestore/index.d.ts +67 -0
  115. package/extension-core/singlestore/index.js +9 -0
  116. package/extension-core/singlestore/index.js.map +1 -0
  117. package/extension-core/sqlite/index.cjs +33 -0
  118. package/extension-core/sqlite/index.cjs.map +1 -0
  119. package/extension-core/sqlite/index.d.cts +68 -0
  120. package/extension-core/sqlite/index.d.ts +68 -0
  121. package/extension-core/sqlite/index.js +9 -0
  122. package/extension-core/sqlite/index.js.map +1 -0
  123. package/extensions/hook/gel/index.cjs +47 -0
  124. package/extensions/hook/gel/index.cjs.map +1 -0
  125. package/extensions/hook/gel/index.d.cts +11 -0
  126. package/extensions/hook/gel/index.d.ts +11 -0
  127. package/extensions/hook/gel/index.js +22 -0
  128. package/extensions/hook/gel/index.js.map +1 -0
  129. package/extensions/hook/mysql/index.cjs +47 -0
  130. package/extensions/hook/mysql/index.cjs.map +1 -0
  131. package/extensions/hook/mysql/index.d.cts +11 -0
  132. package/extensions/hook/mysql/index.d.ts +11 -0
  133. package/extensions/hook/mysql/index.js +22 -0
  134. package/extensions/hook/mysql/index.js.map +1 -0
  135. package/extensions/hook/pg/index.cjs +47 -0
  136. package/extensions/hook/pg/index.cjs.map +1 -0
  137. package/extensions/hook/pg/index.d.cts +11 -0
  138. package/extensions/hook/pg/index.d.ts +11 -0
  139. package/extensions/hook/pg/index.js +22 -0
  140. package/extensions/hook/pg/index.js.map +1 -0
  141. package/extensions/hook/singlestore/index.cjs +47 -0
  142. package/extensions/hook/singlestore/index.cjs.map +1 -0
  143. package/extensions/hook/singlestore/index.d.cts +11 -0
  144. package/extensions/hook/singlestore/index.d.ts +11 -0
  145. package/extensions/hook/singlestore/index.js +22 -0
  146. package/extensions/hook/singlestore/index.js.map +1 -0
  147. package/extensions/hook/sqlite/index.cjs +47 -0
  148. package/extensions/hook/sqlite/index.cjs.map +1 -0
  149. package/extensions/hook/sqlite/index.d.cts +11 -0
  150. package/extensions/hook/sqlite/index.d.ts +11 -0
  151. package/extensions/hook/sqlite/index.js +22 -0
  152. package/extensions/hook/sqlite/index.js.map +1 -0
  153. package/extensions/s3-file/common.cjs +321 -0
  154. package/extensions/s3-file/common.cjs.map +1 -0
  155. package/extensions/s3-file/common.d.cts +88 -0
  156. package/extensions/s3-file/common.d.ts +88 -0
  157. package/extensions/s3-file/common.js +288 -0
  158. package/extensions/s3-file/common.js.map +1 -0
  159. package/extensions/s3-file/gel/column.cjs +124 -0
  160. package/extensions/s3-file/gel/column.cjs.map +1 -0
  161. package/extensions/s3-file/gel/column.d.cts +105 -0
  162. package/extensions/s3-file/gel/column.d.ts +105 -0
  163. package/extensions/s3-file/gel/column.js +103 -0
  164. package/extensions/s3-file/gel/column.js.map +1 -0
  165. package/extensions/s3-file/gel/extension.cjs +271 -0
  166. package/extensions/s3-file/gel/extension.cjs.map +1 -0
  167. package/extensions/s3-file/gel/extension.d.cts +18 -0
  168. package/extensions/s3-file/gel/extension.d.ts +18 -0
  169. package/extensions/s3-file/gel/extension.js +257 -0
  170. package/extensions/s3-file/gel/extension.js.map +1 -0
  171. package/{cache/upstash → extensions/s3-file/gel}/index.cjs +6 -4
  172. package/extensions/s3-file/gel/index.cjs.map +1 -0
  173. package/extensions/s3-file/gel/index.d.cts +2 -0
  174. package/extensions/s3-file/gel/index.d.ts +2 -0
  175. package/extensions/s3-file/gel/index.js +3 -0
  176. package/extensions/s3-file/gel/index.js.map +1 -0
  177. package/{cache/core → extensions/s3-file}/index.cjs +4 -4
  178. package/extensions/s3-file/index.cjs.map +1 -0
  179. package/extensions/s3-file/index.d.cts +1 -0
  180. package/extensions/s3-file/index.d.ts +1 -0
  181. package/extensions/s3-file/index.js +2 -0
  182. package/extensions/s3-file/index.js.map +1 -0
  183. package/extensions/s3-file/mysql/column.cjs +121 -0
  184. package/extensions/s3-file/mysql/column.cjs.map +1 -0
  185. package/extensions/s3-file/mysql/column.d.cts +63 -0
  186. package/extensions/s3-file/mysql/column.d.ts +63 -0
  187. package/extensions/s3-file/mysql/column.js +97 -0
  188. package/extensions/s3-file/mysql/column.js.map +1 -0
  189. package/extensions/s3-file/mysql/extension.cjs +250 -0
  190. package/extensions/s3-file/mysql/extension.cjs.map +1 -0
  191. package/extensions/s3-file/mysql/extension.d.cts +18 -0
  192. package/extensions/s3-file/mysql/extension.d.ts +18 -0
  193. package/extensions/s3-file/mysql/extension.js +236 -0
  194. package/extensions/s3-file/mysql/extension.js.map +1 -0
  195. package/extensions/s3-file/mysql/index.cjs +25 -0
  196. package/extensions/s3-file/mysql/index.cjs.map +1 -0
  197. package/extensions/s3-file/mysql/index.d.cts +2 -0
  198. package/extensions/s3-file/mysql/index.d.ts +2 -0
  199. package/extensions/s3-file/mysql/index.js +3 -0
  200. package/extensions/s3-file/mysql/index.js.map +1 -0
  201. package/extensions/s3-file/pg/column.cjs +124 -0
  202. package/extensions/s3-file/pg/column.cjs.map +1 -0
  203. package/extensions/s3-file/pg/column.d.cts +105 -0
  204. package/extensions/s3-file/pg/column.d.ts +105 -0
  205. package/extensions/s3-file/pg/column.js +103 -0
  206. package/extensions/s3-file/pg/column.js.map +1 -0
  207. package/extensions/s3-file/pg/extension.cjs +272 -0
  208. package/extensions/s3-file/pg/extension.cjs.map +1 -0
  209. package/extensions/s3-file/pg/extension.d.cts +18 -0
  210. package/extensions/s3-file/pg/extension.d.ts +18 -0
  211. package/extensions/s3-file/pg/extension.js +258 -0
  212. package/extensions/s3-file/pg/extension.js.map +1 -0
  213. package/{cache/core/types.cjs → extensions/s3-file/pg/index.cjs} +11 -3
  214. package/extensions/s3-file/pg/index.cjs.map +1 -0
  215. package/extensions/s3-file/pg/index.d.cts +2 -0
  216. package/extensions/s3-file/pg/index.d.ts +2 -0
  217. package/extensions/s3-file/pg/index.js +3 -0
  218. package/extensions/s3-file/pg/index.js.map +1 -0
  219. package/extensions/s3-file/singlestore/column.cjs +121 -0
  220. package/extensions/s3-file/singlestore/column.cjs.map +1 -0
  221. package/extensions/s3-file/singlestore/column.d.cts +63 -0
  222. package/extensions/s3-file/singlestore/column.d.ts +63 -0
  223. package/extensions/s3-file/singlestore/column.js +97 -0
  224. package/extensions/s3-file/singlestore/column.js.map +1 -0
  225. package/extensions/s3-file/singlestore/extension.cjs +247 -0
  226. package/extensions/s3-file/singlestore/extension.cjs.map +1 -0
  227. package/extensions/s3-file/singlestore/extension.d.cts +18 -0
  228. package/extensions/s3-file/singlestore/extension.d.ts +18 -0
  229. package/extensions/s3-file/singlestore/extension.js +233 -0
  230. package/extensions/s3-file/singlestore/extension.js.map +1 -0
  231. package/extensions/s3-file/singlestore/index.cjs +25 -0
  232. package/extensions/s3-file/singlestore/index.cjs.map +1 -0
  233. package/extensions/s3-file/singlestore/index.d.cts +2 -0
  234. package/extensions/s3-file/singlestore/index.d.ts +2 -0
  235. package/extensions/s3-file/singlestore/index.js +3 -0
  236. package/extensions/s3-file/singlestore/index.js.map +1 -0
  237. package/extensions/s3-file/sqlite/column.cjs +121 -0
  238. package/extensions/s3-file/sqlite/column.cjs.map +1 -0
  239. package/extensions/s3-file/sqlite/column.d.cts +63 -0
  240. package/extensions/s3-file/sqlite/column.d.ts +63 -0
  241. package/extensions/s3-file/sqlite/column.js +97 -0
  242. package/extensions/s3-file/sqlite/column.js.map +1 -0
  243. package/extensions/s3-file/sqlite/extension.cjs +250 -0
  244. package/extensions/s3-file/sqlite/extension.cjs.map +1 -0
  245. package/extensions/s3-file/sqlite/extension.d.cts +18 -0
  246. package/extensions/s3-file/sqlite/extension.d.ts +18 -0
  247. package/extensions/s3-file/sqlite/extension.js +236 -0
  248. package/extensions/s3-file/sqlite/extension.js.map +1 -0
  249. package/extensions/s3-file/sqlite/index.cjs +25 -0
  250. package/extensions/s3-file/sqlite/index.cjs.map +1 -0
  251. package/extensions/s3-file/sqlite/index.d.cts +2 -0
  252. package/extensions/s3-file/sqlite/index.d.ts +2 -0
  253. package/extensions/s3-file/sqlite/index.js +3 -0
  254. package/extensions/s3-file/sqlite/index.js.map +1 -0
  255. package/gel/driver.cjs +6 -11
  256. package/gel/driver.cjs.map +1 -1
  257. package/gel/driver.d.cts +6 -6
  258. package/gel/driver.d.ts +6 -6
  259. package/gel/driver.js +6 -11
  260. package/gel/driver.js.map +1 -1
  261. package/gel/session.cjs +19 -31
  262. package/gel/session.cjs.map +1 -1
  263. package/gel/session.d.cts +5 -14
  264. package/gel/session.d.ts +5 -14
  265. package/gel/session.js +19 -31
  266. package/gel/session.js.map +1 -1
  267. package/gel-core/columns/common.cjs +8 -0
  268. package/gel-core/columns/common.cjs.map +1 -1
  269. package/gel-core/columns/common.d.cts +2 -0
  270. package/gel-core/columns/common.d.ts +2 -0
  271. package/gel-core/columns/common.js +8 -0
  272. package/gel-core/columns/common.js.map +1 -1
  273. package/gel-core/db.cjs +5 -6
  274. package/gel-core/db.cjs.map +1 -1
  275. package/gel-core/db.d.cts +3 -5
  276. package/gel-core/db.d.ts +3 -5
  277. package/gel-core/db.js +5 -6
  278. package/gel-core/db.js.map +1 -1
  279. package/gel-core/dialect.cjs +25 -19
  280. package/gel-core/dialect.cjs.map +1 -1
  281. package/gel-core/dialect.d.cts +7 -6
  282. package/gel-core/dialect.d.ts +7 -6
  283. package/gel-core/dialect.js +26 -20
  284. package/gel-core/dialect.js.map +1 -1
  285. package/gel-core/query-builders/delete.cjs +6 -5
  286. package/gel-core/query-builders/delete.cjs.map +1 -1
  287. package/gel-core/query-builders/delete.js +6 -5
  288. package/gel-core/query-builders/delete.js.map +1 -1
  289. package/gel-core/query-builders/insert.cjs +31 -9
  290. package/gel-core/query-builders/insert.cjs.map +1 -1
  291. package/gel-core/query-builders/insert.js +33 -11
  292. package/gel-core/query-builders/insert.js.map +1 -1
  293. package/gel-core/query-builders/query.cjs +12 -1
  294. package/gel-core/query-builders/query.cjs.map +1 -1
  295. package/gel-core/query-builders/query.js +12 -1
  296. package/gel-core/query-builders/query.js.map +1 -1
  297. package/gel-core/query-builders/select.cjs +12 -30
  298. package/gel-core/query-builders/select.cjs.map +1 -1
  299. package/gel-core/query-builders/select.d.cts +0 -9
  300. package/gel-core/query-builders/select.d.ts +0 -9
  301. package/gel-core/query-builders/select.js +12 -30
  302. package/gel-core/query-builders/select.js.map +1 -1
  303. package/gel-core/query-builders/update.cjs +7 -6
  304. package/gel-core/query-builders/update.cjs.map +1 -1
  305. package/gel-core/query-builders/update.js +7 -6
  306. package/gel-core/query-builders/update.js.map +1 -1
  307. package/gel-core/session.cjs +48 -82
  308. package/gel-core/session.cjs.map +1 -1
  309. package/gel-core/session.d.cts +12 -17
  310. package/gel-core/session.d.ts +12 -17
  311. package/gel-core/session.js +49 -83
  312. package/gel-core/session.js.map +1 -1
  313. package/gel-core/utils.cjs +0 -16
  314. package/gel-core/utils.cjs.map +1 -1
  315. package/gel-core/utils.d.cts +4 -8
  316. package/gel-core/utils.d.ts +4 -8
  317. package/gel-core/utils.js +0 -15
  318. package/gel-core/utils.js.map +1 -1
  319. package/libsql/driver-core.cjs +3 -6
  320. package/libsql/driver-core.cjs.map +1 -1
  321. package/libsql/driver-core.js +3 -6
  322. package/libsql/driver-core.js.map +1 -1
  323. package/libsql/driver.cjs +4 -1
  324. package/libsql/driver.cjs.map +1 -1
  325. package/libsql/driver.d.cts +4 -3
  326. package/libsql/driver.d.ts +4 -3
  327. package/libsql/driver.js +4 -1
  328. package/libsql/driver.js.map +1 -1
  329. package/libsql/http/index.cjs +4 -1
  330. package/libsql/http/index.cjs.map +1 -1
  331. package/libsql/http/index.d.cts +4 -3
  332. package/libsql/http/index.d.ts +4 -3
  333. package/libsql/http/index.js +4 -1
  334. package/libsql/http/index.js.map +1 -1
  335. package/libsql/node/index.cjs +4 -1
  336. package/libsql/node/index.cjs.map +1 -1
  337. package/libsql/node/index.d.cts +4 -3
  338. package/libsql/node/index.d.ts +4 -3
  339. package/libsql/node/index.js +4 -1
  340. package/libsql/node/index.js.map +1 -1
  341. package/libsql/session.cjs +37 -34
  342. package/libsql/session.cjs.map +1 -1
  343. package/libsql/session.d.cts +9 -18
  344. package/libsql/session.d.ts +9 -18
  345. package/libsql/session.js +37 -34
  346. package/libsql/session.js.map +1 -1
  347. package/libsql/sqlite3/index.cjs +4 -1
  348. package/libsql/sqlite3/index.cjs.map +1 -1
  349. package/libsql/sqlite3/index.d.cts +4 -3
  350. package/libsql/sqlite3/index.d.ts +4 -3
  351. package/libsql/sqlite3/index.js +4 -1
  352. package/libsql/sqlite3/index.js.map +1 -1
  353. package/libsql/wasm/index.cjs +4 -1
  354. package/libsql/wasm/index.cjs.map +1 -1
  355. package/libsql/wasm/index.d.cts +4 -3
  356. package/libsql/wasm/index.d.ts +4 -3
  357. package/libsql/wasm/index.js +4 -1
  358. package/libsql/wasm/index.js.map +1 -1
  359. package/libsql/web/index.cjs +4 -1
  360. package/libsql/web/index.cjs.map +1 -1
  361. package/libsql/web/index.d.cts +4 -3
  362. package/libsql/web/index.d.ts +4 -3
  363. package/libsql/web/index.js +4 -1
  364. package/libsql/web/index.js.map +1 -1
  365. package/libsql/ws/index.cjs +4 -1
  366. package/libsql/ws/index.cjs.map +1 -1
  367. package/libsql/ws/index.d.cts +4 -3
  368. package/libsql/ws/index.d.ts +4 -3
  369. package/libsql/ws/index.js +4 -1
  370. package/libsql/ws/index.js.map +1 -1
  371. package/mysql-core/db.cjs +5 -6
  372. package/mysql-core/db.cjs.map +1 -1
  373. package/mysql-core/db.d.cts +3 -5
  374. package/mysql-core/db.d.ts +3 -5
  375. package/mysql-core/db.js +5 -6
  376. package/mysql-core/db.js.map +1 -1
  377. package/mysql-core/dialect.cjs +30 -23
  378. package/mysql-core/dialect.cjs.map +1 -1
  379. package/mysql-core/dialect.d.cts +8 -7
  380. package/mysql-core/dialect.d.ts +8 -7
  381. package/mysql-core/dialect.js +31 -24
  382. package/mysql-core/dialect.js.map +1 -1
  383. package/mysql-core/query-builders/delete.cjs +5 -7
  384. package/mysql-core/query-builders/delete.cjs.map +1 -1
  385. package/mysql-core/query-builders/delete.js +5 -7
  386. package/mysql-core/query-builders/delete.js.map +1 -1
  387. package/mysql-core/query-builders/insert.cjs +30 -13
  388. package/mysql-core/query-builders/insert.cjs.map +1 -1
  389. package/mysql-core/query-builders/insert.d.cts +0 -2
  390. package/mysql-core/query-builders/insert.d.ts +0 -2
  391. package/mysql-core/query-builders/insert.js +32 -15
  392. package/mysql-core/query-builders/insert.js.map +1 -1
  393. package/mysql-core/query-builders/query.cjs +14 -2
  394. package/mysql-core/query-builders/query.cjs.map +1 -1
  395. package/mysql-core/query-builders/query.js +14 -2
  396. package/mysql-core/query-builders/query.js.map +1 -1
  397. package/mysql-core/query-builders/select.cjs +14 -30
  398. package/mysql-core/query-builders/select.cjs.map +1 -1
  399. package/mysql-core/query-builders/select.d.cts +0 -9
  400. package/mysql-core/query-builders/select.d.ts +0 -9
  401. package/mysql-core/query-builders/select.js +15 -31
  402. package/mysql-core/query-builders/select.js.map +1 -1
  403. package/mysql-core/query-builders/update.cjs +13 -11
  404. package/mysql-core/query-builders/update.cjs.map +1 -1
  405. package/mysql-core/query-builders/update.d.cts +0 -2
  406. package/mysql-core/query-builders/update.d.ts +0 -2
  407. package/mysql-core/query-builders/update.js +13 -11
  408. package/mysql-core/query-builders/update.js.map +1 -1
  409. package/mysql-core/session.cjs +42 -80
  410. package/mysql-core/session.cjs.map +1 -1
  411. package/mysql-core/session.d.cts +14 -18
  412. package/mysql-core/session.d.ts +14 -18
  413. package/mysql-core/session.js +43 -81
  414. package/mysql-core/session.js.map +1 -1
  415. package/mysql-core/utils.cjs +0 -16
  416. package/mysql-core/utils.cjs.map +1 -1
  417. package/mysql-core/utils.d.cts +2 -6
  418. package/mysql-core/utils.d.ts +2 -6
  419. package/mysql-core/utils.js +0 -15
  420. package/mysql-core/utils.js.map +1 -1
  421. package/mysql-proxy/driver.cjs +3 -2
  422. package/mysql-proxy/driver.cjs.map +1 -1
  423. package/mysql-proxy/driver.d.cts +2 -1
  424. package/mysql-proxy/driver.d.ts +2 -1
  425. package/mysql-proxy/driver.js +3 -2
  426. package/mysql-proxy/driver.js.map +1 -1
  427. package/mysql-proxy/session.cjs +10 -20
  428. package/mysql-proxy/session.cjs.map +1 -1
  429. package/mysql-proxy/session.d.cts +5 -16
  430. package/mysql-proxy/session.d.ts +5 -16
  431. package/mysql-proxy/session.js +10 -20
  432. package/mysql-proxy/session.js.map +1 -1
  433. package/mysql2/driver.cjs +6 -12
  434. package/mysql2/driver.cjs.map +1 -1
  435. package/mysql2/driver.d.cts +4 -4
  436. package/mysql2/driver.d.ts +4 -4
  437. package/mysql2/driver.js +6 -12
  438. package/mysql2/driver.js.map +1 -1
  439. package/mysql2/session.cjs +16 -22
  440. package/mysql2/session.cjs.map +1 -1
  441. package/mysql2/session.d.cts +5 -15
  442. package/mysql2/session.d.ts +5 -15
  443. package/mysql2/session.js +16 -22
  444. package/mysql2/session.js.map +1 -1
  445. package/neon-http/driver.cjs +5 -10
  446. package/neon-http/driver.cjs.map +1 -1
  447. package/neon-http/driver.d.cts +6 -6
  448. package/neon-http/driver.d.ts +6 -6
  449. package/neon-http/driver.js +5 -10
  450. package/neon-http/driver.js.map +1 -1
  451. package/neon-http/session.cjs +20 -28
  452. package/neon-http/session.cjs.map +1 -1
  453. package/neon-http/session.d.cts +5 -14
  454. package/neon-http/session.d.ts +5 -14
  455. package/neon-http/session.js +20 -28
  456. package/neon-http/session.js.map +1 -1
  457. package/neon-serverless/driver.cjs +6 -11
  458. package/neon-serverless/driver.cjs.map +1 -1
  459. package/neon-serverless/driver.d.cts +6 -6
  460. package/neon-serverless/driver.d.ts +6 -6
  461. package/neon-serverless/driver.js +6 -11
  462. package/neon-serverless/driver.js.map +1 -1
  463. package/neon-serverless/session.cjs +27 -27
  464. package/neon-serverless/session.cjs.map +1 -1
  465. package/neon-serverless/session.d.cts +5 -14
  466. package/neon-serverless/session.d.ts +5 -14
  467. package/neon-serverless/session.js +27 -27
  468. package/neon-serverless/session.js.map +1 -1
  469. package/node-postgres/driver.cjs +6 -11
  470. package/node-postgres/driver.cjs.map +1 -1
  471. package/node-postgres/driver.d.cts +6 -6
  472. package/node-postgres/driver.d.ts +6 -6
  473. package/node-postgres/driver.js +6 -11
  474. package/node-postgres/driver.js.map +1 -1
  475. package/node-postgres/session.cjs +21 -25
  476. package/node-postgres/session.cjs.map +1 -1
  477. package/node-postgres/session.d.cts +5 -15
  478. package/node-postgres/session.d.ts +5 -15
  479. package/node-postgres/session.js +21 -25
  480. package/node-postgres/session.js.map +1 -1
  481. package/op-sqlite/driver.cjs +1 -5
  482. package/op-sqlite/driver.cjs.map +1 -1
  483. package/op-sqlite/driver.d.cts +2 -1
  484. package/op-sqlite/driver.d.ts +2 -1
  485. package/op-sqlite/driver.js +1 -5
  486. package/op-sqlite/driver.js.map +1 -1
  487. package/op-sqlite/session.cjs +11 -25
  488. package/op-sqlite/session.cjs.map +1 -1
  489. package/op-sqlite/session.d.cts +6 -16
  490. package/op-sqlite/session.d.ts +6 -16
  491. package/op-sqlite/session.js +11 -25
  492. package/op-sqlite/session.js.map +1 -1
  493. package/package.json +331 -50
  494. package/pg-core/columns/common.cjs +2 -0
  495. package/pg-core/columns/common.cjs.map +1 -1
  496. package/pg-core/columns/common.js +2 -0
  497. package/pg-core/columns/common.js.map +1 -1
  498. package/pg-core/db.cjs +5 -6
  499. package/pg-core/db.cjs.map +1 -1
  500. package/pg-core/db.d.cts +3 -5
  501. package/pg-core/db.d.ts +3 -5
  502. package/pg-core/db.js +5 -6
  503. package/pg-core/db.js.map +1 -1
  504. package/pg-core/dialect.cjs +26 -19
  505. package/pg-core/dialect.cjs.map +1 -1
  506. package/pg-core/dialect.d.cts +7 -6
  507. package/pg-core/dialect.d.ts +7 -6
  508. package/pg-core/dialect.js +27 -20
  509. package/pg-core/dialect.js.map +1 -1
  510. package/pg-core/query-builders/delete.cjs +7 -7
  511. package/pg-core/query-builders/delete.cjs.map +1 -1
  512. package/pg-core/query-builders/delete.d.cts +0 -2
  513. package/pg-core/query-builders/delete.d.ts +0 -2
  514. package/pg-core/query-builders/delete.js +7 -7
  515. package/pg-core/query-builders/delete.js.map +1 -1
  516. package/pg-core/query-builders/insert.cjs +37 -11
  517. package/pg-core/query-builders/insert.cjs.map +1 -1
  518. package/pg-core/query-builders/insert.d.cts +0 -2
  519. package/pg-core/query-builders/insert.d.ts +0 -2
  520. package/pg-core/query-builders/insert.js +39 -13
  521. package/pg-core/query-builders/insert.js.map +1 -1
  522. package/pg-core/query-builders/query.cjs +12 -1
  523. package/pg-core/query-builders/query.cjs.map +1 -1
  524. package/pg-core/query-builders/query.js +12 -1
  525. package/pg-core/query-builders/query.js.map +1 -1
  526. package/pg-core/query-builders/select.cjs +14 -33
  527. package/pg-core/query-builders/select.cjs.map +1 -1
  528. package/pg-core/query-builders/select.d.cts +6 -15
  529. package/pg-core/query-builders/select.d.ts +6 -15
  530. package/pg-core/query-builders/select.js +14 -33
  531. package/pg-core/query-builders/select.js.map +1 -1
  532. package/pg-core/query-builders/update.cjs +8 -8
  533. package/pg-core/query-builders/update.cjs.map +1 -1
  534. package/pg-core/query-builders/update.d.cts +1 -3
  535. package/pg-core/query-builders/update.d.ts +1 -3
  536. package/pg-core/query-builders/update.js +9 -13
  537. package/pg-core/query-builders/update.js.map +1 -1
  538. package/pg-core/session.cjs +45 -78
  539. package/pg-core/session.cjs.map +1 -1
  540. package/pg-core/session.d.cts +12 -17
  541. package/pg-core/session.d.ts +12 -17
  542. package/pg-core/session.js +46 -79
  543. package/pg-core/session.js.map +1 -1
  544. package/pg-core/utils.cjs +0 -16
  545. package/pg-core/utils.cjs.map +1 -1
  546. package/pg-core/utils.d.cts +4 -8
  547. package/pg-core/utils.d.ts +4 -8
  548. package/pg-core/utils.js +1 -16
  549. package/pg-core/utils.js.map +1 -1
  550. package/pg-proxy/driver.cjs +3 -7
  551. package/pg-proxy/driver.cjs.map +1 -1
  552. package/pg-proxy/driver.d.cts +2 -1
  553. package/pg-proxy/driver.d.ts +2 -1
  554. package/pg-proxy/driver.js +3 -7
  555. package/pg-proxy/driver.js.map +1 -1
  556. package/pg-proxy/session.cjs +10 -18
  557. package/pg-proxy/session.cjs.map +1 -1
  558. package/pg-proxy/session.d.cts +5 -14
  559. package/pg-proxy/session.d.ts +5 -14
  560. package/pg-proxy/session.js +10 -18
  561. package/pg-proxy/session.js.map +1 -1
  562. package/pglite/driver.cjs +6 -11
  563. package/pglite/driver.cjs.map +1 -1
  564. package/pglite/driver.d.cts +6 -6
  565. package/pglite/driver.d.ts +6 -6
  566. package/pglite/driver.js +6 -11
  567. package/pglite/driver.js.map +1 -1
  568. package/pglite/session.cjs +23 -25
  569. package/pglite/session.cjs.map +1 -1
  570. package/pglite/session.d.cts +5 -14
  571. package/pglite/session.d.ts +5 -14
  572. package/pglite/session.js +23 -25
  573. package/pglite/session.js.map +1 -1
  574. package/planetscale-serverless/driver.cjs +3 -6
  575. package/planetscale-serverless/driver.cjs.map +1 -1
  576. package/planetscale-serverless/driver.d.cts +4 -4
  577. package/planetscale-serverless/driver.d.ts +4 -4
  578. package/planetscale-serverless/driver.js +3 -6
  579. package/planetscale-serverless/driver.js.map +1 -1
  580. package/planetscale-serverless/session.cjs +25 -25
  581. package/planetscale-serverless/session.cjs.map +1 -1
  582. package/planetscale-serverless/session.d.cts +6 -17
  583. package/planetscale-serverless/session.d.ts +6 -17
  584. package/planetscale-serverless/session.js +25 -25
  585. package/planetscale-serverless/session.js.map +1 -1
  586. package/postgres-js/driver.cjs +3 -6
  587. package/postgres-js/driver.cjs.map +1 -1
  588. package/postgres-js/driver.d.cts +4 -3
  589. package/postgres-js/driver.d.ts +4 -3
  590. package/postgres-js/driver.js +3 -6
  591. package/postgres-js/driver.js.map +1 -1
  592. package/postgres-js/session.cjs +30 -31
  593. package/postgres-js/session.cjs.map +1 -1
  594. package/postgres-js/session.d.cts +6 -15
  595. package/postgres-js/session.d.ts +6 -15
  596. package/postgres-js/session.js +30 -31
  597. package/postgres-js/session.js.map +1 -1
  598. package/prisma/mysql/driver.cjs +3 -3
  599. package/prisma/mysql/driver.cjs.map +1 -1
  600. package/prisma/mysql/driver.d.cts +3 -2
  601. package/prisma/mysql/driver.d.ts +3 -2
  602. package/prisma/mysql/driver.js +3 -3
  603. package/prisma/mysql/driver.js.map +1 -1
  604. package/prisma/mysql/session.cjs +10 -11
  605. package/prisma/mysql/session.cjs.map +1 -1
  606. package/prisma/mysql/session.d.cts +7 -6
  607. package/prisma/mysql/session.d.ts +7 -6
  608. package/prisma/mysql/session.js +10 -11
  609. package/prisma/mysql/session.js.map +1 -1
  610. package/prisma/pg/driver.cjs +3 -3
  611. package/prisma/pg/driver.cjs.map +1 -1
  612. package/prisma/pg/driver.d.cts +2 -1
  613. package/prisma/pg/driver.d.ts +2 -1
  614. package/prisma/pg/driver.js +3 -3
  615. package/prisma/pg/driver.js.map +1 -1
  616. package/prisma/pg/session.cjs +7 -7
  617. package/prisma/pg/session.cjs.map +1 -1
  618. package/prisma/pg/session.d.cts +6 -5
  619. package/prisma/pg/session.d.ts +6 -5
  620. package/prisma/pg/session.js +7 -7
  621. package/prisma/pg/session.js.map +1 -1
  622. package/prisma/sqlite/driver.cjs +7 -1
  623. package/prisma/sqlite/driver.cjs.map +1 -1
  624. package/prisma/sqlite/driver.d.cts +2 -1
  625. package/prisma/sqlite/driver.d.ts +2 -1
  626. package/prisma/sqlite/driver.js +7 -1
  627. package/prisma/sqlite/driver.js.map +1 -1
  628. package/prisma/sqlite/session.cjs +6 -6
  629. package/prisma/sqlite/session.cjs.map +1 -1
  630. package/prisma/sqlite/session.d.cts +6 -5
  631. package/prisma/sqlite/session.d.ts +6 -5
  632. package/prisma/sqlite/session.js +6 -6
  633. package/prisma/sqlite/session.js.map +1 -1
  634. package/query-builders/query-builder.cjs.map +1 -1
  635. package/query-builders/query-builder.d.cts +1 -2
  636. package/query-builders/query-builder.d.ts +1 -2
  637. package/query-builders/query-builder.js.map +1 -1
  638. package/singlestore/driver.cjs +28 -29
  639. package/singlestore/driver.cjs.map +1 -1
  640. package/singlestore/driver.d.cts +4 -4
  641. package/singlestore/driver.d.ts +4 -4
  642. package/singlestore/driver.js +28 -29
  643. package/singlestore/driver.js.map +1 -1
  644. package/singlestore/session.cjs +16 -22
  645. package/singlestore/session.cjs.map +1 -1
  646. package/singlestore/session.d.cts +5 -15
  647. package/singlestore/session.d.ts +5 -15
  648. package/singlestore/session.js +16 -22
  649. package/singlestore/session.js.map +1 -1
  650. package/singlestore-core/db.cjs +5 -6
  651. package/singlestore-core/db.cjs.map +1 -1
  652. package/singlestore-core/db.d.cts +3 -5
  653. package/singlestore-core/db.d.ts +3 -5
  654. package/singlestore-core/db.js +5 -6
  655. package/singlestore-core/db.js.map +1 -1
  656. package/singlestore-core/dialect.cjs +25 -18
  657. package/singlestore-core/dialect.cjs.map +1 -1
  658. package/singlestore-core/dialect.d.cts +7 -6
  659. package/singlestore-core/dialect.d.ts +7 -6
  660. package/singlestore-core/dialect.js +26 -19
  661. package/singlestore-core/dialect.js.map +1 -1
  662. package/singlestore-core/query-builders/delete.cjs +5 -7
  663. package/singlestore-core/query-builders/delete.cjs.map +1 -1
  664. package/singlestore-core/query-builders/delete.js +5 -7
  665. package/singlestore-core/query-builders/delete.js.map +1 -1
  666. package/singlestore-core/query-builders/insert.cjs +30 -11
  667. package/singlestore-core/query-builders/insert.cjs.map +1 -1
  668. package/singlestore-core/query-builders/insert.js +32 -13
  669. package/singlestore-core/query-builders/insert.js.map +1 -1
  670. package/singlestore-core/query-builders/query.cjs +12 -1
  671. package/singlestore-core/query-builders/query.cjs.map +1 -1
  672. package/singlestore-core/query-builders/query.js +12 -1
  673. package/singlestore-core/query-builders/query.js.map +1 -1
  674. package/singlestore-core/query-builders/select.cjs +14 -31
  675. package/singlestore-core/query-builders/select.cjs.map +1 -1
  676. package/singlestore-core/query-builders/select.d.cts +0 -9
  677. package/singlestore-core/query-builders/select.d.ts +0 -9
  678. package/singlestore-core/query-builders/select.js +14 -31
  679. package/singlestore-core/query-builders/select.js.map +1 -1
  680. package/singlestore-core/query-builders/update.cjs +6 -8
  681. package/singlestore-core/query-builders/update.cjs.map +1 -1
  682. package/singlestore-core/query-builders/update.js +6 -8
  683. package/singlestore-core/query-builders/update.js.map +1 -1
  684. package/singlestore-core/session.cjs +42 -80
  685. package/singlestore-core/session.cjs.map +1 -1
  686. package/singlestore-core/session.d.cts +14 -17
  687. package/singlestore-core/session.d.ts +14 -17
  688. package/singlestore-core/session.js +43 -81
  689. package/singlestore-core/session.js.map +1 -1
  690. package/singlestore-core/utils.cjs +0 -16
  691. package/singlestore-core/utils.cjs.map +1 -1
  692. package/singlestore-core/utils.d.cts +0 -3
  693. package/singlestore-core/utils.d.ts +0 -3
  694. package/singlestore-core/utils.js +0 -15
  695. package/singlestore-core/utils.js.map +1 -1
  696. package/singlestore-proxy/driver.cjs +3 -2
  697. package/singlestore-proxy/driver.cjs.map +1 -1
  698. package/singlestore-proxy/driver.d.cts +2 -1
  699. package/singlestore-proxy/driver.d.ts +2 -1
  700. package/singlestore-proxy/driver.js +3 -2
  701. package/singlestore-proxy/driver.js.map +1 -1
  702. package/singlestore-proxy/session.cjs +8 -8
  703. package/singlestore-proxy/session.cjs.map +1 -1
  704. package/singlestore-proxy/session.d.cts +5 -6
  705. package/singlestore-proxy/session.d.ts +5 -6
  706. package/singlestore-proxy/session.js +8 -8
  707. package/singlestore-proxy/session.js.map +1 -1
  708. package/sql/sql.cjs +24 -12
  709. package/sql/sql.cjs.map +1 -1
  710. package/sql/sql.d.cts +12 -0
  711. package/sql/sql.d.ts +12 -0
  712. package/sql/sql.js +23 -12
  713. package/sql/sql.js.map +1 -1
  714. package/sql-js/driver.cjs.map +1 -1
  715. package/sql-js/driver.d.cts +2 -1
  716. package/sql-js/driver.d.ts +2 -1
  717. package/sql-js/driver.js.map +1 -1
  718. package/sql-js/session.cjs +4 -4
  719. package/sql-js/session.cjs.map +1 -1
  720. package/sql-js/session.d.cts +4 -4
  721. package/sql-js/session.d.ts +4 -4
  722. package/sql-js/session.js +4 -4
  723. package/sql-js/session.js.map +1 -1
  724. package/sqlite-core/db.cjs +5 -6
  725. package/sqlite-core/db.cjs.map +1 -1
  726. package/sqlite-core/db.d.cts +3 -5
  727. package/sqlite-core/db.d.ts +3 -5
  728. package/sqlite-core/db.js +5 -6
  729. package/sqlite-core/db.js.map +1 -1
  730. package/sqlite-core/dialect.cjs +30 -19
  731. package/sqlite-core/dialect.cjs.map +1 -1
  732. package/sqlite-core/dialect.d.cts +7 -6
  733. package/sqlite-core/dialect.d.ts +7 -6
  734. package/sqlite-core/dialect.js +31 -20
  735. package/sqlite-core/dialect.js.map +1 -1
  736. package/sqlite-core/query-builders/delete.cjs +5 -5
  737. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  738. package/sqlite-core/query-builders/delete.js +5 -5
  739. package/sqlite-core/query-builders/delete.js.map +1 -1
  740. package/sqlite-core/query-builders/insert.cjs +25 -8
  741. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  742. package/sqlite-core/query-builders/insert.js +32 -10
  743. package/sqlite-core/query-builders/insert.js.map +1 -1
  744. package/sqlite-core/query-builders/query.cjs +12 -1
  745. package/sqlite-core/query-builders/query.cjs.map +1 -1
  746. package/sqlite-core/query-builders/query.js +12 -1
  747. package/sqlite-core/query-builders/query.js.map +1 -1
  748. package/sqlite-core/query-builders/select.cjs +15 -34
  749. package/sqlite-core/query-builders/select.cjs.map +1 -1
  750. package/sqlite-core/query-builders/select.d.cts +0 -9
  751. package/sqlite-core/query-builders/select.d.ts +0 -9
  752. package/sqlite-core/query-builders/select.js +15 -34
  753. package/sqlite-core/query-builders/select.js.map +1 -1
  754. package/sqlite-core/query-builders/update.cjs +6 -6
  755. package/sqlite-core/query-builders/update.cjs.map +1 -1
  756. package/sqlite-core/query-builders/update.js +6 -6
  757. package/sqlite-core/query-builders/update.js.map +1 -1
  758. package/sqlite-core/session.cjs +78 -90
  759. package/sqlite-core/session.cjs.map +1 -1
  760. package/sqlite-core/session.d.cts +20 -24
  761. package/sqlite-core/session.d.ts +20 -24
  762. package/sqlite-core/session.js +79 -91
  763. package/sqlite-core/session.js.map +1 -1
  764. package/sqlite-core/utils.cjs +0 -16
  765. package/sqlite-core/utils.cjs.map +1 -1
  766. package/sqlite-core/utils.d.cts +2 -6
  767. package/sqlite-core/utils.d.ts +2 -6
  768. package/sqlite-core/utils.js +0 -15
  769. package/sqlite-core/utils.js.map +1 -1
  770. package/sqlite-proxy/driver.cjs +4 -10
  771. package/sqlite-proxy/driver.cjs.map +1 -1
  772. package/sqlite-proxy/driver.d.cts +3 -2
  773. package/sqlite-proxy/driver.d.ts +3 -2
  774. package/sqlite-proxy/driver.js +4 -10
  775. package/sqlite-proxy/driver.js.map +1 -1
  776. package/sqlite-proxy/session.cjs +24 -29
  777. package/sqlite-proxy/session.cjs.map +1 -1
  778. package/sqlite-proxy/session.d.cts +8 -17
  779. package/sqlite-proxy/session.d.ts +8 -17
  780. package/sqlite-proxy/session.js +24 -29
  781. package/sqlite-proxy/session.js.map +1 -1
  782. package/subquery.cjs +3 -4
  783. package/subquery.cjs.map +1 -1
  784. package/subquery.d.cts +1 -2
  785. package/subquery.d.ts +1 -2
  786. package/subquery.js +3 -4
  787. package/subquery.js.map +1 -1
  788. package/tidb-serverless/driver.cjs +9 -6
  789. package/tidb-serverless/driver.cjs.map +1 -1
  790. package/tidb-serverless/driver.d.cts +4 -4
  791. package/tidb-serverless/driver.d.ts +4 -4
  792. package/tidb-serverless/driver.js +9 -6
  793. package/tidb-serverless/driver.js.map +1 -1
  794. package/tidb-serverless/session.cjs +25 -25
  795. package/tidb-serverless/session.cjs.map +1 -1
  796. package/tidb-serverless/session.d.cts +6 -17
  797. package/tidb-serverless/session.d.ts +6 -17
  798. package/tidb-serverless/session.js +25 -25
  799. package/tidb-serverless/session.js.map +1 -1
  800. package/tracing.cjs.map +1 -1
  801. package/tracing.js.map +1 -1
  802. package/utils.cjs +34 -24
  803. package/utils.cjs.map +1 -1
  804. package/utils.d.cts +5 -4
  805. package/utils.d.ts +5 -4
  806. package/utils.js +35 -15
  807. package/utils.js.map +1 -1
  808. package/vercel-postgres/driver.cjs +10 -12
  809. package/vercel-postgres/driver.cjs.map +1 -1
  810. package/vercel-postgres/driver.d.cts +6 -6
  811. package/vercel-postgres/driver.d.ts +6 -6
  812. package/vercel-postgres/driver.js +10 -12
  813. package/vercel-postgres/driver.js.map +1 -1
  814. package/vercel-postgres/session.cjs +22 -27
  815. package/vercel-postgres/session.cjs.map +1 -1
  816. package/vercel-postgres/session.d.cts +5 -14
  817. package/vercel-postgres/session.d.ts +5 -14
  818. package/vercel-postgres/session.js +22 -27
  819. package/vercel-postgres/session.js.map +1 -1
  820. package/version.cjs +1 -1
  821. package/version.d.cts +1 -1
  822. package/version.d.ts +1 -1
  823. package/version.js +1 -1
  824. package/xata-http/driver.cjs +8 -10
  825. package/xata-http/driver.cjs.map +1 -1
  826. package/xata-http/driver.d.cts +4 -4
  827. package/xata-http/driver.d.ts +4 -4
  828. package/xata-http/driver.js +8 -10
  829. package/xata-http/driver.js.map +1 -1
  830. package/xata-http/session.cjs +12 -24
  831. package/xata-http/session.cjs.map +1 -1
  832. package/xata-http/session.d.cts +5 -14
  833. package/xata-http/session.d.ts +5 -14
  834. package/xata-http/session.js +12 -24
  835. package/xata-http/session.js.map +1 -1
  836. package/cache/core/cache.cjs.map +0 -1
  837. package/cache/core/cache.d.cts +0 -35
  838. package/cache/core/cache.d.ts +0 -35
  839. package/cache/core/cache.js +0 -22
  840. package/cache/core/cache.js.map +0 -1
  841. package/cache/core/index.cjs.map +0 -1
  842. package/cache/core/index.d.cts +0 -1
  843. package/cache/core/index.d.ts +0 -1
  844. package/cache/core/index.js +0 -2
  845. package/cache/core/index.js.map +0 -1
  846. package/cache/core/types.cjs.map +0 -1
  847. package/cache/core/types.d.cts +0 -33
  848. package/cache/core/types.d.ts +0 -33
  849. package/cache/core/types.js +0 -1
  850. package/cache/core/types.js.map +0 -1
  851. package/cache/upstash/cache.cjs +0 -191
  852. package/cache/upstash/cache.cjs.map +0 -1
  853. package/cache/upstash/cache.d.cts +0 -59
  854. package/cache/upstash/cache.d.ts +0 -59
  855. package/cache/upstash/cache.js +0 -166
  856. package/cache/upstash/cache.js.map +0 -1
  857. package/cache/upstash/index.cjs.map +0 -1
  858. package/cache/upstash/index.d.cts +0 -1
  859. package/cache/upstash/index.d.ts +0 -1
  860. package/cache/upstash/index.js +0 -2
  861. package/cache/upstash/index.js.map +0 -1
  862. package/errors/index.cjs.map +0 -1
  863. package/errors/index.d.cts +0 -6
  864. package/errors/index.d.ts +0 -6
  865. package/errors/index.js +0 -16
  866. package/errors/index.js.map +0 -1
@@ -1,9 +1,9 @@
1
1
  import { entityKind, is } from "../../entity.js";
2
+ import { requiredExtension } from "../../extension-core/index.js";
2
3
  import { QueryPromise } from "../../query-promise.js";
3
- import { Param, SQL, sql } from "../../sql/sql.js";
4
+ import { ExtensionParam, Param, SQL, sql } from "../../sql/sql.js";
4
5
  import { Table } from "../../table.js";
5
- import { mapUpdateSet, orderSelectedFields } from "../../utils.js";
6
- import { extractUsedTable } from "../utils.js";
6
+ import { columnExtensionsCheck, mapUpdateSet, orderSelectedFields } from "../../utils.js";
7
7
  class SingleStoreInsertBuilder {
8
8
  constructor(table, session, dialect) {
9
9
  this.table = table;
@@ -21,15 +21,28 @@ class SingleStoreInsertBuilder {
21
21
  if (values.length === 0) {
22
22
  throw new Error("values() must be called with at least one value");
23
23
  }
24
+ const extColumns = /* @__PURE__ */ new Set();
25
+ const cols = this.table[Table.Symbol.Columns];
24
26
  const mappedValues = values.map((entry) => {
25
27
  const result = {};
26
- const cols = this.table[Table.Symbol.Columns];
27
28
  for (const colKey of Object.keys(entry)) {
28
29
  const colValue = entry[colKey];
29
- result[colKey] = is(colValue, SQL) ? colValue : new Param(colValue, cols[colKey]);
30
+ if (is(colValue, SQL)) {
31
+ result[colKey] = colValue;
32
+ continue;
33
+ }
34
+ if (cols[colKey][requiredExtension]) {
35
+ extColumns.add(colKey);
36
+ result[colKey] = new ExtensionParam(cols[colKey][requiredExtension], colValue, cols[colKey]);
37
+ continue;
38
+ }
39
+ result[colKey] = new Param(colValue, cols[colKey]);
30
40
  }
31
41
  return result;
32
42
  });
43
+ for (const colKey of extColumns.values()) {
44
+ columnExtensionsCheck(cols[colKey], this.session.extensions);
45
+ }
33
46
  return new SingleStoreInsertBase(this.table, mappedValues, this.shouldIgnore, this.session, this.dialect);
34
47
  }
35
48
  }
@@ -69,7 +82,11 @@ class SingleStoreInsertBase extends QueryPromise {
69
82
  * ```
70
83
  */
71
84
  onDuplicateKeyUpdate(config) {
72
- const setSql = this.dialect.buildUpdateSet(this.config.table, mapUpdateSet(this.config.table, config.set));
85
+ const setSql = this.dialect.buildUpdateSet(
86
+ this.config.table,
87
+ mapUpdateSet(this.config.table, config.set),
88
+ this.session.extensions
89
+ );
73
90
  this.config.onConflict = sql`update ${setSql}`;
74
91
  return this;
75
92
  }
@@ -85,24 +102,26 @@ class SingleStoreInsertBase extends QueryPromise {
85
102
  }
86
103
  /** @internal */
87
104
  getSQL() {
88
- return this.dialect.buildInsertQuery(this.config).sql;
105
+ return this.dialect.buildInsertQuery(this.config, this.session.extensions).sql;
89
106
  }
90
107
  toSQL() {
91
108
  const { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());
92
109
  return rest;
93
110
  }
94
111
  prepare() {
95
- const { sql: sql2, generatedIds } = this.dialect.buildInsertQuery(this.config);
112
+ const { sql: sql2, generatedIds } = this.dialect.buildInsertQuery(this.config, this.session.extensions);
96
113
  return this.session.prepareQuery(
97
114
  this.dialect.sqlToQuery(sql2),
98
115
  void 0,
116
+ {
117
+ query: "insert",
118
+ dialect: this.dialect,
119
+ session: this.session,
120
+ config: this.config
121
+ },
99
122
  void 0,
100
123
  generatedIds,
101
- this.config.returning,
102
- {
103
- type: "delete",
104
- tables: extractUsedTable(this.config.table)
105
- }
124
+ this.config.returning
106
125
  );
107
126
  }
108
127
  execute = (placeholderValues) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/singlestore-core/query-builders/insert.ts"],"sourcesContent":["import { entityKind, is } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport type {\n\tAnySingleStoreQueryResultHKT,\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n\tSingleStorePreparedQueryConfig,\n\tSingleStoreQueryResultHKT,\n\tSingleStoreQueryResultKind,\n\tSingleStoreSession,\n} from '~/singlestore-core/session.ts';\nimport type { SingleStoreTable } from '~/singlestore-core/table.ts';\nimport type { Placeholder, Query, SQLWrapper } from '~/sql/sql.ts';\nimport { Param, SQL, sql } from '~/sql/sql.ts';\nimport type { InferModelFromColumns } from '~/table.ts';\nimport { Table } from '~/table.ts';\nimport { mapUpdateSet, orderSelectedFields } from '~/utils.ts';\nimport type { AnySingleStoreColumn, SingleStoreColumn } from '../columns/common.ts';\nimport { extractUsedTable } from '../utils.ts';\nimport type { SelectedFieldsOrdered } from './select.types.ts';\nimport type { SingleStoreUpdateSetSource } from './update.ts';\n\nexport interface SingleStoreInsertConfig<TTable extends SingleStoreTable = SingleStoreTable> {\n\ttable: TTable;\n\tvalues: Record<string, Param | SQL>[];\n\tignore: boolean;\n\tonConflict?: SQL;\n\treturning?: SelectedFieldsOrdered;\n}\n\nexport type AnySingleStoreInsertConfig = SingleStoreInsertConfig<SingleStoreTable>;\n\nexport type SingleStoreInsertValue<TTable extends SingleStoreTable> =\n\t& {\n\t\t[Key in keyof TTable['$inferInsert']]: TTable['$inferInsert'][Key] | SQL | Placeholder;\n\t}\n\t& {};\n\nexport class SingleStoreInsertBuilder<\n\tTTable extends SingleStoreTable,\n\tTQueryResult extends SingleStoreQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n> {\n\tstatic readonly [entityKind]: string = 'SingleStoreInsertBuilder';\n\n\tprivate shouldIgnore = false;\n\n\tconstructor(\n\t\tprivate table: TTable,\n\t\tprivate session: SingleStoreSession,\n\t\tprivate dialect: SingleStoreDialect,\n\t) {}\n\n\tignore(): this {\n\t\tthis.shouldIgnore = true;\n\t\treturn this;\n\t}\n\n\tvalues(value: SingleStoreInsertValue<TTable>): SingleStoreInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tvalues(values: SingleStoreInsertValue<TTable>[]): SingleStoreInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tvalues(\n\t\tvalues: SingleStoreInsertValue<TTable> | SingleStoreInsertValue<TTable>[],\n\t): SingleStoreInsertBase<TTable, TQueryResult, TPreparedQueryHKT> {\n\t\tvalues = Array.isArray(values) ? values : [values];\n\t\tif (values.length === 0) {\n\t\t\tthrow new Error('values() must be called with at least one value');\n\t\t}\n\t\tconst mappedValues = values.map((entry) => {\n\t\t\tconst result: Record<string, Param | SQL> = {};\n\t\t\tconst cols = this.table[Table.Symbol.Columns];\n\t\t\tfor (const colKey of Object.keys(entry)) {\n\t\t\t\tconst colValue = entry[colKey as keyof typeof entry];\n\t\t\t\tresult[colKey] = is(colValue, SQL) ? colValue : new Param(colValue, cols[colKey]);\n\t\t\t}\n\t\t\treturn result;\n\t\t});\n\n\t\treturn new SingleStoreInsertBase(this.table, mappedValues, this.shouldIgnore, this.session, this.dialect);\n\t}\n}\n\nexport type SingleStoreInsertWithout<\n\tT extends AnySingleStoreInsert,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n> = TDynamic extends true ? T\n\t: Omit<\n\t\tSingleStoreInsertBase<\n\t\t\tT['_']['table'],\n\t\t\tT['_']['queryResult'],\n\t\t\tT['_']['preparedQueryHKT'],\n\t\t\tT['_']['returning'],\n\t\t\tTDynamic,\n\t\t\tT['_']['excludedMethods'] | '$returning'\n\t\t>,\n\t\tT['_']['excludedMethods'] | K\n\t>;\n\nexport type SingleStoreInsertDynamic<T extends AnySingleStoreInsert> = SingleStoreInsert<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['preparedQueryHKT'],\n\tT['_']['returning']\n>;\n\nexport type SingleStoreInsertPrepare<\n\tT extends AnySingleStoreInsert,\n\tTReturning extends Record<string, unknown> | undefined = undefined,\n> = PreparedQueryKind<\n\tT['_']['preparedQueryHKT'],\n\tSingleStorePreparedQueryConfig & {\n\t\texecute: TReturning extends undefined ? SingleStoreQueryResultKind<T['_']['queryResult'], never> : TReturning[];\n\t\titerator: never;\n\t},\n\ttrue\n>;\n\nexport type SingleStoreInsertOnDuplicateKeyUpdateConfig<T extends AnySingleStoreInsert> = {\n\tset: SingleStoreUpdateSetSource<T['_']['table']>;\n};\n\nexport type SingleStoreInsert<\n\tTTable extends SingleStoreTable = SingleStoreTable,\n\tTQueryResult extends SingleStoreQueryResultHKT = AnySingleStoreQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n\tTReturning extends Record<string, unknown> | undefined = Record<string, unknown> | undefined,\n> = SingleStoreInsertBase<TTable, TQueryResult, TPreparedQueryHKT, TReturning, true, never>;\n\nexport type SingleStoreInsertReturning<\n\tT extends AnySingleStoreInsert,\n\tTDynamic extends boolean,\n> = SingleStoreInsertBase<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['preparedQueryHKT'],\n\tInferModelFromColumns<GetPrimarySerialOrDefaultKeys<T['_']['table']['_']['columns']>>,\n\tTDynamic,\n\tT['_']['excludedMethods'] | '$returning'\n>;\n\nexport type AnySingleStoreInsert = SingleStoreInsertBase<any, any, any, any, any, any>;\n\nexport interface SingleStoreInsertBase<\n\tTTable extends SingleStoreTable,\n\tTQueryResult extends SingleStoreQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTReturning extends Record<string, unknown> | undefined = undefined,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends\n\tQueryPromise<TReturning extends undefined ? SingleStoreQueryResultKind<TQueryResult, never> : TReturning[]>,\n\tRunnableQuery<\n\t\tTReturning extends undefined ? SingleStoreQueryResultKind<TQueryResult, never> : TReturning[],\n\t\t'singlestore'\n\t>,\n\tSQLWrapper\n{\n\treadonly _: {\n\t\treadonly dialect: 'singlestore';\n\t\treadonly table: TTable;\n\t\treadonly queryResult: TQueryResult;\n\t\treadonly preparedQueryHKT: TPreparedQueryHKT;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t\treadonly returning: TReturning;\n\t\treadonly result: TReturning extends undefined ? SingleStoreQueryResultKind<TQueryResult, never> : TReturning[];\n\t};\n}\n\nexport type PrimaryKeyKeys<T extends Record<string, AnySingleStoreColumn>> = {\n\t[K in keyof T]: T[K]['_']['isPrimaryKey'] extends true ? T[K]['_']['isAutoincrement'] extends true ? K\n\t\t: T[K]['_']['hasRuntimeDefault'] extends true ? T[K]['_']['isPrimaryKey'] extends true ? K : never\n\t\t: never\n\t\t: T[K]['_']['hasRuntimeDefault'] extends true ? T[K]['_']['isPrimaryKey'] extends true ? K : never\n\t\t: never;\n}[keyof T];\n\nexport type GetPrimarySerialOrDefaultKeys<T extends Record<string, AnySingleStoreColumn>> = {\n\t[K in PrimaryKeyKeys<T>]: T[K];\n};\n\nexport class SingleStoreInsertBase<\n\tTTable extends SingleStoreTable,\n\tTQueryResult extends SingleStoreQueryResultHKT,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTReturning extends Record<string, unknown> | undefined = undefined,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<TReturning extends undefined ? SingleStoreQueryResultKind<TQueryResult, never> : TReturning[]>\n\timplements\n\t\tRunnableQuery<\n\t\t\tTReturning extends undefined ? SingleStoreQueryResultKind<TQueryResult, never> : TReturning[],\n\t\t\t'singlestore'\n\t\t>,\n\t\tSQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'SingleStoreInsert';\n\n\tdeclare protected $table: TTable;\n\n\tprivate config: SingleStoreInsertConfig<TTable>;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tvalues: SingleStoreInsertConfig['values'],\n\t\tignore: boolean,\n\t\tprivate session: SingleStoreSession,\n\t\tprivate dialect: SingleStoreDialect,\n\t) {\n\t\tsuper();\n\t\tthis.config = { table, values, ignore };\n\t}\n\n\t/**\n\t * Adds an `on duplicate key update` clause to the query.\n\t *\n\t * Calling this method will update update the row if any unique index conflicts. MySQL will automatically determine the conflict target based on the primary key and unique indexes.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert#on-duplicate-key-update}\n\t *\n\t * @param config The `set` clause\n\t *\n\t * @example\n\t * ```ts\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW'})\n\t * .onDuplicateKeyUpdate({ set: { brand: 'Porsche' }});\n\t * ```\n\t *\n\t * While MySQL does not directly support doing nothing on conflict, you can perform a no-op by setting any column's value to itself and achieve the same effect:\n\t *\n\t * ```ts\n\t * import { sql } from 'drizzle-orm';\n\t *\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onDuplicateKeyUpdate({ set: { id: sql`id` } });\n\t * ```\n\t */\n\tonDuplicateKeyUpdate(\n\t\tconfig: SingleStoreInsertOnDuplicateKeyUpdateConfig<this>,\n\t): SingleStoreInsertWithout<this, TDynamic, 'onDuplicateKeyUpdate'> {\n\t\tconst setSql = this.dialect.buildUpdateSet(this.config.table, mapUpdateSet(this.config.table, config.set));\n\t\tthis.config.onConflict = sql`update ${setSql}`;\n\t\treturn this as any;\n\t}\n\n\t$returningId(): SingleStoreInsertWithout<\n\t\tSingleStoreInsertReturning<this, TDynamic>,\n\t\tTDynamic,\n\t\t'$returningId'\n\t> {\n\t\tconst returning: SelectedFieldsOrdered = [];\n\t\tfor (const [key, value] of Object.entries(this.config.table[Table.Symbol.Columns])) {\n\t\t\tif (value.primary) {\n\t\t\t\treturning.push({ field: value, path: [key] });\n\t\t\t}\n\t\t}\n\t\tthis.config.returning = orderSelectedFields<SingleStoreColumn>(this.config.table[Table.Symbol.Columns]);\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildInsertQuery(this.config).sql;\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\tprepare(): SingleStoreInsertPrepare<this, TReturning> {\n\t\tconst { sql, generatedIds } = this.dialect.buildInsertQuery(this.config);\n\t\treturn this.session.prepareQuery(\n\t\t\tthis.dialect.sqlToQuery(sql),\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tgeneratedIds,\n\t\t\tthis.config.returning,\n\t\t\t{\n\t\t\t\ttype: 'delete',\n\t\t\t\ttables: extractUsedTable(this.config.table),\n\t\t\t},\n\t\t) as SingleStoreInsertPrepare<this, TReturning>;\n\t}\n\n\toverride execute: ReturnType<this['prepare']>['execute'] = (placeholderValues) => {\n\t\treturn this.prepare().execute(placeholderValues);\n\t};\n\n\tprivate createIterator = (): ReturnType<this['prepare']>['iterator'] => {\n\t\tconst self = this;\n\t\treturn async function*(placeholderValues) {\n\t\t\tyield* self.prepare().iterator(placeholderValues);\n\t\t};\n\t};\n\n\titerator = this.createIterator();\n\n\t$dynamic(): SingleStoreInsertDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":"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","names":["sql"]}
1
+ {"version":3,"sources":["../../../src/singlestore-core/query-builders/insert.ts"],"sourcesContent":["import { entityKind, is } from '~/entity.ts';\nimport { requiredExtension } from '~/extension-core/index.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport type {\n\tAnySingleStoreQueryResultHKT,\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n\tSingleStorePreparedQueryConfig,\n\tSingleStoreQueryResultHKT,\n\tSingleStoreQueryResultKind,\n\tSingleStoreSession,\n} from '~/singlestore-core/session.ts';\nimport type { SingleStoreTable } from '~/singlestore-core/table.ts';\nimport type { Placeholder, Query, SQLWrapper } from '~/sql/sql.ts';\nimport { ExtensionParam, Param, SQL, sql } from '~/sql/sql.ts';\nimport type { InferModelFromColumns } from '~/table.ts';\nimport { Table } from '~/table.ts';\nimport { columnExtensionsCheck, mapUpdateSet, orderSelectedFields } from '~/utils.ts';\nimport type { AnySingleStoreColumn, SingleStoreColumn } from '../columns/common.ts';\nimport type { SelectedFieldsOrdered } from './select.types.ts';\nimport type { SingleStoreUpdateSetSource } from './update.ts';\n\nexport interface SingleStoreInsertConfig<TTable extends SingleStoreTable = SingleStoreTable> {\n\ttable: TTable;\n\tvalues: Record<string, Param | SQL>[];\n\tignore: boolean;\n\tonConflict?: SQL;\n\treturning?: SelectedFieldsOrdered;\n}\n\nexport type AnySingleStoreInsertConfig = SingleStoreInsertConfig<SingleStoreTable>;\n\nexport type SingleStoreInsertValue<TTable extends SingleStoreTable> =\n\t& {\n\t\t[Key in keyof TTable['$inferInsert']]: TTable['$inferInsert'][Key] | SQL | Placeholder;\n\t}\n\t& {};\n\nexport class SingleStoreInsertBuilder<\n\tTTable extends SingleStoreTable,\n\tTQueryResult extends SingleStoreQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n> {\n\tstatic readonly [entityKind]: string = 'SingleStoreInsertBuilder';\n\n\tprivate shouldIgnore = false;\n\n\tconstructor(\n\t\tprivate table: TTable,\n\t\tprivate session: SingleStoreSession,\n\t\tprivate dialect: SingleStoreDialect,\n\t) {}\n\n\tignore(): this {\n\t\tthis.shouldIgnore = true;\n\t\treturn this;\n\t}\n\n\tvalues(value: SingleStoreInsertValue<TTable>): SingleStoreInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tvalues(values: SingleStoreInsertValue<TTable>[]): SingleStoreInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tvalues(\n\t\tvalues: SingleStoreInsertValue<TTable> | SingleStoreInsertValue<TTable>[],\n\t): SingleStoreInsertBase<TTable, TQueryResult, TPreparedQueryHKT> {\n\t\tvalues = Array.isArray(values) ? values : [values];\n\t\tif (values.length === 0) {\n\t\t\tthrow new Error('values() must be called with at least one value');\n\t\t}\n\n\t\tconst extColumns = new Set<string>();\n\t\tconst cols = this.table[Table.Symbol.Columns];\n\n\t\tconst mappedValues = values.map((entry) => {\n\t\t\tconst result: Record<string, Param | SQL> = {};\n\t\t\tfor (const colKey of Object.keys(entry)) {\n\t\t\t\tconst colValue = entry[colKey as keyof typeof entry];\n\n\t\t\t\tif (is(colValue, SQL)) {\n\t\t\t\t\tresult[colKey] = colValue;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (cols[colKey]![requiredExtension]) {\n\t\t\t\t\textColumns.add(colKey);\n\t\t\t\t\tresult[colKey] = new ExtensionParam(cols[colKey]![requiredExtension], colValue, cols[colKey]);\n\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tresult[colKey] = new Param(colValue, cols[colKey]);\n\t\t\t}\n\t\t\treturn result;\n\t\t});\n\n\t\tfor (const colKey of extColumns.values()) {\n\t\t\tcolumnExtensionsCheck(cols[colKey]!, this.session.extensions);\n\t\t}\n\n\t\treturn new SingleStoreInsertBase(this.table, mappedValues, this.shouldIgnore, this.session, this.dialect);\n\t}\n}\n\nexport type SingleStoreInsertWithout<\n\tT extends AnySingleStoreInsert,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n> = TDynamic extends true ? T\n\t: Omit<\n\t\tSingleStoreInsertBase<\n\t\t\tT['_']['table'],\n\t\t\tT['_']['queryResult'],\n\t\t\tT['_']['preparedQueryHKT'],\n\t\t\tT['_']['returning'],\n\t\t\tTDynamic,\n\t\t\tT['_']['excludedMethods'] | '$returning'\n\t\t>,\n\t\tT['_']['excludedMethods'] | K\n\t>;\n\nexport type SingleStoreInsertDynamic<T extends AnySingleStoreInsert> = SingleStoreInsert<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['preparedQueryHKT'],\n\tT['_']['returning']\n>;\n\nexport type SingleStoreInsertPrepare<\n\tT extends AnySingleStoreInsert,\n\tTReturning extends Record<string, unknown> | undefined = undefined,\n> = PreparedQueryKind<\n\tT['_']['preparedQueryHKT'],\n\tSingleStorePreparedQueryConfig & {\n\t\texecute: TReturning extends undefined ? SingleStoreQueryResultKind<T['_']['queryResult'], never> : TReturning[];\n\t\titerator: never;\n\t},\n\ttrue\n>;\n\nexport type SingleStoreInsertOnDuplicateKeyUpdateConfig<T extends AnySingleStoreInsert> = {\n\tset: SingleStoreUpdateSetSource<T['_']['table']>;\n};\n\nexport type SingleStoreInsert<\n\tTTable extends SingleStoreTable = SingleStoreTable,\n\tTQueryResult extends SingleStoreQueryResultHKT = AnySingleStoreQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n\tTReturning extends Record<string, unknown> | undefined = Record<string, unknown> | undefined,\n> = SingleStoreInsertBase<TTable, TQueryResult, TPreparedQueryHKT, TReturning, true, never>;\n\nexport type SingleStoreInsertReturning<\n\tT extends AnySingleStoreInsert,\n\tTDynamic extends boolean,\n> = SingleStoreInsertBase<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['preparedQueryHKT'],\n\tInferModelFromColumns<GetPrimarySerialOrDefaultKeys<T['_']['table']['_']['columns']>>,\n\tTDynamic,\n\tT['_']['excludedMethods'] | '$returning'\n>;\n\nexport type AnySingleStoreInsert = SingleStoreInsertBase<any, any, any, any, any, any>;\n\nexport interface SingleStoreInsertBase<\n\tTTable extends SingleStoreTable,\n\tTQueryResult extends SingleStoreQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTReturning extends Record<string, unknown> | undefined = undefined,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends\n\tQueryPromise<TReturning extends undefined ? SingleStoreQueryResultKind<TQueryResult, never> : TReturning[]>,\n\tRunnableQuery<\n\t\tTReturning extends undefined ? SingleStoreQueryResultKind<TQueryResult, never> : TReturning[],\n\t\t'singlestore'\n\t>,\n\tSQLWrapper\n{\n\treadonly _: {\n\t\treadonly dialect: 'singlestore';\n\t\treadonly table: TTable;\n\t\treadonly queryResult: TQueryResult;\n\t\treadonly preparedQueryHKT: TPreparedQueryHKT;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t\treadonly returning: TReturning;\n\t\treadonly result: TReturning extends undefined ? SingleStoreQueryResultKind<TQueryResult, never> : TReturning[];\n\t};\n}\n\nexport type PrimaryKeyKeys<T extends Record<string, AnySingleStoreColumn>> = {\n\t[K in keyof T]: T[K]['_']['isPrimaryKey'] extends true ? T[K]['_']['isAutoincrement'] extends true ? K\n\t\t: T[K]['_']['hasRuntimeDefault'] extends true ? T[K]['_']['isPrimaryKey'] extends true ? K : never\n\t\t: never\n\t\t: T[K]['_']['hasRuntimeDefault'] extends true ? T[K]['_']['isPrimaryKey'] extends true ? K : never\n\t\t: never;\n}[keyof T];\n\nexport type GetPrimarySerialOrDefaultKeys<T extends Record<string, AnySingleStoreColumn>> = {\n\t[K in PrimaryKeyKeys<T>]: T[K];\n};\n\nexport class SingleStoreInsertBase<\n\tTTable extends SingleStoreTable,\n\tTQueryResult extends SingleStoreQueryResultHKT,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTReturning extends Record<string, unknown> | undefined = undefined,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<TReturning extends undefined ? SingleStoreQueryResultKind<TQueryResult, never> : TReturning[]>\n\timplements\n\t\tRunnableQuery<\n\t\t\tTReturning extends undefined ? SingleStoreQueryResultKind<TQueryResult, never> : TReturning[],\n\t\t\t'singlestore'\n\t\t>,\n\t\tSQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'SingleStoreInsert';\n\n\tdeclare protected $table: TTable;\n\n\tprivate config: SingleStoreInsertConfig<TTable>;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tvalues: SingleStoreInsertConfig['values'],\n\t\tignore: boolean,\n\t\tprivate session: SingleStoreSession,\n\t\tprivate dialect: SingleStoreDialect,\n\t) {\n\t\tsuper();\n\t\tthis.config = { table, values, ignore };\n\t}\n\n\t/**\n\t * Adds an `on duplicate key update` clause to the query.\n\t *\n\t * Calling this method will update update the row if any unique index conflicts. MySQL will automatically determine the conflict target based on the primary key and unique indexes.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert#on-duplicate-key-update}\n\t *\n\t * @param config The `set` clause\n\t *\n\t * @example\n\t * ```ts\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW'})\n\t * .onDuplicateKeyUpdate({ set: { brand: 'Porsche' }});\n\t * ```\n\t *\n\t * While MySQL does not directly support doing nothing on conflict, you can perform a no-op by setting any column's value to itself and achieve the same effect:\n\t *\n\t * ```ts\n\t * import { sql } from 'drizzle-orm';\n\t *\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onDuplicateKeyUpdate({ set: { id: sql`id` } });\n\t * ```\n\t */\n\tonDuplicateKeyUpdate(\n\t\tconfig: SingleStoreInsertOnDuplicateKeyUpdateConfig<this>,\n\t): SingleStoreInsertWithout<this, TDynamic, 'onDuplicateKeyUpdate'> {\n\t\tconst setSql = this.dialect.buildUpdateSet(\n\t\t\tthis.config.table,\n\t\t\tmapUpdateSet(this.config.table, config.set),\n\t\t\tthis.session.extensions,\n\t\t);\n\t\tthis.config.onConflict = sql`update ${setSql}`;\n\t\treturn this as any;\n\t}\n\n\t$returningId(): SingleStoreInsertWithout<\n\t\tSingleStoreInsertReturning<this, TDynamic>,\n\t\tTDynamic,\n\t\t'$returningId'\n\t> {\n\t\tconst returning: SelectedFieldsOrdered = [];\n\t\tfor (const [key, value] of Object.entries(this.config.table[Table.Symbol.Columns])) {\n\t\t\tif (value.primary) {\n\t\t\t\treturning.push({ field: value, path: [key] });\n\t\t\t}\n\t\t}\n\t\tthis.config.returning = orderSelectedFields<SingleStoreColumn>(this.config.table[Table.Symbol.Columns]);\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildInsertQuery(this.config, this.session.extensions).sql;\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\tprepare(): SingleStoreInsertPrepare<this, TReturning> {\n\t\tconst { sql, generatedIds } = this.dialect.buildInsertQuery(this.config, this.session.extensions);\n\t\treturn this.session.prepareQuery(\n\t\t\tthis.dialect.sqlToQuery(sql),\n\t\t\tundefined,\n\t\t\t{\n\t\t\t\tquery: 'insert',\n\t\t\t\tdialect: this.dialect,\n\t\t\t\tsession: this.session,\n\t\t\t\tconfig: this.config,\n\t\t\t},\n\t\t\tundefined,\n\t\t\tgeneratedIds,\n\t\t\tthis.config.returning,\n\t\t) as SingleStoreInsertPrepare<this, TReturning>;\n\t}\n\n\toverride execute: ReturnType<this['prepare']>['execute'] = (placeholderValues) => {\n\t\treturn this.prepare().execute(placeholderValues);\n\t};\n\n\tprivate createIterator = (): ReturnType<this['prepare']>['iterator'] => {\n\t\tconst self = this;\n\t\treturn async function*(placeholderValues) {\n\t\t\tyield* self.prepare().iterator(placeholderValues);\n\t\t};\n\t};\n\n\titerator = this.createIterator();\n\n\t$dynamic(): SingleStoreInsertDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":"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","names":["sql"]}
@@ -79,9 +79,20 @@ class SingleStoreRelationalQuery extends import_query_promise.QueryPromise {
79
79
  static [import_entity.entityKind] = "SingleStoreRelationalQuery";
80
80
  prepare() {
81
81
  const { query, builtQuery } = this._toSQL();
82
+ const extCfg = this.session.extensions?.length ? {
83
+ query: "_query",
84
+ session: this.session,
85
+ dialect: this.dialect,
86
+ tableNamesMap: this.tableNamesMap,
87
+ tablesConfig: this.schema,
88
+ tableConfig: this.tableConfig,
89
+ mode: this.queryMode,
90
+ config: query
91
+ } : void 0;
82
92
  return this.session.prepareQuery(
83
93
  builtQuery,
84
94
  void 0,
95
+ extCfg,
85
96
  (rawRows) => {
86
97
  const rows = rawRows.map((row) => (0, import_relations.mapRelationalRow)(this.schema, this.tableConfig, row, query.selection));
87
98
  if (this.queryMode === "first") {
@@ -100,7 +111,7 @@ class SingleStoreRelationalQuery extends import_query_promise.QueryPromise {
100
111
  tableConfig: this.tableConfig,
101
112
  queryConfig: this.config,
102
113
  tableAlias: this.tableConfig.tsName
103
- });
114
+ }, this.session.extensions);
104
115
  }
105
116
  _toSQL() {
106
117
  const query = this._getQuery();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/singlestore-core/query-builders/query.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport {\n\ttype BuildQueryResult,\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tmapRelationalRow,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { Query, QueryWithTypings, SQL } from '~/sql/sql.ts';\nimport type { KnownKeysOnly } from '~/utils.ts';\nimport type { SingleStoreDialect } from '../dialect.ts';\nimport type {\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n\tSingleStorePreparedQueryConfig,\n\tSingleStoreSession,\n} from '../session.ts';\nimport type { SingleStoreTable } from '../table.ts';\n\nexport class RelationalQueryBuilder<\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTSchema extends TablesRelationalConfig,\n\tTFields extends TableRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'SingleStoreRelationalQueryBuilder';\n\n\tconstructor(\n\t\tprivate fullSchema: Record<string, unknown>,\n\t\tprivate schema: TSchema,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: SingleStoreTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate session: SingleStoreSession,\n\t) {}\n\n\tfindMany<TConfig extends DBQueryConfig<'many', true, TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'many', true, TSchema, TFields>>,\n\t): SingleStoreRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TConfig>[]> {\n\t\treturn new SingleStoreRelationalQuery(\n\t\t\tthis.fullSchema,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig ? (config as DBQueryConfig<'many', true>) : {},\n\t\t\t'many',\n\t\t);\n\t}\n\n\tfindFirst<TSelection extends Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>(\n\t\tconfig?: KnownKeysOnly<TSelection, Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>,\n\t): SingleStoreRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TSelection> | undefined> {\n\t\treturn new SingleStoreRelationalQuery(\n\t\t\tthis.fullSchema,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig ? { ...(config as DBQueryConfig<'many', true> | undefined), limit: 1 } : { limit: 1 },\n\t\t\t'first',\n\t\t);\n\t}\n}\n\nexport class SingleStoreRelationalQuery<\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTResult,\n> extends QueryPromise<TResult> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreRelationalQuery';\n\n\tdeclare protected $brand: 'SingleStoreRelationalQuery';\n\n\tconstructor(\n\t\tprivate fullSchema: Record<string, unknown>,\n\t\tprivate schema: TablesRelationalConfig,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: SingleStoreTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate session: SingleStoreSession,\n\t\tprivate config: DBQueryConfig<'many', true> | true,\n\t\tprivate queryMode: 'many' | 'first',\n\t) {\n\t\tsuper();\n\t}\n\n\tprepare() {\n\t\tconst { query, builtQuery } = this._toSQL();\n\t\treturn this.session.prepareQuery(\n\t\t\tbuiltQuery,\n\t\t\tundefined,\n\t\t\t(rawRows) => {\n\t\t\t\tconst rows = rawRows.map((row) => mapRelationalRow(this.schema, this.tableConfig, row, query.selection));\n\t\t\t\tif (this.queryMode === 'first') {\n\t\t\t\t\treturn rows[0] as TResult;\n\t\t\t\t}\n\t\t\t\treturn rows as TResult;\n\t\t\t},\n\t\t) as PreparedQueryKind<TPreparedQueryHKT, SingleStorePreparedQueryConfig & { execute: TResult }, true>;\n\t}\n\n\tprivate _getQuery() {\n\t\treturn this.dialect.buildRelationalQuery({\n\t\t\tfullSchema: this.fullSchema,\n\t\t\tschema: this.schema,\n\t\t\ttableNamesMap: this.tableNamesMap,\n\t\t\ttable: this.table,\n\t\t\ttableConfig: this.tableConfig,\n\t\t\tqueryConfig: this.config,\n\t\t\ttableAlias: this.tableConfig.tsName,\n\t\t});\n\t}\n\n\tprivate _toSQL(): { query: BuildRelationalQueryResult; builtQuery: QueryWithTypings } {\n\t\tconst query = this._getQuery();\n\n\t\tconst builtQuery = this.dialect.sqlToQuery(query.sql as SQL);\n\n\t\treturn { builtQuery, query };\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this._getQuery().sql as SQL;\n\t}\n\n\ttoSQL(): Query {\n\t\treturn this._toSQL().builtQuery;\n\t}\n\n\toverride execute(): Promise<TResult> {\n\t\treturn this.prepare().execute();\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,2BAA6B;AAC7B,uBAOO;AAYA,MAAM,uBAIX;AAAA,EAGD,YACS,YACA,QACA,eACA,OACA,aACA,SACA,SACP;AAPO;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EACN;AAAA,EAVH,QAAiB,wBAAU,IAAY;AAAA,EAYvC,SACC,QAC+F;AAC/F,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAU,SAAyC,CAAC;AAAA,MACpD;AAAA,IACD;AAAA,EACD;AAAA,EAEA,UACC,QAC4G;AAC5G,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAS,EAAE,GAAI,QAAoD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;AAAA,MAC3F;AAAA,IACD;AAAA,EACD;AACD;AAEO,MAAM,mCAGH,kCAAsB;AAAA,EAK/B,YACS,YACA,QACA,eACA,OACA,aACA,SACA,SACA,QACA,WACP;AACD,UAAM;AAVE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EAGT;AAAA,EAhBA,QAA0B,wBAAU,IAAY;AAAA,EAkBhD,UAAU;AACT,UAAM,EAAE,OAAO,WAAW,IAAI,KAAK,OAAO;AAC1C,WAAO,KAAK,QAAQ;AAAA,MACnB;AAAA,MACA;AAAA,MACA,CAAC,YAAY;AACZ,cAAM,OAAO,QAAQ,IAAI,CAAC,YAAQ,mCAAiB,KAAK,QAAQ,KAAK,aAAa,KAAK,MAAM,SAAS,CAAC;AACvG,YAAI,KAAK,cAAc,SAAS;AAC/B,iBAAO,KAAK,CAAC;AAAA,QACd;AACA,eAAO;AAAA,MACR;AAAA,IACD;AAAA,EACD;AAAA,EAEQ,YAAY;AACnB,WAAO,KAAK,QAAQ,qBAAqB;AAAA,MACxC,YAAY,KAAK;AAAA,MACjB,QAAQ,KAAK;AAAA,MACb,eAAe,KAAK;AAAA,MACpB,OAAO,KAAK;AAAA,MACZ,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,YAAY,KAAK,YAAY;AAAA,IAC9B,CAAC;AAAA,EACF;AAAA,EAEQ,SAA8E;AACrF,UAAM,QAAQ,KAAK,UAAU;AAE7B,UAAM,aAAa,KAAK,QAAQ,WAAW,MAAM,GAAU;AAE3D,WAAO,EAAE,YAAY,MAAM;AAAA,EAC5B;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,UAAU,EAAE;AAAA,EACzB;AAAA,EAEA,QAAe;AACd,WAAO,KAAK,OAAO,EAAE;AAAA,EACtB;AAAA,EAES,UAA4B;AACpC,WAAO,KAAK,QAAQ,EAAE,QAAQ;AAAA,EAC/B;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/singlestore-core/query-builders/query.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { BlankSingleStoreHookContext } from '~/extension-core/singlestore/index.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport {\n\ttype BuildQueryResult,\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tmapRelationalRow,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { Query, QueryWithTypings, SQL } from '~/sql/sql.ts';\nimport type { KnownKeysOnly } from '~/utils.ts';\nimport type { SingleStoreDialect } from '../dialect.ts';\nimport type {\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n\tSingleStorePreparedQueryConfig,\n\tSingleStoreSession,\n} from '../session.ts';\nimport type { SingleStoreTable } from '../table.ts';\n\nexport class RelationalQueryBuilder<\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTSchema extends TablesRelationalConfig,\n\tTFields extends TableRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'SingleStoreRelationalQueryBuilder';\n\n\tconstructor(\n\t\tprivate fullSchema: Record<string, unknown>,\n\t\tprivate schema: TSchema,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: SingleStoreTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate session: SingleStoreSession,\n\t) {}\n\n\tfindMany<TConfig extends DBQueryConfig<'many', true, TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'many', true, TSchema, TFields>>,\n\t): SingleStoreRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TConfig>[]> {\n\t\treturn new SingleStoreRelationalQuery(\n\t\t\tthis.fullSchema,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig ? (config as DBQueryConfig<'many', true>) : {},\n\t\t\t'many',\n\t\t);\n\t}\n\n\tfindFirst<TSelection extends Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>(\n\t\tconfig?: KnownKeysOnly<TSelection, Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>,\n\t): SingleStoreRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TSelection> | undefined> {\n\t\treturn new SingleStoreRelationalQuery(\n\t\t\tthis.fullSchema,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig ? { ...(config as DBQueryConfig<'many', true> | undefined), limit: 1 } : { limit: 1 },\n\t\t\t'first',\n\t\t);\n\t}\n}\n\nexport class SingleStoreRelationalQuery<\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTResult,\n> extends QueryPromise<TResult> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreRelationalQuery';\n\n\tdeclare protected $brand: 'SingleStoreRelationalQuery';\n\n\tconstructor(\n\t\tprivate fullSchema: Record<string, unknown>,\n\t\tprivate schema: TablesRelationalConfig,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: SingleStoreTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate session: SingleStoreSession,\n\t\tprivate config: DBQueryConfig<'many', true> | true,\n\t\tprivate queryMode: 'many' | 'first',\n\t) {\n\t\tsuper();\n\t}\n\n\tprepare() {\n\t\tconst { query, builtQuery } = this._toSQL();\n\n\t\tconst extCfg: BlankSingleStoreHookContext | undefined = this.session.extensions?.length\n\t\t\t? {\n\t\t\t\tquery: '_query',\n\t\t\t\tsession: this.session,\n\t\t\t\tdialect: this.dialect,\n\t\t\t\ttableNamesMap: this.tableNamesMap,\n\t\t\t\ttablesConfig: this.schema,\n\t\t\t\ttableConfig: this.tableConfig,\n\t\t\t\tmode: this.queryMode,\n\t\t\t\tconfig: query,\n\t\t\t}\n\t\t\t: undefined;\n\n\t\treturn this.session.prepareQuery(\n\t\t\tbuiltQuery,\n\t\t\tundefined,\n\t\t\textCfg,\n\t\t\t(rawRows) => {\n\t\t\t\tconst rows = rawRows.map((row) => mapRelationalRow(this.schema, this.tableConfig, row, query.selection));\n\t\t\t\tif (this.queryMode === 'first') {\n\t\t\t\t\treturn rows[0] as TResult;\n\t\t\t\t}\n\t\t\t\treturn rows as TResult;\n\t\t\t},\n\t\t) as PreparedQueryKind<TPreparedQueryHKT, SingleStorePreparedQueryConfig & { execute: TResult }, true>;\n\t}\n\n\tprivate _getQuery() {\n\t\treturn this.dialect.buildRelationalQuery({\n\t\t\tfullSchema: this.fullSchema,\n\t\t\tschema: this.schema,\n\t\t\ttableNamesMap: this.tableNamesMap,\n\t\t\ttable: this.table,\n\t\t\ttableConfig: this.tableConfig,\n\t\t\tqueryConfig: this.config,\n\t\t\ttableAlias: this.tableConfig.tsName,\n\t\t}, this.session.extensions);\n\t}\n\n\tprivate _toSQL(): { query: BuildRelationalQueryResult; builtQuery: QueryWithTypings } {\n\t\tconst query = this._getQuery();\n\n\t\tconst builtQuery = this.dialect.sqlToQuery(query.sql as SQL);\n\n\t\treturn { builtQuery, query };\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this._getQuery().sql as SQL;\n\t}\n\n\ttoSQL(): Query {\n\t\treturn this._toSQL().builtQuery;\n\t}\n\n\toverride execute(): Promise<TResult> {\n\t\treturn this.prepare().execute();\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAE3B,2BAA6B;AAC7B,uBAOO;AAYA,MAAM,uBAIX;AAAA,EAGD,YACS,YACA,QACA,eACA,OACA,aACA,SACA,SACP;AAPO;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EACN;AAAA,EAVH,QAAiB,wBAAU,IAAY;AAAA,EAYvC,SACC,QAC+F;AAC/F,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAU,SAAyC,CAAC;AAAA,MACpD;AAAA,IACD;AAAA,EACD;AAAA,EAEA,UACC,QAC4G;AAC5G,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAS,EAAE,GAAI,QAAoD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;AAAA,MAC3F;AAAA,IACD;AAAA,EACD;AACD;AAEO,MAAM,mCAGH,kCAAsB;AAAA,EAK/B,YACS,YACA,QACA,eACA,OACA,aACA,SACA,SACA,QACA,WACP;AACD,UAAM;AAVE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EAGT;AAAA,EAhBA,QAA0B,wBAAU,IAAY;AAAA,EAkBhD,UAAU;AACT,UAAM,EAAE,OAAO,WAAW,IAAI,KAAK,OAAO;AAE1C,UAAM,SAAkD,KAAK,QAAQ,YAAY,SAC9E;AAAA,MACD,OAAO;AAAA,MACP,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,eAAe,KAAK;AAAA,MACpB,cAAc,KAAK;AAAA,MACnB,aAAa,KAAK;AAAA,MAClB,MAAM,KAAK;AAAA,MACX,QAAQ;AAAA,IACT,IACE;AAEH,WAAO,KAAK,QAAQ;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA,CAAC,YAAY;AACZ,cAAM,OAAO,QAAQ,IAAI,CAAC,YAAQ,mCAAiB,KAAK,QAAQ,KAAK,aAAa,KAAK,MAAM,SAAS,CAAC;AACvG,YAAI,KAAK,cAAc,SAAS;AAC/B,iBAAO,KAAK,CAAC;AAAA,QACd;AACA,eAAO;AAAA,MACR;AAAA,IACD;AAAA,EACD;AAAA,EAEQ,YAAY;AACnB,WAAO,KAAK,QAAQ,qBAAqB;AAAA,MACxC,YAAY,KAAK;AAAA,MACjB,QAAQ,KAAK;AAAA,MACb,eAAe,KAAK;AAAA,MACpB,OAAO,KAAK;AAAA,MACZ,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,YAAY,KAAK,YAAY;AAAA,IAC9B,GAAG,KAAK,QAAQ,UAAU;AAAA,EAC3B;AAAA,EAEQ,SAA8E;AACrF,UAAM,QAAQ,KAAK,UAAU;AAE7B,UAAM,aAAa,KAAK,QAAQ,WAAW,MAAM,GAAU;AAE3D,WAAO,EAAE,YAAY,MAAM;AAAA,EAC5B;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,UAAU,EAAE;AAAA,EACzB;AAAA,EAEA,QAAe;AACd,WAAO,KAAK,OAAO,EAAE;AAAA,EACtB;AAAA,EAES,UAA4B;AACpC,WAAO,KAAK,QAAQ,EAAE,QAAQ;AAAA,EAC/B;AACD;","names":[]}
@@ -57,9 +57,20 @@ class SingleStoreRelationalQuery extends QueryPromise {
57
57
  static [entityKind] = "SingleStoreRelationalQuery";
58
58
  prepare() {
59
59
  const { query, builtQuery } = this._toSQL();
60
+ const extCfg = this.session.extensions?.length ? {
61
+ query: "_query",
62
+ session: this.session,
63
+ dialect: this.dialect,
64
+ tableNamesMap: this.tableNamesMap,
65
+ tablesConfig: this.schema,
66
+ tableConfig: this.tableConfig,
67
+ mode: this.queryMode,
68
+ config: query
69
+ } : void 0;
60
70
  return this.session.prepareQuery(
61
71
  builtQuery,
62
72
  void 0,
73
+ extCfg,
63
74
  (rawRows) => {
64
75
  const rows = rawRows.map((row) => mapRelationalRow(this.schema, this.tableConfig, row, query.selection));
65
76
  if (this.queryMode === "first") {
@@ -78,7 +89,7 @@ class SingleStoreRelationalQuery extends QueryPromise {
78
89
  tableConfig: this.tableConfig,
79
90
  queryConfig: this.config,
80
91
  tableAlias: this.tableConfig.tsName
81
- });
92
+ }, this.session.extensions);
82
93
  }
83
94
  _toSQL() {
84
95
  const query = this._getQuery();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/singlestore-core/query-builders/query.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport {\n\ttype BuildQueryResult,\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tmapRelationalRow,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { Query, QueryWithTypings, SQL } from '~/sql/sql.ts';\nimport type { KnownKeysOnly } from '~/utils.ts';\nimport type { SingleStoreDialect } from '../dialect.ts';\nimport type {\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n\tSingleStorePreparedQueryConfig,\n\tSingleStoreSession,\n} from '../session.ts';\nimport type { SingleStoreTable } from '../table.ts';\n\nexport class RelationalQueryBuilder<\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTSchema extends TablesRelationalConfig,\n\tTFields extends TableRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'SingleStoreRelationalQueryBuilder';\n\n\tconstructor(\n\t\tprivate fullSchema: Record<string, unknown>,\n\t\tprivate schema: TSchema,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: SingleStoreTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate session: SingleStoreSession,\n\t) {}\n\n\tfindMany<TConfig extends DBQueryConfig<'many', true, TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'many', true, TSchema, TFields>>,\n\t): SingleStoreRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TConfig>[]> {\n\t\treturn new SingleStoreRelationalQuery(\n\t\t\tthis.fullSchema,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig ? (config as DBQueryConfig<'many', true>) : {},\n\t\t\t'many',\n\t\t);\n\t}\n\n\tfindFirst<TSelection extends Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>(\n\t\tconfig?: KnownKeysOnly<TSelection, Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>,\n\t): SingleStoreRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TSelection> | undefined> {\n\t\treturn new SingleStoreRelationalQuery(\n\t\t\tthis.fullSchema,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig ? { ...(config as DBQueryConfig<'many', true> | undefined), limit: 1 } : { limit: 1 },\n\t\t\t'first',\n\t\t);\n\t}\n}\n\nexport class SingleStoreRelationalQuery<\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTResult,\n> extends QueryPromise<TResult> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreRelationalQuery';\n\n\tdeclare protected $brand: 'SingleStoreRelationalQuery';\n\n\tconstructor(\n\t\tprivate fullSchema: Record<string, unknown>,\n\t\tprivate schema: TablesRelationalConfig,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: SingleStoreTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate session: SingleStoreSession,\n\t\tprivate config: DBQueryConfig<'many', true> | true,\n\t\tprivate queryMode: 'many' | 'first',\n\t) {\n\t\tsuper();\n\t}\n\n\tprepare() {\n\t\tconst { query, builtQuery } = this._toSQL();\n\t\treturn this.session.prepareQuery(\n\t\t\tbuiltQuery,\n\t\t\tundefined,\n\t\t\t(rawRows) => {\n\t\t\t\tconst rows = rawRows.map((row) => mapRelationalRow(this.schema, this.tableConfig, row, query.selection));\n\t\t\t\tif (this.queryMode === 'first') {\n\t\t\t\t\treturn rows[0] as TResult;\n\t\t\t\t}\n\t\t\t\treturn rows as TResult;\n\t\t\t},\n\t\t) as PreparedQueryKind<TPreparedQueryHKT, SingleStorePreparedQueryConfig & { execute: TResult }, true>;\n\t}\n\n\tprivate _getQuery() {\n\t\treturn this.dialect.buildRelationalQuery({\n\t\t\tfullSchema: this.fullSchema,\n\t\t\tschema: this.schema,\n\t\t\ttableNamesMap: this.tableNamesMap,\n\t\t\ttable: this.table,\n\t\t\ttableConfig: this.tableConfig,\n\t\t\tqueryConfig: this.config,\n\t\t\ttableAlias: this.tableConfig.tsName,\n\t\t});\n\t}\n\n\tprivate _toSQL(): { query: BuildRelationalQueryResult; builtQuery: QueryWithTypings } {\n\t\tconst query = this._getQuery();\n\n\t\tconst builtQuery = this.dialect.sqlToQuery(query.sql as SQL);\n\n\t\treturn { builtQuery, query };\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this._getQuery().sql as SQL;\n\t}\n\n\ttoSQL(): Query {\n\t\treturn this._toSQL().builtQuery;\n\t}\n\n\toverride execute(): Promise<TResult> {\n\t\treturn this.prepare().execute();\n\t}\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB;AAC7B;AAAA,EAIC;AAAA,OAGM;AAYA,MAAM,uBAIX;AAAA,EAGD,YACS,YACA,QACA,eACA,OACA,aACA,SACA,SACP;AAPO;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EACN;AAAA,EAVH,QAAiB,UAAU,IAAY;AAAA,EAYvC,SACC,QAC+F;AAC/F,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAU,SAAyC,CAAC;AAAA,MACpD;AAAA,IACD;AAAA,EACD;AAAA,EAEA,UACC,QAC4G;AAC5G,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAS,EAAE,GAAI,QAAoD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;AAAA,MAC3F;AAAA,IACD;AAAA,EACD;AACD;AAEO,MAAM,mCAGH,aAAsB;AAAA,EAK/B,YACS,YACA,QACA,eACA,OACA,aACA,SACA,SACA,QACA,WACP;AACD,UAAM;AAVE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EAGT;AAAA,EAhBA,QAA0B,UAAU,IAAY;AAAA,EAkBhD,UAAU;AACT,UAAM,EAAE,OAAO,WAAW,IAAI,KAAK,OAAO;AAC1C,WAAO,KAAK,QAAQ;AAAA,MACnB;AAAA,MACA;AAAA,MACA,CAAC,YAAY;AACZ,cAAM,OAAO,QAAQ,IAAI,CAAC,QAAQ,iBAAiB,KAAK,QAAQ,KAAK,aAAa,KAAK,MAAM,SAAS,CAAC;AACvG,YAAI,KAAK,cAAc,SAAS;AAC/B,iBAAO,KAAK,CAAC;AAAA,QACd;AACA,eAAO;AAAA,MACR;AAAA,IACD;AAAA,EACD;AAAA,EAEQ,YAAY;AACnB,WAAO,KAAK,QAAQ,qBAAqB;AAAA,MACxC,YAAY,KAAK;AAAA,MACjB,QAAQ,KAAK;AAAA,MACb,eAAe,KAAK;AAAA,MACpB,OAAO,KAAK;AAAA,MACZ,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,YAAY,KAAK,YAAY;AAAA,IAC9B,CAAC;AAAA,EACF;AAAA,EAEQ,SAA8E;AACrF,UAAM,QAAQ,KAAK,UAAU;AAE7B,UAAM,aAAa,KAAK,QAAQ,WAAW,MAAM,GAAU;AAE3D,WAAO,EAAE,YAAY,MAAM;AAAA,EAC5B;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,UAAU,EAAE;AAAA,EACzB;AAAA,EAEA,QAAe;AACd,WAAO,KAAK,OAAO,EAAE;AAAA,EACtB;AAAA,EAES,UAA4B;AACpC,WAAO,KAAK,QAAQ,EAAE,QAAQ;AAAA,EAC/B;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/singlestore-core/query-builders/query.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { BlankSingleStoreHookContext } from '~/extension-core/singlestore/index.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport {\n\ttype BuildQueryResult,\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tmapRelationalRow,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { Query, QueryWithTypings, SQL } from '~/sql/sql.ts';\nimport type { KnownKeysOnly } from '~/utils.ts';\nimport type { SingleStoreDialect } from '../dialect.ts';\nimport type {\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n\tSingleStorePreparedQueryConfig,\n\tSingleStoreSession,\n} from '../session.ts';\nimport type { SingleStoreTable } from '../table.ts';\n\nexport class RelationalQueryBuilder<\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTSchema extends TablesRelationalConfig,\n\tTFields extends TableRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'SingleStoreRelationalQueryBuilder';\n\n\tconstructor(\n\t\tprivate fullSchema: Record<string, unknown>,\n\t\tprivate schema: TSchema,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: SingleStoreTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate session: SingleStoreSession,\n\t) {}\n\n\tfindMany<TConfig extends DBQueryConfig<'many', true, TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'many', true, TSchema, TFields>>,\n\t): SingleStoreRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TConfig>[]> {\n\t\treturn new SingleStoreRelationalQuery(\n\t\t\tthis.fullSchema,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig ? (config as DBQueryConfig<'many', true>) : {},\n\t\t\t'many',\n\t\t);\n\t}\n\n\tfindFirst<TSelection extends Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>(\n\t\tconfig?: KnownKeysOnly<TSelection, Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>,\n\t): SingleStoreRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TSelection> | undefined> {\n\t\treturn new SingleStoreRelationalQuery(\n\t\t\tthis.fullSchema,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig ? { ...(config as DBQueryConfig<'many', true> | undefined), limit: 1 } : { limit: 1 },\n\t\t\t'first',\n\t\t);\n\t}\n}\n\nexport class SingleStoreRelationalQuery<\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTResult,\n> extends QueryPromise<TResult> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreRelationalQuery';\n\n\tdeclare protected $brand: 'SingleStoreRelationalQuery';\n\n\tconstructor(\n\t\tprivate fullSchema: Record<string, unknown>,\n\t\tprivate schema: TablesRelationalConfig,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: SingleStoreTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate session: SingleStoreSession,\n\t\tprivate config: DBQueryConfig<'many', true> | true,\n\t\tprivate queryMode: 'many' | 'first',\n\t) {\n\t\tsuper();\n\t}\n\n\tprepare() {\n\t\tconst { query, builtQuery } = this._toSQL();\n\n\t\tconst extCfg: BlankSingleStoreHookContext | undefined = this.session.extensions?.length\n\t\t\t? {\n\t\t\t\tquery: '_query',\n\t\t\t\tsession: this.session,\n\t\t\t\tdialect: this.dialect,\n\t\t\t\ttableNamesMap: this.tableNamesMap,\n\t\t\t\ttablesConfig: this.schema,\n\t\t\t\ttableConfig: this.tableConfig,\n\t\t\t\tmode: this.queryMode,\n\t\t\t\tconfig: query,\n\t\t\t}\n\t\t\t: undefined;\n\n\t\treturn this.session.prepareQuery(\n\t\t\tbuiltQuery,\n\t\t\tundefined,\n\t\t\textCfg,\n\t\t\t(rawRows) => {\n\t\t\t\tconst rows = rawRows.map((row) => mapRelationalRow(this.schema, this.tableConfig, row, query.selection));\n\t\t\t\tif (this.queryMode === 'first') {\n\t\t\t\t\treturn rows[0] as TResult;\n\t\t\t\t}\n\t\t\t\treturn rows as TResult;\n\t\t\t},\n\t\t) as PreparedQueryKind<TPreparedQueryHKT, SingleStorePreparedQueryConfig & { execute: TResult }, true>;\n\t}\n\n\tprivate _getQuery() {\n\t\treturn this.dialect.buildRelationalQuery({\n\t\t\tfullSchema: this.fullSchema,\n\t\t\tschema: this.schema,\n\t\t\ttableNamesMap: this.tableNamesMap,\n\t\t\ttable: this.table,\n\t\t\ttableConfig: this.tableConfig,\n\t\t\tqueryConfig: this.config,\n\t\t\ttableAlias: this.tableConfig.tsName,\n\t\t}, this.session.extensions);\n\t}\n\n\tprivate _toSQL(): { query: BuildRelationalQueryResult; builtQuery: QueryWithTypings } {\n\t\tconst query = this._getQuery();\n\n\t\tconst builtQuery = this.dialect.sqlToQuery(query.sql as SQL);\n\n\t\treturn { builtQuery, query };\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this._getQuery().sql as SQL;\n\t}\n\n\ttoSQL(): Query {\n\t\treturn this._toSQL().builtQuery;\n\t}\n\n\toverride execute(): Promise<TResult> {\n\t\treturn this.prepare().execute();\n\t}\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAE3B,SAAS,oBAAoB;AAC7B;AAAA,EAIC;AAAA,OAGM;AAYA,MAAM,uBAIX;AAAA,EAGD,YACS,YACA,QACA,eACA,OACA,aACA,SACA,SACP;AAPO;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EACN;AAAA,EAVH,QAAiB,UAAU,IAAY;AAAA,EAYvC,SACC,QAC+F;AAC/F,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAU,SAAyC,CAAC;AAAA,MACpD;AAAA,IACD;AAAA,EACD;AAAA,EAEA,UACC,QAC4G;AAC5G,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAS,EAAE,GAAI,QAAoD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;AAAA,MAC3F;AAAA,IACD;AAAA,EACD;AACD;AAEO,MAAM,mCAGH,aAAsB;AAAA,EAK/B,YACS,YACA,QACA,eACA,OACA,aACA,SACA,SACA,QACA,WACP;AACD,UAAM;AAVE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EAGT;AAAA,EAhBA,QAA0B,UAAU,IAAY;AAAA,EAkBhD,UAAU;AACT,UAAM,EAAE,OAAO,WAAW,IAAI,KAAK,OAAO;AAE1C,UAAM,SAAkD,KAAK,QAAQ,YAAY,SAC9E;AAAA,MACD,OAAO;AAAA,MACP,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,eAAe,KAAK;AAAA,MACpB,cAAc,KAAK;AAAA,MACnB,aAAa,KAAK;AAAA,MAClB,MAAM,KAAK;AAAA,MACX,QAAQ;AAAA,IACT,IACE;AAEH,WAAO,KAAK,QAAQ;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA,CAAC,YAAY;AACZ,cAAM,OAAO,QAAQ,IAAI,CAAC,QAAQ,iBAAiB,KAAK,QAAQ,KAAK,aAAa,KAAK,MAAM,SAAS,CAAC;AACvG,YAAI,KAAK,cAAc,SAAS;AAC/B,iBAAO,KAAK,CAAC;AAAA,QACd;AACA,eAAO;AAAA,MACR;AAAA,IACD;AAAA,EACD;AAAA,EAEQ,YAAY;AACnB,WAAO,KAAK,QAAQ,qBAAqB;AAAA,MACxC,YAAY,KAAK;AAAA,MACjB,QAAQ,KAAK;AAAA,MACb,eAAe,KAAK;AAAA,MACpB,OAAO,KAAK;AAAA,MACZ,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,YAAY,KAAK,YAAY;AAAA,IAC9B,GAAG,KAAK,QAAQ,UAAU;AAAA,EAC3B;AAAA,EAEQ,SAA8E;AACrF,UAAM,QAAQ,KAAK,UAAU;AAE7B,UAAM,aAAa,KAAK,QAAQ,WAAW,MAAM,GAAU;AAE3D,WAAO,EAAE,YAAY,MAAM;AAAA,EAC5B;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,UAAU,EAAE;AAAA,EACzB;AAAA,EAEA,QAAe;AACd,WAAO,KAAK,OAAO,EAAE;AAAA,EACtB;AAAA,EAES,UAA4B;AACpC,WAAO,KAAK,QAAQ,EAAE,QAAQ;AAAA,EAC/B;AACD;","names":[]}
@@ -36,7 +36,6 @@ var import_sql = require("../../sql/sql.cjs");
36
36
  var import_subquery = require("../../subquery.cjs");
37
37
  var import_table = require("../../table.cjs");
38
38
  var import_utils = require("../../utils.cjs");
39
- var import_utils2 = require("../utils.cjs");
40
39
  class SingleStoreSelectBuilder {
41
40
  static [import_entity.entityKind] = "SingleStoreSelectBuilder";
42
41
  fields;
@@ -90,8 +89,6 @@ class SingleStoreSelectQueryBuilderBase extends import_query_builder.TypedQueryB
90
89
  /** @internal */
91
90
  session;
92
91
  dialect;
93
- cacheConfig = void 0;
94
- usedTables = /* @__PURE__ */ new Set();
95
92
  constructor({ table, fields, isPartialSelect, session, dialect, withList, distinct }) {
96
93
  super();
97
94
  this.config = {
@@ -105,24 +102,15 @@ class SingleStoreSelectQueryBuilderBase extends import_query_builder.TypedQueryB
105
102
  this.session = session;
106
103
  this.dialect = dialect;
107
104
  this._ = {
108
- selectedFields: fields,
109
- config: this.config
105
+ selectedFields: fields
110
106
  };
111
107
  this.tableName = (0, import_utils.getTableLikeName)(table);
112
108
  this.joinsNotNullableMap = typeof this.tableName === "string" ? { [this.tableName]: true } : {};
113
- for (const item of (0, import_utils2.extractUsedTable)(table))
114
- this.usedTables.add(item);
115
- }
116
- /** @internal */
117
- getUsedTables() {
118
- return [...this.usedTables];
119
109
  }
120
110
  createJoin(joinType, lateral) {
121
111
  return (table, on) => {
122
112
  const baseTableName = this.tableName;
123
113
  const tableName = (0, import_utils.getTableLikeName)(table);
124
- for (const item of (0, import_utils2.extractUsedTable)(table))
125
- this.usedTables.add(item);
126
114
  if (typeof tableName === "string" && this.config.joins?.some((join) => join.alias === tableName)) {
127
115
  throw new Error(`Alias "${tableName}" is already used in this query`);
128
116
  }
@@ -676,21 +664,15 @@ class SingleStoreSelectQueryBuilderBase extends import_query_builder.TypedQueryB
676
664
  }
677
665
  /** @internal */
678
666
  getSQL() {
679
- return this.dialect.buildSelectQuery(this.config);
667
+ return this.dialect.buildSelectQuery(this.config, this.session?.extensions);
680
668
  }
681
669
  toSQL() {
682
670
  const { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());
683
671
  return rest;
684
672
  }
685
673
  as(alias) {
686
- const usedTables = [];
687
- usedTables.push(...(0, import_utils2.extractUsedTable)(this.config.table));
688
- if (this.config.joins) {
689
- for (const it of this.config.joins)
690
- usedTables.push(...(0, import_utils2.extractUsedTable)(it.table));
691
- }
692
674
  return new Proxy(
693
- new import_subquery.Subquery(this.getSQL(), this.config.fields, alias, false, [...new Set(usedTables)]),
675
+ new import_subquery.Subquery(this.getSQL(), this.config.fields, alias),
694
676
  new import_selection_proxy.SelectionProxyHandler({ alias, sqlAliasedBehavior: "alias", sqlBehavior: "error" })
695
677
  );
696
678
  }
@@ -711,18 +693,19 @@ class SingleStoreSelectBase extends SingleStoreSelectQueryBuilderBase {
711
693
  if (!this.session) {
712
694
  throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");
713
695
  }
714
- const fieldsList = (0, import_utils.orderSelectedFields)(this.config.fields);
715
- const query = this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()), fieldsList, void 0, void 0, void 0, {
716
- type: "select",
717
- tables: [...this.usedTables]
718
- }, this.cacheConfig);
719
- query.joinsNotNullableMap = this.joinsNotNullableMap;
696
+ const { joinsNotNullableMap, dialect, session, config } = this;
697
+ const fieldsList = (0, import_utils.orderSelectedFields)(config.fields);
698
+ const query = session.prepareQuery(dialect.sqlToQuery(this.getSQL()), fieldsList, {
699
+ query: "select",
700
+ joinsNotNullableMap,
701
+ dialect,
702
+ session,
703
+ config,
704
+ fieldsOrdered: fieldsList
705
+ });
706
+ query.joinsNotNullableMap = joinsNotNullableMap;
720
707
  return query;
721
708
  }
722
- $withCache(config) {
723
- this.cacheConfig = config === void 0 ? { config: {}, enable: true, autoInvalidate: true } : config === false ? { enable: false } : { enable: true, autoInvalidate: true, ...config };
724
- return this;
725
- }
726
709
  execute = (placeholderValues) => {
727
710
  return this.prepare().execute(placeholderValues);
728
711
  };