drizzle-orm 0.43.1-26a0497 → 0.43.1-47c6ad4

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 (814) hide show
  1. package/aws-data-api/pg/driver.cjs +1 -5
  2. package/aws-data-api/pg/driver.cjs.map +1 -1
  3. package/aws-data-api/pg/driver.d.cts +0 -1
  4. package/aws-data-api/pg/driver.d.ts +0 -1
  5. package/aws-data-api/pg/driver.js +1 -5
  6. package/aws-data-api/pg/driver.js.map +1 -1
  7. package/aws-data-api/pg/session.cjs +4 -15
  8. package/aws-data-api/pg/session.cjs.map +1 -1
  9. package/aws-data-api/pg/session.d.cts +2 -13
  10. package/aws-data-api/pg/session.d.ts +2 -13
  11. package/aws-data-api/pg/session.js +4 -15
  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.js.map +1 -1
  15. package/better-sqlite3/session.cjs +3 -9
  16. package/better-sqlite3/session.cjs.map +1 -1
  17. package/better-sqlite3/session.d.cts +2 -12
  18. package/better-sqlite3/session.d.ts +2 -12
  19. package/better-sqlite3/session.js +3 -9
  20. package/better-sqlite3/session.js.map +1 -1
  21. package/bun-sql/driver.cjs +1 -5
  22. package/bun-sql/driver.cjs.map +1 -1
  23. package/bun-sql/driver.js +1 -5
  24. package/bun-sql/driver.js.map +1 -1
  25. package/bun-sql/session.cjs +9 -21
  26. package/bun-sql/session.cjs.map +1 -1
  27. package/bun-sql/session.d.cts +2 -12
  28. package/bun-sql/session.d.ts +2 -12
  29. package/bun-sql/session.js +9 -21
  30. package/bun-sql/session.js.map +1 -1
  31. package/column-builder.cjs.map +1 -1
  32. package/column-builder.d.cts +4 -3
  33. package/column-builder.d.ts +4 -3
  34. package/column-builder.js.map +1 -1
  35. package/d1/driver.cjs +1 -5
  36. package/d1/driver.cjs.map +1 -1
  37. package/d1/driver.js +1 -5
  38. package/d1/driver.js.map +1 -1
  39. package/d1/session.cjs +9 -23
  40. package/d1/session.cjs.map +1 -1
  41. package/d1/session.d.cts +2 -12
  42. package/d1/session.d.ts +2 -12
  43. package/d1/session.js +9 -23
  44. package/d1/session.js.map +1 -1
  45. package/durable-sqlite/session.cjs +1 -1
  46. package/durable-sqlite/session.cjs.map +1 -1
  47. package/durable-sqlite/session.js +1 -1
  48. package/durable-sqlite/session.js.map +1 -1
  49. package/gel/driver.cjs +2 -9
  50. package/gel/driver.cjs.map +1 -1
  51. package/gel/driver.d.cts +0 -2
  52. package/gel/driver.d.ts +0 -2
  53. package/gel/driver.js +2 -9
  54. package/gel/driver.js.map +1 -1
  55. package/gel/session.cjs +10 -25
  56. package/gel/session.cjs.map +1 -1
  57. package/gel/session.d.cts +2 -12
  58. package/gel/session.d.ts +2 -12
  59. package/gel/session.js +10 -25
  60. package/gel/session.js.map +1 -1
  61. package/gel-core/db.cjs +0 -1
  62. package/gel-core/db.cjs.map +1 -1
  63. package/gel-core/db.d.cts +0 -4
  64. package/gel-core/db.d.ts +0 -4
  65. package/gel-core/db.js +0 -1
  66. package/gel-core/db.js.map +1 -1
  67. package/gel-core/query-builders/delete.cjs +1 -5
  68. package/gel-core/query-builders/delete.cjs.map +1 -1
  69. package/gel-core/query-builders/delete.js +1 -5
  70. package/gel-core/query-builders/delete.js.map +1 -1
  71. package/gel-core/query-builders/insert.cjs +1 -5
  72. package/gel-core/query-builders/insert.cjs.map +1 -1
  73. package/gel-core/query-builders/insert.js +1 -5
  74. package/gel-core/query-builders/insert.js.map +1 -1
  75. package/gel-core/query-builders/select.cjs +4 -29
  76. package/gel-core/query-builders/select.cjs.map +1 -1
  77. package/gel-core/query-builders/select.d.cts +0 -9
  78. package/gel-core/query-builders/select.d.ts +0 -9
  79. package/gel-core/query-builders/select.js +4 -29
  80. package/gel-core/query-builders/select.js.map +1 -1
  81. package/gel-core/query-builders/update.cjs +1 -5
  82. package/gel-core/query-builders/update.cjs.map +1 -1
  83. package/gel-core/query-builders/update.js +1 -5
  84. package/gel-core/query-builders/update.js.map +1 -1
  85. package/gel-core/session.cjs +1 -52
  86. package/gel-core/session.cjs.map +1 -1
  87. package/gel-core/session.d.cts +3 -14
  88. package/gel-core/session.d.ts +3 -14
  89. package/gel-core/session.js +2 -53
  90. package/gel-core/session.js.map +1 -1
  91. package/gel-core/utils.cjs +0 -16
  92. package/gel-core/utils.cjs.map +1 -1
  93. package/gel-core/utils.d.cts +4 -8
  94. package/gel-core/utils.d.ts +4 -8
  95. package/gel-core/utils.js +0 -15
  96. package/gel-core/utils.js.map +1 -1
  97. package/libsql/driver-core.cjs +1 -5
  98. package/libsql/driver-core.cjs.map +1 -1
  99. package/libsql/driver-core.js +1 -5
  100. package/libsql/driver-core.js.map +1 -1
  101. package/libsql/session.cjs +13 -27
  102. package/libsql/session.cjs.map +1 -1
  103. package/libsql/session.d.cts +2 -12
  104. package/libsql/session.d.ts +2 -12
  105. package/libsql/session.js +13 -27
  106. package/libsql/session.js.map +1 -1
  107. package/mssql-core/alias.cjs +32 -0
  108. package/mssql-core/alias.cjs.map +1 -0
  109. package/mssql-core/alias.d.cts +4 -0
  110. package/mssql-core/alias.d.ts +4 -0
  111. package/mssql-core/alias.js +8 -0
  112. package/mssql-core/alias.js.map +1 -0
  113. package/mssql-core/checks.cjs +58 -0
  114. package/mssql-core/checks.cjs.map +1 -0
  115. package/mssql-core/checks.d.cts +18 -0
  116. package/mssql-core/checks.d.ts +18 -0
  117. package/mssql-core/checks.js +32 -0
  118. package/mssql-core/checks.js.map +1 -0
  119. package/mssql-core/columns/all.cjs +72 -0
  120. package/mssql-core/columns/all.cjs.map +1 -0
  121. package/mssql-core/columns/all.d.cts +43 -0
  122. package/mssql-core/columns/all.d.ts +43 -0
  123. package/mssql-core/columns/all.js +48 -0
  124. package/mssql-core/columns/all.js.map +1 -0
  125. package/mssql-core/columns/bigint.cjs +67 -0
  126. package/mssql-core/columns/bigint.cjs.map +1 -0
  127. package/mssql-core/columns/bigint.d.cts +33 -0
  128. package/mssql-core/columns/bigint.d.ts +33 -0
  129. package/mssql-core/columns/bigint.js +41 -0
  130. package/mssql-core/columns/bigint.js.map +1 -0
  131. package/mssql-core/columns/binary.cjs +57 -0
  132. package/mssql-core/columns/binary.cjs.map +1 -0
  133. package/mssql-core/columns/binary.d.cts +28 -0
  134. package/mssql-core/columns/binary.d.ts +28 -0
  135. package/mssql-core/columns/binary.js +31 -0
  136. package/mssql-core/columns/binary.js.map +1 -0
  137. package/mssql-core/columns/bit.cjs +54 -0
  138. package/mssql-core/columns/bit.cjs.map +1 -0
  139. package/mssql-core/columns/bit.d.cts +24 -0
  140. package/mssql-core/columns/bit.d.ts +24 -0
  141. package/mssql-core/columns/bit.js +28 -0
  142. package/mssql-core/columns/bit.js.map +1 -0
  143. package/mssql-core/columns/char.cjs +74 -0
  144. package/mssql-core/columns/char.cjs.map +1 -0
  145. package/mssql-core/columns/char.d.cts +37 -0
  146. package/mssql-core/columns/char.d.ts +37 -0
  147. package/mssql-core/columns/char.js +47 -0
  148. package/mssql-core/columns/char.js.map +1 -0
  149. package/mssql-core/columns/common.cjs +117 -0
  150. package/mssql-core/columns/common.cjs.map +1 -0
  151. package/mssql-core/columns/common.d.cts +67 -0
  152. package/mssql-core/columns/common.d.ts +67 -0
  153. package/mssql-core/columns/common.js +90 -0
  154. package/mssql-core/columns/common.js.map +1 -0
  155. package/mssql-core/columns/custom.cjs +75 -0
  156. package/mssql-core/columns/custom.cjs.map +1 -0
  157. package/mssql-core/columns/custom.d.cts +149 -0
  158. package/mssql-core/columns/custom.d.ts +149 -0
  159. package/mssql-core/columns/custom.js +49 -0
  160. package/mssql-core/columns/custom.js.map +1 -0
  161. package/mssql-core/columns/date.cjs +94 -0
  162. package/mssql-core/columns/date.cjs.map +1 -0
  163. package/{cache/core/cache.cjs → mssql-core/columns/date.common.cjs} +12 -22
  164. package/mssql-core/columns/date.common.cjs.map +1 -0
  165. package/mssql-core/columns/date.common.d.cts +12 -0
  166. package/mssql-core/columns/date.common.d.ts +12 -0
  167. package/mssql-core/columns/date.common.js +13 -0
  168. package/mssql-core/columns/date.common.js.map +1 -0
  169. package/mssql-core/columns/date.d.cts +55 -0
  170. package/mssql-core/columns/date.d.ts +55 -0
  171. package/mssql-core/columns/date.js +66 -0
  172. package/mssql-core/columns/date.js.map +1 -0
  173. package/mssql-core/columns/datetime.cjs +94 -0
  174. package/mssql-core/columns/datetime.cjs.map +1 -0
  175. package/mssql-core/columns/datetime.d.cts +54 -0
  176. package/mssql-core/columns/datetime.d.ts +54 -0
  177. package/mssql-core/columns/datetime.js +66 -0
  178. package/mssql-core/columns/datetime.js.map +1 -0
  179. package/mssql-core/columns/datetime2.cjs +102 -0
  180. package/mssql-core/columns/datetime2.cjs.map +1 -0
  181. package/mssql-core/columns/datetime2.d.cts +54 -0
  182. package/mssql-core/columns/datetime2.d.ts +54 -0
  183. package/mssql-core/columns/datetime2.js +74 -0
  184. package/mssql-core/columns/datetime2.js.map +1 -0
  185. package/mssql-core/columns/datetimeoffset.cjs +102 -0
  186. package/mssql-core/columns/datetimeoffset.cjs.map +1 -0
  187. package/mssql-core/columns/datetimeoffset.d.cts +54 -0
  188. package/mssql-core/columns/datetimeoffset.d.ts +54 -0
  189. package/mssql-core/columns/datetimeoffset.js +74 -0
  190. package/mssql-core/columns/datetimeoffset.js.map +1 -0
  191. package/mssql-core/columns/decimal.cjs +68 -0
  192. package/mssql-core/columns/decimal.cjs.map +1 -0
  193. package/mssql-core/columns/decimal.d.cts +30 -0
  194. package/mssql-core/columns/decimal.d.ts +30 -0
  195. package/mssql-core/columns/decimal.js +42 -0
  196. package/mssql-core/columns/decimal.js.map +1 -0
  197. package/mssql-core/columns/float.cjs +58 -0
  198. package/mssql-core/columns/float.cjs.map +1 -0
  199. package/mssql-core/columns/float.d.cts +28 -0
  200. package/mssql-core/columns/float.d.ts +28 -0
  201. package/mssql-core/columns/float.js +32 -0
  202. package/mssql-core/columns/float.js.map +1 -0
  203. package/mssql-core/columns/index.cjs +63 -0
  204. package/mssql-core/columns/index.cjs.map +1 -0
  205. package/mssql-core/columns/index.d.cts +21 -0
  206. package/mssql-core/columns/index.d.ts +21 -0
  207. package/mssql-core/columns/index.js +22 -0
  208. package/mssql-core/columns/index.js.map +1 -0
  209. package/mssql-core/columns/int.cjs +53 -0
  210. package/mssql-core/columns/int.cjs.map +1 -0
  211. package/mssql-core/columns/int.d.cts +23 -0
  212. package/mssql-core/columns/int.d.ts +23 -0
  213. package/mssql-core/columns/int.js +27 -0
  214. package/mssql-core/columns/int.js.map +1 -0
  215. package/mssql-core/columns/numeric.cjs +68 -0
  216. package/mssql-core/columns/numeric.cjs.map +1 -0
  217. package/mssql-core/columns/numeric.d.cts +27 -0
  218. package/mssql-core/columns/numeric.d.ts +27 -0
  219. package/mssql-core/columns/numeric.js +42 -0
  220. package/mssql-core/columns/numeric.js.map +1 -0
  221. package/mssql-core/columns/real.cjs +53 -0
  222. package/mssql-core/columns/real.cjs.map +1 -0
  223. package/mssql-core/columns/real.d.cts +23 -0
  224. package/mssql-core/columns/real.d.ts +23 -0
  225. package/mssql-core/columns/real.js +27 -0
  226. package/mssql-core/columns/real.js.map +1 -0
  227. package/mssql-core/columns/smallint.cjs +62 -0
  228. package/mssql-core/columns/smallint.cjs.map +1 -0
  229. package/mssql-core/columns/smallint.d.cts +24 -0
  230. package/mssql-core/columns/smallint.d.ts +24 -0
  231. package/mssql-core/columns/smallint.js +36 -0
  232. package/mssql-core/columns/smallint.js.map +1 -0
  233. package/mssql-core/columns/text.cjs +68 -0
  234. package/mssql-core/columns/text.cjs.map +1 -0
  235. package/mssql-core/columns/text.d.cts +45 -0
  236. package/mssql-core/columns/text.d.ts +45 -0
  237. package/mssql-core/columns/text.js +41 -0
  238. package/mssql-core/columns/text.js.map +1 -0
  239. package/mssql-core/columns/time.cjs +90 -0
  240. package/mssql-core/columns/time.cjs.map +1 -0
  241. package/mssql-core/columns/time.d.cts +49 -0
  242. package/mssql-core/columns/time.d.ts +49 -0
  243. package/mssql-core/columns/time.js +62 -0
  244. package/mssql-core/columns/time.js.map +1 -0
  245. package/mssql-core/columns/tinyint.cjs +62 -0
  246. package/mssql-core/columns/tinyint.cjs.map +1 -0
  247. package/mssql-core/columns/tinyint.d.cts +24 -0
  248. package/mssql-core/columns/tinyint.d.ts +24 -0
  249. package/mssql-core/columns/tinyint.js +36 -0
  250. package/mssql-core/columns/tinyint.js.map +1 -0
  251. package/mssql-core/columns/varbinary.cjs +61 -0
  252. package/mssql-core/columns/varbinary.cjs.map +1 -0
  253. package/mssql-core/columns/varbinary.d.cts +27 -0
  254. package/mssql-core/columns/varbinary.d.ts +27 -0
  255. package/mssql-core/columns/varbinary.js +35 -0
  256. package/mssql-core/columns/varbinary.js.map +1 -0
  257. package/mssql-core/columns/varchar.cjs +117 -0
  258. package/mssql-core/columns/varchar.cjs.map +1 -0
  259. package/mssql-core/columns/varchar.d.cts +66 -0
  260. package/mssql-core/columns/varchar.d.ts +66 -0
  261. package/mssql-core/columns/varchar.js +88 -0
  262. package/mssql-core/columns/varchar.js.map +1 -0
  263. package/mssql-core/db.cjs +254 -0
  264. package/mssql-core/db.cjs.map +1 -0
  265. package/mssql-core/db.d.cts +228 -0
  266. package/mssql-core/db.d.ts +228 -0
  267. package/mssql-core/db.js +235 -0
  268. package/mssql-core/db.js.map +1 -0
  269. package/mssql-core/dialect.cjs +568 -0
  270. package/mssql-core/dialect.cjs.map +1 -0
  271. package/mssql-core/dialect.d.cts +57 -0
  272. package/mssql-core/dialect.d.ts +57 -0
  273. package/mssql-core/dialect.js +550 -0
  274. package/mssql-core/dialect.js.map +1 -0
  275. package/mssql-core/expressions.cjs +49 -0
  276. package/mssql-core/expressions.cjs.map +1 -0
  277. package/mssql-core/expressions.d.cts +8 -0
  278. package/mssql-core/expressions.d.ts +8 -0
  279. package/mssql-core/expressions.js +22 -0
  280. package/mssql-core/expressions.js.map +1 -0
  281. package/mssql-core/foreign-keys.cjs +91 -0
  282. package/mssql-core/foreign-keys.cjs.map +1 -0
  283. package/mssql-core/foreign-keys.d.cts +51 -0
  284. package/mssql-core/foreign-keys.d.ts +51 -0
  285. package/mssql-core/foreign-keys.js +65 -0
  286. package/mssql-core/foreign-keys.js.map +1 -0
  287. package/mssql-core/index.cjs +55 -0
  288. package/mssql-core/index.cjs.map +1 -0
  289. package/mssql-core/index.d.cts +17 -0
  290. package/mssql-core/index.d.ts +17 -0
  291. package/mssql-core/index.js +18 -0
  292. package/mssql-core/index.js.map +1 -0
  293. package/mssql-core/indexes.cjs +80 -0
  294. package/mssql-core/indexes.cjs.map +1 -0
  295. package/mssql-core/indexes.d.cts +49 -0
  296. package/mssql-core/indexes.d.ts +49 -0
  297. package/mssql-core/indexes.js +52 -0
  298. package/mssql-core/indexes.js.map +1 -0
  299. package/mssql-core/primary-keys.cjs +64 -0
  300. package/mssql-core/primary-keys.cjs.map +1 -0
  301. package/mssql-core/primary-keys.d.cts +23 -0
  302. package/mssql-core/primary-keys.d.ts +23 -0
  303. package/mssql-core/primary-keys.js +38 -0
  304. package/mssql-core/primary-keys.js.map +1 -0
  305. package/mssql-core/query-builders/delete.cjs +101 -0
  306. package/mssql-core/query-builders/delete.cjs.map +1 -0
  307. package/mssql-core/query-builders/delete.d.cts +74 -0
  308. package/mssql-core/query-builders/delete.d.ts +74 -0
  309. package/mssql-core/query-builders/delete.js +77 -0
  310. package/mssql-core/query-builders/delete.js.map +1 -0
  311. package/mssql-core/query-builders/index.cjs +33 -0
  312. package/mssql-core/query-builders/index.cjs.map +1 -0
  313. package/mssql-core/query-builders/index.d.cts +6 -0
  314. package/mssql-core/query-builders/index.d.ts +6 -0
  315. package/mssql-core/query-builders/index.js +7 -0
  316. package/mssql-core/query-builders/index.js.map +1 -0
  317. package/mssql-core/query-builders/insert.cjs +95 -0
  318. package/mssql-core/query-builders/insert.cjs.map +1 -0
  319. package/mssql-core/query-builders/insert.d.cts +54 -0
  320. package/mssql-core/query-builders/insert.d.ts +54 -0
  321. package/mssql-core/query-builders/insert.js +70 -0
  322. package/mssql-core/query-builders/insert.js.map +1 -0
  323. package/mssql-core/query-builders/query-builder.cjs +95 -0
  324. package/mssql-core/query-builders/query-builder.cjs.map +1 -0
  325. package/mssql-core/query-builders/query-builder.d.cts +32 -0
  326. package/mssql-core/query-builders/query-builder.d.ts +32 -0
  327. package/mssql-core/query-builders/query-builder.js +71 -0
  328. package/mssql-core/query-builders/query-builder.js.map +1 -0
  329. package/mssql-core/query-builders/query.cjs +126 -0
  330. package/mssql-core/query-builders/query.cjs.map +1 -0
  331. package/mssql-core/query-builders/query.d.cts +42 -0
  332. package/mssql-core/query-builders/query.d.ts +42 -0
  333. package/mssql-core/query-builders/query.js +103 -0
  334. package/mssql-core/query-builders/query.js.map +1 -0
  335. package/mssql-core/query-builders/select.cjs +679 -0
  336. package/mssql-core/query-builders/select.cjs.map +1 -0
  337. package/mssql-core/query-builders/select.d.cts +549 -0
  338. package/mssql-core/query-builders/select.d.ts +549 -0
  339. package/mssql-core/query-builders/select.js +649 -0
  340. package/mssql-core/query-builders/select.js.map +1 -0
  341. package/mssql-core/query-builders/select.types.cjs +17 -0
  342. package/mssql-core/query-builders/select.types.cjs.map +1 -0
  343. package/mssql-core/query-builders/select.types.d.cts +138 -0
  344. package/mssql-core/query-builders/select.types.d.ts +138 -0
  345. package/mssql-core/query-builders/select.types.js +1 -0
  346. package/mssql-core/query-builders/update.cjs +118 -0
  347. package/mssql-core/query-builders/update.cjs.map +1 -0
  348. package/mssql-core/query-builders/update.d.cts +93 -0
  349. package/mssql-core/query-builders/update.d.ts +93 -0
  350. package/mssql-core/query-builders/update.js +93 -0
  351. package/mssql-core/query-builders/update.js.map +1 -0
  352. package/mssql-core/schema.cjs +51 -0
  353. package/mssql-core/schema.cjs.map +1 -0
  354. package/mssql-core/schema.d.cts +22 -0
  355. package/mssql-core/schema.d.ts +22 -0
  356. package/mssql-core/schema.js +25 -0
  357. package/mssql-core/schema.js.map +1 -0
  358. package/mssql-core/session.cjs +74 -0
  359. package/mssql-core/session.cjs.map +1 -0
  360. package/mssql-core/session.d.cts +63 -0
  361. package/mssql-core/session.d.ts +63 -0
  362. package/mssql-core/session.js +48 -0
  363. package/mssql-core/session.js.map +1 -0
  364. package/{cache/core/types.cjs → mssql-core/subquery.cjs} +3 -3
  365. package/mssql-core/subquery.cjs.map +1 -0
  366. package/mssql-core/subquery.d.cts +18 -0
  367. package/mssql-core/subquery.d.ts +18 -0
  368. package/mssql-core/subquery.js +1 -0
  369. package/mssql-core/subquery.js.map +1 -0
  370. package/mssql-core/table.cjs +81 -0
  371. package/mssql-core/table.cjs.map +1 -0
  372. package/mssql-core/table.d.cts +43 -0
  373. package/mssql-core/table.d.ts +43 -0
  374. package/mssql-core/table.js +53 -0
  375. package/mssql-core/table.js.map +1 -0
  376. package/mssql-core/unique-constraint.cjs +76 -0
  377. package/mssql-core/unique-constraint.cjs.map +1 -0
  378. package/mssql-core/unique-constraint.d.cts +23 -0
  379. package/mssql-core/unique-constraint.d.ts +23 -0
  380. package/mssql-core/unique-constraint.js +49 -0
  381. package/mssql-core/unique-constraint.js.map +1 -0
  382. package/mssql-core/utils.cjs +85 -0
  383. package/mssql-core/utils.cjs.map +1 -0
  384. package/mssql-core/utils.d.cts +31 -0
  385. package/mssql-core/utils.d.ts +31 -0
  386. package/mssql-core/utils.js +60 -0
  387. package/mssql-core/utils.js.map +1 -0
  388. package/mssql-core/view-base.cjs +33 -0
  389. package/mssql-core/view-base.cjs.map +1 -0
  390. package/mssql-core/view-base.d.cts +9 -0
  391. package/mssql-core/view-base.d.ts +9 -0
  392. package/mssql-core/view-base.js +9 -0
  393. package/mssql-core/view-base.js.map +1 -0
  394. package/{cache/upstash/index.cjs → mssql-core/view-common.cjs} +12 -6
  395. package/mssql-core/view-common.cjs.map +1 -0
  396. package/mssql-core/view-common.d.cts +1 -0
  397. package/mssql-core/view-common.d.ts +1 -0
  398. package/mssql-core/view-common.js +5 -0
  399. package/mssql-core/view-common.js.map +1 -0
  400. package/mssql-core/view.cjs +154 -0
  401. package/mssql-core/view.cjs.map +1 -0
  402. package/mssql-core/view.d.cts +64 -0
  403. package/mssql-core/view.d.ts +64 -0
  404. package/mssql-core/view.js +125 -0
  405. package/mssql-core/view.js.map +1 -0
  406. package/mysql-core/db.cjs +0 -1
  407. package/mysql-core/db.cjs.map +1 -1
  408. package/mysql-core/db.d.cts +0 -4
  409. package/mysql-core/db.d.ts +0 -4
  410. package/mysql-core/db.js +0 -1
  411. package/mysql-core/db.js.map +1 -1
  412. package/mysql-core/query-builders/delete.cjs +1 -9
  413. package/mysql-core/query-builders/delete.cjs.map +1 -1
  414. package/mysql-core/query-builders/delete.js +1 -9
  415. package/mysql-core/query-builders/delete.js.map +1 -1
  416. package/mysql-core/query-builders/insert.cjs +1 -8
  417. package/mysql-core/query-builders/insert.cjs.map +1 -1
  418. package/mysql-core/query-builders/insert.d.cts +0 -2
  419. package/mysql-core/query-builders/insert.d.ts +0 -2
  420. package/mysql-core/query-builders/insert.js +1 -8
  421. package/mysql-core/query-builders/insert.js.map +1 -1
  422. package/mysql-core/query-builders/select.cjs +3 -27
  423. package/mysql-core/query-builders/select.cjs.map +1 -1
  424. package/mysql-core/query-builders/select.d.cts +0 -9
  425. package/mysql-core/query-builders/select.d.ts +0 -9
  426. package/mysql-core/query-builders/select.js +4 -28
  427. package/mysql-core/query-builders/select.js.map +1 -1
  428. package/mysql-core/query-builders/update.cjs +1 -11
  429. package/mysql-core/query-builders/update.cjs.map +1 -1
  430. package/mysql-core/query-builders/update.d.cts +0 -2
  431. package/mysql-core/query-builders/update.d.ts +0 -2
  432. package/mysql-core/query-builders/update.js +1 -11
  433. package/mysql-core/query-builders/update.js.map +1 -1
  434. package/mysql-core/session.cjs +0 -53
  435. package/mysql-core/session.cjs.map +1 -1
  436. package/mysql-core/session.d.cts +2 -15
  437. package/mysql-core/session.d.ts +2 -15
  438. package/mysql-core/session.js +1 -54
  439. package/mysql-core/session.js.map +1 -1
  440. package/mysql-core/utils.cjs +0 -16
  441. package/mysql-core/utils.cjs.map +1 -1
  442. package/mysql-core/utils.d.cts +2 -6
  443. package/mysql-core/utils.d.ts +2 -6
  444. package/mysql-core/utils.js +0 -15
  445. package/mysql-core/utils.js.map +1 -1
  446. package/mysql-proxy/session.cjs +5 -15
  447. package/mysql-proxy/session.cjs.map +1 -1
  448. package/mysql-proxy/session.d.cts +2 -12
  449. package/mysql-proxy/session.d.ts +2 -12
  450. package/mysql-proxy/session.js +5 -15
  451. package/mysql-proxy/session.js.map +1 -1
  452. package/mysql2/driver.cjs +2 -10
  453. package/mysql2/driver.cjs.map +1 -1
  454. package/mysql2/driver.d.cts +0 -2
  455. package/mysql2/driver.d.ts +0 -2
  456. package/mysql2/driver.js +2 -10
  457. package/mysql2/driver.js.map +1 -1
  458. package/mysql2/session.cjs +5 -15
  459. package/mysql2/session.cjs.map +1 -1
  460. package/mysql2/session.d.cts +2 -12
  461. package/mysql2/session.d.ts +2 -12
  462. package/mysql2/session.js +5 -15
  463. package/mysql2/session.js.map +1 -1
  464. package/neon-http/driver.cjs +2 -9
  465. package/neon-http/driver.cjs.map +1 -1
  466. package/neon-http/driver.d.cts +0 -2
  467. package/neon-http/driver.d.ts +0 -2
  468. package/neon-http/driver.js +2 -9
  469. package/neon-http/driver.js.map +1 -1
  470. package/neon-http/session.cjs +15 -25
  471. package/neon-http/session.cjs.map +1 -1
  472. package/neon-http/session.d.cts +2 -12
  473. package/neon-http/session.d.ts +2 -12
  474. package/neon-http/session.js +15 -25
  475. package/neon-http/session.js.map +1 -1
  476. package/neon-serverless/driver.cjs +2 -9
  477. package/neon-serverless/driver.cjs.map +1 -1
  478. package/neon-serverless/driver.d.cts +0 -2
  479. package/neon-serverless/driver.d.ts +0 -2
  480. package/neon-serverless/driver.js +2 -9
  481. package/neon-serverless/driver.js.map +1 -1
  482. package/neon-serverless/session.cjs +7 -21
  483. package/neon-serverless/session.cjs.map +1 -1
  484. package/neon-serverless/session.d.cts +2 -12
  485. package/neon-serverless/session.d.ts +2 -12
  486. package/neon-serverless/session.js +7 -21
  487. package/neon-serverless/session.js.map +1 -1
  488. package/node-mssql/driver.cjs +86 -0
  489. package/node-mssql/driver.cjs.map +1 -0
  490. package/node-mssql/driver.d.cts +32 -0
  491. package/node-mssql/driver.d.ts +32 -0
  492. package/node-mssql/driver.js +63 -0
  493. package/node-mssql/driver.js.map +1 -0
  494. package/{cache/core → node-mssql}/index.cjs +6 -4
  495. package/node-mssql/index.cjs.map +1 -0
  496. package/node-mssql/index.d.cts +2 -0
  497. package/node-mssql/index.d.ts +2 -0
  498. package/node-mssql/index.js +3 -0
  499. package/node-mssql/index.js.map +1 -0
  500. package/node-mssql/migrator.cjs +33 -0
  501. package/node-mssql/migrator.cjs.map +1 -0
  502. package/node-mssql/migrator.d.cts +3 -0
  503. package/node-mssql/migrator.d.ts +3 -0
  504. package/node-mssql/migrator.js +9 -0
  505. package/node-mssql/migrator.js.map +1 -0
  506. package/node-mssql/session.cjs +243 -0
  507. package/node-mssql/session.cjs.map +1 -0
  508. package/node-mssql/session.d.cts +47 -0
  509. package/node-mssql/session.d.ts +47 -0
  510. package/node-mssql/session.js +211 -0
  511. package/node-mssql/session.js.map +1 -0
  512. package/node-postgres/driver.cjs +2 -9
  513. package/node-postgres/driver.cjs.map +1 -1
  514. package/node-postgres/driver.d.cts +0 -2
  515. package/node-postgres/driver.d.ts +0 -2
  516. package/node-postgres/driver.js +2 -9
  517. package/node-postgres/driver.js.map +1 -1
  518. package/node-postgres/session.cjs +6 -19
  519. package/node-postgres/session.cjs.map +1 -1
  520. package/node-postgres/session.d.cts +2 -13
  521. package/node-postgres/session.d.ts +2 -13
  522. package/node-postgres/session.js +6 -19
  523. package/node-postgres/session.js.map +1 -1
  524. package/op-sqlite/driver.cjs +1 -5
  525. package/op-sqlite/driver.cjs.map +1 -1
  526. package/op-sqlite/driver.js +1 -5
  527. package/op-sqlite/driver.js.map +1 -1
  528. package/op-sqlite/session.cjs +9 -23
  529. package/op-sqlite/session.cjs.map +1 -1
  530. package/op-sqlite/session.d.cts +2 -12
  531. package/op-sqlite/session.d.ts +2 -12
  532. package/op-sqlite/session.js +9 -23
  533. package/op-sqlite/session.js.map +1 -1
  534. package/package.json +656 -69
  535. package/pg-core/db.cjs +0 -1
  536. package/pg-core/db.cjs.map +1 -1
  537. package/pg-core/db.d.cts +0 -4
  538. package/pg-core/db.d.ts +0 -4
  539. package/pg-core/db.js +0 -1
  540. package/pg-core/db.js.map +1 -1
  541. package/pg-core/query-builders/delete.cjs +1 -6
  542. package/pg-core/query-builders/delete.cjs.map +1 -1
  543. package/pg-core/query-builders/delete.d.cts +1 -3
  544. package/pg-core/query-builders/delete.d.ts +1 -3
  545. package/pg-core/query-builders/delete.js +1 -6
  546. package/pg-core/query-builders/delete.js.map +1 -1
  547. package/pg-core/query-builders/insert.cjs +1 -6
  548. package/pg-core/query-builders/insert.cjs.map +1 -1
  549. package/pg-core/query-builders/insert.d.cts +0 -2
  550. package/pg-core/query-builders/insert.d.ts +0 -2
  551. package/pg-core/query-builders/insert.js +1 -6
  552. package/pg-core/query-builders/insert.js.map +1 -1
  553. package/pg-core/query-builders/select.cjs +5 -31
  554. package/pg-core/query-builders/select.cjs.map +1 -1
  555. package/pg-core/query-builders/select.d.cts +6 -15
  556. package/pg-core/query-builders/select.d.ts +6 -15
  557. package/pg-core/query-builders/select.js +5 -31
  558. package/pg-core/query-builders/select.js.map +1 -1
  559. package/pg-core/query-builders/update.cjs +1 -6
  560. package/pg-core/query-builders/update.cjs.map +1 -1
  561. package/pg-core/query-builders/update.d.cts +2 -4
  562. package/pg-core/query-builders/update.d.ts +2 -4
  563. package/pg-core/query-builders/update.js +1 -6
  564. package/pg-core/query-builders/update.js.map +1 -1
  565. package/pg-core/session.cjs +1 -52
  566. package/pg-core/session.cjs.map +1 -1
  567. package/pg-core/session.d.cts +3 -14
  568. package/pg-core/session.d.ts +3 -14
  569. package/pg-core/session.js +2 -53
  570. package/pg-core/session.js.map +1 -1
  571. package/pg-core/utils.cjs +0 -16
  572. package/pg-core/utils.cjs.map +1 -1
  573. package/pg-core/utils.d.cts +4 -8
  574. package/pg-core/utils.d.ts +4 -8
  575. package/pg-core/utils.js +1 -16
  576. package/pg-core/utils.js.map +1 -1
  577. package/pg-proxy/driver.cjs +2 -7
  578. package/pg-proxy/driver.cjs.map +1 -1
  579. package/pg-proxy/driver.js +2 -7
  580. package/pg-proxy/driver.js.map +1 -1
  581. package/pg-proxy/session.cjs +5 -15
  582. package/pg-proxy/session.cjs.map +1 -1
  583. package/pg-proxy/session.d.cts +2 -12
  584. package/pg-proxy/session.d.ts +2 -12
  585. package/pg-proxy/session.js +5 -15
  586. package/pg-proxy/session.js.map +1 -1
  587. package/pglite/driver.cjs +2 -9
  588. package/pglite/driver.cjs.map +1 -1
  589. package/pglite/driver.d.cts +0 -2
  590. package/pglite/driver.d.ts +0 -2
  591. package/pglite/driver.js +2 -9
  592. package/pglite/driver.js.map +1 -1
  593. package/pglite/session.cjs +7 -19
  594. package/pglite/session.cjs.map +1 -1
  595. package/pglite/session.d.cts +2 -12
  596. package/pglite/session.d.ts +2 -12
  597. package/pglite/session.js +7 -19
  598. package/pglite/session.js.map +1 -1
  599. package/planetscale-serverless/driver.cjs +1 -5
  600. package/planetscale-serverless/driver.cjs.map +1 -1
  601. package/planetscale-serverless/driver.d.cts +0 -1
  602. package/planetscale-serverless/driver.d.ts +0 -1
  603. package/planetscale-serverless/driver.js +1 -5
  604. package/planetscale-serverless/driver.js.map +1 -1
  605. package/planetscale-serverless/session.cjs +5 -15
  606. package/planetscale-serverless/session.cjs.map +1 -1
  607. package/planetscale-serverless/session.d.cts +2 -12
  608. package/planetscale-serverless/session.d.ts +2 -12
  609. package/planetscale-serverless/session.js +5 -15
  610. package/planetscale-serverless/session.js.map +1 -1
  611. package/postgres-js/driver.cjs +1 -5
  612. package/postgres-js/driver.cjs.map +1 -1
  613. package/postgres-js/driver.js +1 -5
  614. package/postgres-js/driver.js.map +1 -1
  615. package/postgres-js/session.cjs +6 -18
  616. package/postgres-js/session.cjs.map +1 -1
  617. package/postgres-js/session.d.cts +2 -12
  618. package/postgres-js/session.d.ts +2 -12
  619. package/postgres-js/session.js +6 -18
  620. package/postgres-js/session.js.map +1 -1
  621. package/prisma/mysql/session.cjs +1 -1
  622. package/prisma/mysql/session.cjs.map +1 -1
  623. package/prisma/mysql/session.js +1 -1
  624. package/prisma/mysql/session.js.map +1 -1
  625. package/prisma/pg/session.cjs +1 -1
  626. package/prisma/pg/session.cjs.map +1 -1
  627. package/prisma/pg/session.js +1 -1
  628. package/prisma/pg/session.js.map +1 -1
  629. package/query-builders/query-builder.cjs.map +1 -1
  630. package/query-builders/query-builder.d.cts +1 -2
  631. package/query-builders/query-builder.d.ts +1 -2
  632. package/query-builders/query-builder.js.map +1 -1
  633. package/relations.cjs +48 -0
  634. package/relations.cjs.map +1 -1
  635. package/relations.d.cts +1 -0
  636. package/relations.d.ts +1 -0
  637. package/relations.js +47 -0
  638. package/relations.js.map +1 -1
  639. package/singlestore/driver.cjs +2 -12
  640. package/singlestore/driver.cjs.map +1 -1
  641. package/singlestore/driver.d.cts +0 -2
  642. package/singlestore/driver.d.ts +0 -2
  643. package/singlestore/driver.js +2 -12
  644. package/singlestore/driver.js.map +1 -1
  645. package/singlestore/session.cjs +5 -15
  646. package/singlestore/session.cjs.map +1 -1
  647. package/singlestore/session.d.cts +2 -12
  648. package/singlestore/session.d.ts +2 -12
  649. package/singlestore/session.js +5 -15
  650. package/singlestore/session.js.map +1 -1
  651. package/singlestore-core/db.cjs +0 -1
  652. package/singlestore-core/db.cjs.map +1 -1
  653. package/singlestore-core/db.d.cts +0 -4
  654. package/singlestore-core/db.d.ts +0 -4
  655. package/singlestore-core/db.js +0 -1
  656. package/singlestore-core/db.js.map +1 -1
  657. package/singlestore-core/query-builders/delete.cjs +1 -9
  658. package/singlestore-core/query-builders/delete.cjs.map +1 -1
  659. package/singlestore-core/query-builders/delete.js +1 -9
  660. package/singlestore-core/query-builders/delete.js.map +1 -1
  661. package/singlestore-core/query-builders/insert.cjs +1 -6
  662. package/singlestore-core/query-builders/insert.cjs.map +1 -1
  663. package/singlestore-core/query-builders/insert.js +1 -6
  664. package/singlestore-core/query-builders/insert.js.map +1 -1
  665. package/singlestore-core/query-builders/select.cjs +3 -28
  666. package/singlestore-core/query-builders/select.cjs.map +1 -1
  667. package/singlestore-core/query-builders/select.d.cts +0 -9
  668. package/singlestore-core/query-builders/select.d.ts +0 -9
  669. package/singlestore-core/query-builders/select.js +3 -28
  670. package/singlestore-core/query-builders/select.js.map +1 -1
  671. package/singlestore-core/query-builders/update.cjs +1 -9
  672. package/singlestore-core/query-builders/update.cjs.map +1 -1
  673. package/singlestore-core/query-builders/update.js +1 -9
  674. package/singlestore-core/query-builders/update.js.map +1 -1
  675. package/singlestore-core/session.cjs +0 -53
  676. package/singlestore-core/session.cjs.map +1 -1
  677. package/singlestore-core/session.d.cts +2 -14
  678. package/singlestore-core/session.d.ts +2 -14
  679. package/singlestore-core/session.js +1 -54
  680. package/singlestore-core/session.js.map +1 -1
  681. package/singlestore-core/utils.cjs +0 -16
  682. package/singlestore-core/utils.cjs.map +1 -1
  683. package/singlestore-core/utils.d.cts +0 -3
  684. package/singlestore-core/utils.d.ts +0 -3
  685. package/singlestore-core/utils.js +0 -15
  686. package/singlestore-core/utils.js.map +1 -1
  687. package/sql/sql.cjs +0 -10
  688. package/sql/sql.cjs.map +1 -1
  689. package/sql/sql.js +0 -10
  690. package/sql/sql.js.map +1 -1
  691. package/sqlite-core/db.cjs +0 -1
  692. package/sqlite-core/db.cjs.map +1 -1
  693. package/sqlite-core/db.d.cts +0 -4
  694. package/sqlite-core/db.d.ts +0 -4
  695. package/sqlite-core/db.js +0 -1
  696. package/sqlite-core/db.js.map +1 -1
  697. package/sqlite-core/query-builders/delete.cjs +1 -7
  698. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  699. package/sqlite-core/query-builders/delete.js +1 -7
  700. package/sqlite-core/query-builders/delete.js.map +1 -1
  701. package/sqlite-core/query-builders/insert.cjs +1 -7
  702. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  703. package/sqlite-core/query-builders/insert.js +1 -7
  704. package/sqlite-core/query-builders/insert.js.map +1 -1
  705. package/sqlite-core/query-builders/select.cjs +3 -31
  706. package/sqlite-core/query-builders/select.cjs.map +1 -1
  707. package/sqlite-core/query-builders/select.d.cts +0 -9
  708. package/sqlite-core/query-builders/select.d.ts +0 -9
  709. package/sqlite-core/query-builders/select.js +3 -31
  710. package/sqlite-core/query-builders/select.js.map +1 -1
  711. package/sqlite-core/query-builders/update.cjs +1 -7
  712. package/sqlite-core/query-builders/update.cjs.map +1 -1
  713. package/sqlite-core/query-builders/update.js +1 -7
  714. package/sqlite-core/query-builders/update.js.map +1 -1
  715. package/sqlite-core/session.cjs +3 -62
  716. package/sqlite-core/session.cjs.map +1 -1
  717. package/sqlite-core/session.d.cts +4 -18
  718. package/sqlite-core/session.d.ts +4 -18
  719. package/sqlite-core/session.js +4 -63
  720. package/sqlite-core/session.js.map +1 -1
  721. package/sqlite-core/utils.cjs +0 -16
  722. package/sqlite-core/utils.cjs.map +1 -1
  723. package/sqlite-core/utils.d.cts +2 -6
  724. package/sqlite-core/utils.d.ts +2 -6
  725. package/sqlite-core/utils.js +0 -15
  726. package/sqlite-core/utils.js.map +1 -1
  727. package/sqlite-proxy/driver.cjs +2 -9
  728. package/sqlite-proxy/driver.cjs.map +1 -1
  729. package/sqlite-proxy/driver.js +2 -9
  730. package/sqlite-proxy/driver.js.map +1 -1
  731. package/sqlite-proxy/session.cjs +8 -22
  732. package/sqlite-proxy/session.cjs.map +1 -1
  733. package/sqlite-proxy/session.d.cts +2 -12
  734. package/sqlite-proxy/session.d.ts +2 -12
  735. package/sqlite-proxy/session.js +8 -22
  736. package/sqlite-proxy/session.js.map +1 -1
  737. package/subquery.cjs +3 -4
  738. package/subquery.cjs.map +1 -1
  739. package/subquery.d.cts +1 -2
  740. package/subquery.d.ts +1 -2
  741. package/subquery.js +3 -4
  742. package/subquery.js.map +1 -1
  743. package/tidb-serverless/driver.cjs +1 -5
  744. package/tidb-serverless/driver.cjs.map +1 -1
  745. package/tidb-serverless/driver.d.cts +0 -1
  746. package/tidb-serverless/driver.d.ts +0 -1
  747. package/tidb-serverless/driver.js +1 -5
  748. package/tidb-serverless/driver.js.map +1 -1
  749. package/tidb-serverless/session.cjs +5 -15
  750. package/tidb-serverless/session.cjs.map +1 -1
  751. package/tidb-serverless/session.d.cts +2 -12
  752. package/tidb-serverless/session.d.ts +2 -12
  753. package/tidb-serverless/session.js +5 -15
  754. package/tidb-serverless/session.js.map +1 -1
  755. package/utils.cjs +0 -22
  756. package/utils.cjs.map +1 -1
  757. package/utils.d.cts +0 -3
  758. package/utils.d.ts +0 -3
  759. package/utils.js +0 -11
  760. package/utils.js.map +1 -1
  761. package/vercel-postgres/driver.cjs +2 -9
  762. package/vercel-postgres/driver.cjs.map +1 -1
  763. package/vercel-postgres/driver.d.cts +0 -2
  764. package/vercel-postgres/driver.d.ts +0 -2
  765. package/vercel-postgres/driver.js +2 -9
  766. package/vercel-postgres/driver.js.map +1 -1
  767. package/vercel-postgres/session.cjs +7 -21
  768. package/vercel-postgres/session.cjs.map +1 -1
  769. package/vercel-postgres/session.d.cts +2 -12
  770. package/vercel-postgres/session.d.ts +2 -12
  771. package/vercel-postgres/session.js +7 -21
  772. package/vercel-postgres/session.js.map +1 -1
  773. package/version.cjs +1 -1
  774. package/version.d.cts +1 -1
  775. package/version.d.ts +1 -1
  776. package/version.js +1 -1
  777. package/xata-http/driver.cjs +2 -7
  778. package/xata-http/driver.cjs.map +1 -1
  779. package/xata-http/driver.d.cts +0 -2
  780. package/xata-http/driver.d.ts +0 -2
  781. package/xata-http/driver.js +2 -7
  782. package/xata-http/driver.js.map +1 -1
  783. package/xata-http/session.cjs +7 -21
  784. package/xata-http/session.cjs.map +1 -1
  785. package/xata-http/session.d.cts +2 -12
  786. package/xata-http/session.d.ts +2 -12
  787. package/xata-http/session.js +7 -21
  788. package/xata-http/session.js.map +1 -1
  789. package/cache/core/cache.cjs.map +0 -1
  790. package/cache/core/cache.d.cts +0 -35
  791. package/cache/core/cache.d.ts +0 -35
  792. package/cache/core/cache.js +0 -22
  793. package/cache/core/cache.js.map +0 -1
  794. package/cache/core/index.cjs.map +0 -1
  795. package/cache/core/index.d.cts +0 -1
  796. package/cache/core/index.d.ts +0 -1
  797. package/cache/core/index.js +0 -2
  798. package/cache/core/index.js.map +0 -1
  799. package/cache/core/types.cjs.map +0 -1
  800. package/cache/core/types.d.cts +0 -33
  801. package/cache/core/types.d.ts +0 -33
  802. package/cache/core/types.js +0 -1
  803. package/cache/upstash/cache.cjs +0 -148
  804. package/cache/upstash/cache.cjs.map +0 -1
  805. package/cache/upstash/cache.d.cts +0 -29
  806. package/cache/upstash/cache.d.ts +0 -29
  807. package/cache/upstash/cache.js +0 -123
  808. package/cache/upstash/cache.js.map +0 -1
  809. package/cache/upstash/index.cjs.map +0 -1
  810. package/cache/upstash/index.d.cts +0 -1
  811. package/cache/upstash/index.d.ts +0 -1
  812. package/cache/upstash/index.js +0 -2
  813. package/cache/upstash/index.js.map +0 -1
  814. /package/{cache/core/types.js.map → mssql-core/query-builders/select.types.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/query-builders/delete.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type {\n\tAnyMySqlQueryResultHKT,\n\tMySqlPreparedQueryConfig,\n\tMySqlQueryResultHKT,\n\tMySqlQueryResultKind,\n\tMySqlSession,\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n} from '~/mysql-core/session.ts';\nimport type { MySqlTable } from '~/mysql-core/table.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport type { Placeholder, Query, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport type { Subquery } from '~/subquery.ts';\nimport { Table } from '~/table.ts';\nimport type { ValueOrArray } from '~/utils.ts';\nimport type { MySqlColumn } from '../columns/common.ts';\nimport { extractUsedTable } from '../utils.ts';\nimport type { SelectedFieldsOrdered } from './select.types.ts';\n\nexport type MySqlDeleteWithout<\n\tT extends AnyMySqlDeleteBase,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n> = TDynamic extends true ? T\n\t: Omit<\n\t\tMySqlDeleteBase<\n\t\t\tT['_']['table'],\n\t\t\tT['_']['queryResult'],\n\t\t\tT['_']['preparedQueryHKT'],\n\t\t\tTDynamic,\n\t\t\tT['_']['excludedMethods'] | K\n\t\t>,\n\t\tT['_']['excludedMethods'] | K\n\t>;\n\nexport type MySqlDelete<\n\tTTable extends MySqlTable = MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT = AnyMySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n> = MySqlDeleteBase<TTable, TQueryResult, TPreparedQueryHKT, true, never>;\n\nexport interface MySqlDeleteConfig {\n\twhere?: SQL | undefined;\n\tlimit?: number | Placeholder;\n\torderBy?: (MySqlColumn | SQL | SQL.Aliased)[];\n\ttable: MySqlTable;\n\treturning?: SelectedFieldsOrdered;\n\twithList?: Subquery[];\n}\n\nexport type MySqlDeletePrepare<T extends AnyMySqlDeleteBase> = PreparedQueryKind<\n\tT['_']['preparedQueryHKT'],\n\tMySqlPreparedQueryConfig & {\n\t\texecute: MySqlQueryResultKind<T['_']['queryResult'], never>;\n\t\titerator: never;\n\t},\n\ttrue\n>;\n\ntype MySqlDeleteDynamic<T extends AnyMySqlDeleteBase> = MySqlDelete<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['preparedQueryHKT']\n>;\n\ntype AnyMySqlDeleteBase = MySqlDeleteBase<any, any, any, any, any>;\n\nexport interface MySqlDeleteBase<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<MySqlQueryResultKind<TQueryResult, never>> {\n\treadonly _: {\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};\n}\n\nexport class MySqlDeleteBase<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<MySqlQueryResultKind<TQueryResult, never>> implements SQLWrapper {\n\tstatic override readonly [entityKind]: string = 'MySqlDelete';\n\n\tprivate config: MySqlDeleteConfig;\n\n\tconstructor(\n\t\tprivate table: TTable,\n\t\tprivate session: MySqlSession,\n\t\tprivate dialect: MySqlDialect,\n\t\twithList?: Subquery[],\n\t) {\n\t\tsuper();\n\t\tthis.config = { table, withList };\n\t}\n\n\t/**\n\t * Adds a `where` clause to the query.\n\t *\n\t * Calling this method will delete only those rows that fulfill a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/delete}\n\t *\n\t * @param where the `where` clause.\n\t *\n\t * @example\n\t * You can use conditional operators and `sql function` to filter the rows to be deleted.\n\t *\n\t * ```ts\n\t * // Delete all cars with green color\n\t * db.delete(cars).where(eq(cars.color, 'green'));\n\t * // or\n\t * db.delete(cars).where(sql`${cars.color} = 'green'`)\n\t * ```\n\t *\n\t * You can logically combine conditional operators with `and()` and `or()` operators:\n\t *\n\t * ```ts\n\t * // Delete all BMW cars with a green color\n\t * db.delete(cars).where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t *\n\t * // Delete all cars with the green or blue color\n\t * db.delete(cars).where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t * ```\n\t */\n\twhere(where: SQL | undefined): MySqlDeleteWithout<this, TDynamic, 'where'> {\n\t\tthis.config.where = where;\n\t\treturn this as any;\n\t}\n\n\torderBy(\n\t\tbuilder: (deleteTable: TTable) => ValueOrArray<MySqlColumn | SQL | SQL.Aliased>,\n\t): MySqlDeleteWithout<this, TDynamic, 'orderBy'>;\n\torderBy(...columns: (MySqlColumn | SQL | SQL.Aliased)[]): MySqlDeleteWithout<this, TDynamic, 'orderBy'>;\n\torderBy(\n\t\t...columns:\n\t\t\t| [(deleteTable: TTable) => ValueOrArray<MySqlColumn | SQL | SQL.Aliased>]\n\t\t\t| (MySqlColumn | SQL | SQL.Aliased)[]\n\t): MySqlDeleteWithout<this, TDynamic, 'orderBy'> {\n\t\tif (typeof columns[0] === 'function') {\n\t\t\tconst orderBy = columns[0](\n\t\t\t\tnew Proxy(\n\t\t\t\t\tthis.config.table[Table.Symbol.Columns],\n\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'alias', sqlBehavior: 'sql' }),\n\t\t\t\t) as any,\n\t\t\t);\n\n\t\t\tconst orderByArray = Array.isArray(orderBy) ? orderBy : [orderBy];\n\t\t\tthis.config.orderBy = orderByArray;\n\t\t} else {\n\t\t\tconst orderByArray = columns as (MySqlColumn | SQL | SQL.Aliased)[];\n\t\t\tthis.config.orderBy = orderByArray;\n\t\t}\n\t\treturn this as any;\n\t}\n\n\tlimit(limit: number | Placeholder): MySqlDeleteWithout<this, TDynamic, 'limit'> {\n\t\tthis.config.limit = limit;\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildDeleteQuery(this.config);\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(): MySqlDeletePrepare<this> {\n\t\treturn this.session.prepareQuery(\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\tthis.config.returning,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\t{\n\t\t\t\ttype: 'delete',\n\t\t\t\ttables: extractUsedTable(this.config.table),\n\t\t\t},\n\t\t) as MySqlDeletePrepare<this>;\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(): MySqlDeleteDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAY3B,SAAS,oBAAoB;AAC7B,SAAS,6BAA6B;AAGtC,SAAS,aAAa;AAGtB,SAAS,wBAAwB;AAmE1B,MAAM,wBAQH,aAA8E;AAAA,EAKvF,YACS,OACA,SACA,SACR,UACC;AACD,UAAM;AALE;AACA;AACA;AAIR,SAAK,SAAS,EAAE,OAAO,SAAS;AAAA,EACjC;AAAA,EAZA,QAA0B,UAAU,IAAY;AAAA,EAExC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAyCR,MAAM,OAAqE;AAC1E,SAAK,OAAO,QAAQ;AACpB,WAAO;AAAA,EACR;AAAA,EAMA,WACI,SAG6C;AAChD,QAAI,OAAO,QAAQ,CAAC,MAAM,YAAY;AACrC,YAAM,UAAU,QAAQ,CAAC;AAAA,QACxB,IAAI;AAAA,UACH,KAAK,OAAO,MAAM,MAAM,OAAO,OAAO;AAAA,UACtC,IAAI,sBAAsB,EAAE,oBAAoB,SAAS,aAAa,MAAM,CAAC;AAAA,QAC9E;AAAA,MACD;AAEA,YAAM,eAAe,MAAM,QAAQ,OAAO,IAAI,UAAU,CAAC,OAAO;AAChE,WAAK,OAAO,UAAU;AAAA,IACvB,OAAO;AACN,YAAM,eAAe;AACrB,WAAK,OAAO,UAAU;AAAA,IACvB;AACA,WAAO;AAAA,EACR;AAAA,EAEA,MAAM,OAA0E;AAC/E,SAAK,OAAO,QAAQ;AACpB,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,QAAQ,iBAAiB,KAAK,MAAM;AAAA,EACjD;AAAA,EAEA,QAAe;AACd,UAAM,EAAE,SAAS,UAAU,GAAG,KAAK,IAAI,KAAK,QAAQ,WAAW,KAAK,OAAO,CAAC;AAC5E,WAAO;AAAA,EACR;AAAA,EAEA,UAAoC;AACnC,WAAO,KAAK,QAAQ;AAAA,MACnB,KAAK,QAAQ,WAAW,KAAK,OAAO,CAAC;AAAA,MACrC,KAAK,OAAO;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACC,MAAM;AAAA,QACN,QAAQ,iBAAiB,KAAK,OAAO,KAAK;AAAA,MAC3C;AAAA,IACD;AAAA,EACD;AAAA,EAES,UAAkD,CAAC,sBAAsB;AACjF,WAAO,KAAK,QAAQ,EAAE,QAAQ,iBAAiB;AAAA,EAChD;AAAA,EAEQ,iBAAiB,MAA+C;AACvE,UAAM,OAAO;AACb,WAAO,iBAAgB,mBAAmB;AACzC,aAAO,KAAK,QAAQ,EAAE,SAAS,iBAAiB;AAAA,IACjD;AAAA,EACD;AAAA,EAEA,WAAW,KAAK,eAAe;AAAA,EAE/B,WAAqC;AACpC,WAAO;AAAA,EACR;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/mysql-core/query-builders/delete.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type {\n\tAnyMySqlQueryResultHKT,\n\tMySqlPreparedQueryConfig,\n\tMySqlQueryResultHKT,\n\tMySqlQueryResultKind,\n\tMySqlSession,\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n} from '~/mysql-core/session.ts';\nimport type { MySqlTable } from '~/mysql-core/table.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport type { Placeholder, Query, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport type { Subquery } from '~/subquery.ts';\nimport { Table } from '~/table.ts';\nimport type { ValueOrArray } from '~/utils.ts';\nimport type { MySqlColumn } from '../columns/common.ts';\nimport type { SelectedFieldsOrdered } from './select.types.ts';\n\nexport type MySqlDeleteWithout<\n\tT extends AnyMySqlDeleteBase,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n> = TDynamic extends true ? T\n\t: Omit<\n\t\tMySqlDeleteBase<\n\t\t\tT['_']['table'],\n\t\t\tT['_']['queryResult'],\n\t\t\tT['_']['preparedQueryHKT'],\n\t\t\tTDynamic,\n\t\t\tT['_']['excludedMethods'] | K\n\t\t>,\n\t\tT['_']['excludedMethods'] | K\n\t>;\n\nexport type MySqlDelete<\n\tTTable extends MySqlTable = MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT = AnyMySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n> = MySqlDeleteBase<TTable, TQueryResult, TPreparedQueryHKT, true, never>;\n\nexport interface MySqlDeleteConfig {\n\twhere?: SQL | undefined;\n\tlimit?: number | Placeholder;\n\torderBy?: (MySqlColumn | SQL | SQL.Aliased)[];\n\ttable: MySqlTable;\n\treturning?: SelectedFieldsOrdered;\n\twithList?: Subquery[];\n}\n\nexport type MySqlDeletePrepare<T extends AnyMySqlDeleteBase> = PreparedQueryKind<\n\tT['_']['preparedQueryHKT'],\n\tMySqlPreparedQueryConfig & {\n\t\texecute: MySqlQueryResultKind<T['_']['queryResult'], never>;\n\t\titerator: never;\n\t},\n\ttrue\n>;\n\ntype MySqlDeleteDynamic<T extends AnyMySqlDeleteBase> = MySqlDelete<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['preparedQueryHKT']\n>;\n\ntype AnyMySqlDeleteBase = MySqlDeleteBase<any, any, any, any, any>;\n\nexport interface MySqlDeleteBase<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<MySqlQueryResultKind<TQueryResult, never>> {\n\treadonly _: {\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};\n}\n\nexport class MySqlDeleteBase<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<MySqlQueryResultKind<TQueryResult, never>> implements SQLWrapper {\n\tstatic override readonly [entityKind]: string = 'MySqlDelete';\n\n\tprivate config: MySqlDeleteConfig;\n\n\tconstructor(\n\t\tprivate table: TTable,\n\t\tprivate session: MySqlSession,\n\t\tprivate dialect: MySqlDialect,\n\t\twithList?: Subquery[],\n\t) {\n\t\tsuper();\n\t\tthis.config = { table, withList };\n\t}\n\n\t/**\n\t * Adds a `where` clause to the query.\n\t *\n\t * Calling this method will delete only those rows that fulfill a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/delete}\n\t *\n\t * @param where the `where` clause.\n\t *\n\t * @example\n\t * You can use conditional operators and `sql function` to filter the rows to be deleted.\n\t *\n\t * ```ts\n\t * // Delete all cars with green color\n\t * db.delete(cars).where(eq(cars.color, 'green'));\n\t * // or\n\t * db.delete(cars).where(sql`${cars.color} = 'green'`)\n\t * ```\n\t *\n\t * You can logically combine conditional operators with `and()` and `or()` operators:\n\t *\n\t * ```ts\n\t * // Delete all BMW cars with a green color\n\t * db.delete(cars).where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t *\n\t * // Delete all cars with the green or blue color\n\t * db.delete(cars).where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t * ```\n\t */\n\twhere(where: SQL | undefined): MySqlDeleteWithout<this, TDynamic, 'where'> {\n\t\tthis.config.where = where;\n\t\treturn this as any;\n\t}\n\n\torderBy(\n\t\tbuilder: (deleteTable: TTable) => ValueOrArray<MySqlColumn | SQL | SQL.Aliased>,\n\t): MySqlDeleteWithout<this, TDynamic, 'orderBy'>;\n\torderBy(...columns: (MySqlColumn | SQL | SQL.Aliased)[]): MySqlDeleteWithout<this, TDynamic, 'orderBy'>;\n\torderBy(\n\t\t...columns:\n\t\t\t| [(deleteTable: TTable) => ValueOrArray<MySqlColumn | SQL | SQL.Aliased>]\n\t\t\t| (MySqlColumn | SQL | SQL.Aliased)[]\n\t): MySqlDeleteWithout<this, TDynamic, 'orderBy'> {\n\t\tif (typeof columns[0] === 'function') {\n\t\t\tconst orderBy = columns[0](\n\t\t\t\tnew Proxy(\n\t\t\t\t\tthis.config.table[Table.Symbol.Columns],\n\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'alias', sqlBehavior: 'sql' }),\n\t\t\t\t) as any,\n\t\t\t);\n\n\t\t\tconst orderByArray = Array.isArray(orderBy) ? orderBy : [orderBy];\n\t\t\tthis.config.orderBy = orderByArray;\n\t\t} else {\n\t\t\tconst orderByArray = columns as (MySqlColumn | SQL | SQL.Aliased)[];\n\t\t\tthis.config.orderBy = orderByArray;\n\t\t}\n\t\treturn this as any;\n\t}\n\n\tlimit(limit: number | Placeholder): MySqlDeleteWithout<this, TDynamic, 'limit'> {\n\t\tthis.config.limit = limit;\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildDeleteQuery(this.config);\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(): MySqlDeletePrepare<this> {\n\t\treturn this.session.prepareQuery(\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\tthis.config.returning,\n\t\t) as MySqlDeletePrepare<this>;\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(): MySqlDeleteDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAY3B,SAAS,oBAAoB;AAC7B,SAAS,6BAA6B;AAGtC,SAAS,aAAa;AAqEf,MAAM,wBAQH,aAA8E;AAAA,EAKvF,YACS,OACA,SACA,SACR,UACC;AACD,UAAM;AALE;AACA;AACA;AAIR,SAAK,SAAS,EAAE,OAAO,SAAS;AAAA,EACjC;AAAA,EAZA,QAA0B,UAAU,IAAY;AAAA,EAExC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAyCR,MAAM,OAAqE;AAC1E,SAAK,OAAO,QAAQ;AACpB,WAAO;AAAA,EACR;AAAA,EAMA,WACI,SAG6C;AAChD,QAAI,OAAO,QAAQ,CAAC,MAAM,YAAY;AACrC,YAAM,UAAU,QAAQ,CAAC;AAAA,QACxB,IAAI;AAAA,UACH,KAAK,OAAO,MAAM,MAAM,OAAO,OAAO;AAAA,UACtC,IAAI,sBAAsB,EAAE,oBAAoB,SAAS,aAAa,MAAM,CAAC;AAAA,QAC9E;AAAA,MACD;AAEA,YAAM,eAAe,MAAM,QAAQ,OAAO,IAAI,UAAU,CAAC,OAAO;AAChE,WAAK,OAAO,UAAU;AAAA,IACvB,OAAO;AACN,YAAM,eAAe;AACrB,WAAK,OAAO,UAAU;AAAA,IACvB;AACA,WAAO;AAAA,EACR;AAAA,EAEA,MAAM,OAA0E;AAC/E,SAAK,OAAO,QAAQ;AACpB,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,QAAQ,iBAAiB,KAAK,MAAM;AAAA,EACjD;AAAA,EAEA,QAAe;AACd,UAAM,EAAE,SAAS,UAAU,GAAG,KAAK,IAAI,KAAK,QAAQ,WAAW,KAAK,OAAO,CAAC;AAC5E,WAAO;AAAA,EACR;AAAA,EAEA,UAAoC;AACnC,WAAO,KAAK,QAAQ;AAAA,MACnB,KAAK,QAAQ,WAAW,KAAK,OAAO,CAAC;AAAA,MACrC,KAAK,OAAO;AAAA,IACb;AAAA,EACD;AAAA,EAES,UAAkD,CAAC,sBAAsB;AACjF,WAAO,KAAK,QAAQ,EAAE,QAAQ,iBAAiB;AAAA,EAChD;AAAA,EAEQ,iBAAiB,MAA+C;AACvE,UAAM,OAAO;AACb,WAAO,iBAAgB,mBAAmB;AACzC,aAAO,KAAK,QAAQ,EAAE,SAAS,iBAAiB;AAAA,IACjD;AAAA,EACD;AAAA,EAEA,WAAW,KAAK,eAAe;AAAA,EAE/B,WAAqC;AACpC,WAAO;AAAA,EACR;AACD;","names":[]}
@@ -27,7 +27,6 @@ var import_query_promise = require("../../query-promise.cjs");
27
27
  var import_sql = require("../../sql/sql.cjs");
28
28
  var import_table = require("../../table.cjs");
29
29
  var import_utils = require("../../utils.cjs");
30
- var import_utils2 = require("../utils.cjs");
31
30
  var import_query_builder = require("./query-builder.cjs");
32
31
  class MySqlInsertBuilder {
33
32
  constructor(table, session, dialect) {
@@ -76,7 +75,6 @@ class MySqlInsertBase extends import_query_promise.QueryPromise {
76
75
  }
77
76
  static [import_entity.entityKind] = "MySqlInsert";
78
77
  config;
79
- cacheConfig;
80
78
  /**
81
79
  * Adds an `on duplicate key update` clause to the query.
82
80
  *
@@ -133,12 +131,7 @@ class MySqlInsertBase extends import_query_promise.QueryPromise {
133
131
  void 0,
134
132
  void 0,
135
133
  generatedIds,
136
- this.config.returning,
137
- {
138
- type: "insert",
139
- tables: (0, import_utils2.extractUsedTable)(this.config.table)
140
- },
141
- this.cacheConfig
134
+ this.config.returning
142
135
  );
143
136
  }
144
137
  execute = (placeholderValues) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/query-builders/insert.ts"],"sourcesContent":["import type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type {\n\tAnyMySqlQueryResultHKT,\n\tMySqlPreparedQueryConfig,\n\tMySqlQueryResultHKT,\n\tMySqlQueryResultKind,\n\tMySqlSession,\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n} from '~/mysql-core/session.ts';\nimport type { MySqlTable } from '~/mysql-core/table.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.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 { Columns, Table } from '~/table.ts';\nimport { haveSameKeys, mapUpdateSet } from '~/utils.ts';\nimport type { AnyMySqlColumn } from '../columns/common.ts';\nimport { extractUsedTable } from '../utils.ts';\nimport { QueryBuilder } from './query-builder.ts';\nimport type { SelectedFieldsOrdered } from './select.types.ts';\nimport type { MySqlUpdateSetSource } from './update.ts';\n\nexport interface MySqlInsertConfig<TTable extends MySqlTable = MySqlTable> {\n\ttable: TTable;\n\tvalues: Record<string, Param | SQL>[] | MySqlInsertSelectQueryBuilder<TTable> | SQL;\n\tignore: boolean;\n\tonConflict?: SQL;\n\treturning?: SelectedFieldsOrdered;\n\tselect?: boolean;\n}\n\nexport type AnyMySqlInsertConfig = MySqlInsertConfig<MySqlTable>;\n\nexport type MySqlInsertValue<TTable extends MySqlTable> =\n\t& {\n\t\t[Key in keyof TTable['$inferInsert']]: TTable['$inferInsert'][Key] | SQL | Placeholder;\n\t}\n\t& {};\n\nexport type MySqlInsertSelectQueryBuilder<TTable extends MySqlTable> = TypedQueryBuilder<\n\t{ [K in keyof TTable['$inferInsert']]: AnyMySqlColumn | SQL | SQL.Aliased | TTable['$inferInsert'][K] }\n>;\n\nexport class MySqlInsertBuilder<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n> {\n\tstatic readonly [entityKind]: string = 'MySqlInsertBuilder';\n\n\tprivate shouldIgnore = false;\n\n\tconstructor(\n\t\tprivate table: TTable,\n\t\tprivate session: MySqlSession,\n\t\tprivate dialect: MySqlDialect,\n\t) {}\n\n\tignore(): this {\n\t\tthis.shouldIgnore = true;\n\t\treturn this;\n\t}\n\n\tvalues(value: MySqlInsertValue<TTable>): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tvalues(values: MySqlInsertValue<TTable>[]): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tvalues(\n\t\tvalues: MySqlInsertValue<TTable> | MySqlInsertValue<TTable>[],\n\t): MySqlInsertBase<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 MySqlInsertBase(this.table, mappedValues, this.shouldIgnore, this.session, this.dialect);\n\t}\n\n\tselect(\n\t\tselectQuery: (qb: QueryBuilder) => MySqlInsertSelectQueryBuilder<TTable>,\n\t): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tselect(selectQuery: (qb: QueryBuilder) => SQL): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tselect(selectQuery: SQL): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tselect(selectQuery: MySqlInsertSelectQueryBuilder<TTable>): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tselect(\n\t\tselectQuery:\n\t\t\t| SQL\n\t\t\t| MySqlInsertSelectQueryBuilder<TTable>\n\t\t\t| ((qb: QueryBuilder) => MySqlInsertSelectQueryBuilder<TTable> | SQL),\n\t): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT> {\n\t\tconst select = typeof selectQuery === 'function' ? selectQuery(new QueryBuilder()) : selectQuery;\n\n\t\tif (\n\t\t\t!is(select, SQL)\n\t\t\t&& !haveSameKeys(this.table[Columns], select._.selectedFields)\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t'Insert select error: selected fields are not the same or are in a different order compared to the table definition',\n\t\t\t);\n\t\t}\n\n\t\treturn new MySqlInsertBase(this.table, select, this.shouldIgnore, this.session, this.dialect, true);\n\t}\n}\n\nexport type MySqlInsertWithout<T extends AnyMySqlInsert, TDynamic extends boolean, K extends keyof T & string> =\n\tTDynamic extends true ? T\n\t\t: Omit<\n\t\t\tMySqlInsertBase<\n\t\t\t\tT['_']['table'],\n\t\t\t\tT['_']['queryResult'],\n\t\t\t\tT['_']['preparedQueryHKT'],\n\t\t\t\tT['_']['returning'],\n\t\t\t\tTDynamic,\n\t\t\t\tT['_']['excludedMethods'] | '$returning'\n\t\t\t>,\n\t\t\tT['_']['excludedMethods'] | K\n\t\t>;\n\nexport type MySqlInsertDynamic<T extends AnyMySqlInsert> = MySqlInsert<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['preparedQueryHKT'],\n\tT['_']['returning']\n>;\n\nexport type MySqlInsertPrepare<\n\tT extends AnyMySqlInsert,\n\tTReturning extends Record<string, unknown> | undefined = undefined,\n> = PreparedQueryKind<\n\tT['_']['preparedQueryHKT'],\n\tMySqlPreparedQueryConfig & {\n\t\texecute: TReturning extends undefined ? MySqlQueryResultKind<T['_']['queryResult'], never> : TReturning[];\n\t\titerator: never;\n\t},\n\ttrue\n>;\n\nexport type MySqlInsertOnDuplicateKeyUpdateConfig<T extends AnyMySqlInsert> = {\n\tset: MySqlUpdateSetSource<T['_']['table']>;\n};\n\nexport type MySqlInsert<\n\tTTable extends MySqlTable = MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT = AnyMySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n\tTReturning extends Record<string, unknown> | undefined = Record<string, unknown> | undefined,\n> = MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT, TReturning, true, never>;\n\nexport type MySqlInsertReturning<\n\tT extends AnyMySqlInsert,\n\tTDynamic extends boolean,\n> = MySqlInsertBase<\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 AnyMySqlInsert = MySqlInsertBase<any, any, any, any, any, any>;\n\nexport interface MySqlInsertBase<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\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 ? MySqlQueryResultKind<TQueryResult, never> : TReturning[]>,\n\tRunnableQuery<TReturning extends undefined ? MySqlQueryResultKind<TQueryResult, never> : TReturning[], 'mysql'>,\n\tSQLWrapper\n{\n\treadonly _: {\n\t\treadonly dialect: 'mysql';\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 ? MySqlQueryResultKind<TQueryResult, never> : TReturning[];\n\t};\n}\n\nexport type PrimaryKeyKeys<T extends Record<string, AnyMySqlColumn>> = {\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, AnyMySqlColumn>> = {\n\t[K in PrimaryKeyKeys<T>]: T[K];\n};\n\nexport class MySqlInsertBase<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\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 ? MySqlQueryResultKind<TQueryResult, never> : TReturning[]>\n\timplements\n\t\tRunnableQuery<TReturning extends undefined ? MySqlQueryResultKind<TQueryResult, never> : TReturning[], 'mysql'>,\n\t\tSQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'MySqlInsert';\n\n\tdeclare protected $table: TTable;\n\n\tprivate config: MySqlInsertConfig<TTable>;\n\tprotected cacheConfig?: WithCacheConfig;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tvalues: MySqlInsertConfig['values'],\n\t\tignore: boolean,\n\t\tprivate session: MySqlSession,\n\t\tprivate dialect: MySqlDialect,\n\t\tselect?: boolean,\n\t) {\n\t\tsuper();\n\t\tthis.config = { table, values: values as any, select, 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 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: MySqlInsertOnDuplicateKeyUpdateConfig<this>,\n\t): MySqlInsertWithout<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(): MySqlInsertWithout<\n\t\tMySqlInsertReturning<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 = returning;\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(): MySqlInsertPrepare<this, TReturning> {\n\t\tconst { sql, generatedIds } = this.dialect.buildInsertQuery(this.config);\n\t\treturn this.session.prepareQuery(\n\t\t\tthis.dialect.sqlToQuery(sql),\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tgeneratedIds,\n\t\t\tthis.config.returning,\n\t\t\t{\n\t\t\t\ttype: 'insert',\n\t\t\t\ttables: extractUsedTable(this.config.table),\n\t\t\t},\n\t\t\tthis.cacheConfig,\n\t\t) as MySqlInsertPrepare<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(): MySqlInsertDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":"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","names":["import_utils","sql"]}
1
+ {"version":3,"sources":["../../../src/mysql-core/query-builders/insert.ts"],"sourcesContent":["import { entityKind, is } from '~/entity.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type {\n\tAnyMySqlQueryResultHKT,\n\tMySqlPreparedQueryConfig,\n\tMySqlQueryResultHKT,\n\tMySqlQueryResultKind,\n\tMySqlSession,\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n} from '~/mysql-core/session.ts';\nimport type { MySqlTable } from '~/mysql-core/table.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.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 { Columns, Table } from '~/table.ts';\nimport { haveSameKeys, mapUpdateSet } from '~/utils.ts';\nimport type { AnyMySqlColumn } from '../columns/common.ts';\nimport { QueryBuilder } from './query-builder.ts';\nimport type { SelectedFieldsOrdered } from './select.types.ts';\nimport type { MySqlUpdateSetSource } from './update.ts';\n\nexport interface MySqlInsertConfig<TTable extends MySqlTable = MySqlTable> {\n\ttable: TTable;\n\tvalues: Record<string, Param | SQL>[] | MySqlInsertSelectQueryBuilder<TTable> | SQL;\n\tignore: boolean;\n\tonConflict?: SQL;\n\treturning?: SelectedFieldsOrdered;\n\tselect?: boolean;\n}\n\nexport type AnyMySqlInsertConfig = MySqlInsertConfig<MySqlTable>;\n\nexport type MySqlInsertValue<TTable extends MySqlTable> =\n\t& {\n\t\t[Key in keyof TTable['$inferInsert']]: TTable['$inferInsert'][Key] | SQL | Placeholder;\n\t}\n\t& {};\n\nexport type MySqlInsertSelectQueryBuilder<TTable extends MySqlTable> = TypedQueryBuilder<\n\t{ [K in keyof TTable['$inferInsert']]: AnyMySqlColumn | SQL | SQL.Aliased | TTable['$inferInsert'][K] }\n>;\n\nexport class MySqlInsertBuilder<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n> {\n\tstatic readonly [entityKind]: string = 'MySqlInsertBuilder';\n\n\tprivate shouldIgnore = false;\n\n\tconstructor(\n\t\tprivate table: TTable,\n\t\tprivate session: MySqlSession,\n\t\tprivate dialect: MySqlDialect,\n\t) {}\n\n\tignore(): this {\n\t\tthis.shouldIgnore = true;\n\t\treturn this;\n\t}\n\n\tvalues(value: MySqlInsertValue<TTable>): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tvalues(values: MySqlInsertValue<TTable>[]): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tvalues(\n\t\tvalues: MySqlInsertValue<TTable> | MySqlInsertValue<TTable>[],\n\t): MySqlInsertBase<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 MySqlInsertBase(this.table, mappedValues, this.shouldIgnore, this.session, this.dialect);\n\t}\n\n\tselect(\n\t\tselectQuery: (qb: QueryBuilder) => MySqlInsertSelectQueryBuilder<TTable>,\n\t): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tselect(selectQuery: (qb: QueryBuilder) => SQL): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tselect(selectQuery: SQL): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tselect(selectQuery: MySqlInsertSelectQueryBuilder<TTable>): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tselect(\n\t\tselectQuery:\n\t\t\t| SQL\n\t\t\t| MySqlInsertSelectQueryBuilder<TTable>\n\t\t\t| ((qb: QueryBuilder) => MySqlInsertSelectQueryBuilder<TTable> | SQL),\n\t): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT> {\n\t\tconst select = typeof selectQuery === 'function' ? selectQuery(new QueryBuilder()) : selectQuery;\n\n\t\tif (\n\t\t\t!is(select, SQL)\n\t\t\t&& !haveSameKeys(this.table[Columns], select._.selectedFields)\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t'Insert select error: selected fields are not the same or are in a different order compared to the table definition',\n\t\t\t);\n\t\t}\n\n\t\treturn new MySqlInsertBase(this.table, select, this.shouldIgnore, this.session, this.dialect, true);\n\t}\n}\n\nexport type MySqlInsertWithout<T extends AnyMySqlInsert, TDynamic extends boolean, K extends keyof T & string> =\n\tTDynamic extends true ? T\n\t\t: Omit<\n\t\t\tMySqlInsertBase<\n\t\t\t\tT['_']['table'],\n\t\t\t\tT['_']['queryResult'],\n\t\t\t\tT['_']['preparedQueryHKT'],\n\t\t\t\tT['_']['returning'],\n\t\t\t\tTDynamic,\n\t\t\t\tT['_']['excludedMethods'] | '$returning'\n\t\t\t>,\n\t\t\tT['_']['excludedMethods'] | K\n\t\t>;\n\nexport type MySqlInsertDynamic<T extends AnyMySqlInsert> = MySqlInsert<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['preparedQueryHKT'],\n\tT['_']['returning']\n>;\n\nexport type MySqlInsertPrepare<\n\tT extends AnyMySqlInsert,\n\tTReturning extends Record<string, unknown> | undefined = undefined,\n> = PreparedQueryKind<\n\tT['_']['preparedQueryHKT'],\n\tMySqlPreparedQueryConfig & {\n\t\texecute: TReturning extends undefined ? MySqlQueryResultKind<T['_']['queryResult'], never> : TReturning[];\n\t\titerator: never;\n\t},\n\ttrue\n>;\n\nexport type MySqlInsertOnDuplicateKeyUpdateConfig<T extends AnyMySqlInsert> = {\n\tset: MySqlUpdateSetSource<T['_']['table']>;\n};\n\nexport type MySqlInsert<\n\tTTable extends MySqlTable = MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT = AnyMySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n\tTReturning extends Record<string, unknown> | undefined = Record<string, unknown> | undefined,\n> = MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT, TReturning, true, never>;\n\nexport type MySqlInsertReturning<\n\tT extends AnyMySqlInsert,\n\tTDynamic extends boolean,\n> = MySqlInsertBase<\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 AnyMySqlInsert = MySqlInsertBase<any, any, any, any, any, any>;\n\nexport interface MySqlInsertBase<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\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 ? MySqlQueryResultKind<TQueryResult, never> : TReturning[]>,\n\tRunnableQuery<TReturning extends undefined ? MySqlQueryResultKind<TQueryResult, never> : TReturning[], 'mysql'>,\n\tSQLWrapper\n{\n\treadonly _: {\n\t\treadonly dialect: 'mysql';\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 ? MySqlQueryResultKind<TQueryResult, never> : TReturning[];\n\t};\n}\n\nexport type PrimaryKeyKeys<T extends Record<string, AnyMySqlColumn>> = {\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, AnyMySqlColumn>> = {\n\t[K in PrimaryKeyKeys<T>]: T[K];\n};\n\nexport class MySqlInsertBase<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\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 ? MySqlQueryResultKind<TQueryResult, never> : TReturning[]>\n\timplements\n\t\tRunnableQuery<TReturning extends undefined ? MySqlQueryResultKind<TQueryResult, never> : TReturning[], 'mysql'>,\n\t\tSQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'MySqlInsert';\n\n\tdeclare protected $table: TTable;\n\n\tprivate config: MySqlInsertConfig<TTable>;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tvalues: MySqlInsertConfig['values'],\n\t\tignore: boolean,\n\t\tprivate session: MySqlSession,\n\t\tprivate dialect: MySqlDialect,\n\t\tselect?: boolean,\n\t) {\n\t\tsuper();\n\t\tthis.config = { table, values: values as any, select, 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 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: MySqlInsertOnDuplicateKeyUpdateConfig<this>,\n\t): MySqlInsertWithout<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(): MySqlInsertWithout<\n\t\tMySqlInsertReturning<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 = returning;\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(): MySqlInsertPrepare<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 MySqlInsertPrepare<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(): MySqlInsertDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":"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","names":["sql"]}
@@ -1,4 +1,3 @@
1
- import type { WithCacheConfig } from "../../cache/core/types.cjs";
2
1
  import { entityKind } from "../../entity.cjs";
3
2
  import type { MySqlDialect } from "../dialect.cjs";
4
3
  import type { AnyMySqlQueryResultHKT, MySqlPreparedQueryConfig, MySqlQueryResultHKT, MySqlQueryResultKind, MySqlSession, PreparedQueryHKTBase, PreparedQueryKind } from "../session.cjs";
@@ -79,7 +78,6 @@ export declare class MySqlInsertBase<TTable extends MySqlTable, TQueryResult ext
79
78
  static readonly [entityKind]: string;
80
79
  protected $table: TTable;
81
80
  private config;
82
- protected cacheConfig?: WithCacheConfig;
83
81
  constructor(table: TTable, values: MySqlInsertConfig['values'], ignore: boolean, session: MySqlSession, dialect: MySqlDialect, select?: boolean);
84
82
  /**
85
83
  * Adds an `on duplicate key update` clause to the query.
@@ -1,4 +1,3 @@
1
- import type { WithCacheConfig } from "../../cache/core/types.js";
2
1
  import { entityKind } from "../../entity.js";
3
2
  import type { MySqlDialect } from "../dialect.js";
4
3
  import type { AnyMySqlQueryResultHKT, MySqlPreparedQueryConfig, MySqlQueryResultHKT, MySqlQueryResultKind, MySqlSession, PreparedQueryHKTBase, PreparedQueryKind } from "../session.js";
@@ -79,7 +78,6 @@ export declare class MySqlInsertBase<TTable extends MySqlTable, TQueryResult ext
79
78
  static readonly [entityKind]: string;
80
79
  protected $table: TTable;
81
80
  private config;
82
- protected cacheConfig?: WithCacheConfig;
83
81
  constructor(table: TTable, values: MySqlInsertConfig['values'], ignore: boolean, session: MySqlSession, dialect: MySqlDialect, select?: boolean);
84
82
  /**
85
83
  * Adds an `on duplicate key update` clause to the query.
@@ -3,7 +3,6 @@ import { QueryPromise } from "../../query-promise.js";
3
3
  import { Param, SQL, sql } from "../../sql/sql.js";
4
4
  import { Columns, Table } from "../../table.js";
5
5
  import { haveSameKeys, mapUpdateSet } from "../../utils.js";
6
- import { extractUsedTable } from "../utils.js";
7
6
  import { QueryBuilder } from "./query-builder.js";
8
7
  class MySqlInsertBuilder {
9
8
  constructor(table, session, dialect) {
@@ -52,7 +51,6 @@ class MySqlInsertBase extends QueryPromise {
52
51
  }
53
52
  static [entityKind] = "MySqlInsert";
54
53
  config;
55
- cacheConfig;
56
54
  /**
57
55
  * Adds an `on duplicate key update` clause to the query.
58
56
  *
@@ -109,12 +107,7 @@ class MySqlInsertBase extends QueryPromise {
109
107
  void 0,
110
108
  void 0,
111
109
  generatedIds,
112
- this.config.returning,
113
- {
114
- type: "insert",
115
- tables: extractUsedTable(this.config.table)
116
- },
117
- this.cacheConfig
110
+ this.config.returning
118
111
  );
119
112
  }
120
113
  execute = (placeholderValues) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/query-builders/insert.ts"],"sourcesContent":["import type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type {\n\tAnyMySqlQueryResultHKT,\n\tMySqlPreparedQueryConfig,\n\tMySqlQueryResultHKT,\n\tMySqlQueryResultKind,\n\tMySqlSession,\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n} from '~/mysql-core/session.ts';\nimport type { MySqlTable } from '~/mysql-core/table.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.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 { Columns, Table } from '~/table.ts';\nimport { haveSameKeys, mapUpdateSet } from '~/utils.ts';\nimport type { AnyMySqlColumn } from '../columns/common.ts';\nimport { extractUsedTable } from '../utils.ts';\nimport { QueryBuilder } from './query-builder.ts';\nimport type { SelectedFieldsOrdered } from './select.types.ts';\nimport type { MySqlUpdateSetSource } from './update.ts';\n\nexport interface MySqlInsertConfig<TTable extends MySqlTable = MySqlTable> {\n\ttable: TTable;\n\tvalues: Record<string, Param | SQL>[] | MySqlInsertSelectQueryBuilder<TTable> | SQL;\n\tignore: boolean;\n\tonConflict?: SQL;\n\treturning?: SelectedFieldsOrdered;\n\tselect?: boolean;\n}\n\nexport type AnyMySqlInsertConfig = MySqlInsertConfig<MySqlTable>;\n\nexport type MySqlInsertValue<TTable extends MySqlTable> =\n\t& {\n\t\t[Key in keyof TTable['$inferInsert']]: TTable['$inferInsert'][Key] | SQL | Placeholder;\n\t}\n\t& {};\n\nexport type MySqlInsertSelectQueryBuilder<TTable extends MySqlTable> = TypedQueryBuilder<\n\t{ [K in keyof TTable['$inferInsert']]: AnyMySqlColumn | SQL | SQL.Aliased | TTable['$inferInsert'][K] }\n>;\n\nexport class MySqlInsertBuilder<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n> {\n\tstatic readonly [entityKind]: string = 'MySqlInsertBuilder';\n\n\tprivate shouldIgnore = false;\n\n\tconstructor(\n\t\tprivate table: TTable,\n\t\tprivate session: MySqlSession,\n\t\tprivate dialect: MySqlDialect,\n\t) {}\n\n\tignore(): this {\n\t\tthis.shouldIgnore = true;\n\t\treturn this;\n\t}\n\n\tvalues(value: MySqlInsertValue<TTable>): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tvalues(values: MySqlInsertValue<TTable>[]): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tvalues(\n\t\tvalues: MySqlInsertValue<TTable> | MySqlInsertValue<TTable>[],\n\t): MySqlInsertBase<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 MySqlInsertBase(this.table, mappedValues, this.shouldIgnore, this.session, this.dialect);\n\t}\n\n\tselect(\n\t\tselectQuery: (qb: QueryBuilder) => MySqlInsertSelectQueryBuilder<TTable>,\n\t): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tselect(selectQuery: (qb: QueryBuilder) => SQL): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tselect(selectQuery: SQL): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tselect(selectQuery: MySqlInsertSelectQueryBuilder<TTable>): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tselect(\n\t\tselectQuery:\n\t\t\t| SQL\n\t\t\t| MySqlInsertSelectQueryBuilder<TTable>\n\t\t\t| ((qb: QueryBuilder) => MySqlInsertSelectQueryBuilder<TTable> | SQL),\n\t): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT> {\n\t\tconst select = typeof selectQuery === 'function' ? selectQuery(new QueryBuilder()) : selectQuery;\n\n\t\tif (\n\t\t\t!is(select, SQL)\n\t\t\t&& !haveSameKeys(this.table[Columns], select._.selectedFields)\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t'Insert select error: selected fields are not the same or are in a different order compared to the table definition',\n\t\t\t);\n\t\t}\n\n\t\treturn new MySqlInsertBase(this.table, select, this.shouldIgnore, this.session, this.dialect, true);\n\t}\n}\n\nexport type MySqlInsertWithout<T extends AnyMySqlInsert, TDynamic extends boolean, K extends keyof T & string> =\n\tTDynamic extends true ? T\n\t\t: Omit<\n\t\t\tMySqlInsertBase<\n\t\t\t\tT['_']['table'],\n\t\t\t\tT['_']['queryResult'],\n\t\t\t\tT['_']['preparedQueryHKT'],\n\t\t\t\tT['_']['returning'],\n\t\t\t\tTDynamic,\n\t\t\t\tT['_']['excludedMethods'] | '$returning'\n\t\t\t>,\n\t\t\tT['_']['excludedMethods'] | K\n\t\t>;\n\nexport type MySqlInsertDynamic<T extends AnyMySqlInsert> = MySqlInsert<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['preparedQueryHKT'],\n\tT['_']['returning']\n>;\n\nexport type MySqlInsertPrepare<\n\tT extends AnyMySqlInsert,\n\tTReturning extends Record<string, unknown> | undefined = undefined,\n> = PreparedQueryKind<\n\tT['_']['preparedQueryHKT'],\n\tMySqlPreparedQueryConfig & {\n\t\texecute: TReturning extends undefined ? MySqlQueryResultKind<T['_']['queryResult'], never> : TReturning[];\n\t\titerator: never;\n\t},\n\ttrue\n>;\n\nexport type MySqlInsertOnDuplicateKeyUpdateConfig<T extends AnyMySqlInsert> = {\n\tset: MySqlUpdateSetSource<T['_']['table']>;\n};\n\nexport type MySqlInsert<\n\tTTable extends MySqlTable = MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT = AnyMySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n\tTReturning extends Record<string, unknown> | undefined = Record<string, unknown> | undefined,\n> = MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT, TReturning, true, never>;\n\nexport type MySqlInsertReturning<\n\tT extends AnyMySqlInsert,\n\tTDynamic extends boolean,\n> = MySqlInsertBase<\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 AnyMySqlInsert = MySqlInsertBase<any, any, any, any, any, any>;\n\nexport interface MySqlInsertBase<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\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 ? MySqlQueryResultKind<TQueryResult, never> : TReturning[]>,\n\tRunnableQuery<TReturning extends undefined ? MySqlQueryResultKind<TQueryResult, never> : TReturning[], 'mysql'>,\n\tSQLWrapper\n{\n\treadonly _: {\n\t\treadonly dialect: 'mysql';\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 ? MySqlQueryResultKind<TQueryResult, never> : TReturning[];\n\t};\n}\n\nexport type PrimaryKeyKeys<T extends Record<string, AnyMySqlColumn>> = {\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, AnyMySqlColumn>> = {\n\t[K in PrimaryKeyKeys<T>]: T[K];\n};\n\nexport class MySqlInsertBase<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\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 ? MySqlQueryResultKind<TQueryResult, never> : TReturning[]>\n\timplements\n\t\tRunnableQuery<TReturning extends undefined ? MySqlQueryResultKind<TQueryResult, never> : TReturning[], 'mysql'>,\n\t\tSQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'MySqlInsert';\n\n\tdeclare protected $table: TTable;\n\n\tprivate config: MySqlInsertConfig<TTable>;\n\tprotected cacheConfig?: WithCacheConfig;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tvalues: MySqlInsertConfig['values'],\n\t\tignore: boolean,\n\t\tprivate session: MySqlSession,\n\t\tprivate dialect: MySqlDialect,\n\t\tselect?: boolean,\n\t) {\n\t\tsuper();\n\t\tthis.config = { table, values: values as any, select, 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 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: MySqlInsertOnDuplicateKeyUpdateConfig<this>,\n\t): MySqlInsertWithout<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(): MySqlInsertWithout<\n\t\tMySqlInsertReturning<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 = returning;\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(): MySqlInsertPrepare<this, TReturning> {\n\t\tconst { sql, generatedIds } = this.dialect.buildInsertQuery(this.config);\n\t\treturn this.session.prepareQuery(\n\t\t\tthis.dialect.sqlToQuery(sql),\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tgeneratedIds,\n\t\t\tthis.config.returning,\n\t\t\t{\n\t\t\t\ttype: 'insert',\n\t\t\t\ttables: extractUsedTable(this.config.table),\n\t\t\t},\n\t\t\tthis.cacheConfig,\n\t\t) as MySqlInsertPrepare<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(): MySqlInsertDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":"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","names":["sql"]}
1
+ {"version":3,"sources":["../../../src/mysql-core/query-builders/insert.ts"],"sourcesContent":["import { entityKind, is } from '~/entity.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type {\n\tAnyMySqlQueryResultHKT,\n\tMySqlPreparedQueryConfig,\n\tMySqlQueryResultHKT,\n\tMySqlQueryResultKind,\n\tMySqlSession,\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n} from '~/mysql-core/session.ts';\nimport type { MySqlTable } from '~/mysql-core/table.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.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 { Columns, Table } from '~/table.ts';\nimport { haveSameKeys, mapUpdateSet } from '~/utils.ts';\nimport type { AnyMySqlColumn } from '../columns/common.ts';\nimport { QueryBuilder } from './query-builder.ts';\nimport type { SelectedFieldsOrdered } from './select.types.ts';\nimport type { MySqlUpdateSetSource } from './update.ts';\n\nexport interface MySqlInsertConfig<TTable extends MySqlTable = MySqlTable> {\n\ttable: TTable;\n\tvalues: Record<string, Param | SQL>[] | MySqlInsertSelectQueryBuilder<TTable> | SQL;\n\tignore: boolean;\n\tonConflict?: SQL;\n\treturning?: SelectedFieldsOrdered;\n\tselect?: boolean;\n}\n\nexport type AnyMySqlInsertConfig = MySqlInsertConfig<MySqlTable>;\n\nexport type MySqlInsertValue<TTable extends MySqlTable> =\n\t& {\n\t\t[Key in keyof TTable['$inferInsert']]: TTable['$inferInsert'][Key] | SQL | Placeholder;\n\t}\n\t& {};\n\nexport type MySqlInsertSelectQueryBuilder<TTable extends MySqlTable> = TypedQueryBuilder<\n\t{ [K in keyof TTable['$inferInsert']]: AnyMySqlColumn | SQL | SQL.Aliased | TTable['$inferInsert'][K] }\n>;\n\nexport class MySqlInsertBuilder<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n> {\n\tstatic readonly [entityKind]: string = 'MySqlInsertBuilder';\n\n\tprivate shouldIgnore = false;\n\n\tconstructor(\n\t\tprivate table: TTable,\n\t\tprivate session: MySqlSession,\n\t\tprivate dialect: MySqlDialect,\n\t) {}\n\n\tignore(): this {\n\t\tthis.shouldIgnore = true;\n\t\treturn this;\n\t}\n\n\tvalues(value: MySqlInsertValue<TTable>): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tvalues(values: MySqlInsertValue<TTable>[]): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tvalues(\n\t\tvalues: MySqlInsertValue<TTable> | MySqlInsertValue<TTable>[],\n\t): MySqlInsertBase<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 MySqlInsertBase(this.table, mappedValues, this.shouldIgnore, this.session, this.dialect);\n\t}\n\n\tselect(\n\t\tselectQuery: (qb: QueryBuilder) => MySqlInsertSelectQueryBuilder<TTable>,\n\t): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tselect(selectQuery: (qb: QueryBuilder) => SQL): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tselect(selectQuery: SQL): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tselect(selectQuery: MySqlInsertSelectQueryBuilder<TTable>): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT>;\n\tselect(\n\t\tselectQuery:\n\t\t\t| SQL\n\t\t\t| MySqlInsertSelectQueryBuilder<TTable>\n\t\t\t| ((qb: QueryBuilder) => MySqlInsertSelectQueryBuilder<TTable> | SQL),\n\t): MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT> {\n\t\tconst select = typeof selectQuery === 'function' ? selectQuery(new QueryBuilder()) : selectQuery;\n\n\t\tif (\n\t\t\t!is(select, SQL)\n\t\t\t&& !haveSameKeys(this.table[Columns], select._.selectedFields)\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t'Insert select error: selected fields are not the same or are in a different order compared to the table definition',\n\t\t\t);\n\t\t}\n\n\t\treturn new MySqlInsertBase(this.table, select, this.shouldIgnore, this.session, this.dialect, true);\n\t}\n}\n\nexport type MySqlInsertWithout<T extends AnyMySqlInsert, TDynamic extends boolean, K extends keyof T & string> =\n\tTDynamic extends true ? T\n\t\t: Omit<\n\t\t\tMySqlInsertBase<\n\t\t\t\tT['_']['table'],\n\t\t\t\tT['_']['queryResult'],\n\t\t\t\tT['_']['preparedQueryHKT'],\n\t\t\t\tT['_']['returning'],\n\t\t\t\tTDynamic,\n\t\t\t\tT['_']['excludedMethods'] | '$returning'\n\t\t\t>,\n\t\t\tT['_']['excludedMethods'] | K\n\t\t>;\n\nexport type MySqlInsertDynamic<T extends AnyMySqlInsert> = MySqlInsert<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['preparedQueryHKT'],\n\tT['_']['returning']\n>;\n\nexport type MySqlInsertPrepare<\n\tT extends AnyMySqlInsert,\n\tTReturning extends Record<string, unknown> | undefined = undefined,\n> = PreparedQueryKind<\n\tT['_']['preparedQueryHKT'],\n\tMySqlPreparedQueryConfig & {\n\t\texecute: TReturning extends undefined ? MySqlQueryResultKind<T['_']['queryResult'], never> : TReturning[];\n\t\titerator: never;\n\t},\n\ttrue\n>;\n\nexport type MySqlInsertOnDuplicateKeyUpdateConfig<T extends AnyMySqlInsert> = {\n\tset: MySqlUpdateSetSource<T['_']['table']>;\n};\n\nexport type MySqlInsert<\n\tTTable extends MySqlTable = MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT = AnyMySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n\tTReturning extends Record<string, unknown> | undefined = Record<string, unknown> | undefined,\n> = MySqlInsertBase<TTable, TQueryResult, TPreparedQueryHKT, TReturning, true, never>;\n\nexport type MySqlInsertReturning<\n\tT extends AnyMySqlInsert,\n\tTDynamic extends boolean,\n> = MySqlInsertBase<\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 AnyMySqlInsert = MySqlInsertBase<any, any, any, any, any, any>;\n\nexport interface MySqlInsertBase<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\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 ? MySqlQueryResultKind<TQueryResult, never> : TReturning[]>,\n\tRunnableQuery<TReturning extends undefined ? MySqlQueryResultKind<TQueryResult, never> : TReturning[], 'mysql'>,\n\tSQLWrapper\n{\n\treadonly _: {\n\t\treadonly dialect: 'mysql';\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 ? MySqlQueryResultKind<TQueryResult, never> : TReturning[];\n\t};\n}\n\nexport type PrimaryKeyKeys<T extends Record<string, AnyMySqlColumn>> = {\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, AnyMySqlColumn>> = {\n\t[K in PrimaryKeyKeys<T>]: T[K];\n};\n\nexport class MySqlInsertBase<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\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 ? MySqlQueryResultKind<TQueryResult, never> : TReturning[]>\n\timplements\n\t\tRunnableQuery<TReturning extends undefined ? MySqlQueryResultKind<TQueryResult, never> : TReturning[], 'mysql'>,\n\t\tSQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'MySqlInsert';\n\n\tdeclare protected $table: TTable;\n\n\tprivate config: MySqlInsertConfig<TTable>;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tvalues: MySqlInsertConfig['values'],\n\t\tignore: boolean,\n\t\tprivate session: MySqlSession,\n\t\tprivate dialect: MySqlDialect,\n\t\tselect?: boolean,\n\t) {\n\t\tsuper();\n\t\tthis.config = { table, values: values as any, select, 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 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: MySqlInsertOnDuplicateKeyUpdateConfig<this>,\n\t): MySqlInsertWithout<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(): MySqlInsertWithout<\n\t\tMySqlInsertReturning<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 = returning;\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(): MySqlInsertPrepare<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 MySqlInsertPrepare<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(): MySqlInsertDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":"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","names":["sql"]}
@@ -113,8 +113,6 @@ class MySqlSelectQueryBuilderBase extends import_query_builder.TypedQueryBuilder
113
113
  /** @internal */
114
114
  session;
115
115
  dialect;
116
- cacheConfig = void 0;
117
- usedTables = /* @__PURE__ */ new Set();
118
116
  constructor({ table, fields, isPartialSelect, session, dialect, withList, distinct, useIndex, forceIndex, ignoreIndex }) {
119
117
  super();
120
118
  this.config = {
@@ -131,17 +129,10 @@ class MySqlSelectQueryBuilderBase extends import_query_builder.TypedQueryBuilder
131
129
  this.session = session;
132
130
  this.dialect = dialect;
133
131
  this._ = {
134
- selectedFields: fields,
135
- config: this.config
132
+ selectedFields: fields
136
133
  };
137
134
  this.tableName = (0, import_utils.getTableLikeName)(table);
138
135
  this.joinsNotNullableMap = typeof this.tableName === "string" ? { [this.tableName]: true } : {};
139
- for (const item of (0, import_utils2.extractUsedTable)(table))
140
- this.usedTables.add(item);
141
- }
142
- /** @internal */
143
- getUsedTables() {
144
- return [...this.usedTables];
145
136
  }
146
137
  createJoin(joinType, lateral) {
147
138
  return (table, a, b) => {
@@ -150,8 +141,6 @@ class MySqlSelectQueryBuilderBase extends import_query_builder.TypedQueryBuilder
150
141
  const onIndex = isCrossJoin ? a : b;
151
142
  const baseTableName = this.tableName;
152
143
  const tableName = (0, import_utils.getTableLikeName)(table);
153
- for (const item of (0, import_utils2.extractUsedTable)(table))
154
- this.usedTables.add(item);
155
144
  if (typeof tableName === "string" && this.config.joins?.some((join) => join.alias === tableName)) {
156
145
  throw new Error(`Alias "${tableName}" is already used in this query`);
157
146
  }
@@ -795,14 +784,8 @@ class MySqlSelectQueryBuilderBase extends import_query_builder.TypedQueryBuilder
795
784
  return rest;
796
785
  }
797
786
  as(alias) {
798
- const usedTables = [];
799
- usedTables.push(...(0, import_utils2.extractUsedTable)(this.config.table));
800
- if (this.config.joins) {
801
- for (const it of this.config.joins)
802
- usedTables.push(...(0, import_utils2.extractUsedTable)(it.table));
803
- }
804
787
  return new Proxy(
805
- new import_subquery.Subquery(this.getSQL(), this.config.fields, alias, false, [...new Set(usedTables)]),
788
+ new import_subquery.Subquery(this.getSQL(), this.config.fields, alias),
806
789
  new import_selection_proxy.SelectionProxyHandler({ alias, sqlAliasedBehavior: "alias", sqlBehavior: "error" })
807
790
  );
808
791
  }
@@ -816,10 +799,6 @@ class MySqlSelectQueryBuilderBase extends import_query_builder.TypedQueryBuilder
816
799
  $dynamic() {
817
800
  return this;
818
801
  }
819
- $withCache(config) {
820
- this.cacheConfig = config === void 0 ? { config: {}, enable: true, autoInvalidate: true } : config === false ? { enable: false } : { enable: true, autoInvalidate: true, ...config };
821
- return this;
822
- }
823
802
  }
824
803
  class MySqlSelectBase extends MySqlSelectQueryBuilderBase {
825
804
  static [import_entity.entityKind] = "MySqlSelect";
@@ -828,10 +807,7 @@ class MySqlSelectBase extends MySqlSelectQueryBuilderBase {
828
807
  throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");
829
808
  }
830
809
  const fieldsList = (0, import_utils.orderSelectedFields)(this.config.fields);
831
- const query = this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()), fieldsList, void 0, void 0, void 0, {
832
- type: "select",
833
- tables: [...this.usedTables]
834
- }, this.cacheConfig);
810
+ const query = this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()), fieldsList);
835
811
  query.joinsNotNullableMap = this.joinsNotNullableMap;
836
812
  return query;
837
813
  }