drizzle-orm 0.43.1-b08434e → 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 (777) hide show
  1. package/aws-data-api/pg/driver.cjs +7 -6
  2. package/aws-data-api/pg/driver.cjs.map +1 -1
  3. package/aws-data-api/pg/driver.d.cts +4 -3
  4. package/aws-data-api/pg/driver.d.ts +4 -3
  5. package/aws-data-api/pg/driver.js +7 -6
  6. package/aws-data-api/pg/driver.js.map +1 -1
  7. package/aws-data-api/pg/session.cjs +26 -9
  8. package/aws-data-api/pg/session.cjs.map +1 -1
  9. package/aws-data-api/pg/session.d.cts +5 -4
  10. package/aws-data-api/pg/session.d.ts +5 -4
  11. package/aws-data-api/pg/session.js +26 -9
  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 +5 -5
  18. package/better-sqlite3/session.cjs.map +1 -1
  19. package/better-sqlite3/session.d.cts +5 -5
  20. package/better-sqlite3/session.d.ts +5 -5
  21. package/better-sqlite3/session.js +5 -5
  22. package/better-sqlite3/session.js.map +1 -1
  23. package/bun-sql/driver.cjs +3 -2
  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 -2
  28. package/bun-sql/driver.js.map +1 -1
  29. package/bun-sql/session.cjs +20 -11
  30. package/bun-sql/session.cjs.map +1 -1
  31. package/bun-sql/session.d.cts +6 -5
  32. package/bun-sql/session.d.ts +6 -5
  33. package/bun-sql/session.js +20 -11
  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 -2
  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 -2
  60. package/d1/driver.js.map +1 -1
  61. package/d1/session.cjs +20 -11
  62. package/d1/session.cjs.map +1 -1
  63. package/d1/session.d.cts +8 -7
  64. package/d1/session.d.ts +8 -7
  65. package/d1/session.js +20 -11
  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 +5 -5
  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 +5 -5
  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/extension-core/gel/index.cjs +33 -0
  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/extension-core/mysql/index.cjs +33 -0
  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/extensions/s3-file/gel/index.cjs +25 -0
  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/extensions/s3-file/index.cjs +23 -0
  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/extensions/s3-file/pg/index.cjs +25 -0
  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 -4
  256. package/gel/driver.cjs.map +1 -1
  257. package/gel/driver.d.cts +6 -4
  258. package/gel/driver.d.ts +6 -4
  259. package/gel/driver.js +6 -4
  260. package/gel/driver.js.map +1 -1
  261. package/gel/session.cjs +12 -9
  262. package/gel/session.cjs.map +1 -1
  263. package/gel/session.d.cts +5 -4
  264. package/gel/session.d.ts +5 -4
  265. package/gel/session.js +12 -9
  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 -3
  274. package/gel-core/db.cjs.map +1 -1
  275. package/gel-core/db.d.cts +3 -1
  276. package/gel-core/db.d.ts +3 -1
  277. package/gel-core/db.js +5 -3
  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 +7 -2
  286. package/gel-core/query-builders/delete.cjs.map +1 -1
  287. package/gel-core/query-builders/delete.js +7 -2
  288. package/gel-core/query-builders/delete.js.map +1 -1
  289. package/gel-core/query-builders/insert.cjs +32 -6
  290. package/gel-core/query-builders/insert.cjs.map +1 -1
  291. package/gel-core/query-builders/insert.js +34 -8
  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 +9 -2
  298. package/gel-core/query-builders/select.cjs.map +1 -1
  299. package/gel-core/query-builders/select.js +9 -2
  300. package/gel-core/query-builders/select.js.map +1 -1
  301. package/gel-core/query-builders/update.cjs +8 -3
  302. package/gel-core/query-builders/update.cjs.map +1 -1
  303. package/gel-core/query-builders/update.js +8 -3
  304. package/gel-core/query-builders/update.js.map +1 -1
  305. package/gel-core/session.cjs +48 -4
  306. package/gel-core/session.cjs.map +1 -1
  307. package/gel-core/session.d.cts +11 -5
  308. package/gel-core/session.d.ts +11 -5
  309. package/gel-core/session.js +48 -4
  310. package/gel-core/session.js.map +1 -1
  311. package/libsql/driver-core.cjs +3 -2
  312. package/libsql/driver-core.cjs.map +1 -1
  313. package/libsql/driver-core.js +3 -2
  314. package/libsql/driver-core.js.map +1 -1
  315. package/libsql/driver.cjs +4 -1
  316. package/libsql/driver.cjs.map +1 -1
  317. package/libsql/driver.d.cts +4 -3
  318. package/libsql/driver.d.ts +4 -3
  319. package/libsql/driver.js +4 -1
  320. package/libsql/driver.js.map +1 -1
  321. package/libsql/http/index.cjs +4 -1
  322. package/libsql/http/index.cjs.map +1 -1
  323. package/libsql/http/index.d.cts +4 -3
  324. package/libsql/http/index.d.ts +4 -3
  325. package/libsql/http/index.js +4 -1
  326. package/libsql/http/index.js.map +1 -1
  327. package/libsql/node/index.cjs +4 -1
  328. package/libsql/node/index.cjs.map +1 -1
  329. package/libsql/node/index.d.cts +4 -3
  330. package/libsql/node/index.d.ts +4 -3
  331. package/libsql/node/index.js +4 -1
  332. package/libsql/node/index.js.map +1 -1
  333. package/libsql/session.cjs +29 -12
  334. package/libsql/session.cjs.map +1 -1
  335. package/libsql/session.d.cts +8 -7
  336. package/libsql/session.d.ts +8 -7
  337. package/libsql/session.js +29 -12
  338. package/libsql/session.js.map +1 -1
  339. package/libsql/sqlite3/index.cjs +4 -1
  340. package/libsql/sqlite3/index.cjs.map +1 -1
  341. package/libsql/sqlite3/index.d.cts +4 -3
  342. package/libsql/sqlite3/index.d.ts +4 -3
  343. package/libsql/sqlite3/index.js +4 -1
  344. package/libsql/sqlite3/index.js.map +1 -1
  345. package/libsql/wasm/index.cjs +4 -1
  346. package/libsql/wasm/index.cjs.map +1 -1
  347. package/libsql/wasm/index.d.cts +4 -3
  348. package/libsql/wasm/index.d.ts +4 -3
  349. package/libsql/wasm/index.js +4 -1
  350. package/libsql/wasm/index.js.map +1 -1
  351. package/libsql/web/index.cjs +4 -1
  352. package/libsql/web/index.cjs.map +1 -1
  353. package/libsql/web/index.d.cts +4 -3
  354. package/libsql/web/index.d.ts +4 -3
  355. package/libsql/web/index.js +4 -1
  356. package/libsql/web/index.js.map +1 -1
  357. package/libsql/ws/index.cjs +4 -1
  358. package/libsql/ws/index.cjs.map +1 -1
  359. package/libsql/ws/index.d.cts +4 -3
  360. package/libsql/ws/index.d.ts +4 -3
  361. package/libsql/ws/index.js +4 -1
  362. package/libsql/ws/index.js.map +1 -1
  363. package/mysql-core/db.cjs +5 -3
  364. package/mysql-core/db.cjs.map +1 -1
  365. package/mysql-core/db.d.cts +3 -1
  366. package/mysql-core/db.d.ts +3 -1
  367. package/mysql-core/db.js +5 -3
  368. package/mysql-core/db.js.map +1 -1
  369. package/mysql-core/dialect.cjs +30 -23
  370. package/mysql-core/dialect.cjs.map +1 -1
  371. package/mysql-core/dialect.d.cts +8 -7
  372. package/mysql-core/dialect.d.ts +8 -7
  373. package/mysql-core/dialect.js +31 -24
  374. package/mysql-core/dialect.js.map +1 -1
  375. package/mysql-core/query-builders/delete.cjs +8 -2
  376. package/mysql-core/query-builders/delete.cjs.map +1 -1
  377. package/mysql-core/query-builders/delete.js +8 -2
  378. package/mysql-core/query-builders/delete.js.map +1 -1
  379. package/mysql-core/query-builders/insert.cjs +29 -5
  380. package/mysql-core/query-builders/insert.cjs.map +1 -1
  381. package/mysql-core/query-builders/insert.js +31 -7
  382. package/mysql-core/query-builders/insert.js.map +1 -1
  383. package/mysql-core/query-builders/query.cjs +14 -2
  384. package/mysql-core/query-builders/query.cjs.map +1 -1
  385. package/mysql-core/query-builders/query.js +14 -2
  386. package/mysql-core/query-builders/query.js.map +1 -1
  387. package/mysql-core/query-builders/select.cjs +12 -4
  388. package/mysql-core/query-builders/select.cjs.map +1 -1
  389. package/mysql-core/query-builders/select.js +12 -4
  390. package/mysql-core/query-builders/select.js.map +1 -1
  391. package/mysql-core/query-builders/update.cjs +15 -3
  392. package/mysql-core/query-builders/update.cjs.map +1 -1
  393. package/mysql-core/query-builders/update.js +15 -3
  394. package/mysql-core/query-builders/update.js.map +1 -1
  395. package/mysql-core/session.cjs +45 -3
  396. package/mysql-core/session.cjs.map +1 -1
  397. package/mysql-core/session.d.cts +13 -4
  398. package/mysql-core/session.d.ts +13 -4
  399. package/mysql-core/session.js +45 -3
  400. package/mysql-core/session.js.map +1 -1
  401. package/mysql-proxy/driver.cjs +3 -2
  402. package/mysql-proxy/driver.cjs.map +1 -1
  403. package/mysql-proxy/driver.d.cts +2 -1
  404. package/mysql-proxy/driver.d.ts +2 -1
  405. package/mysql-proxy/driver.js +3 -2
  406. package/mysql-proxy/driver.js.map +1 -1
  407. package/mysql-proxy/session.cjs +8 -8
  408. package/mysql-proxy/session.cjs.map +1 -1
  409. package/mysql-proxy/session.d.cts +5 -6
  410. package/mysql-proxy/session.d.ts +5 -6
  411. package/mysql-proxy/session.js +8 -8
  412. package/mysql-proxy/session.js.map +1 -1
  413. package/mysql2/driver.cjs +6 -4
  414. package/mysql2/driver.cjs.map +1 -1
  415. package/mysql2/driver.d.cts +4 -2
  416. package/mysql2/driver.d.ts +4 -2
  417. package/mysql2/driver.js +6 -4
  418. package/mysql2/driver.js.map +1 -1
  419. package/mysql2/session.cjs +14 -10
  420. package/mysql2/session.cjs.map +1 -1
  421. package/mysql2/session.d.cts +5 -5
  422. package/mysql2/session.d.ts +5 -5
  423. package/mysql2/session.js +14 -10
  424. package/mysql2/session.js.map +1 -1
  425. package/neon-http/driver.cjs +5 -3
  426. package/neon-http/driver.cjs.map +1 -1
  427. package/neon-http/driver.d.cts +6 -4
  428. package/neon-http/driver.d.ts +6 -4
  429. package/neon-http/driver.js +5 -3
  430. package/neon-http/driver.js.map +1 -1
  431. package/neon-http/session.cjs +8 -6
  432. package/neon-http/session.cjs.map +1 -1
  433. package/neon-http/session.d.cts +5 -4
  434. package/neon-http/session.d.ts +5 -4
  435. package/neon-http/session.js +8 -6
  436. package/neon-http/session.js.map +1 -1
  437. package/neon-serverless/driver.cjs +6 -4
  438. package/neon-serverless/driver.cjs.map +1 -1
  439. package/neon-serverless/driver.d.cts +6 -4
  440. package/neon-serverless/driver.d.ts +6 -4
  441. package/neon-serverless/driver.js +6 -4
  442. package/neon-serverless/driver.js.map +1 -1
  443. package/neon-serverless/session.cjs +23 -9
  444. package/neon-serverless/session.cjs.map +1 -1
  445. package/neon-serverless/session.d.cts +5 -4
  446. package/neon-serverless/session.d.ts +5 -4
  447. package/neon-serverless/session.js +23 -9
  448. package/neon-serverless/session.js.map +1 -1
  449. package/node-postgres/driver.cjs +6 -4
  450. package/node-postgres/driver.cjs.map +1 -1
  451. package/node-postgres/driver.d.cts +6 -4
  452. package/node-postgres/driver.d.ts +6 -4
  453. package/node-postgres/driver.js +6 -4
  454. package/node-postgres/driver.js.map +1 -1
  455. package/node-postgres/session.cjs +18 -9
  456. package/node-postgres/session.cjs.map +1 -1
  457. package/node-postgres/session.d.cts +5 -4
  458. package/node-postgres/session.d.ts +5 -4
  459. package/node-postgres/session.js +18 -9
  460. package/node-postgres/session.js.map +1 -1
  461. package/op-sqlite/driver.cjs.map +1 -1
  462. package/op-sqlite/driver.d.cts +2 -1
  463. package/op-sqlite/driver.d.ts +2 -1
  464. package/op-sqlite/driver.js.map +1 -1
  465. package/op-sqlite/session.cjs +5 -5
  466. package/op-sqlite/session.cjs.map +1 -1
  467. package/op-sqlite/session.d.cts +5 -5
  468. package/op-sqlite/session.d.ts +5 -5
  469. package/op-sqlite/session.js +5 -5
  470. package/op-sqlite/session.js.map +1 -1
  471. package/package.json +347 -1
  472. package/pg-core/columns/common.cjs +2 -0
  473. package/pg-core/columns/common.cjs.map +1 -1
  474. package/pg-core/columns/common.js +2 -0
  475. package/pg-core/columns/common.js.map +1 -1
  476. package/pg-core/db.cjs +5 -3
  477. package/pg-core/db.cjs.map +1 -1
  478. package/pg-core/db.d.cts +3 -1
  479. package/pg-core/db.d.ts +3 -1
  480. package/pg-core/db.js +5 -3
  481. package/pg-core/db.js.map +1 -1
  482. package/pg-core/dialect.cjs +26 -19
  483. package/pg-core/dialect.cjs.map +1 -1
  484. package/pg-core/dialect.d.cts +7 -6
  485. package/pg-core/dialect.d.ts +7 -6
  486. package/pg-core/dialect.js +27 -20
  487. package/pg-core/dialect.js.map +1 -1
  488. package/pg-core/query-builders/delete.cjs +7 -2
  489. package/pg-core/query-builders/delete.cjs.map +1 -1
  490. package/pg-core/query-builders/delete.d.cts +1 -1
  491. package/pg-core/query-builders/delete.d.ts +1 -1
  492. package/pg-core/query-builders/delete.js +7 -2
  493. package/pg-core/query-builders/delete.js.map +1 -1
  494. package/pg-core/query-builders/insert.cjs +37 -6
  495. package/pg-core/query-builders/insert.cjs.map +1 -1
  496. package/pg-core/query-builders/insert.js +39 -8
  497. package/pg-core/query-builders/insert.js.map +1 -1
  498. package/pg-core/query-builders/query.cjs +12 -1
  499. package/pg-core/query-builders/query.cjs.map +1 -1
  500. package/pg-core/query-builders/query.js +12 -1
  501. package/pg-core/query-builders/query.js.map +1 -1
  502. package/pg-core/query-builders/select.cjs +11 -4
  503. package/pg-core/query-builders/select.cjs.map +1 -1
  504. package/pg-core/query-builders/select.js +11 -4
  505. package/pg-core/query-builders/select.js.map +1 -1
  506. package/pg-core/query-builders/update.cjs +8 -3
  507. package/pg-core/query-builders/update.cjs.map +1 -1
  508. package/pg-core/query-builders/update.d.cts +2 -2
  509. package/pg-core/query-builders/update.d.ts +2 -2
  510. package/pg-core/query-builders/update.js +9 -8
  511. package/pg-core/query-builders/update.js.map +1 -1
  512. package/pg-core/session.cjs +49 -4
  513. package/pg-core/session.cjs.map +1 -1
  514. package/pg-core/session.d.cts +11 -5
  515. package/pg-core/session.d.ts +11 -5
  516. package/pg-core/session.js +49 -4
  517. package/pg-core/session.js.map +1 -1
  518. package/pg-proxy/driver.cjs +3 -2
  519. package/pg-proxy/driver.cjs.map +1 -1
  520. package/pg-proxy/driver.d.cts +2 -1
  521. package/pg-proxy/driver.d.ts +2 -1
  522. package/pg-proxy/driver.js +3 -2
  523. package/pg-proxy/driver.js.map +1 -1
  524. package/pg-proxy/session.cjs +8 -6
  525. package/pg-proxy/session.cjs.map +1 -1
  526. package/pg-proxy/session.d.cts +5 -4
  527. package/pg-proxy/session.d.ts +5 -4
  528. package/pg-proxy/session.js +8 -6
  529. package/pg-proxy/session.js.map +1 -1
  530. package/pglite/driver.cjs +6 -4
  531. package/pglite/driver.cjs.map +1 -1
  532. package/pglite/driver.d.cts +6 -4
  533. package/pglite/driver.d.ts +6 -4
  534. package/pglite/driver.js +6 -4
  535. package/pglite/driver.js.map +1 -1
  536. package/pglite/session.cjs +19 -9
  537. package/pglite/session.cjs.map +1 -1
  538. package/pglite/session.d.cts +5 -4
  539. package/pglite/session.d.ts +5 -4
  540. package/pglite/session.js +19 -9
  541. package/pglite/session.js.map +1 -1
  542. package/planetscale-serverless/driver.cjs +3 -2
  543. package/planetscale-serverless/driver.cjs.map +1 -1
  544. package/planetscale-serverless/driver.d.cts +4 -3
  545. package/planetscale-serverless/driver.d.ts +4 -3
  546. package/planetscale-serverless/driver.js +3 -2
  547. package/planetscale-serverless/driver.js.map +1 -1
  548. package/planetscale-serverless/session.cjs +23 -13
  549. package/planetscale-serverless/session.cjs.map +1 -1
  550. package/planetscale-serverless/session.d.cts +6 -7
  551. package/planetscale-serverless/session.d.ts +6 -7
  552. package/planetscale-serverless/session.js +23 -13
  553. package/planetscale-serverless/session.js.map +1 -1
  554. package/postgres-js/driver.cjs +3 -2
  555. package/postgres-js/driver.cjs.map +1 -1
  556. package/postgres-js/driver.d.cts +4 -3
  557. package/postgres-js/driver.d.ts +4 -3
  558. package/postgres-js/driver.js +3 -2
  559. package/postgres-js/driver.js.map +1 -1
  560. package/postgres-js/session.cjs +27 -16
  561. package/postgres-js/session.cjs.map +1 -1
  562. package/postgres-js/session.d.cts +6 -5
  563. package/postgres-js/session.d.ts +6 -5
  564. package/postgres-js/session.js +27 -16
  565. package/postgres-js/session.js.map +1 -1
  566. package/prisma/mysql/driver.cjs +3 -3
  567. package/prisma/mysql/driver.cjs.map +1 -1
  568. package/prisma/mysql/driver.d.cts +3 -2
  569. package/prisma/mysql/driver.d.ts +3 -2
  570. package/prisma/mysql/driver.js +3 -3
  571. package/prisma/mysql/driver.js.map +1 -1
  572. package/prisma/mysql/session.cjs +10 -11
  573. package/prisma/mysql/session.cjs.map +1 -1
  574. package/prisma/mysql/session.d.cts +7 -6
  575. package/prisma/mysql/session.d.ts +7 -6
  576. package/prisma/mysql/session.js +10 -11
  577. package/prisma/mysql/session.js.map +1 -1
  578. package/prisma/pg/driver.cjs +3 -3
  579. package/prisma/pg/driver.cjs.map +1 -1
  580. package/prisma/pg/driver.d.cts +2 -1
  581. package/prisma/pg/driver.d.ts +2 -1
  582. package/prisma/pg/driver.js +3 -3
  583. package/prisma/pg/driver.js.map +1 -1
  584. package/prisma/pg/session.cjs +7 -7
  585. package/prisma/pg/session.cjs.map +1 -1
  586. package/prisma/pg/session.d.cts +6 -5
  587. package/prisma/pg/session.d.ts +6 -5
  588. package/prisma/pg/session.js +7 -7
  589. package/prisma/pg/session.js.map +1 -1
  590. package/prisma/sqlite/driver.cjs +7 -1
  591. package/prisma/sqlite/driver.cjs.map +1 -1
  592. package/prisma/sqlite/driver.d.cts +2 -1
  593. package/prisma/sqlite/driver.d.ts +2 -1
  594. package/prisma/sqlite/driver.js +7 -1
  595. package/prisma/sqlite/driver.js.map +1 -1
  596. package/prisma/sqlite/session.cjs +6 -6
  597. package/prisma/sqlite/session.cjs.map +1 -1
  598. package/prisma/sqlite/session.d.cts +6 -5
  599. package/prisma/sqlite/session.d.ts +6 -5
  600. package/prisma/sqlite/session.js +6 -6
  601. package/prisma/sqlite/session.js.map +1 -1
  602. package/singlestore/driver.cjs +28 -19
  603. package/singlestore/driver.cjs.map +1 -1
  604. package/singlestore/driver.d.cts +4 -2
  605. package/singlestore/driver.d.ts +4 -2
  606. package/singlestore/driver.js +28 -19
  607. package/singlestore/driver.js.map +1 -1
  608. package/singlestore/session.cjs +14 -10
  609. package/singlestore/session.cjs.map +1 -1
  610. package/singlestore/session.d.cts +5 -5
  611. package/singlestore/session.d.ts +5 -5
  612. package/singlestore/session.js +14 -10
  613. package/singlestore/session.js.map +1 -1
  614. package/singlestore-core/db.cjs +5 -3
  615. package/singlestore-core/db.cjs.map +1 -1
  616. package/singlestore-core/db.d.cts +3 -1
  617. package/singlestore-core/db.d.ts +3 -1
  618. package/singlestore-core/db.js +5 -3
  619. package/singlestore-core/db.js.map +1 -1
  620. package/singlestore-core/dialect.cjs +25 -18
  621. package/singlestore-core/dialect.cjs.map +1 -1
  622. package/singlestore-core/dialect.d.cts +7 -6
  623. package/singlestore-core/dialect.d.ts +7 -6
  624. package/singlestore-core/dialect.js +26 -19
  625. package/singlestore-core/dialect.js.map +1 -1
  626. package/singlestore-core/query-builders/delete.cjs +8 -2
  627. package/singlestore-core/query-builders/delete.cjs.map +1 -1
  628. package/singlestore-core/query-builders/delete.js +8 -2
  629. package/singlestore-core/query-builders/delete.js.map +1 -1
  630. package/singlestore-core/query-builders/insert.cjs +29 -5
  631. package/singlestore-core/query-builders/insert.cjs.map +1 -1
  632. package/singlestore-core/query-builders/insert.js +31 -7
  633. package/singlestore-core/query-builders/insert.js.map +1 -1
  634. package/singlestore-core/query-builders/query.cjs +12 -1
  635. package/singlestore-core/query-builders/query.cjs.map +1 -1
  636. package/singlestore-core/query-builders/query.js +12 -1
  637. package/singlestore-core/query-builders/query.js.map +1 -1
  638. package/singlestore-core/query-builders/select.cjs +12 -4
  639. package/singlestore-core/query-builders/select.cjs.map +1 -1
  640. package/singlestore-core/query-builders/select.js +12 -4
  641. package/singlestore-core/query-builders/select.js.map +1 -1
  642. package/singlestore-core/query-builders/update.cjs +9 -3
  643. package/singlestore-core/query-builders/update.cjs.map +1 -1
  644. package/singlestore-core/query-builders/update.js +9 -3
  645. package/singlestore-core/query-builders/update.js.map +1 -1
  646. package/singlestore-core/session.cjs +45 -3
  647. package/singlestore-core/session.cjs.map +1 -1
  648. package/singlestore-core/session.d.cts +13 -4
  649. package/singlestore-core/session.d.ts +13 -4
  650. package/singlestore-core/session.js +45 -3
  651. package/singlestore-core/session.js.map +1 -1
  652. package/singlestore-proxy/driver.cjs +3 -2
  653. package/singlestore-proxy/driver.cjs.map +1 -1
  654. package/singlestore-proxy/driver.d.cts +2 -1
  655. package/singlestore-proxy/driver.d.ts +2 -1
  656. package/singlestore-proxy/driver.js +3 -2
  657. package/singlestore-proxy/driver.js.map +1 -1
  658. package/singlestore-proxy/session.cjs +8 -8
  659. package/singlestore-proxy/session.cjs.map +1 -1
  660. package/singlestore-proxy/session.d.cts +5 -6
  661. package/singlestore-proxy/session.d.ts +5 -6
  662. package/singlestore-proxy/session.js +8 -8
  663. package/singlestore-proxy/session.js.map +1 -1
  664. package/sql/sql.cjs +24 -2
  665. package/sql/sql.cjs.map +1 -1
  666. package/sql/sql.d.cts +12 -0
  667. package/sql/sql.d.ts +12 -0
  668. package/sql/sql.js +23 -2
  669. package/sql/sql.js.map +1 -1
  670. package/sql-js/driver.cjs.map +1 -1
  671. package/sql-js/driver.d.cts +2 -1
  672. package/sql-js/driver.d.ts +2 -1
  673. package/sql-js/driver.js.map +1 -1
  674. package/sql-js/session.cjs +4 -4
  675. package/sql-js/session.cjs.map +1 -1
  676. package/sql-js/session.d.cts +4 -4
  677. package/sql-js/session.d.ts +4 -4
  678. package/sql-js/session.js +4 -4
  679. package/sql-js/session.js.map +1 -1
  680. package/sqlite-core/db.cjs +5 -3
  681. package/sqlite-core/db.cjs.map +1 -1
  682. package/sqlite-core/db.d.cts +3 -1
  683. package/sqlite-core/db.d.ts +3 -1
  684. package/sqlite-core/db.js +5 -3
  685. package/sqlite-core/db.js.map +1 -1
  686. package/sqlite-core/dialect.cjs +30 -19
  687. package/sqlite-core/dialect.cjs.map +1 -1
  688. package/sqlite-core/dialect.d.cts +7 -6
  689. package/sqlite-core/dialect.d.ts +7 -6
  690. package/sqlite-core/dialect.js +31 -20
  691. package/sqlite-core/dialect.js.map +1 -1
  692. package/sqlite-core/query-builders/delete.cjs +8 -2
  693. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  694. package/sqlite-core/query-builders/delete.js +8 -2
  695. package/sqlite-core/query-builders/delete.js.map +1 -1
  696. package/sqlite-core/query-builders/insert.cjs +28 -5
  697. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  698. package/sqlite-core/query-builders/insert.js +35 -7
  699. package/sqlite-core/query-builders/insert.js.map +1 -1
  700. package/sqlite-core/query-builders/query.cjs +12 -1
  701. package/sqlite-core/query-builders/query.cjs.map +1 -1
  702. package/sqlite-core/query-builders/query.js +12 -1
  703. package/sqlite-core/query-builders/query.js.map +1 -1
  704. package/sqlite-core/query-builders/select.cjs +15 -6
  705. package/sqlite-core/query-builders/select.cjs.map +1 -1
  706. package/sqlite-core/query-builders/select.js +15 -6
  707. package/sqlite-core/query-builders/select.js.map +1 -1
  708. package/sqlite-core/query-builders/update.cjs +9 -3
  709. package/sqlite-core/query-builders/update.cjs.map +1 -1
  710. package/sqlite-core/query-builders/update.js +9 -3
  711. package/sqlite-core/query-builders/update.js.map +1 -1
  712. package/sqlite-core/session.cjs +80 -6
  713. package/sqlite-core/session.cjs.map +1 -1
  714. package/sqlite-core/session.d.cts +19 -9
  715. package/sqlite-core/session.d.ts +19 -9
  716. package/sqlite-core/session.js +80 -6
  717. package/sqlite-core/session.js.map +1 -1
  718. package/sqlite-proxy/driver.cjs +4 -3
  719. package/sqlite-proxy/driver.cjs.map +1 -1
  720. package/sqlite-proxy/driver.d.cts +3 -2
  721. package/sqlite-proxy/driver.d.ts +3 -2
  722. package/sqlite-proxy/driver.js +4 -3
  723. package/sqlite-proxy/driver.js.map +1 -1
  724. package/sqlite-proxy/session.cjs +20 -11
  725. package/sqlite-proxy/session.cjs.map +1 -1
  726. package/sqlite-proxy/session.d.cts +8 -7
  727. package/sqlite-proxy/session.d.ts +8 -7
  728. package/sqlite-proxy/session.js +20 -11
  729. package/sqlite-proxy/session.js.map +1 -1
  730. package/tidb-serverless/driver.cjs +9 -2
  731. package/tidb-serverless/driver.cjs.map +1 -1
  732. package/tidb-serverless/driver.d.cts +4 -3
  733. package/tidb-serverless/driver.d.ts +4 -3
  734. package/tidb-serverless/driver.js +9 -2
  735. package/tidb-serverless/driver.js.map +1 -1
  736. package/tidb-serverless/session.cjs +23 -13
  737. package/tidb-serverless/session.cjs.map +1 -1
  738. package/tidb-serverless/session.d.cts +6 -7
  739. package/tidb-serverless/session.d.ts +6 -7
  740. package/tidb-serverless/session.js +23 -13
  741. package/tidb-serverless/session.js.map +1 -1
  742. package/tracing.cjs.map +1 -1
  743. package/tracing.js.map +1 -1
  744. package/utils.cjs +34 -2
  745. package/utils.cjs.map +1 -1
  746. package/utils.d.cts +5 -1
  747. package/utils.d.ts +5 -1
  748. package/utils.js +35 -4
  749. package/utils.js.map +1 -1
  750. package/vercel-postgres/driver.cjs +10 -5
  751. package/vercel-postgres/driver.cjs.map +1 -1
  752. package/vercel-postgres/driver.d.cts +6 -4
  753. package/vercel-postgres/driver.d.ts +6 -4
  754. package/vercel-postgres/driver.js +10 -5
  755. package/vercel-postgres/driver.js.map +1 -1
  756. package/vercel-postgres/session.cjs +18 -9
  757. package/vercel-postgres/session.cjs.map +1 -1
  758. package/vercel-postgres/session.d.cts +5 -4
  759. package/vercel-postgres/session.d.ts +5 -4
  760. package/vercel-postgres/session.js +18 -9
  761. package/vercel-postgres/session.js.map +1 -1
  762. package/version.cjs +1 -1
  763. package/version.d.cts +1 -1
  764. package/version.d.ts +1 -1
  765. package/version.js +1 -1
  766. package/xata-http/driver.cjs +7 -4
  767. package/xata-http/driver.cjs.map +1 -1
  768. package/xata-http/driver.d.cts +4 -2
  769. package/xata-http/driver.d.ts +4 -2
  770. package/xata-http/driver.js +7 -4
  771. package/xata-http/driver.js.map +1 -1
  772. package/xata-http/session.cjs +8 -6
  773. package/xata-http/session.cjs.map +1 -1
  774. package/xata-http/session.d.cts +5 -4
  775. package/xata-http/session.d.ts +5 -4
  776. package/xata-http/session.js +8 -6
  777. package/xata-http/session.js.map +1 -1
@@ -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 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) 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"]}
@@ -1,8 +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 { columnExtensionsCheck, mapUpdateSet, orderSelectedFields } from "../../utils.js";
6
7
  class SingleStoreInsertBuilder {
7
8
  constructor(table, session, dialect) {
8
9
  this.table = table;
@@ -20,15 +21,28 @@ class SingleStoreInsertBuilder {
20
21
  if (values.length === 0) {
21
22
  throw new Error("values() must be called with at least one value");
22
23
  }
24
+ const extColumns = /* @__PURE__ */ new Set();
25
+ const cols = this.table[Table.Symbol.Columns];
23
26
  const mappedValues = values.map((entry) => {
24
27
  const result = {};
25
- const cols = this.table[Table.Symbol.Columns];
26
28
  for (const colKey of Object.keys(entry)) {
27
29
  const colValue = entry[colKey];
28
- 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]);
29
40
  }
30
41
  return result;
31
42
  });
43
+ for (const colKey of extColumns.values()) {
44
+ columnExtensionsCheck(cols[colKey], this.session.extensions);
45
+ }
32
46
  return new SingleStoreInsertBase(this.table, mappedValues, this.shouldIgnore, this.session, this.dialect);
33
47
  }
34
48
  }
@@ -68,7 +82,11 @@ class SingleStoreInsertBase extends QueryPromise {
68
82
  * ```
69
83
  */
70
84
  onDuplicateKeyUpdate(config) {
71
- 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
+ );
72
90
  this.config.onConflict = sql`update ${setSql}`;
73
91
  return this;
74
92
  }
@@ -84,17 +102,23 @@ class SingleStoreInsertBase extends QueryPromise {
84
102
  }
85
103
  /** @internal */
86
104
  getSQL() {
87
- return this.dialect.buildInsertQuery(this.config).sql;
105
+ return this.dialect.buildInsertQuery(this.config, this.session.extensions).sql;
88
106
  }
89
107
  toSQL() {
90
108
  const { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());
91
109
  return rest;
92
110
  }
93
111
  prepare() {
94
- const { sql: sql2, generatedIds } = this.dialect.buildInsertQuery(this.config);
112
+ const { sql: sql2, generatedIds } = this.dialect.buildInsertQuery(this.config, this.session.extensions);
95
113
  return this.session.prepareQuery(
96
114
  this.dialect.sqlToQuery(sql2),
97
115
  void 0,
116
+ {
117
+ query: "insert",
118
+ dialect: this.dialect,
119
+ session: this.session,
120
+ config: this.config
121
+ },
98
122
  void 0,
99
123
  generatedIds,
100
124
  this.config.returning
@@ -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 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) 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":[]}
@@ -664,7 +664,7 @@ class SingleStoreSelectQueryBuilderBase extends import_query_builder.TypedQueryB
664
664
  }
665
665
  /** @internal */
666
666
  getSQL() {
667
- return this.dialect.buildSelectQuery(this.config);
667
+ return this.dialect.buildSelectQuery(this.config, this.session?.extensions);
668
668
  }
669
669
  toSQL() {
670
670
  const { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());
@@ -693,9 +693,17 @@ class SingleStoreSelectBase extends SingleStoreSelectQueryBuilderBase {
693
693
  if (!this.session) {
694
694
  throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");
695
695
  }
696
- const fieldsList = (0, import_utils.orderSelectedFields)(this.config.fields);
697
- const query = this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()), fieldsList);
698
- 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;
699
707
  return query;
700
708
  }
701
709
  execute = (placeholderValues) => {