drizzle-orm 1.0.0-beta.21 → 1.0.0-beta.21-4fa69ab

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 (1591) hide show
  1. package/_relations.cjs.map +1 -1
  2. package/_relations.d.cts +2 -13
  3. package/_relations.d.ts +2 -13
  4. package/_relations.js.map +1 -1
  5. package/aws-data-api/common/index.cjs +2 -0
  6. package/aws-data-api/common/index.cjs.map +1 -1
  7. package/aws-data-api/common/index.js +2 -0
  8. package/aws-data-api/common/index.js.map +1 -1
  9. package/aws-data-api/pg/driver.cjs +93 -20
  10. package/aws-data-api/pg/driver.cjs.map +1 -1
  11. package/aws-data-api/pg/driver.d.cts +17 -13
  12. package/aws-data-api/pg/driver.d.ts +16 -12
  13. package/aws-data-api/pg/driver.js +93 -20
  14. package/aws-data-api/pg/driver.js.map +1 -1
  15. package/aws-data-api/pg/index.cjs +1 -1
  16. package/aws-data-api/pg/index.d.cts +3 -3
  17. package/aws-data-api/pg/index.d.ts +3 -3
  18. package/aws-data-api/pg/index.js +3 -3
  19. package/aws-data-api/pg/migrator.cjs.map +1 -1
  20. package/aws-data-api/pg/migrator.d.cts +1 -1
  21. package/aws-data-api/pg/migrator.d.ts +1 -1
  22. package/aws-data-api/pg/migrator.js.map +1 -1
  23. package/aws-data-api/pg/session.cjs +44 -113
  24. package/aws-data-api/pg/session.cjs.map +1 -1
  25. package/aws-data-api/pg/session.d.cts +12 -42
  26. package/aws-data-api/pg/session.d.ts +12 -42
  27. package/aws-data-api/pg/session.js +46 -114
  28. package/aws-data-api/pg/session.js.map +1 -1
  29. package/better-sqlite3/driver.cjs +5 -2
  30. package/better-sqlite3/driver.cjs.map +1 -1
  31. package/better-sqlite3/driver.d.ts +1 -1
  32. package/better-sqlite3/driver.js +5 -2
  33. package/better-sqlite3/driver.js.map +1 -1
  34. package/better-sqlite3/session.cjs +15 -14
  35. package/better-sqlite3/session.cjs.map +1 -1
  36. package/better-sqlite3/session.d.cts +10 -6
  37. package/better-sqlite3/session.d.ts +10 -6
  38. package/better-sqlite3/session.js +16 -15
  39. package/better-sqlite3/session.js.map +1 -1
  40. package/bun-sql/driver.cjs.map +1 -1
  41. package/bun-sql/driver.d.cts +7 -6
  42. package/bun-sql/driver.d.ts +7 -6
  43. package/bun-sql/driver.js.map +1 -1
  44. package/bun-sql/index.cjs +0 -1
  45. package/bun-sql/index.d.cts +2 -2
  46. package/bun-sql/index.d.ts +2 -2
  47. package/bun-sql/index.js +2 -2
  48. package/bun-sql/migrator.cjs.map +1 -1
  49. package/bun-sql/migrator.d.cts +2 -2
  50. package/bun-sql/migrator.d.ts +2 -2
  51. package/bun-sql/migrator.js.map +1 -1
  52. package/bun-sql/mysql/driver.cjs +4 -3
  53. package/bun-sql/mysql/driver.cjs.map +1 -1
  54. package/bun-sql/mysql/driver.js +3 -2
  55. package/bun-sql/mysql/driver.js.map +1 -1
  56. package/bun-sql/mysql/session.cjs +36 -23
  57. package/bun-sql/mysql/session.cjs.map +1 -1
  58. package/bun-sql/mysql/session.d.cts +10 -4
  59. package/bun-sql/mysql/session.d.ts +11 -5
  60. package/bun-sql/mysql/session.js +37 -24
  61. package/bun-sql/mysql/session.js.map +1 -1
  62. package/bun-sql/postgres/driver.cjs +143 -19
  63. package/bun-sql/postgres/driver.cjs.map +1 -1
  64. package/bun-sql/postgres/driver.d.cts +10 -6
  65. package/bun-sql/postgres/driver.d.ts +10 -6
  66. package/bun-sql/postgres/driver.js +143 -19
  67. package/bun-sql/postgres/driver.js.map +1 -1
  68. package/bun-sql/postgres/index.cjs +1 -1
  69. package/bun-sql/postgres/index.d.cts +3 -3
  70. package/bun-sql/postgres/index.d.ts +3 -3
  71. package/bun-sql/postgres/index.js +3 -3
  72. package/bun-sql/postgres/migrator.cjs.map +1 -1
  73. package/bun-sql/postgres/migrator.d.cts +1 -1
  74. package/bun-sql/postgres/migrator.d.ts +1 -1
  75. package/bun-sql/postgres/migrator.js.map +1 -1
  76. package/bun-sql/postgres/session.cjs +16 -111
  77. package/bun-sql/postgres/session.cjs.map +1 -1
  78. package/bun-sql/postgres/session.d.cts +11 -33
  79. package/bun-sql/postgres/session.d.ts +10 -32
  80. package/bun-sql/postgres/session.js +17 -111
  81. package/bun-sql/postgres/session.js.map +1 -1
  82. package/bun-sql/session.cjs +0 -1
  83. package/bun-sql/session.d.cts +2 -2
  84. package/bun-sql/session.d.ts +2 -2
  85. package/bun-sql/session.js +2 -2
  86. package/bun-sql/sqlite/driver.cjs +4 -3
  87. package/bun-sql/sqlite/driver.cjs.map +1 -1
  88. package/bun-sql/sqlite/driver.d.ts +1 -1
  89. package/bun-sql/sqlite/driver.js +3 -2
  90. package/bun-sql/sqlite/driver.js.map +1 -1
  91. package/bun-sql/sqlite/session.cjs +17 -16
  92. package/bun-sql/sqlite/session.cjs.map +1 -1
  93. package/bun-sql/sqlite/session.d.cts +9 -6
  94. package/bun-sql/sqlite/session.d.ts +9 -6
  95. package/bun-sql/sqlite/session.js +18 -17
  96. package/bun-sql/sqlite/session.js.map +1 -1
  97. package/bun-sqlite/driver.cjs +5 -2
  98. package/bun-sqlite/driver.cjs.map +1 -1
  99. package/bun-sqlite/driver.d.ts +1 -1
  100. package/bun-sqlite/driver.js +5 -2
  101. package/bun-sqlite/driver.js.map +1 -1
  102. package/bun-sqlite/session.cjs +15 -14
  103. package/bun-sqlite/session.cjs.map +1 -1
  104. package/bun-sqlite/session.d.cts +10 -6
  105. package/bun-sqlite/session.d.ts +10 -6
  106. package/bun-sqlite/session.js +16 -15
  107. package/bun-sqlite/session.js.map +1 -1
  108. package/cache/core/cache-effect.d.cts +1 -1
  109. package/cache/core/cache-effect.d.ts +1 -1
  110. package/cache/upstash/cache.d.cts +1 -1
  111. package/cache/upstash/cache.d.ts +1 -1
  112. package/cockroach/driver.cjs +9 -3
  113. package/cockroach/driver.cjs.map +1 -1
  114. package/cockroach/driver.d.cts +1 -0
  115. package/cockroach/driver.d.ts +2 -1
  116. package/cockroach/driver.js +9 -3
  117. package/cockroach/driver.js.map +1 -1
  118. package/cockroach/session.cjs +7 -9
  119. package/cockroach/session.cjs.map +1 -1
  120. package/cockroach/session.d.cts +5 -3
  121. package/cockroach/session.d.ts +6 -4
  122. package/cockroach/session.js +8 -10
  123. package/cockroach/session.js.map +1 -1
  124. package/cockroach-core/columns/bigint.cjs +4 -4
  125. package/cockroach-core/columns/bigint.cjs.map +1 -1
  126. package/cockroach-core/columns/bigint.d.cts +2 -2
  127. package/cockroach-core/columns/bigint.d.ts +2 -2
  128. package/cockroach-core/columns/bigint.js +4 -4
  129. package/cockroach-core/columns/bigint.js.map +1 -1
  130. package/cockroach-core/columns/common.cjs +4 -4
  131. package/cockroach-core/columns/common.cjs.map +1 -1
  132. package/cockroach-core/columns/common.d.cts +2 -2
  133. package/cockroach-core/columns/common.d.ts +2 -2
  134. package/cockroach-core/columns/common.js +4 -4
  135. package/cockroach-core/columns/common.js.map +1 -1
  136. package/cockroach-core/columns/custom.cjs +4 -4
  137. package/cockroach-core/columns/custom.cjs.map +1 -1
  138. package/cockroach-core/columns/custom.d.cts +2 -2
  139. package/cockroach-core/columns/custom.d.ts +2 -2
  140. package/cockroach-core/columns/custom.js +4 -4
  141. package/cockroach-core/columns/custom.js.map +1 -1
  142. package/cockroach-core/columns/date.cjs +6 -6
  143. package/cockroach-core/columns/date.cjs.map +1 -1
  144. package/cockroach-core/columns/date.d.cts +3 -3
  145. package/cockroach-core/columns/date.d.ts +3 -3
  146. package/cockroach-core/columns/date.js +6 -6
  147. package/cockroach-core/columns/date.js.map +1 -1
  148. package/cockroach-core/columns/decimal.cjs +4 -4
  149. package/cockroach-core/columns/decimal.cjs.map +1 -1
  150. package/cockroach-core/columns/decimal.d.cts +2 -2
  151. package/cockroach-core/columns/decimal.d.ts +2 -2
  152. package/cockroach-core/columns/decimal.js +4 -4
  153. package/cockroach-core/columns/decimal.js.map +1 -1
  154. package/cockroach-core/columns/float.cjs +2 -2
  155. package/cockroach-core/columns/float.cjs.map +1 -1
  156. package/cockroach-core/columns/float.d.cts +1 -1
  157. package/cockroach-core/columns/float.d.ts +1 -1
  158. package/cockroach-core/columns/float.js +2 -2
  159. package/cockroach-core/columns/float.js.map +1 -1
  160. package/cockroach-core/columns/geometry.cjs +8 -8
  161. package/cockroach-core/columns/geometry.cjs.map +1 -1
  162. package/cockroach-core/columns/geometry.d.cts +5 -5
  163. package/cockroach-core/columns/geometry.d.ts +5 -5
  164. package/cockroach-core/columns/geometry.js +8 -8
  165. package/cockroach-core/columns/geometry.js.map +1 -1
  166. package/cockroach-core/columns/integer.cjs +2 -2
  167. package/cockroach-core/columns/integer.cjs.map +1 -1
  168. package/cockroach-core/columns/integer.d.cts +1 -1
  169. package/cockroach-core/columns/integer.d.ts +1 -1
  170. package/cockroach-core/columns/integer.js +2 -2
  171. package/cockroach-core/columns/integer.js.map +1 -1
  172. package/cockroach-core/columns/jsonb.cjs +4 -4
  173. package/cockroach-core/columns/jsonb.cjs.map +1 -1
  174. package/cockroach-core/columns/jsonb.d.cts +2 -2
  175. package/cockroach-core/columns/jsonb.d.ts +2 -2
  176. package/cockroach-core/columns/jsonb.js +4 -4
  177. package/cockroach-core/columns/jsonb.js.map +1 -1
  178. package/cockroach-core/columns/vector.cjs +4 -4
  179. package/cockroach-core/columns/vector.cjs.map +1 -1
  180. package/cockroach-core/columns/vector.d.cts +2 -2
  181. package/cockroach-core/columns/vector.d.ts +2 -2
  182. package/cockroach-core/columns/vector.js +4 -4
  183. package/cockroach-core/columns/vector.js.map +1 -1
  184. package/cockroach-core/db.cjs +1 -1
  185. package/cockroach-core/db.cjs.map +1 -1
  186. package/cockroach-core/db.js +1 -1
  187. package/cockroach-core/db.js.map +1 -1
  188. package/cockroach-core/dialect.cjs +1 -1
  189. package/cockroach-core/dialect.d.ts +1 -1
  190. package/cockroach-core/dialect.js +1 -1
  191. package/cockroach-core/query-builders/delete.cjs +6 -2
  192. package/cockroach-core/query-builders/delete.cjs.map +1 -1
  193. package/cockroach-core/query-builders/delete.d.cts +1 -1
  194. package/cockroach-core/query-builders/delete.d.ts +1 -1
  195. package/cockroach-core/query-builders/delete.js +6 -2
  196. package/cockroach-core/query-builders/delete.js.map +1 -1
  197. package/cockroach-core/query-builders/insert.cjs +6 -2
  198. package/cockroach-core/query-builders/insert.cjs.map +1 -1
  199. package/cockroach-core/query-builders/insert.js +6 -2
  200. package/cockroach-core/query-builders/insert.js.map +1 -1
  201. package/cockroach-core/query-builders/query.cjs +2 -2
  202. package/cockroach-core/query-builders/query.cjs.map +1 -1
  203. package/cockroach-core/query-builders/query.js +2 -2
  204. package/cockroach-core/query-builders/query.js.map +1 -1
  205. package/cockroach-core/query-builders/raw.cjs +0 -4
  206. package/cockroach-core/query-builders/raw.cjs.map +1 -1
  207. package/cockroach-core/query-builders/raw.js +0 -4
  208. package/cockroach-core/query-builders/raw.js.map +1 -1
  209. package/cockroach-core/query-builders/refresh-materialized-view.cjs +2 -2
  210. package/cockroach-core/query-builders/refresh-materialized-view.cjs.map +1 -1
  211. package/cockroach-core/query-builders/refresh-materialized-view.js +2 -2
  212. package/cockroach-core/query-builders/refresh-materialized-view.js.map +1 -1
  213. package/cockroach-core/query-builders/select.cjs +6 -2
  214. package/cockroach-core/query-builders/select.cjs.map +1 -1
  215. package/cockroach-core/query-builders/select.js +6 -2
  216. package/cockroach-core/query-builders/select.js.map +1 -1
  217. package/cockroach-core/query-builders/update.cjs +6 -2
  218. package/cockroach-core/query-builders/update.cjs.map +1 -1
  219. package/cockroach-core/query-builders/update.js +6 -2
  220. package/cockroach-core/query-builders/update.js.map +1 -1
  221. package/cockroach-core/session.cjs +2 -2
  222. package/cockroach-core/session.cjs.map +1 -1
  223. package/cockroach-core/session.d.cts +1 -1
  224. package/cockroach-core/session.d.ts +1 -1
  225. package/cockroach-core/session.js +2 -2
  226. package/cockroach-core/session.js.map +1 -1
  227. package/cockroach-core/table.cjs +1 -1
  228. package/cockroach-core/table.cjs.map +1 -1
  229. package/cockroach-core/table.js +1 -1
  230. package/cockroach-core/table.js.map +1 -1
  231. package/codecs.cjs +77 -0
  232. package/codecs.cjs.map +1 -0
  233. package/codecs.d.cts +68 -0
  234. package/codecs.d.ts +68 -0
  235. package/codecs.js +74 -0
  236. package/codecs.js.map +1 -0
  237. package/column.cjs +10 -5
  238. package/column.cjs.map +1 -1
  239. package/column.d.cts +3 -3
  240. package/column.d.ts +3 -3
  241. package/column.js +10 -5
  242. package/column.js.map +1 -1
  243. package/d1/driver.cjs +3 -2
  244. package/d1/driver.cjs.map +1 -1
  245. package/d1/driver.d.ts +1 -1
  246. package/d1/driver.js +3 -2
  247. package/d1/driver.js.map +1 -1
  248. package/d1/session.cjs +16 -14
  249. package/d1/session.cjs.map +1 -1
  250. package/d1/session.d.cts +9 -6
  251. package/d1/session.d.ts +9 -6
  252. package/d1/session.js +17 -15
  253. package/d1/session.js.map +1 -1
  254. package/durable-sqlite/driver.cjs +5 -2
  255. package/durable-sqlite/driver.cjs.map +1 -1
  256. package/durable-sqlite/driver.d.ts +1 -1
  257. package/durable-sqlite/driver.js +5 -2
  258. package/durable-sqlite/driver.js.map +1 -1
  259. package/durable-sqlite/session.cjs +15 -14
  260. package/durable-sqlite/session.cjs.map +1 -1
  261. package/durable-sqlite/session.d.cts +10 -6
  262. package/durable-sqlite/session.d.ts +10 -6
  263. package/durable-sqlite/session.js +16 -15
  264. package/durable-sqlite/session.js.map +1 -1
  265. package/effect-postgres/driver.cjs +99 -13
  266. package/effect-postgres/driver.cjs.map +1 -1
  267. package/effect-postgres/driver.d.cts +12 -8
  268. package/effect-postgres/driver.d.ts +12 -8
  269. package/effect-postgres/driver.js +99 -13
  270. package/effect-postgres/driver.js.map +1 -1
  271. package/effect-postgres/index.cjs +1 -1
  272. package/effect-postgres/index.d.cts +3 -3
  273. package/effect-postgres/index.d.ts +3 -3
  274. package/effect-postgres/index.js +3 -3
  275. package/effect-postgres/migrator.cjs.map +1 -1
  276. package/effect-postgres/migrator.d.cts +1 -1
  277. package/effect-postgres/migrator.d.ts +1 -1
  278. package/effect-postgres/migrator.js.map +1 -1
  279. package/effect-postgres/session.cjs +12 -71
  280. package/effect-postgres/session.cjs.map +1 -1
  281. package/effect-postgres/session.d.cts +14 -31
  282. package/effect-postgres/session.d.ts +16 -33
  283. package/effect-postgres/session.js +13 -71
  284. package/effect-postgres/session.js.map +1 -1
  285. package/expo-sqlite/driver.cjs +5 -2
  286. package/expo-sqlite/driver.cjs.map +1 -1
  287. package/expo-sqlite/driver.d.ts +1 -1
  288. package/expo-sqlite/driver.js +5 -2
  289. package/expo-sqlite/driver.js.map +1 -1
  290. package/expo-sqlite/session.cjs +15 -14
  291. package/expo-sqlite/session.cjs.map +1 -1
  292. package/expo-sqlite/session.d.cts +10 -6
  293. package/expo-sqlite/session.d.ts +10 -6
  294. package/expo-sqlite/session.js +16 -15
  295. package/expo-sqlite/session.js.map +1 -1
  296. package/gel/driver.cjs +4 -2
  297. package/gel/driver.cjs.map +1 -1
  298. package/gel/driver.d.cts +1 -0
  299. package/gel/driver.d.ts +2 -1
  300. package/gel/driver.js +4 -2
  301. package/gel/driver.js.map +1 -1
  302. package/gel/session.cjs +12 -12
  303. package/gel/session.cjs.map +1 -1
  304. package/gel/session.d.cts +8 -5
  305. package/gel/session.d.ts +9 -6
  306. package/gel/session.js +13 -13
  307. package/gel/session.js.map +1 -1
  308. package/gel-core/columns/bigintT.cjs +2 -2
  309. package/gel-core/columns/bigintT.cjs.map +1 -1
  310. package/gel-core/columns/bigintT.d.cts +1 -1
  311. package/gel-core/columns/bigintT.d.ts +1 -1
  312. package/gel-core/columns/bigintT.js +2 -2
  313. package/gel-core/columns/bigintT.js.map +1 -1
  314. package/gel-core/columns/common.cjs +2 -2
  315. package/gel-core/columns/common.cjs.map +1 -1
  316. package/gel-core/columns/common.d.cts +1 -1
  317. package/gel-core/columns/common.d.ts +1 -1
  318. package/gel-core/columns/common.js +2 -2
  319. package/gel-core/columns/common.js.map +1 -1
  320. package/gel-core/columns/custom.cjs +4 -4
  321. package/gel-core/columns/custom.cjs.map +1 -1
  322. package/gel-core/columns/custom.d.cts +2 -2
  323. package/gel-core/columns/custom.d.ts +2 -2
  324. package/gel-core/columns/custom.js +4 -4
  325. package/gel-core/columns/custom.js.map +1 -1
  326. package/gel-core/columns/double-precision.cjs +2 -2
  327. package/gel-core/columns/double-precision.cjs.map +1 -1
  328. package/gel-core/columns/double-precision.d.cts +1 -1
  329. package/gel-core/columns/double-precision.d.ts +1 -1
  330. package/gel-core/columns/double-precision.js +2 -2
  331. package/gel-core/columns/double-precision.js.map +1 -1
  332. package/gel-core/columns/timestamptz.cjs +2 -2
  333. package/gel-core/columns/timestamptz.cjs.map +1 -1
  334. package/gel-core/columns/timestamptz.d.cts +1 -1
  335. package/gel-core/columns/timestamptz.d.ts +1 -1
  336. package/gel-core/columns/timestamptz.js +2 -2
  337. package/gel-core/columns/timestamptz.js.map +1 -1
  338. package/gel-core/db.cjs +1 -1
  339. package/gel-core/db.cjs.map +1 -1
  340. package/gel-core/db.d.ts +1 -1
  341. package/gel-core/db.js +1 -1
  342. package/gel-core/db.js.map +1 -1
  343. package/gel-core/query-builders/_query.cjs +2 -2
  344. package/gel-core/query-builders/_query.cjs.map +1 -1
  345. package/gel-core/query-builders/_query.js +2 -2
  346. package/gel-core/query-builders/_query.js.map +1 -1
  347. package/gel-core/query-builders/delete.cjs +2 -2
  348. package/gel-core/query-builders/delete.cjs.map +1 -1
  349. package/gel-core/query-builders/delete.js +2 -2
  350. package/gel-core/query-builders/delete.js.map +1 -1
  351. package/gel-core/query-builders/insert.cjs +2 -2
  352. package/gel-core/query-builders/insert.cjs.map +1 -1
  353. package/gel-core/query-builders/insert.js +2 -2
  354. package/gel-core/query-builders/insert.js.map +1 -1
  355. package/gel-core/query-builders/query.cjs +13 -5
  356. package/gel-core/query-builders/query.cjs.map +1 -1
  357. package/gel-core/query-builders/query.d.ts +1 -1
  358. package/gel-core/query-builders/query.js +14 -6
  359. package/gel-core/query-builders/query.js.map +1 -1
  360. package/gel-core/query-builders/raw.cjs +0 -4
  361. package/gel-core/query-builders/raw.cjs.map +1 -1
  362. package/gel-core/query-builders/raw.js +0 -4
  363. package/gel-core/query-builders/raw.js.map +1 -1
  364. package/gel-core/query-builders/refresh-materialized-view.cjs +2 -2
  365. package/gel-core/query-builders/refresh-materialized-view.cjs.map +1 -1
  366. package/gel-core/query-builders/refresh-materialized-view.js +2 -2
  367. package/gel-core/query-builders/refresh-materialized-view.js.map +1 -1
  368. package/gel-core/query-builders/select.cjs +6 -2
  369. package/gel-core/query-builders/select.cjs.map +1 -1
  370. package/gel-core/query-builders/select.js +6 -2
  371. package/gel-core/query-builders/select.js.map +1 -1
  372. package/gel-core/query-builders/update.cjs +2 -2
  373. package/gel-core/query-builders/update.cjs.map +1 -1
  374. package/gel-core/query-builders/update.js +2 -2
  375. package/gel-core/query-builders/update.js.map +1 -1
  376. package/gel-core/session.cjs +2 -2
  377. package/gel-core/session.cjs.map +1 -1
  378. package/gel-core/session.d.cts +3 -3
  379. package/gel-core/session.d.ts +3 -3
  380. package/gel-core/session.js +2 -2
  381. package/gel-core/session.js.map +1 -1
  382. package/gel-core/table.cjs +1 -1
  383. package/gel-core/table.cjs.map +1 -1
  384. package/gel-core/table.js +1 -1
  385. package/gel-core/table.js.map +1 -1
  386. package/index.cjs +6 -0
  387. package/index.d.cts +6 -6
  388. package/index.d.ts +6 -6
  389. package/index.js +4 -4
  390. package/libsql/driver-core.cjs +3 -2
  391. package/libsql/driver-core.cjs.map +1 -1
  392. package/libsql/driver-core.d.ts +1 -1
  393. package/libsql/driver-core.js +3 -2
  394. package/libsql/driver-core.js.map +1 -1
  395. package/libsql/session.cjs +13 -14
  396. package/libsql/session.cjs.map +1 -1
  397. package/libsql/session.d.cts +9 -6
  398. package/libsql/session.d.ts +9 -6
  399. package/libsql/session.js +14 -15
  400. package/libsql/session.js.map +1 -1
  401. package/mssql-core/columns/bigint.cjs +2 -2
  402. package/mssql-core/columns/bigint.cjs.map +1 -1
  403. package/mssql-core/columns/bigint.d.cts +1 -1
  404. package/mssql-core/columns/bigint.d.ts +1 -1
  405. package/mssql-core/columns/bigint.js +2 -2
  406. package/mssql-core/columns/bigint.js.map +1 -1
  407. package/mssql-core/columns/custom.cjs +4 -4
  408. package/mssql-core/columns/custom.cjs.map +1 -1
  409. package/mssql-core/columns/custom.d.cts +2 -2
  410. package/mssql-core/columns/custom.d.ts +2 -2
  411. package/mssql-core/columns/custom.js +4 -4
  412. package/mssql-core/columns/custom.js.map +1 -1
  413. package/mssql-core/columns/date.cjs +4 -4
  414. package/mssql-core/columns/date.cjs.map +1 -1
  415. package/mssql-core/columns/date.d.cts +2 -2
  416. package/mssql-core/columns/date.d.ts +2 -2
  417. package/mssql-core/columns/date.js +4 -4
  418. package/mssql-core/columns/date.js.map +1 -1
  419. package/mssql-core/columns/datetime.cjs +2 -2
  420. package/mssql-core/columns/datetime.cjs.map +1 -1
  421. package/mssql-core/columns/datetime.d.cts +1 -1
  422. package/mssql-core/columns/datetime.d.ts +1 -1
  423. package/mssql-core/columns/datetime.js +2 -2
  424. package/mssql-core/columns/datetime.js.map +1 -1
  425. package/mssql-core/columns/datetime2.cjs +2 -2
  426. package/mssql-core/columns/datetime2.cjs.map +1 -1
  427. package/mssql-core/columns/datetime2.d.cts +1 -1
  428. package/mssql-core/columns/datetime2.d.ts +1 -1
  429. package/mssql-core/columns/datetime2.js +2 -2
  430. package/mssql-core/columns/datetime2.js.map +1 -1
  431. package/mssql-core/columns/datetimeoffset.cjs +2 -2
  432. package/mssql-core/columns/datetimeoffset.cjs.map +1 -1
  433. package/mssql-core/columns/datetimeoffset.d.cts +1 -1
  434. package/mssql-core/columns/datetimeoffset.d.ts +1 -1
  435. package/mssql-core/columns/datetimeoffset.js +2 -2
  436. package/mssql-core/columns/datetimeoffset.js.map +1 -1
  437. package/mssql-core/columns/decimal.cjs +4 -4
  438. package/mssql-core/columns/decimal.cjs.map +1 -1
  439. package/mssql-core/columns/decimal.d.cts +2 -2
  440. package/mssql-core/columns/decimal.d.ts +2 -2
  441. package/mssql-core/columns/decimal.js +4 -4
  442. package/mssql-core/columns/decimal.js.map +1 -1
  443. package/mssql-core/columns/numeric.cjs +4 -4
  444. package/mssql-core/columns/numeric.cjs.map +1 -1
  445. package/mssql-core/columns/numeric.d.cts +2 -2
  446. package/mssql-core/columns/numeric.d.ts +2 -2
  447. package/mssql-core/columns/numeric.js +4 -4
  448. package/mssql-core/columns/numeric.js.map +1 -1
  449. package/mssql-core/columns/smallint.cjs +2 -2
  450. package/mssql-core/columns/smallint.cjs.map +1 -1
  451. package/mssql-core/columns/smallint.d.cts +1 -1
  452. package/mssql-core/columns/smallint.d.ts +1 -1
  453. package/mssql-core/columns/smallint.js +2 -2
  454. package/mssql-core/columns/smallint.js.map +1 -1
  455. package/mssql-core/columns/time.cjs +2 -2
  456. package/mssql-core/columns/time.cjs.map +1 -1
  457. package/mssql-core/columns/time.d.cts +1 -1
  458. package/mssql-core/columns/time.d.ts +1 -1
  459. package/mssql-core/columns/time.js +2 -2
  460. package/mssql-core/columns/time.js.map +1 -1
  461. package/mssql-core/columns/tinyint.cjs +2 -2
  462. package/mssql-core/columns/tinyint.cjs.map +1 -1
  463. package/mssql-core/columns/tinyint.d.cts +1 -1
  464. package/mssql-core/columns/tinyint.d.ts +1 -1
  465. package/mssql-core/columns/tinyint.js +2 -2
  466. package/mssql-core/columns/tinyint.js.map +1 -1
  467. package/mssql-core/columns/varchar.cjs +4 -4
  468. package/mssql-core/columns/varchar.cjs.map +1 -1
  469. package/mssql-core/columns/varchar.d.cts +2 -2
  470. package/mssql-core/columns/varchar.d.ts +2 -2
  471. package/mssql-core/columns/varchar.js +4 -4
  472. package/mssql-core/columns/varchar.js.map +1 -1
  473. package/mssql-core/dialect.cjs +1 -1
  474. package/mssql-core/dialect.d.ts +1 -1
  475. package/mssql-core/dialect.js +1 -1
  476. package/mssql-core/query-builders/select.cjs +4 -0
  477. package/mssql-core/query-builders/select.cjs.map +1 -1
  478. package/mssql-core/query-builders/select.js +4 -0
  479. package/mssql-core/query-builders/select.js.map +1 -1
  480. package/mssql-core/query-builders/update.d.ts +1 -1
  481. package/mssql-core/table.cjs +1 -1
  482. package/mssql-core/table.cjs.map +1 -1
  483. package/mssql-core/table.js +1 -1
  484. package/mssql-core/table.js.map +1 -1
  485. package/mysql-core/columns/bigint.cjs +8 -8
  486. package/mysql-core/columns/bigint.cjs.map +1 -1
  487. package/mysql-core/columns/bigint.d.cts +4 -4
  488. package/mysql-core/columns/bigint.d.ts +4 -4
  489. package/mysql-core/columns/bigint.js +8 -8
  490. package/mysql-core/columns/bigint.js.map +1 -1
  491. package/mysql-core/columns/binary.cjs +2 -2
  492. package/mysql-core/columns/binary.cjs.map +1 -1
  493. package/mysql-core/columns/binary.d.cts +1 -1
  494. package/mysql-core/columns/binary.d.ts +1 -1
  495. package/mysql-core/columns/binary.js +2 -2
  496. package/mysql-core/columns/binary.js.map +1 -1
  497. package/mysql-core/columns/blob.cjs +4 -4
  498. package/mysql-core/columns/blob.cjs.map +1 -1
  499. package/mysql-core/columns/blob.d.cts +2 -2
  500. package/mysql-core/columns/blob.d.ts +2 -2
  501. package/mysql-core/columns/blob.js +4 -4
  502. package/mysql-core/columns/blob.js.map +1 -1
  503. package/mysql-core/columns/boolean.cjs +2 -2
  504. package/mysql-core/columns/boolean.cjs.map +1 -1
  505. package/mysql-core/columns/boolean.d.cts +1 -1
  506. package/mysql-core/columns/boolean.d.ts +1 -1
  507. package/mysql-core/columns/boolean.js +2 -2
  508. package/mysql-core/columns/boolean.js.map +1 -1
  509. package/mysql-core/columns/custom.cjs +4 -4
  510. package/mysql-core/columns/custom.cjs.map +1 -1
  511. package/mysql-core/columns/custom.d.cts +2 -2
  512. package/mysql-core/columns/custom.d.ts +2 -2
  513. package/mysql-core/columns/custom.js +4 -4
  514. package/mysql-core/columns/custom.js.map +1 -1
  515. package/mysql-core/columns/date.cjs +4 -4
  516. package/mysql-core/columns/date.cjs.map +1 -1
  517. package/mysql-core/columns/date.d.cts +2 -2
  518. package/mysql-core/columns/date.d.ts +2 -2
  519. package/mysql-core/columns/date.js +4 -4
  520. package/mysql-core/columns/date.js.map +1 -1
  521. package/mysql-core/columns/datetime.cjs +8 -8
  522. package/mysql-core/columns/datetime.cjs.map +1 -1
  523. package/mysql-core/columns/datetime.d.cts +4 -4
  524. package/mysql-core/columns/datetime.d.ts +4 -4
  525. package/mysql-core/columns/datetime.js +8 -8
  526. package/mysql-core/columns/datetime.js.map +1 -1
  527. package/mysql-core/columns/decimal.cjs +4 -4
  528. package/mysql-core/columns/decimal.cjs.map +1 -1
  529. package/mysql-core/columns/decimal.d.cts +2 -2
  530. package/mysql-core/columns/decimal.d.ts +2 -2
  531. package/mysql-core/columns/decimal.js +4 -4
  532. package/mysql-core/columns/decimal.js.map +1 -1
  533. package/mysql-core/columns/float.cjs +2 -2
  534. package/mysql-core/columns/float.cjs.map +1 -1
  535. package/mysql-core/columns/float.d.cts +1 -1
  536. package/mysql-core/columns/float.d.ts +1 -1
  537. package/mysql-core/columns/float.js +2 -2
  538. package/mysql-core/columns/float.js.map +1 -1
  539. package/mysql-core/columns/int.cjs +2 -2
  540. package/mysql-core/columns/int.cjs.map +1 -1
  541. package/mysql-core/columns/int.d.cts +1 -1
  542. package/mysql-core/columns/int.d.ts +1 -1
  543. package/mysql-core/columns/int.js +2 -2
  544. package/mysql-core/columns/int.js.map +1 -1
  545. package/mysql-core/columns/json.cjs +2 -2
  546. package/mysql-core/columns/json.cjs.map +1 -1
  547. package/mysql-core/columns/json.d.cts +1 -1
  548. package/mysql-core/columns/json.d.ts +1 -1
  549. package/mysql-core/columns/json.js +2 -2
  550. package/mysql-core/columns/json.js.map +1 -1
  551. package/mysql-core/columns/mediumint.cjs +2 -2
  552. package/mysql-core/columns/mediumint.cjs.map +1 -1
  553. package/mysql-core/columns/mediumint.d.cts +1 -1
  554. package/mysql-core/columns/mediumint.d.ts +1 -1
  555. package/mysql-core/columns/mediumint.js +2 -2
  556. package/mysql-core/columns/mediumint.js.map +1 -1
  557. package/mysql-core/columns/serial.cjs +2 -2
  558. package/mysql-core/columns/serial.cjs.map +1 -1
  559. package/mysql-core/columns/serial.d.cts +1 -1
  560. package/mysql-core/columns/serial.d.ts +1 -1
  561. package/mysql-core/columns/serial.js +2 -2
  562. package/mysql-core/columns/serial.js.map +1 -1
  563. package/mysql-core/columns/smallint.cjs +2 -2
  564. package/mysql-core/columns/smallint.cjs.map +1 -1
  565. package/mysql-core/columns/smallint.d.cts +1 -1
  566. package/mysql-core/columns/smallint.d.ts +1 -1
  567. package/mysql-core/columns/smallint.js +2 -2
  568. package/mysql-core/columns/smallint.js.map +1 -1
  569. package/mysql-core/columns/time.cjs +2 -2
  570. package/mysql-core/columns/time.cjs.map +1 -1
  571. package/mysql-core/columns/time.d.cts +1 -1
  572. package/mysql-core/columns/time.d.ts +1 -1
  573. package/mysql-core/columns/time.js +2 -2
  574. package/mysql-core/columns/time.js.map +1 -1
  575. package/mysql-core/columns/timestamp.cjs +8 -8
  576. package/mysql-core/columns/timestamp.cjs.map +1 -1
  577. package/mysql-core/columns/timestamp.d.cts +4 -4
  578. package/mysql-core/columns/timestamp.d.ts +4 -4
  579. package/mysql-core/columns/timestamp.js +8 -8
  580. package/mysql-core/columns/timestamp.js.map +1 -1
  581. package/mysql-core/columns/tinyint.cjs +2 -2
  582. package/mysql-core/columns/tinyint.cjs.map +1 -1
  583. package/mysql-core/columns/tinyint.d.cts +1 -1
  584. package/mysql-core/columns/tinyint.d.ts +1 -1
  585. package/mysql-core/columns/tinyint.js +2 -2
  586. package/mysql-core/columns/tinyint.js.map +1 -1
  587. package/mysql-core/columns/varbinary.cjs +2 -2
  588. package/mysql-core/columns/varbinary.cjs.map +1 -1
  589. package/mysql-core/columns/varbinary.d.cts +1 -1
  590. package/mysql-core/columns/varbinary.d.ts +1 -1
  591. package/mysql-core/columns/varbinary.js +2 -2
  592. package/mysql-core/columns/varbinary.js.map +1 -1
  593. package/mysql-core/columns/year.cjs +2 -2
  594. package/mysql-core/columns/year.cjs.map +1 -1
  595. package/mysql-core/columns/year.d.cts +1 -1
  596. package/mysql-core/columns/year.d.ts +1 -1
  597. package/mysql-core/columns/year.js +2 -2
  598. package/mysql-core/columns/year.js.map +1 -1
  599. package/mysql-core/db.d.ts +1 -1
  600. package/mysql-core/dialect.cjs +1 -1
  601. package/mysql-core/dialect.d.ts +1 -1
  602. package/mysql-core/dialect.js +1 -1
  603. package/mysql-core/query-builders/query.cjs +13 -5
  604. package/mysql-core/query-builders/query.cjs.map +1 -1
  605. package/mysql-core/query-builders/query.d.ts +1 -1
  606. package/mysql-core/query-builders/query.js +13 -5
  607. package/mysql-core/query-builders/query.js.map +1 -1
  608. package/mysql-core/query-builders/select.cjs +4 -0
  609. package/mysql-core/query-builders/select.cjs.map +1 -1
  610. package/mysql-core/query-builders/select.js +4 -0
  611. package/mysql-core/query-builders/select.js.map +1 -1
  612. package/mysql-core/session.cjs +1 -2
  613. package/mysql-core/session.cjs.map +1 -1
  614. package/mysql-core/session.d.cts +3 -4
  615. package/mysql-core/session.d.ts +3 -4
  616. package/mysql-core/session.js +1 -2
  617. package/mysql-core/session.js.map +1 -1
  618. package/mysql-core/table.cjs +1 -1
  619. package/mysql-core/table.cjs.map +1 -1
  620. package/mysql-core/table.js +1 -1
  621. package/mysql-core/table.js.map +1 -1
  622. package/mysql-proxy/driver.cjs +5 -2
  623. package/mysql-proxy/driver.cjs.map +1 -1
  624. package/mysql-proxy/driver.js +5 -2
  625. package/mysql-proxy/driver.js.map +1 -1
  626. package/mysql-proxy/session.cjs +25 -18
  627. package/mysql-proxy/session.cjs.map +1 -1
  628. package/mysql-proxy/session.d.cts +11 -4
  629. package/mysql-proxy/session.d.ts +12 -5
  630. package/mysql-proxy/session.js +26 -19
  631. package/mysql-proxy/session.js.map +1 -1
  632. package/mysql2/driver.cjs +3 -2
  633. package/mysql2/driver.cjs.map +1 -1
  634. package/mysql2/driver.d.cts +1 -0
  635. package/mysql2/driver.d.ts +3 -2
  636. package/mysql2/driver.js +3 -2
  637. package/mysql2/driver.js.map +1 -1
  638. package/mysql2/session.cjs +48 -38
  639. package/mysql2/session.cjs.map +1 -1
  640. package/mysql2/session.d.cts +11 -4
  641. package/mysql2/session.d.ts +12 -5
  642. package/mysql2/session.js +49 -39
  643. package/mysql2/session.js.map +1 -1
  644. package/neon-http/driver.cjs +34 -65
  645. package/neon-http/driver.cjs.map +1 -1
  646. package/neon-http/driver.d.cts +15 -19
  647. package/neon-http/driver.d.ts +16 -20
  648. package/neon-http/driver.js +34 -64
  649. package/neon-http/driver.js.map +1 -1
  650. package/neon-http/index.cjs +2 -4
  651. package/neon-http/index.d.cts +3 -3
  652. package/neon-http/index.d.ts +3 -3
  653. package/neon-http/index.js +3 -3
  654. package/neon-http/migrator.cjs +1 -1
  655. package/neon-http/migrator.cjs.map +1 -1
  656. package/neon-http/migrator.d.cts +1 -1
  657. package/neon-http/migrator.d.ts +1 -1
  658. package/neon-http/migrator.js +1 -1
  659. package/neon-http/migrator.js.map +1 -1
  660. package/neon-http/session.cjs +27 -116
  661. package/neon-http/session.cjs.map +1 -1
  662. package/neon-http/session.d.cts +10 -38
  663. package/neon-http/session.d.ts +10 -38
  664. package/neon-http/session.js +29 -116
  665. package/neon-http/session.js.map +1 -1
  666. package/neon-serverless/driver.cjs +14 -32
  667. package/neon-serverless/driver.cjs.map +1 -1
  668. package/neon-serverless/driver.d.cts +12 -17
  669. package/neon-serverless/driver.d.ts +13 -18
  670. package/neon-serverless/driver.js +14 -31
  671. package/neon-serverless/driver.js.map +1 -1
  672. package/neon-serverless/index.cjs +2 -3
  673. package/neon-serverless/index.d.cts +3 -3
  674. package/neon-serverless/index.d.ts +3 -3
  675. package/neon-serverless/index.js +3 -3
  676. package/neon-serverless/migrator.cjs.map +1 -1
  677. package/neon-serverless/migrator.d.cts +1 -1
  678. package/neon-serverless/migrator.d.ts +1 -1
  679. package/neon-serverless/migrator.js.map +1 -1
  680. package/neon-serverless/session.cjs +32 -108
  681. package/neon-serverless/session.cjs.map +1 -1
  682. package/neon-serverless/session.d.cts +9 -32
  683. package/neon-serverless/session.d.ts +9 -32
  684. package/neon-serverless/session.js +34 -109
  685. package/neon-serverless/session.js.map +1 -1
  686. package/netlify-db/driver.cjs +36 -43
  687. package/netlify-db/driver.cjs.map +1 -1
  688. package/netlify-db/driver.d.cts +29 -29
  689. package/netlify-db/driver.d.ts +31 -31
  690. package/netlify-db/driver.js +35 -42
  691. package/netlify-db/driver.js.map +1 -1
  692. package/netlify-db/index.cjs +3 -2
  693. package/netlify-db/index.d.cts +3 -3
  694. package/netlify-db/index.d.ts +3 -3
  695. package/netlify-db/index.js +2 -2
  696. package/netlify-db/migrator.cjs.map +1 -1
  697. package/netlify-db/migrator.d.cts +1 -1
  698. package/netlify-db/migrator.d.ts +1 -1
  699. package/netlify-db/migrator.js.map +1 -1
  700. package/netlify-db/session.cjs +61 -39
  701. package/netlify-db/session.cjs.map +1 -1
  702. package/netlify-db/session.d.cts +22 -23
  703. package/netlify-db/session.d.ts +23 -24
  704. package/netlify-db/session.js +63 -41
  705. package/netlify-db/session.js.map +1 -1
  706. package/node-mssql/driver.cjs +9 -3
  707. package/node-mssql/driver.cjs.map +1 -1
  708. package/node-mssql/driver.d.cts +1 -0
  709. package/node-mssql/driver.d.ts +2 -1
  710. package/node-mssql/driver.js +9 -3
  711. package/node-mssql/driver.js.map +1 -1
  712. package/node-mssql/session.cjs +6 -4
  713. package/node-mssql/session.cjs.map +1 -1
  714. package/node-mssql/session.d.cts +4 -1
  715. package/node-mssql/session.d.ts +5 -2
  716. package/node-mssql/session.js +7 -5
  717. package/node-mssql/session.js.map +1 -1
  718. package/node-postgres/driver.cjs +15 -18
  719. package/node-postgres/driver.cjs.map +1 -1
  720. package/node-postgres/driver.d.cts +11 -6
  721. package/node-postgres/driver.d.ts +12 -7
  722. package/node-postgres/driver.js +15 -18
  723. package/node-postgres/driver.js.map +1 -1
  724. package/node-postgres/index.cjs +2 -2
  725. package/node-postgres/index.d.cts +3 -3
  726. package/node-postgres/index.d.ts +3 -3
  727. package/node-postgres/index.js +3 -3
  728. package/node-postgres/migrator.cjs.map +1 -1
  729. package/node-postgres/migrator.d.cts +1 -1
  730. package/node-postgres/migrator.d.ts +1 -1
  731. package/node-postgres/migrator.js.map +1 -1
  732. package/node-postgres/session.cjs +32 -125
  733. package/node-postgres/session.cjs.map +1 -1
  734. package/node-postgres/session.d.cts +10 -30
  735. package/node-postgres/session.d.ts +9 -29
  736. package/node-postgres/session.js +34 -126
  737. package/node-postgres/session.js.map +1 -1
  738. package/node-sqlite/driver.cjs +1 -1
  739. package/node-sqlite/driver.d.ts +1 -1
  740. package/node-sqlite/driver.js +1 -1
  741. package/node-sqlite/session.cjs +4 -9
  742. package/node-sqlite/session.cjs.map +1 -1
  743. package/node-sqlite/session.d.cts +3 -4
  744. package/node-sqlite/session.d.ts +4 -5
  745. package/node-sqlite/session.js +4 -9
  746. package/node-sqlite/session.js.map +1 -1
  747. package/op-sqlite/driver.cjs +3 -2
  748. package/op-sqlite/driver.cjs.map +1 -1
  749. package/op-sqlite/driver.d.ts +1 -1
  750. package/op-sqlite/driver.js +3 -2
  751. package/op-sqlite/driver.js.map +1 -1
  752. package/op-sqlite/session.cjs +17 -15
  753. package/op-sqlite/session.cjs.map +1 -1
  754. package/op-sqlite/session.d.cts +10 -6
  755. package/op-sqlite/session.d.ts +10 -6
  756. package/op-sqlite/session.js +18 -16
  757. package/op-sqlite/session.js.map +1 -1
  758. package/operations.d.cts +3 -0
  759. package/operations.d.ts +3 -0
  760. package/package.json +43 -31
  761. package/pg-core/{utils/array.cjs → array.cjs} +1 -1
  762. package/pg-core/array.cjs.map +1 -0
  763. package/pg-core/{utils/array.d.cts → array.d.cts} +1 -1
  764. package/pg-core/{utils/array.d.ts → array.d.ts} +1 -1
  765. package/pg-core/{utils/array.js → array.js} +1 -1
  766. package/pg-core/array.js.map +1 -0
  767. package/pg-core/async/count.cjs +2 -9
  768. package/pg-core/async/count.cjs.map +1 -1
  769. package/pg-core/async/count.js +2 -9
  770. package/pg-core/async/count.js.map +1 -1
  771. package/pg-core/async/db.cjs +8 -28
  772. package/pg-core/async/db.cjs.map +1 -1
  773. package/pg-core/async/db.d.cts +5 -13
  774. package/pg-core/async/db.d.ts +6 -14
  775. package/pg-core/async/db.js +8 -28
  776. package/pg-core/async/db.js.map +1 -1
  777. package/pg-core/async/delete.cjs +7 -12
  778. package/pg-core/async/delete.cjs.map +1 -1
  779. package/pg-core/async/delete.js +7 -12
  780. package/pg-core/async/delete.js.map +1 -1
  781. package/pg-core/async/insert.cjs +7 -12
  782. package/pg-core/async/insert.cjs.map +1 -1
  783. package/pg-core/async/insert.js +7 -12
  784. package/pg-core/async/insert.js.map +1 -1
  785. package/pg-core/async/query.cjs +8 -14
  786. package/pg-core/async/query.cjs.map +1 -1
  787. package/pg-core/async/query.js +8 -14
  788. package/pg-core/async/query.js.map +1 -1
  789. package/pg-core/async/refresh-materialized-view.cjs +1 -9
  790. package/pg-core/async/refresh-materialized-view.cjs.map +1 -1
  791. package/pg-core/async/refresh-materialized-view.js +1 -9
  792. package/pg-core/async/refresh-materialized-view.js.map +1 -1
  793. package/pg-core/async/select.cjs +4 -13
  794. package/pg-core/async/select.cjs.map +1 -1
  795. package/pg-core/async/select.js +4 -13
  796. package/pg-core/async/select.js.map +1 -1
  797. package/pg-core/async/session.cjs +44 -20
  798. package/pg-core/async/session.cjs.map +1 -1
  799. package/pg-core/async/session.d.cts +25 -31
  800. package/pg-core/async/session.d.ts +26 -32
  801. package/pg-core/async/session.js +45 -21
  802. package/pg-core/async/session.js.map +1 -1
  803. package/pg-core/async/update.cjs +11 -15
  804. package/pg-core/async/update.cjs.map +1 -1
  805. package/pg-core/async/update.js +11 -15
  806. package/pg-core/async/update.js.map +1 -1
  807. package/pg-core/codecs.cjs +156 -0
  808. package/pg-core/codecs.cjs.map +1 -0
  809. package/pg-core/codecs.d.cts +27 -0
  810. package/pg-core/codecs.d.ts +27 -0
  811. package/pg-core/codecs.js +148 -0
  812. package/pg-core/codecs.js.map +1 -0
  813. package/pg-core/columns/bigint.cjs +10 -9
  814. package/pg-core/columns/bigint.cjs.map +1 -1
  815. package/pg-core/columns/bigint.d.cts +2 -3
  816. package/pg-core/columns/bigint.d.ts +2 -3
  817. package/pg-core/columns/bigint.js +10 -9
  818. package/pg-core/columns/bigint.js.map +1 -1
  819. package/pg-core/columns/bigserial.cjs +6 -6
  820. package/pg-core/columns/bigserial.cjs.map +1 -1
  821. package/pg-core/columns/bigserial.d.cts +1 -2
  822. package/pg-core/columns/bigserial.d.ts +1 -2
  823. package/pg-core/columns/bigserial.js +6 -6
  824. package/pg-core/columns/bigserial.js.map +1 -1
  825. package/pg-core/columns/boolean.cjs +2 -0
  826. package/pg-core/columns/boolean.cjs.map +1 -1
  827. package/pg-core/columns/boolean.js +2 -0
  828. package/pg-core/columns/boolean.js.map +1 -1
  829. package/pg-core/columns/bytea.cjs +2 -8
  830. package/pg-core/columns/bytea.cjs.map +1 -1
  831. package/pg-core/columns/bytea.d.cts +0 -1
  832. package/pg-core/columns/bytea.d.ts +0 -1
  833. package/pg-core/columns/bytea.js +2 -8
  834. package/pg-core/columns/bytea.js.map +1 -1
  835. package/pg-core/columns/char.cjs +2 -0
  836. package/pg-core/columns/char.cjs.map +1 -1
  837. package/pg-core/columns/char.js +2 -0
  838. package/pg-core/columns/char.js.map +1 -1
  839. package/pg-core/columns/cidr.cjs +2 -0
  840. package/pg-core/columns/cidr.cjs.map +1 -1
  841. package/pg-core/columns/cidr.js +2 -0
  842. package/pg-core/columns/cidr.js.map +1 -1
  843. package/pg-core/columns/common.cjs +10 -8
  844. package/pg-core/columns/common.cjs.map +1 -1
  845. package/pg-core/columns/common.d.cts +34 -39
  846. package/pg-core/columns/common.d.ts +34 -39
  847. package/pg-core/columns/common.js +10 -8
  848. package/pg-core/columns/common.js.map +1 -1
  849. package/pg-core/columns/custom.cjs +16 -46
  850. package/pg-core/columns/custom.cjs.map +1 -1
  851. package/pg-core/columns/custom.d.cts +17 -8
  852. package/pg-core/columns/custom.d.ts +17 -8
  853. package/pg-core/columns/custom.js +16 -46
  854. package/pg-core/columns/custom.js.map +1 -1
  855. package/pg-core/columns/date.cjs +11 -12
  856. package/pg-core/columns/date.cjs.map +1 -1
  857. package/pg-core/columns/date.d.cts +3 -4
  858. package/pg-core/columns/date.d.ts +3 -4
  859. package/pg-core/columns/date.js +11 -12
  860. package/pg-core/columns/date.js.map +1 -1
  861. package/pg-core/columns/double-precision.cjs +2 -4
  862. package/pg-core/columns/double-precision.cjs.map +1 -1
  863. package/pg-core/columns/double-precision.d.cts +0 -1
  864. package/pg-core/columns/double-precision.d.ts +0 -1
  865. package/pg-core/columns/double-precision.js +2 -4
  866. package/pg-core/columns/double-precision.js.map +1 -1
  867. package/pg-core/columns/enum.cjs +4 -0
  868. package/pg-core/columns/enum.cjs.map +1 -1
  869. package/pg-core/columns/enum.js +4 -0
  870. package/pg-core/columns/enum.js.map +1 -1
  871. package/pg-core/columns/index.d.cts +2 -2
  872. package/pg-core/columns/index.d.ts +2 -2
  873. package/pg-core/columns/inet.cjs +2 -0
  874. package/pg-core/columns/inet.cjs.map +1 -1
  875. package/pg-core/columns/inet.js +2 -0
  876. package/pg-core/columns/inet.js.map +1 -1
  877. package/pg-core/columns/integer.cjs +2 -4
  878. package/pg-core/columns/integer.cjs.map +1 -1
  879. package/pg-core/columns/integer.d.cts +0 -1
  880. package/pg-core/columns/integer.d.ts +0 -1
  881. package/pg-core/columns/integer.js +2 -4
  882. package/pg-core/columns/integer.js.map +1 -1
  883. package/pg-core/columns/interval.cjs +2 -0
  884. package/pg-core/columns/interval.cjs.map +1 -1
  885. package/pg-core/columns/interval.js +2 -0
  886. package/pg-core/columns/interval.js.map +1 -1
  887. package/pg-core/columns/json.cjs +2 -11
  888. package/pg-core/columns/json.cjs.map +1 -1
  889. package/pg-core/columns/json.d.cts +0 -2
  890. package/pg-core/columns/json.d.ts +0 -2
  891. package/pg-core/columns/json.js +2 -11
  892. package/pg-core/columns/json.js.map +1 -1
  893. package/pg-core/columns/jsonb.cjs +2 -11
  894. package/pg-core/columns/jsonb.cjs.map +1 -1
  895. package/pg-core/columns/jsonb.d.cts +0 -2
  896. package/pg-core/columns/jsonb.d.ts +0 -2
  897. package/pg-core/columns/jsonb.js +2 -11
  898. package/pg-core/columns/jsonb.js.map +1 -1
  899. package/pg-core/columns/line.cjs +12 -8
  900. package/pg-core/columns/line.cjs.map +1 -1
  901. package/pg-core/columns/line.d.cts +5 -5
  902. package/pg-core/columns/line.d.ts +5 -5
  903. package/pg-core/columns/line.js +12 -8
  904. package/pg-core/columns/line.js.map +1 -1
  905. package/pg-core/columns/macaddr.cjs +2 -0
  906. package/pg-core/columns/macaddr.cjs.map +1 -1
  907. package/pg-core/columns/macaddr.js +2 -0
  908. package/pg-core/columns/macaddr.js.map +1 -1
  909. package/pg-core/columns/macaddr8.cjs +2 -0
  910. package/pg-core/columns/macaddr8.cjs.map +1 -1
  911. package/pg-core/columns/macaddr8.js +2 -0
  912. package/pg-core/columns/macaddr8.js.map +1 -1
  913. package/pg-core/columns/numeric.cjs +12 -15
  914. package/pg-core/columns/numeric.cjs.map +1 -1
  915. package/pg-core/columns/numeric.d.cts +4 -5
  916. package/pg-core/columns/numeric.d.ts +4 -5
  917. package/pg-core/columns/numeric.js +12 -15
  918. package/pg-core/columns/numeric.js.map +1 -1
  919. package/pg-core/columns/point.cjs +19 -21
  920. package/pg-core/columns/point.cjs.map +1 -1
  921. package/pg-core/columns/point.d.cts +5 -11
  922. package/pg-core/columns/point.d.ts +5 -11
  923. package/pg-core/columns/point.js +19 -21
  924. package/pg-core/columns/point.js.map +1 -1
  925. package/pg-core/columns/postgis_extension/geometry.cjs +12 -9
  926. package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -1
  927. package/pg-core/columns/postgis_extension/geometry.d.cts +5 -5
  928. package/pg-core/columns/postgis_extension/geometry.d.ts +5 -5
  929. package/pg-core/columns/postgis_extension/geometry.js +12 -9
  930. package/pg-core/columns/postgis_extension/geometry.js.map +1 -1
  931. package/pg-core/columns/real.cjs +2 -4
  932. package/pg-core/columns/real.cjs.map +1 -1
  933. package/pg-core/columns/real.d.cts +0 -1
  934. package/pg-core/columns/real.d.ts +0 -1
  935. package/pg-core/columns/real.js +2 -4
  936. package/pg-core/columns/real.js.map +1 -1
  937. package/pg-core/columns/serial.cjs +2 -0
  938. package/pg-core/columns/serial.cjs.map +1 -1
  939. package/pg-core/columns/serial.js +2 -0
  940. package/pg-core/columns/serial.js.map +1 -1
  941. package/pg-core/columns/smallint.cjs +2 -4
  942. package/pg-core/columns/smallint.cjs.map +1 -1
  943. package/pg-core/columns/smallint.d.cts +0 -1
  944. package/pg-core/columns/smallint.d.ts +0 -1
  945. package/pg-core/columns/smallint.js +2 -4
  946. package/pg-core/columns/smallint.js.map +1 -1
  947. package/pg-core/columns/smallserial.cjs +2 -0
  948. package/pg-core/columns/smallserial.cjs.map +1 -1
  949. package/pg-core/columns/smallserial.js +2 -0
  950. package/pg-core/columns/smallserial.js.map +1 -1
  951. package/pg-core/columns/text.cjs +2 -0
  952. package/pg-core/columns/text.cjs.map +1 -1
  953. package/pg-core/columns/text.js +2 -0
  954. package/pg-core/columns/text.js.map +1 -1
  955. package/pg-core/columns/time.cjs +2 -0
  956. package/pg-core/columns/time.cjs.map +1 -1
  957. package/pg-core/columns/time.js +2 -0
  958. package/pg-core/columns/time.js.map +1 -1
  959. package/pg-core/columns/timestamp.cjs +13 -14
  960. package/pg-core/columns/timestamp.cjs.map +1 -1
  961. package/pg-core/columns/timestamp.d.cts +3 -4
  962. package/pg-core/columns/timestamp.d.ts +3 -4
  963. package/pg-core/columns/timestamp.js +13 -14
  964. package/pg-core/columns/timestamp.js.map +1 -1
  965. package/pg-core/columns/uuid.cjs +2 -0
  966. package/pg-core/columns/uuid.cjs.map +1 -1
  967. package/pg-core/columns/uuid.js +2 -0
  968. package/pg-core/columns/uuid.js.map +1 -1
  969. package/pg-core/columns/varchar.cjs +2 -0
  970. package/pg-core/columns/varchar.cjs.map +1 -1
  971. package/pg-core/columns/varchar.js +2 -0
  972. package/pg-core/columns/varchar.js.map +1 -1
  973. package/pg-core/columns/vector_extension/bit.cjs +2 -0
  974. package/pg-core/columns/vector_extension/bit.cjs.map +1 -1
  975. package/pg-core/columns/vector_extension/bit.js +2 -0
  976. package/pg-core/columns/vector_extension/bit.js.map +1 -1
  977. package/pg-core/columns/vector_extension/halfvec.cjs +6 -4
  978. package/pg-core/columns/vector_extension/halfvec.cjs.map +1 -1
  979. package/pg-core/columns/vector_extension/halfvec.d.cts +2 -2
  980. package/pg-core/columns/vector_extension/halfvec.d.ts +2 -2
  981. package/pg-core/columns/vector_extension/halfvec.js +6 -4
  982. package/pg-core/columns/vector_extension/halfvec.js.map +1 -1
  983. package/pg-core/columns/vector_extension/sparsevec.cjs +2 -0
  984. package/pg-core/columns/vector_extension/sparsevec.cjs.map +1 -1
  985. package/pg-core/columns/vector_extension/sparsevec.js +2 -0
  986. package/pg-core/columns/vector_extension/sparsevec.js.map +1 -1
  987. package/pg-core/columns/vector_extension/vector.cjs +6 -4
  988. package/pg-core/columns/vector_extension/vector.cjs.map +1 -1
  989. package/pg-core/columns/vector_extension/vector.d.cts +2 -2
  990. package/pg-core/columns/vector_extension/vector.d.ts +2 -2
  991. package/pg-core/columns/vector_extension/vector.js +6 -4
  992. package/pg-core/columns/vector_extension/vector.js.map +1 -1
  993. package/pg-core/dialect.cjs +73 -226
  994. package/pg-core/dialect.cjs.map +1 -1
  995. package/pg-core/dialect.d.cts +27 -34
  996. package/pg-core/dialect.d.ts +27 -34
  997. package/pg-core/dialect.js +78 -230
  998. package/pg-core/dialect.js.map +1 -1
  999. package/pg-core/effect/count.cjs +1 -1
  1000. package/pg-core/effect/count.cjs.map +1 -1
  1001. package/pg-core/effect/count.d.cts +2 -2
  1002. package/pg-core/effect/count.d.ts +2 -2
  1003. package/pg-core/effect/count.js +1 -1
  1004. package/pg-core/effect/count.js.map +1 -1
  1005. package/pg-core/effect/db.cjs +9 -18
  1006. package/pg-core/effect/db.cjs.map +1 -1
  1007. package/pg-core/effect/db.d.cts +7 -11
  1008. package/pg-core/effect/db.d.ts +6 -10
  1009. package/pg-core/effect/db.js +9 -18
  1010. package/pg-core/effect/db.js.map +1 -1
  1011. package/pg-core/effect/delete.cjs +7 -5
  1012. package/pg-core/effect/delete.cjs.map +1 -1
  1013. package/pg-core/effect/delete.d.cts +1 -1
  1014. package/pg-core/effect/delete.d.ts +1 -1
  1015. package/pg-core/effect/delete.js +7 -5
  1016. package/pg-core/effect/delete.js.map +1 -1
  1017. package/pg-core/effect/insert.cjs +7 -5
  1018. package/pg-core/effect/insert.cjs.map +1 -1
  1019. package/pg-core/effect/insert.d.cts +1 -1
  1020. package/pg-core/effect/insert.d.ts +1 -1
  1021. package/pg-core/effect/insert.js +7 -5
  1022. package/pg-core/effect/insert.js.map +1 -1
  1023. package/pg-core/effect/query.cjs +7 -6
  1024. package/pg-core/effect/query.cjs.map +1 -1
  1025. package/pg-core/effect/query.d.cts +1 -1
  1026. package/pg-core/effect/query.d.ts +1 -1
  1027. package/pg-core/effect/query.js +7 -6
  1028. package/pg-core/effect/query.js.map +1 -1
  1029. package/pg-core/effect/refresh-materialized-view.cjs +1 -2
  1030. package/pg-core/effect/refresh-materialized-view.cjs.map +1 -1
  1031. package/pg-core/effect/refresh-materialized-view.d.cts +1 -1
  1032. package/pg-core/effect/refresh-materialized-view.d.ts +1 -1
  1033. package/pg-core/effect/refresh-materialized-view.js +1 -2
  1034. package/pg-core/effect/refresh-materialized-view.js.map +1 -1
  1035. package/pg-core/effect/select.cjs +3 -5
  1036. package/pg-core/effect/select.cjs.map +1 -1
  1037. package/pg-core/effect/select.d.cts +1 -1
  1038. package/pg-core/effect/select.d.ts +1 -1
  1039. package/pg-core/effect/select.js +3 -5
  1040. package/pg-core/effect/select.js.map +1 -1
  1041. package/pg-core/effect/session.cjs +28 -17
  1042. package/pg-core/effect/session.cjs.map +1 -1
  1043. package/pg-core/effect/session.d.cts +24 -28
  1044. package/pg-core/effect/session.d.ts +25 -29
  1045. package/pg-core/effect/session.js +29 -18
  1046. package/pg-core/effect/session.js.map +1 -1
  1047. package/pg-core/effect/update.cjs +8 -8
  1048. package/pg-core/effect/update.cjs.map +1 -1
  1049. package/pg-core/effect/update.d.cts +1 -1
  1050. package/pg-core/effect/update.d.ts +1 -1
  1051. package/pg-core/effect/update.js +8 -8
  1052. package/pg-core/effect/update.js.map +1 -1
  1053. package/pg-core/index.cjs +4 -4
  1054. package/pg-core/index.d.cts +4 -4
  1055. package/pg-core/index.d.ts +4 -4
  1056. package/pg-core/index.js +1 -1
  1057. package/pg-core/query-builders/delete.cjs +6 -2
  1058. package/pg-core/query-builders/delete.cjs.map +1 -1
  1059. package/pg-core/query-builders/delete.d.cts +2 -0
  1060. package/pg-core/query-builders/delete.d.ts +2 -0
  1061. package/pg-core/query-builders/delete.js +6 -2
  1062. package/pg-core/query-builders/delete.js.map +1 -1
  1063. package/pg-core/query-builders/insert.cjs +7 -2
  1064. package/pg-core/query-builders/insert.cjs.map +1 -1
  1065. package/pg-core/query-builders/insert.d.cts +2 -0
  1066. package/pg-core/query-builders/insert.d.ts +2 -0
  1067. package/pg-core/query-builders/insert.js +7 -2
  1068. package/pg-core/query-builders/insert.js.map +1 -1
  1069. package/pg-core/query-builders/query-builder.cjs +2 -1
  1070. package/pg-core/query-builders/query-builder.cjs.map +1 -1
  1071. package/pg-core/query-builders/query-builder.js +2 -1
  1072. package/pg-core/query-builders/query-builder.js.map +1 -1
  1073. package/pg-core/query-builders/query.cjs +0 -1
  1074. package/pg-core/query-builders/query.cjs.map +1 -1
  1075. package/pg-core/query-builders/query.d.cts +2 -1
  1076. package/pg-core/query-builders/query.d.ts +2 -1
  1077. package/pg-core/query-builders/query.js +0 -1
  1078. package/pg-core/query-builders/query.js.map +1 -1
  1079. package/pg-core/query-builders/raw.cjs +0 -4
  1080. package/pg-core/query-builders/raw.cjs.map +1 -1
  1081. package/pg-core/query-builders/raw.js +0 -4
  1082. package/pg-core/query-builders/raw.js.map +1 -1
  1083. package/pg-core/query-builders/select.cjs +6 -2
  1084. package/pg-core/query-builders/select.cjs.map +1 -1
  1085. package/pg-core/query-builders/select.d.cts +1 -0
  1086. package/pg-core/query-builders/select.d.ts +1 -0
  1087. package/pg-core/query-builders/select.js +6 -2
  1088. package/pg-core/query-builders/select.js.map +1 -1
  1089. package/pg-core/query-builders/select.types.d.cts +1 -0
  1090. package/pg-core/query-builders/select.types.d.ts +1 -0
  1091. package/pg-core/query-builders/update.cjs +6 -2
  1092. package/pg-core/query-builders/update.cjs.map +1 -1
  1093. package/pg-core/query-builders/update.d.cts +2 -0
  1094. package/pg-core/query-builders/update.d.ts +2 -0
  1095. package/pg-core/query-builders/update.js +6 -2
  1096. package/pg-core/query-builders/update.js.map +1 -1
  1097. package/pg-core/session.cjs +3 -5
  1098. package/pg-core/session.cjs.map +1 -1
  1099. package/pg-core/session.d.cts +4 -7
  1100. package/pg-core/session.d.ts +4 -7
  1101. package/pg-core/session.js +3 -5
  1102. package/pg-core/session.js.map +1 -1
  1103. package/pg-core/table.cjs +1 -1
  1104. package/pg-core/table.cjs.map +1 -1
  1105. package/pg-core/table.js +1 -1
  1106. package/pg-core/table.js.map +1 -1
  1107. package/pg-core/utils.cjs.map +1 -1
  1108. package/pg-core/utils.d.cts +7 -1
  1109. package/pg-core/utils.d.ts +7 -1
  1110. package/pg-core/utils.js.map +1 -1
  1111. package/pg-core/view.cjs +2 -2
  1112. package/pg-core/view.cjs.map +1 -1
  1113. package/pg-core/view.js +2 -2
  1114. package/pg-core/view.js.map +1 -1
  1115. package/pg-proxy/driver.cjs +10 -15
  1116. package/pg-proxy/driver.cjs.map +1 -1
  1117. package/pg-proxy/driver.d.cts +6 -3
  1118. package/pg-proxy/driver.d.ts +6 -3
  1119. package/pg-proxy/driver.js +10 -14
  1120. package/pg-proxy/driver.js.map +1 -1
  1121. package/pg-proxy/index.cjs +0 -2
  1122. package/pg-proxy/index.d.cts +2 -2
  1123. package/pg-proxy/index.d.ts +2 -2
  1124. package/pg-proxy/index.js +2 -2
  1125. package/pg-proxy/migrator.cjs.map +1 -1
  1126. package/pg-proxy/migrator.d.cts +1 -1
  1127. package/pg-proxy/migrator.d.ts +1 -1
  1128. package/pg-proxy/migrator.js.map +1 -1
  1129. package/pg-proxy/session.cjs +8 -84
  1130. package/pg-proxy/session.cjs.map +1 -1
  1131. package/pg-proxy/session.d.cts +9 -32
  1132. package/pg-proxy/session.d.ts +9 -32
  1133. package/pg-proxy/session.js +10 -84
  1134. package/pg-proxy/session.js.map +1 -1
  1135. package/pglite/driver.cjs +71 -33
  1136. package/pglite/driver.cjs.map +1 -1
  1137. package/pglite/driver.d.cts +12 -17
  1138. package/pglite/driver.d.ts +13 -18
  1139. package/pglite/driver.js +71 -32
  1140. package/pglite/driver.js.map +1 -1
  1141. package/pglite/index.cjs +2 -3
  1142. package/pglite/index.d.cts +3 -3
  1143. package/pglite/index.d.ts +3 -3
  1144. package/pglite/index.js +3 -3
  1145. package/pglite/migrator.cjs.map +1 -1
  1146. package/pglite/migrator.d.cts +1 -1
  1147. package/pglite/migrator.d.ts +1 -1
  1148. package/pglite/migrator.js.map +1 -1
  1149. package/pglite/session.cjs +24 -85
  1150. package/pglite/session.cjs.map +1 -1
  1151. package/pglite/session.d.cts +9 -30
  1152. package/pglite/session.d.ts +9 -30
  1153. package/pglite/session.js +26 -86
  1154. package/pglite/session.js.map +1 -1
  1155. package/planetscale-serverless/driver.cjs +3 -2
  1156. package/planetscale-serverless/driver.cjs.map +1 -1
  1157. package/planetscale-serverless/driver.d.cts +1 -0
  1158. package/planetscale-serverless/driver.d.ts +1 -0
  1159. package/planetscale-serverless/driver.js +3 -2
  1160. package/planetscale-serverless/driver.js.map +1 -1
  1161. package/planetscale-serverless/session.cjs +26 -19
  1162. package/planetscale-serverless/session.cjs.map +1 -1
  1163. package/planetscale-serverless/session.d.cts +12 -6
  1164. package/planetscale-serverless/session.d.ts +13 -7
  1165. package/planetscale-serverless/session.js +27 -20
  1166. package/planetscale-serverless/session.js.map +1 -1
  1167. package/postgres-js/driver.cjs +124 -19
  1168. package/postgres-js/driver.cjs.map +1 -1
  1169. package/postgres-js/driver.d.cts +10 -6
  1170. package/postgres-js/driver.d.ts +10 -6
  1171. package/postgres-js/driver.js +124 -19
  1172. package/postgres-js/driver.js.map +1 -1
  1173. package/postgres-js/index.cjs +2 -2
  1174. package/postgres-js/index.d.cts +3 -3
  1175. package/postgres-js/index.d.ts +3 -3
  1176. package/postgres-js/index.js +3 -3
  1177. package/postgres-js/migrator.cjs.map +1 -1
  1178. package/postgres-js/migrator.d.cts +1 -1
  1179. package/postgres-js/migrator.d.ts +1 -1
  1180. package/postgres-js/migrator.js.map +1 -1
  1181. package/postgres-js/session.cjs +16 -111
  1182. package/postgres-js/session.cjs.map +1 -1
  1183. package/postgres-js/session.d.cts +10 -31
  1184. package/postgres-js/session.d.ts +9 -30
  1185. package/postgres-js/session.js +17 -111
  1186. package/postgres-js/session.js.map +1 -1
  1187. package/prisma/mysql/session.cjs +2 -1
  1188. package/prisma/mysql/session.cjs.map +1 -1
  1189. package/prisma/mysql/session.d.cts +1 -0
  1190. package/prisma/mysql/session.d.ts +2 -1
  1191. package/prisma/mysql/session.js +2 -1
  1192. package/prisma/mysql/session.js.map +1 -1
  1193. package/prisma/pg/driver.cjs +9 -3
  1194. package/prisma/pg/driver.cjs.map +1 -1
  1195. package/prisma/pg/driver.d.cts +7 -3
  1196. package/prisma/pg/driver.d.ts +7 -3
  1197. package/prisma/pg/driver.js +9 -4
  1198. package/prisma/pg/driver.js.map +1 -1
  1199. package/prisma/pg/index.cjs +2 -2
  1200. package/prisma/pg/index.d.cts +3 -3
  1201. package/prisma/pg/index.d.ts +3 -3
  1202. package/prisma/pg/index.js +3 -3
  1203. package/prisma/pg/session.cjs +1 -25
  1204. package/prisma/pg/session.cjs.map +1 -1
  1205. package/prisma/pg/session.d.cts +3 -15
  1206. package/prisma/pg/session.d.ts +2 -14
  1207. package/prisma/pg/session.js +2 -25
  1208. package/prisma/pg/session.js.map +1 -1
  1209. package/prisma/sqlite/session.cjs +0 -3
  1210. package/prisma/sqlite/session.cjs.map +1 -1
  1211. package/prisma/sqlite/session.d.cts +0 -1
  1212. package/prisma/sqlite/session.d.ts +1 -2
  1213. package/prisma/sqlite/session.js +0 -3
  1214. package/prisma/sqlite/session.js.map +1 -1
  1215. package/query-builders/query-builder.cjs +4 -0
  1216. package/query-builders/query-builder.cjs.map +1 -1
  1217. package/query-builders/query-builder.js +4 -0
  1218. package/query-builders/query-builder.js.map +1 -1
  1219. package/relations.cjs +84 -23
  1220. package/relations.cjs.map +1 -1
  1221. package/relations.d.cts +41 -16
  1222. package/relations.d.ts +41 -16
  1223. package/relations.js +83 -24
  1224. package/relations.js.map +1 -1
  1225. package/row-mappers/index.cjs +1 -1
  1226. package/row-mappers/index.cjs.map +1 -1
  1227. package/row-mappers/index.js +1 -1
  1228. package/row-mappers/index.js.map +1 -1
  1229. package/singlestore/driver.cjs +4 -2
  1230. package/singlestore/driver.cjs.map +1 -1
  1231. package/singlestore/driver.d.cts +2 -1
  1232. package/singlestore/driver.d.ts +3 -2
  1233. package/singlestore/driver.js +4 -2
  1234. package/singlestore/driver.js.map +1 -1
  1235. package/singlestore/session.cjs +16 -6
  1236. package/singlestore/session.cjs.map +1 -1
  1237. package/singlestore/session.d.cts +8 -4
  1238. package/singlestore/session.d.ts +8 -4
  1239. package/singlestore/session.js +17 -7
  1240. package/singlestore/session.js.map +1 -1
  1241. package/singlestore-core/columns/bigint.cjs +4 -4
  1242. package/singlestore-core/columns/bigint.cjs.map +1 -1
  1243. package/singlestore-core/columns/bigint.d.cts +2 -2
  1244. package/singlestore-core/columns/bigint.d.ts +2 -2
  1245. package/singlestore-core/columns/bigint.js +4 -4
  1246. package/singlestore-core/columns/bigint.js.map +1 -1
  1247. package/singlestore-core/columns/binary.cjs +2 -2
  1248. package/singlestore-core/columns/binary.cjs.map +1 -1
  1249. package/singlestore-core/columns/binary.d.cts +1 -1
  1250. package/singlestore-core/columns/binary.d.ts +1 -1
  1251. package/singlestore-core/columns/binary.js +2 -2
  1252. package/singlestore-core/columns/binary.js.map +1 -1
  1253. package/singlestore-core/columns/boolean.cjs +2 -2
  1254. package/singlestore-core/columns/boolean.cjs.map +1 -1
  1255. package/singlestore-core/columns/boolean.d.cts +1 -1
  1256. package/singlestore-core/columns/boolean.d.ts +1 -1
  1257. package/singlestore-core/columns/boolean.js +2 -2
  1258. package/singlestore-core/columns/boolean.js.map +1 -1
  1259. package/singlestore-core/columns/custom.cjs +4 -4
  1260. package/singlestore-core/columns/custom.cjs.map +1 -1
  1261. package/singlestore-core/columns/custom.d.cts +2 -2
  1262. package/singlestore-core/columns/custom.d.ts +2 -2
  1263. package/singlestore-core/columns/custom.js +4 -4
  1264. package/singlestore-core/columns/custom.js.map +1 -1
  1265. package/singlestore-core/columns/date.cjs +2 -2
  1266. package/singlestore-core/columns/date.cjs.map +1 -1
  1267. package/singlestore-core/columns/date.d.cts +1 -1
  1268. package/singlestore-core/columns/date.d.ts +1 -1
  1269. package/singlestore-core/columns/date.js +2 -2
  1270. package/singlestore-core/columns/date.js.map +1 -1
  1271. package/singlestore-core/columns/datetime.cjs +6 -6
  1272. package/singlestore-core/columns/datetime.cjs.map +1 -1
  1273. package/singlestore-core/columns/datetime.d.cts +3 -3
  1274. package/singlestore-core/columns/datetime.d.ts +3 -3
  1275. package/singlestore-core/columns/datetime.js +6 -6
  1276. package/singlestore-core/columns/datetime.js.map +1 -1
  1277. package/singlestore-core/columns/decimal.cjs +4 -4
  1278. package/singlestore-core/columns/decimal.cjs.map +1 -1
  1279. package/singlestore-core/columns/decimal.d.cts +2 -2
  1280. package/singlestore-core/columns/decimal.d.ts +2 -2
  1281. package/singlestore-core/columns/decimal.js +4 -4
  1282. package/singlestore-core/columns/decimal.js.map +1 -1
  1283. package/singlestore-core/columns/float.cjs +2 -2
  1284. package/singlestore-core/columns/float.cjs.map +1 -1
  1285. package/singlestore-core/columns/float.d.cts +1 -1
  1286. package/singlestore-core/columns/float.d.ts +1 -1
  1287. package/singlestore-core/columns/float.js +2 -2
  1288. package/singlestore-core/columns/float.js.map +1 -1
  1289. package/singlestore-core/columns/int.cjs +2 -2
  1290. package/singlestore-core/columns/int.cjs.map +1 -1
  1291. package/singlestore-core/columns/int.d.cts +1 -1
  1292. package/singlestore-core/columns/int.d.ts +1 -1
  1293. package/singlestore-core/columns/int.js +2 -2
  1294. package/singlestore-core/columns/int.js.map +1 -1
  1295. package/singlestore-core/columns/json.cjs +2 -2
  1296. package/singlestore-core/columns/json.cjs.map +1 -1
  1297. package/singlestore-core/columns/json.d.cts +1 -1
  1298. package/singlestore-core/columns/json.d.ts +1 -1
  1299. package/singlestore-core/columns/json.js +2 -2
  1300. package/singlestore-core/columns/json.js.map +1 -1
  1301. package/singlestore-core/columns/mediumint.cjs +2 -2
  1302. package/singlestore-core/columns/mediumint.cjs.map +1 -1
  1303. package/singlestore-core/columns/mediumint.d.cts +1 -1
  1304. package/singlestore-core/columns/mediumint.d.ts +1 -1
  1305. package/singlestore-core/columns/mediumint.js +2 -2
  1306. package/singlestore-core/columns/mediumint.js.map +1 -1
  1307. package/singlestore-core/columns/serial.cjs +2 -2
  1308. package/singlestore-core/columns/serial.cjs.map +1 -1
  1309. package/singlestore-core/columns/serial.d.cts +1 -1
  1310. package/singlestore-core/columns/serial.d.ts +1 -1
  1311. package/singlestore-core/columns/serial.js +2 -2
  1312. package/singlestore-core/columns/serial.js.map +1 -1
  1313. package/singlestore-core/columns/smallint.cjs +2 -2
  1314. package/singlestore-core/columns/smallint.cjs.map +1 -1
  1315. package/singlestore-core/columns/smallint.d.cts +1 -1
  1316. package/singlestore-core/columns/smallint.d.ts +1 -1
  1317. package/singlestore-core/columns/smallint.js +2 -2
  1318. package/singlestore-core/columns/smallint.js.map +1 -1
  1319. package/singlestore-core/columns/timestamp.cjs +6 -6
  1320. package/singlestore-core/columns/timestamp.cjs.map +1 -1
  1321. package/singlestore-core/columns/timestamp.d.cts +3 -3
  1322. package/singlestore-core/columns/timestamp.d.ts +3 -3
  1323. package/singlestore-core/columns/timestamp.js +6 -6
  1324. package/singlestore-core/columns/timestamp.js.map +1 -1
  1325. package/singlestore-core/columns/tinyint.cjs +2 -2
  1326. package/singlestore-core/columns/tinyint.cjs.map +1 -1
  1327. package/singlestore-core/columns/tinyint.d.cts +1 -1
  1328. package/singlestore-core/columns/tinyint.d.ts +1 -1
  1329. package/singlestore-core/columns/tinyint.js +2 -2
  1330. package/singlestore-core/columns/tinyint.js.map +1 -1
  1331. package/singlestore-core/columns/varbinary.cjs +2 -2
  1332. package/singlestore-core/columns/varbinary.cjs.map +1 -1
  1333. package/singlestore-core/columns/varbinary.d.cts +1 -1
  1334. package/singlestore-core/columns/varbinary.d.ts +1 -1
  1335. package/singlestore-core/columns/varbinary.js +2 -2
  1336. package/singlestore-core/columns/varbinary.js.map +1 -1
  1337. package/singlestore-core/columns/vector.cjs +8 -8
  1338. package/singlestore-core/columns/vector.cjs.map +1 -1
  1339. package/singlestore-core/columns/vector.d.cts +4 -4
  1340. package/singlestore-core/columns/vector.d.ts +4 -4
  1341. package/singlestore-core/columns/vector.js +8 -8
  1342. package/singlestore-core/columns/vector.js.map +1 -1
  1343. package/singlestore-core/columns/year.cjs +2 -2
  1344. package/singlestore-core/columns/year.cjs.map +1 -1
  1345. package/singlestore-core/columns/year.d.cts +1 -1
  1346. package/singlestore-core/columns/year.d.ts +1 -1
  1347. package/singlestore-core/columns/year.js +2 -2
  1348. package/singlestore-core/columns/year.js.map +1 -1
  1349. package/singlestore-core/db.d.ts +1 -1
  1350. package/singlestore-core/dialect.cjs +1 -1
  1351. package/singlestore-core/dialect.d.ts +1 -1
  1352. package/singlestore-core/dialect.js +1 -1
  1353. package/singlestore-core/query-builders/query.cjs +13 -5
  1354. package/singlestore-core/query-builders/query.cjs.map +1 -1
  1355. package/singlestore-core/query-builders/query.d.ts +1 -1
  1356. package/singlestore-core/query-builders/query.js +13 -5
  1357. package/singlestore-core/query-builders/query.js.map +1 -1
  1358. package/singlestore-core/query-builders/select.cjs +4 -0
  1359. package/singlestore-core/query-builders/select.cjs.map +1 -1
  1360. package/singlestore-core/query-builders/select.js +4 -0
  1361. package/singlestore-core/query-builders/select.js.map +1 -1
  1362. package/singlestore-core/session.cjs.map +1 -1
  1363. package/singlestore-core/session.d.cts +2 -2
  1364. package/singlestore-core/session.d.ts +2 -2
  1365. package/singlestore-core/session.js.map +1 -1
  1366. package/singlestore-core/table.cjs +1 -1
  1367. package/singlestore-core/table.cjs.map +1 -1
  1368. package/singlestore-core/table.js +1 -1
  1369. package/singlestore-core/table.js.map +1 -1
  1370. package/singlestore-proxy/driver.cjs +5 -2
  1371. package/singlestore-proxy/driver.cjs.map +1 -1
  1372. package/singlestore-proxy/driver.js +5 -2
  1373. package/singlestore-proxy/driver.js.map +1 -1
  1374. package/singlestore-proxy/session.cjs +11 -6
  1375. package/singlestore-proxy/session.cjs.map +1 -1
  1376. package/singlestore-proxy/session.d.cts +9 -4
  1377. package/singlestore-proxy/session.d.ts +9 -4
  1378. package/singlestore-proxy/session.js +12 -7
  1379. package/singlestore-proxy/session.js.map +1 -1
  1380. package/sql/index.cjs +1 -0
  1381. package/sql/index.d.cts +2 -2
  1382. package/sql/index.d.ts +2 -2
  1383. package/sql/index.js +2 -2
  1384. package/sql/sql.cjs +32 -11
  1385. package/sql/sql.cjs.map +1 -1
  1386. package/sql/sql.d.cts +15 -5
  1387. package/sql/sql.d.ts +15 -5
  1388. package/sql/sql.js +32 -12
  1389. package/sql/sql.js.map +1 -1
  1390. package/sql-js/driver.cjs +5 -2
  1391. package/sql-js/driver.cjs.map +1 -1
  1392. package/sql-js/driver.d.ts +1 -1
  1393. package/sql-js/driver.js +5 -2
  1394. package/sql-js/driver.js.map +1 -1
  1395. package/sql-js/session.cjs +14 -14
  1396. package/sql-js/session.cjs.map +1 -1
  1397. package/sql-js/session.d.cts +10 -6
  1398. package/sql-js/session.d.ts +10 -6
  1399. package/sql-js/session.js +15 -15
  1400. package/sql-js/session.js.map +1 -1
  1401. package/sqlite-cloud/driver.cjs +3 -2
  1402. package/sqlite-cloud/driver.cjs.map +1 -1
  1403. package/sqlite-cloud/driver.d.ts +1 -1
  1404. package/sqlite-cloud/driver.js +3 -2
  1405. package/sqlite-cloud/driver.js.map +1 -1
  1406. package/sqlite-cloud/session.cjs +20 -19
  1407. package/sqlite-cloud/session.cjs.map +1 -1
  1408. package/sqlite-cloud/session.d.cts +9 -6
  1409. package/sqlite-cloud/session.d.ts +9 -6
  1410. package/sqlite-cloud/session.js +21 -20
  1411. package/sqlite-cloud/session.js.map +1 -1
  1412. package/sqlite-core/columns/blob.cjs +10 -10
  1413. package/sqlite-core/columns/blob.cjs.map +1 -1
  1414. package/sqlite-core/columns/blob.d.cts +5 -5
  1415. package/sqlite-core/columns/blob.d.ts +5 -5
  1416. package/sqlite-core/columns/blob.js +10 -10
  1417. package/sqlite-core/columns/blob.js.map +1 -1
  1418. package/sqlite-core/columns/custom.cjs +4 -4
  1419. package/sqlite-core/columns/custom.cjs.map +1 -1
  1420. package/sqlite-core/columns/custom.d.cts +2 -2
  1421. package/sqlite-core/columns/custom.d.ts +2 -2
  1422. package/sqlite-core/columns/custom.js +4 -4
  1423. package/sqlite-core/columns/custom.js.map +1 -1
  1424. package/sqlite-core/columns/integer.cjs +8 -8
  1425. package/sqlite-core/columns/integer.cjs.map +1 -1
  1426. package/sqlite-core/columns/integer.d.cts +4 -4
  1427. package/sqlite-core/columns/integer.d.ts +4 -4
  1428. package/sqlite-core/columns/integer.js +8 -8
  1429. package/sqlite-core/columns/integer.js.map +1 -1
  1430. package/sqlite-core/columns/numeric.cjs +4 -4
  1431. package/sqlite-core/columns/numeric.cjs.map +1 -1
  1432. package/sqlite-core/columns/numeric.d.cts +2 -2
  1433. package/sqlite-core/columns/numeric.d.ts +2 -2
  1434. package/sqlite-core/columns/numeric.js +4 -4
  1435. package/sqlite-core/columns/numeric.js.map +1 -1
  1436. package/sqlite-core/columns/text.cjs +4 -4
  1437. package/sqlite-core/columns/text.cjs.map +1 -1
  1438. package/sqlite-core/columns/text.d.cts +2 -2
  1439. package/sqlite-core/columns/text.d.ts +2 -2
  1440. package/sqlite-core/columns/text.js +4 -4
  1441. package/sqlite-core/columns/text.js.map +1 -1
  1442. package/sqlite-core/db.d.ts +1 -1
  1443. package/sqlite-core/dialect.cjs +2 -2
  1444. package/sqlite-core/dialect.d.ts +1 -1
  1445. package/sqlite-core/dialect.js +2 -2
  1446. package/sqlite-core/query-builders/_query.cjs +1 -1
  1447. package/sqlite-core/query-builders/_query.cjs.map +1 -1
  1448. package/sqlite-core/query-builders/_query.js +1 -1
  1449. package/sqlite-core/query-builders/_query.js.map +1 -1
  1450. package/sqlite-core/query-builders/delete.cjs +1 -1
  1451. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  1452. package/sqlite-core/query-builders/delete.js +1 -1
  1453. package/sqlite-core/query-builders/delete.js.map +1 -1
  1454. package/sqlite-core/query-builders/insert.cjs +1 -1
  1455. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  1456. package/sqlite-core/query-builders/insert.js +1 -1
  1457. package/sqlite-core/query-builders/insert.js.map +1 -1
  1458. package/sqlite-core/query-builders/query.cjs +13 -5
  1459. package/sqlite-core/query-builders/query.cjs.map +1 -1
  1460. package/sqlite-core/query-builders/query.d.ts +1 -1
  1461. package/sqlite-core/query-builders/query.js +13 -5
  1462. package/sqlite-core/query-builders/query.js.map +1 -1
  1463. package/sqlite-core/query-builders/raw.cjs +0 -4
  1464. package/sqlite-core/query-builders/raw.cjs.map +1 -1
  1465. package/sqlite-core/query-builders/raw.js +0 -4
  1466. package/sqlite-core/query-builders/raw.js.map +1 -1
  1467. package/sqlite-core/query-builders/select.cjs +5 -1
  1468. package/sqlite-core/query-builders/select.cjs.map +1 -1
  1469. package/sqlite-core/query-builders/select.js +5 -1
  1470. package/sqlite-core/query-builders/select.js.map +1 -1
  1471. package/sqlite-core/query-builders/update.cjs +1 -1
  1472. package/sqlite-core/query-builders/update.cjs.map +1 -1
  1473. package/sqlite-core/query-builders/update.js +1 -1
  1474. package/sqlite-core/query-builders/update.js.map +1 -1
  1475. package/sqlite-core/session.cjs +8 -8
  1476. package/sqlite-core/session.cjs.map +1 -1
  1477. package/sqlite-core/session.d.cts +5 -5
  1478. package/sqlite-core/session.d.ts +5 -5
  1479. package/sqlite-core/session.js +8 -8
  1480. package/sqlite-core/session.js.map +1 -1
  1481. package/sqlite-core/table.cjs +1 -1
  1482. package/sqlite-core/table.cjs.map +1 -1
  1483. package/sqlite-core/table.js +1 -1
  1484. package/sqlite-core/table.js.map +1 -1
  1485. package/sqlite-proxy/driver.cjs +3 -2
  1486. package/sqlite-proxy/driver.cjs.map +1 -1
  1487. package/sqlite-proxy/driver.d.ts +1 -1
  1488. package/sqlite-proxy/driver.js +3 -2
  1489. package/sqlite-proxy/driver.js.map +1 -1
  1490. package/sqlite-proxy/session.cjs +19 -16
  1491. package/sqlite-proxy/session.cjs.map +1 -1
  1492. package/sqlite-proxy/session.d.cts +11 -7
  1493. package/sqlite-proxy/session.d.ts +11 -7
  1494. package/sqlite-proxy/session.js +20 -17
  1495. package/sqlite-proxy/session.js.map +1 -1
  1496. package/table.d.cts +1 -1
  1497. package/table.d.ts +1 -1
  1498. package/tidb-serverless/driver.cjs +3 -2
  1499. package/tidb-serverless/driver.cjs.map +1 -1
  1500. package/tidb-serverless/driver.d.cts +1 -0
  1501. package/tidb-serverless/driver.d.ts +1 -0
  1502. package/tidb-serverless/driver.js +3 -2
  1503. package/tidb-serverless/driver.js.map +1 -1
  1504. package/tidb-serverless/session.cjs +24 -36
  1505. package/tidb-serverless/session.cjs.map +1 -1
  1506. package/tidb-serverless/session.d.cts +10 -4
  1507. package/tidb-serverless/session.d.ts +11 -5
  1508. package/tidb-serverless/session.js +25 -37
  1509. package/tidb-serverless/session.js.map +1 -1
  1510. package/tursodatabase/driver-core.cjs +3 -2
  1511. package/tursodatabase/driver-core.cjs.map +1 -1
  1512. package/tursodatabase/driver-core.d.ts +1 -1
  1513. package/tursodatabase/driver-core.js +3 -2
  1514. package/tursodatabase/driver-core.js.map +1 -1
  1515. package/tursodatabase/session.cjs +19 -18
  1516. package/tursodatabase/session.cjs.map +1 -1
  1517. package/tursodatabase/session.d.cts +9 -6
  1518. package/tursodatabase/session.d.ts +9 -6
  1519. package/tursodatabase/session.js +20 -19
  1520. package/tursodatabase/session.js.map +1 -1
  1521. package/up-migrations/effect-pg.cjs +3 -3
  1522. package/up-migrations/effect-pg.cjs.map +1 -1
  1523. package/up-migrations/effect-pg.js +3 -3
  1524. package/up-migrations/effect-pg.js.map +1 -1
  1525. package/up-migrations/pg.cjs +3 -8
  1526. package/up-migrations/pg.cjs.map +1 -1
  1527. package/up-migrations/pg.d.cts +1 -1
  1528. package/up-migrations/pg.d.ts +1 -1
  1529. package/up-migrations/pg.js +3 -8
  1530. package/up-migrations/pg.js.map +1 -1
  1531. package/up-migrations/sqlite.d.ts +2 -2
  1532. package/utils.cjs +128 -6
  1533. package/utils.cjs.map +1 -1
  1534. package/utils.d.cts +10 -3
  1535. package/utils.d.ts +10 -3
  1536. package/utils.js +126 -7
  1537. package/utils.js.map +1 -1
  1538. package/vercel-postgres/driver.cjs +14 -32
  1539. package/vercel-postgres/driver.cjs.map +1 -1
  1540. package/vercel-postgres/driver.d.cts +12 -17
  1541. package/vercel-postgres/driver.d.ts +13 -18
  1542. package/vercel-postgres/driver.js +14 -31
  1543. package/vercel-postgres/driver.js.map +1 -1
  1544. package/vercel-postgres/index.cjs +2 -3
  1545. package/vercel-postgres/index.d.cts +3 -3
  1546. package/vercel-postgres/index.d.ts +3 -3
  1547. package/vercel-postgres/index.js +3 -3
  1548. package/vercel-postgres/migrator.cjs.map +1 -1
  1549. package/vercel-postgres/migrator.d.cts +1 -1
  1550. package/vercel-postgres/migrator.d.ts +1 -1
  1551. package/vercel-postgres/migrator.js.map +1 -1
  1552. package/vercel-postgres/session.cjs +32 -110
  1553. package/vercel-postgres/session.cjs.map +1 -1
  1554. package/vercel-postgres/session.d.cts +9 -32
  1555. package/vercel-postgres/session.d.ts +9 -32
  1556. package/vercel-postgres/session.js +34 -111
  1557. package/vercel-postgres/session.js.map +1 -1
  1558. package/xata-http/driver.cjs +91 -31
  1559. package/xata-http/driver.cjs.map +1 -1
  1560. package/xata-http/driver.d.cts +10 -16
  1561. package/xata-http/driver.d.ts +11 -17
  1562. package/xata-http/driver.js +91 -30
  1563. package/xata-http/driver.js.map +1 -1
  1564. package/xata-http/index.cjs +2 -4
  1565. package/xata-http/index.d.cts +3 -3
  1566. package/xata-http/index.d.ts +3 -3
  1567. package/xata-http/index.js +3 -3
  1568. package/xata-http/migrator.cjs +1 -1
  1569. package/xata-http/migrator.cjs.map +1 -1
  1570. package/xata-http/migrator.d.cts +1 -1
  1571. package/xata-http/migrator.d.ts +1 -1
  1572. package/xata-http/migrator.js +1 -1
  1573. package/xata-http/migrator.js.map +1 -1
  1574. package/xata-http/session.cjs +23 -109
  1575. package/xata-http/session.cjs.map +1 -1
  1576. package/xata-http/session.d.cts +7 -33
  1577. package/xata-http/session.d.ts +6 -32
  1578. package/xata-http/session.js +25 -109
  1579. package/xata-http/session.js.map +1 -1
  1580. package/pg-core/query-builders/_query.cjs +0 -101
  1581. package/pg-core/query-builders/_query.cjs.map +0 -1
  1582. package/pg-core/query-builders/_query.d.cts +0 -55
  1583. package/pg-core/query-builders/_query.d.ts +0 -55
  1584. package/pg-core/query-builders/_query.js +0 -97
  1585. package/pg-core/query-builders/_query.js.map +0 -1
  1586. package/pg-core/utils/array.cjs.map +0 -1
  1587. package/pg-core/utils/array.js.map +0 -1
  1588. package/pg-core/utils/index.cjs +0 -6
  1589. package/pg-core/utils/index.d.cts +0 -2
  1590. package/pg-core/utils/index.d.ts +0 -2
  1591. package/pg-core/utils/index.js +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/row-mappers/index.ts"],"sourcesContent":["import { Column } from '~/column.ts';\nimport { is } from '~/entity.ts';\nimport type { BuildRelationalQueryResult } from '~/relations.ts';\nimport { noopDecoder, SQL, type SQLWrapper, View } from '~/sql/sql.ts';\nimport { Table } from '~/table.ts';\n\n/**\n * Type for the selection structure used by row mappers.\n */\nexport type RowMapperSelection = BuildRelationalQueryResult['selection'];\n\n/**\n * Result of a row mapper generator.\n * Contains the mapper function and metadata about the expected input format.\n */\nexport interface RowMapperResult {\n\t/** The mapper function that transforms ALL raw rows into typed objects in a single call */\n\tmapper:\n\t\t| ((rows: Record<string, unknown>[]) => Record<string, unknown>[])\n\t\t| ((rows: unknown[][]) => Record<string, unknown>[]);\n\t/** Whether this mapper expects array-mode input (from .values()) */\n\tisArrayMode: boolean;\n\t/** The generated function body code (for debugging purposes) */\n\tcode?: string;\n}\n\n/**\n * A function that generates a row mapper for a given selection.\n * The row mapper transforms raw database rows into properly typed objects.\n */\nexport type RowMapperGenerator = (\n\tselection: RowMapperSelection,\n\tparseJson: boolean,\n) => RowMapperResult;\n\n// ============================================================================\n// JIT Row Mapper (uses new Function for best performance)\n// ============================================================================\n\nfunction resolveDecoder(\n\tfield: RowMapperSelection[number]['field'],\n): ((value: unknown) => unknown) | null {\n\tlet decoder: { mapFromDriverValue: (v: unknown) => unknown; mapFromJsonValue?: (v: unknown) => unknown };\n\n\tif (is(field, Column)) {\n\t\tdecoder = field;\n\t} else if (is(field, SQL)) {\n\t\tdecoder = field.decoder;\n\t} else if (is(field, SQL.Aliased)) {\n\t\tdecoder = field.sql.decoder;\n\t} else if (is(field, Table) || is(field, View)) {\n\t\treturn null;\n\t} else {\n\t\tdecoder = (field as SQLWrapper).getSQL().decoder;\n\t}\n\n\tif (decoder.mapFromDriverValue === noopDecoder.mapFromDriverValue) {\n\t\treturn null;\n\t}\n\n\treturn 'mapFromJsonValue' in decoder && decoder.mapFromJsonValue\n\t\t? (decoder.mapFromJsonValue as (value: unknown) => unknown).bind(decoder)\n\t\t: decoder.mapFromDriverValue.bind(decoder);\n}\n\nfunction generateObjectCode(\n\tselection: RowMapperSelection,\n\tdecoders: ((value: unknown) => unknown)[],\n\trowVar: string,\n\tparseJson: boolean,\n): string {\n\tconst props: string[] = [];\n\n\tfor (const item of selection) {\n\t\tconst key = item.key;\n\t\tconst keyLiteral = JSON.stringify(key);\n\t\tconst accessor = `${rowVar}[${keyLiteral}]`;\n\n\t\tif (item.selection) {\n\t\t\tconst innerVar = `i${decoders.length}`;\n\t\t\tconst innerObject = generateObjectCode(item.selection, decoders, innerVar, false);\n\n\t\t\tlet nestedCode: string;\n\t\t\tif (item.isArray) {\n\t\t\t\tnestedCode = `((a) => {\n const l = a.length, r = Array.from({ length: l });\n for (let j = 0; j < l; j++) { const ${innerVar} = a[j]; r[j] = ${innerObject}; }\n return r;\n })`;\n\t\t\t} else {\n\t\t\t\tnestedCode = `((${innerVar}) => (${innerObject}))`;\n\t\t\t}\n\n\t\t\tif (parseJson) {\n\t\t\t\tprops.push(`${keyLiteral}: ${accessor} === null ? null : ((v) => {\n const p = JSON.parse(v);\n return p === null ? null : ${nestedCode}(p);\n })(${accessor})`);\n\t\t\t} else {\n\t\t\t\tprops.push(`${keyLiteral}: ${accessor} === null ? null : ${nestedCode}(${accessor})`);\n\t\t\t}\n\t\t} else {\n\t\t\tconst decoder = resolveDecoder(item.field);\n\t\t\tif (decoder === null) {\n\t\t\t\tprops.push(`${keyLiteral}: ${accessor}`);\n\t\t\t} else {\n\t\t\t\tconst idx = decoders.length;\n\t\t\t\tdecoders.push(decoder);\n\t\t\t\tprops.push(`${keyLiteral}: d[${idx}](${accessor})`);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn `{ ${props.join(', ')} }`;\n}\n\n/**\n * JIT-compiled row mapper generator.\n * Uses `new Function()` to generate optimized mapping code at prepare time.\n *\n * **Note:** This mapper does NOT work in environments that restrict dynamic code evaluation,\n * such as Cloudflare Workers, Deno Deploy, or Vercel Edge Functions.\n * Use `interpretedRowMapper` in those environments.\n *\n * @example\n * ```ts\n * import { jitRowMapper } from 'drizzle-orm/row-mappers';\n *\n * const db = drizzle({\n * client,\n * schema,\n * relations,\n * rowMapperGenerator: jitRowMapper,\n * });\n * ```\n */\nexport const jitRowMapper: RowMapperGenerator = (\n\tselection: RowMapperSelection,\n\tparseJson: boolean,\n): RowMapperResult => {\n\tconst decoders: ((value: unknown) => unknown)[] = [];\n\tconst objectCode = generateObjectCode(selection, decoders, 'r', parseJson);\n\n\t// Generate batch processing code - mutates rows in-place to avoid allocation\n\tconst batchCode = `const l = rows.length;\nfor (let i = 0; i < l; i++) {\n const r = rows[i];\n rows[i] = ${objectCode};\n}\nreturn rows;`;\n\n\tconst fn = decoders.length > 0\n\t\t? new Function('rows', 'd', batchCode) as (\n\t\t\trows: Record<string, unknown>[],\n\t\t\tdecoders: ((v: unknown) => unknown)[],\n\t\t) => Record<string, unknown>[]\n\t\t: new Function('rows', batchCode) as (rows: Record<string, unknown>[]) => Record<string, unknown>[];\n\n\treturn {\n\t\tmapper: decoders.length > 0\n\t\t\t? (rows: Record<string, unknown>[]) =>\n\t\t\t\t(fn as (rows: Record<string, unknown>[], d: ((v: unknown) => unknown)[]) => Record<string, unknown>[])(\n\t\t\t\t\trows,\n\t\t\t\t\tdecoders,\n\t\t\t\t)\n\t\t\t: fn as (rows: Record<string, unknown>[]) => Record<string, unknown>[],\n\t\tisArrayMode: false,\n\t\tcode: batchCode,\n\t};\n};\n\n// ============================================================================\n// Interpreted Row Mapper (works in all environments)\n// ============================================================================\n\nfunction mapRowInterpreted(\n\trow: Record<string, unknown>,\n\tselection: RowMapperSelection,\n\tparseJson: boolean,\n): Record<string, unknown> {\n\tconst result: Record<string, unknown> = {};\n\n\tfor (const item of selection) {\n\t\tconst key = item.key;\n\t\tlet value = row[key];\n\n\t\tif (item.selection) {\n\t\t\t// Nested relation\n\t\t\tif (value === null) {\n\t\t\t\tresult[key] = null;\n\t\t\t} else {\n\t\t\t\tif (parseJson && typeof value === 'string') {\n\t\t\t\t\tvalue = JSON.parse(value);\n\t\t\t\t\tif (value === null) {\n\t\t\t\t\t\tresult[key] = null;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (item.isArray) {\n\t\t\t\t\tconst arr = value as Record<string, unknown>[];\n\t\t\t\t\tconst mapped: Record<string, unknown>[] = [];\n\t\t\t\t\tfor (let i = 0; i < arr.length; i++) {\n\t\t\t\t\t\tmapped[i] = mapRowInterpreted(arr[i]!, item.selection, false);\n\t\t\t\t\t}\n\t\t\t\t\tresult[key] = mapped;\n\t\t\t\t} else {\n\t\t\t\t\tresult[key] = mapRowInterpreted(value as Record<string, unknown>, item.selection, false);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// Leaf field\n\t\t\tif (value === null) {\n\t\t\t\tresult[key] = null;\n\t\t\t} else {\n\t\t\t\tconst decoder = resolveDecoder(item.field);\n\t\t\t\tresult[key] = decoder ? decoder(value) : value;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n}\n\n/**\n * Interpreted row mapper generator.\n * Uses a recursive function to map rows at runtime.\n *\n * This mapper works in ALL JavaScript environments, including those that\n * restrict dynamic code evaluation (Cloudflare Workers, Deno Deploy, Vercel Edge Functions).\n *\n * Performance is slightly slower than `jitRowMapper`, but the difference\n * is negligible for most use cases.\n *\n * @example\n * ```ts\n * import { interpretedRowMapper } from 'drizzle-orm/row-mappers';\n *\n * const db = drizzle({\n * client,\n * schema,\n * relations,\n * rowMapperGenerator: interpretedRowMapper,\n * });\n * ```\n */\nexport const interpretedRowMapper: RowMapperGenerator = (\n\tselection: RowMapperSelection,\n\tparseJson: boolean,\n): RowMapperResult => {\n\treturn {\n\t\tmapper: (rows: Record<string, unknown>[]) => {\n\t\t\tconst l = rows.length;\n\t\t\tfor (let i = 0; i < l; i++) {\n\t\t\t\trows[i] = mapRowInterpreted(rows[i]!, selection, parseJson);\n\t\t\t}\n\t\t\treturn rows;\n\t\t},\n\t\tisArrayMode: false,\n\t\tcode: '[interpreted mode - no generated code]',\n\t};\n};\n\n/**\n * Default row mapper generator.\n * Currently uses the JIT mapper for best performance.\n */\nexport const defaultRowMapper: RowMapperGenerator = jitRowMapper;\n\n// ============================================================================\n// JIT Array-Mode Row Mapper (uses new Function + .values() for best performance)\n// ============================================================================\n\nfunction generateArrayObjectCode(\n\tselection: RowMapperSelection,\n\tdecoders: ((value: unknown) => unknown)[],\n\trowVar: string,\n\tindexRef: { value: number },\n\tparseJson: boolean,\n): string {\n\tconst props: string[] = [];\n\n\tfor (const item of selection) {\n\t\tconst key = item.key;\n\t\tconst keyLiteral = JSON.stringify(key);\n\n\t\tif (item.selection) {\n\t\t\t// Nested relations are still accessed by key (they come as JSON objects)\n\t\t\tconst idx = indexRef.value++;\n\t\t\tconst accessor = `${rowVar}[${idx}]`;\n\t\t\tconst innerVar = `i${decoders.length}`;\n\t\t\t// Nested objects still use key-based access since they're parsed JSON\n\t\t\tconst innerObject = generateObjectCode(item.selection, decoders, innerVar, false);\n\n\t\t\tlet nestedCode: string;\n\t\t\tif (item.isArray) {\n\t\t\t\tnestedCode = `((a) => {\n const l = a.length, r = Array.from({ length: l });\n for (let j = 0; j < l; j++) { const ${innerVar} = a[j]; r[j] = ${innerObject}; }\n return r;\n })`;\n\t\t\t} else {\n\t\t\t\tnestedCode = `((${innerVar}) => (${innerObject}))`;\n\t\t\t}\n\n\t\t\tif (parseJson) {\n\t\t\t\tprops.push(`${keyLiteral}: ${accessor} === null ? null : ((v) => {\n const p = JSON.parse(v);\n return p === null ? null : ${nestedCode}(p);\n })(${accessor})`);\n\t\t\t} else {\n\t\t\t\tprops.push(`${keyLiteral}: ${accessor} === null ? null : ${nestedCode}(${accessor})`);\n\t\t\t}\n\t\t} else {\n\t\t\t// Leaf field - access by index\n\t\t\tconst idx = indexRef.value++;\n\t\t\tconst accessor = `${rowVar}[${idx}]`;\n\t\t\tconst decoder = resolveDecoder(item.field);\n\t\t\tif (decoder === null) {\n\t\t\t\tprops.push(`${keyLiteral}: ${accessor}`);\n\t\t\t} else {\n\t\t\t\tconst decoderIdx = decoders.length;\n\t\t\t\tdecoders.push(decoder);\n\t\t\t\tprops.push(`${keyLiteral}: d[${decoderIdx}](${accessor})`);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn `{ ${props.join(', ')} }`;\n}\n\n/**\n * JIT-compiled array-mode row mapper generator.\n * Uses `new Function()` to generate optimized mapping code that works with\n * array-based rows from `.values()` queries for maximum performance.\n *\n * This mapper expects the driver to return rows as arrays (e.g., `[1, \"John\", \"2024-01-01\"]`)\n * instead of objects (e.g., `{id: 1, name: \"John\", createdAt: \"2024-01-01\"}`).\n *\n * **Note:** This mapper does NOT work in environments that restrict dynamic code evaluation,\n * such as Cloudflare Workers, Deno Deploy, or Vercel Edge Functions.\n *\n * @example\n * ```ts\n * import { jitArrayRowMapper } from 'drizzle-orm/row-mappers';\n *\n * const db = drizzle({\n * client,\n * schema,\n * relations,\n * rowMapperGenerator: jitArrayRowMapper,\n * });\n * ```\n */\nexport const jitArrayRowMapper: RowMapperGenerator = (\n\tselection: RowMapperSelection,\n\tparseJson: boolean,\n): RowMapperResult => {\n\tconst decoders: ((value: unknown) => unknown)[] = [];\n\tconst indexRef = { value: 0 };\n\tconst objectCode = generateArrayObjectCode(selection, decoders, 'r', indexRef, parseJson);\n\n\t// Generate batch processing code - mutates rows in-place to avoid allocation\n\tconst batchCode = `const l = rows.length;\nfor (let i = 0; i < l; i++) {\n const r = rows[i];\n rows[i] = ${objectCode};\n}\nreturn rows;`;\n\n\tconst fn = decoders.length > 0\n\t\t? new Function('rows', 'd', batchCode) as (\n\t\t\trows: unknown[][],\n\t\t\tdecoders: ((v: unknown) => unknown)[],\n\t\t) => Record<string, unknown>[]\n\t\t: new Function('rows', batchCode) as (rows: unknown[][]) => Record<string, unknown>[];\n\n\treturn {\n\t\tmapper: decoders.length > 0\n\t\t\t? (rows: unknown[][]) =>\n\t\t\t\t(fn as (rows: unknown[][], d: ((v: unknown) => unknown)[]) => Record<string, unknown>[])(rows, decoders)\n\t\t\t: fn as (rows: unknown[][]) => Record<string, unknown>[],\n\t\tisArrayMode: true,\n\t\tcode: batchCode,\n\t};\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/row-mappers/index.ts"],"sourcesContent":["import { Column } from '~/column.ts';\nimport { is } from '~/entity.ts';\nimport type { BuildRelationalQueryResult } from '~/relations.ts';\nimport { noopDecoder, SQL, type SQLWrapper, View } from '~/sql/sql.ts';\nimport { Table } from '~/table.ts';\n\n/**\n * Type for the selection structure used by row mappers.\n */\nexport type RowMapperSelection = BuildRelationalQueryResult['selection'];\n\n/**\n * Result of a row mapper generator.\n * Contains the mapper function and metadata about the expected input format.\n */\nexport interface RowMapperResult {\n\t/** The mapper function that transforms ALL raw rows into typed objects in a single call */\n\tmapper:\n\t\t| ((rows: Record<string, unknown>[]) => Record<string, unknown>[])\n\t\t| ((rows: unknown[][]) => Record<string, unknown>[]);\n\t/** Whether this mapper expects array-mode input (from .values()) */\n\tisArrayMode: boolean;\n\t/** The generated function body code (for debugging purposes) */\n\tcode?: string;\n}\n\n/**\n * A function that generates a row mapper for a given selection.\n * The row mapper transforms raw database rows into properly typed objects.\n */\nexport type RowMapperGenerator = (\n\tselection: RowMapperSelection,\n\tparseJson: boolean,\n) => RowMapperResult;\n\n// ============================================================================\n// JIT Row Mapper (uses new Function for best performance)\n// ============================================================================\n\nfunction resolveDecoder(\n\tfield: RowMapperSelection[number]['field'],\n): ((value: unknown) => unknown) | null {\n\tlet decoder: { mapFromDriverValue: (v: unknown) => unknown; mapFromJsonValue?: (v: unknown) => unknown };\n\n\tif (is(field, Column)) {\n\t\tdecoder = field;\n\t} else if (is(field, SQL)) {\n\t\tdecoder = field.decoder;\n\t} else if (is(field, SQL.Aliased)) {\n\t\tdecoder = field.sql.decoder;\n\t} else if (is(field, Table) || is(field, View)) {\n\t\treturn null;\n\t} else {\n\t\tdecoder = (field as SQLWrapper).getSQL().decoder;\n\t}\n\n\tif (decoder.mapFromDriverValue === noopDecoder.mapFromDriverValue) {\n\t\treturn null;\n\t}\n\n\treturn 'mapFromJsonValue' in decoder && decoder.mapFromJsonValue\n\t\t? (decoder.mapFromJsonValue as (value: unknown) => unknown).bind(decoder)\n\t\t: decoder.mapFromDriverValue.bind(decoder);\n}\n\nfunction generateObjectCode(\n\tselection: RowMapperSelection,\n\tdecoders: ((value: unknown) => unknown)[],\n\trowVar: string,\n\tparseJson: boolean,\n): string {\n\tconst props: string[] = [];\n\n\tfor (const item of selection) {\n\t\tconst key = item.key;\n\t\tconst keyLiteral = JSON.stringify(key);\n\t\tconst accessor = `${rowVar}[${keyLiteral}]`;\n\n\t\tif (item.selection) {\n\t\t\tconst innerVar = `i${decoders.length}`;\n\t\t\tconst innerObject = generateObjectCode(item.selection, decoders, innerVar, false);\n\n\t\t\tlet nestedCode: string;\n\t\t\tif (item.isArray) {\n\t\t\t\tnestedCode = `((a) => {\n const l = a.length, r = Array.from({ length: l });\n for (let j = 0; j < l; j++) { const ${innerVar} = a[j]; r[j] = ${innerObject}; }\n return r;\n })`;\n\t\t\t} else {\n\t\t\t\tnestedCode = `((${innerVar}) => (${innerObject}))`;\n\t\t\t}\n\n\t\t\tif (parseJson) {\n\t\t\t\tprops.push(`${keyLiteral}: ${accessor} === null ? null : ((v) => {\n const p = JSON.parse(v);\n return p === null ? null : ${nestedCode}(p);\n })(${accessor})`);\n\t\t\t} else {\n\t\t\t\tprops.push(`${keyLiteral}: ${accessor} === null ? null : ${nestedCode}(${accessor})`);\n\t\t\t}\n\t\t} else {\n\t\t\tconst decoder = resolveDecoder(item.field);\n\t\t\tif (decoder === null) {\n\t\t\t\tprops.push(`${keyLiteral}: ${accessor}`);\n\t\t\t} else {\n\t\t\t\tconst idx = decoders.length;\n\t\t\t\tdecoders.push(decoder);\n\t\t\t\tprops.push(`${keyLiteral}: d[${idx}](${accessor})`);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn `{ ${props.join(', ')} }`;\n}\n\n/**\n * JIT-compiled row mapper generator.\n * Uses `new Function()` to generate optimized mapping code at prepare time.\n *\n * **Note:** This mapper does NOT work in environments that restrict dynamic code evaluation,\n * such as Cloudflare Workers, Deno Deploy, or Vercel Edge Functions.\n * Use `interpretedRowMapper` in those environments.\n *\n * @example\n * ```ts\n * import { jitRowMapper } from 'drizzle-orm/row-mappers';\n *\n * const db = drizzle({\n * client,\n * schema,\n * relations,\n * rowMapperGenerator: jitRowMapper,\n * });\n * ```\n */\nexport const jitRowMapper: RowMapperGenerator = (\n\tselection: RowMapperSelection,\n\tparseJson: boolean,\n): RowMapperResult => {\n\tconst decoders: ((value: unknown) => unknown)[] = [];\n\tconst objectCode = generateObjectCode(selection, decoders, 'r', parseJson);\n\n\t// Generate batch processing code - mutates rows in-place to avoid allocation\n\tconst batchCode = `const l = rows.length;\nfor (let i = 0; i < l; i++) {\n const r = rows[i];\n rows[i] = ${objectCode};\n}\nreturn rows;`;\n\n\tconst fn = decoders.length > 0\n\t\t? new Function('rows', 'd', batchCode) as (\n\t\t\trows: Record<string, unknown>[],\n\t\t\tdecoders: ((v: unknown) => unknown)[],\n\t\t) => Record<string, unknown>[]\n\t\t: new Function('rows', batchCode) as (rows: Record<string, unknown>[]) => Record<string, unknown>[];\n\n\treturn {\n\t\tmapper: decoders.length > 0\n\t\t\t? (rows: Record<string, unknown>[]) =>\n\t\t\t\t(fn as (rows: Record<string, unknown>[], d: ((v: unknown) => unknown)[]) => Record<string, unknown>[])(\n\t\t\t\t\trows,\n\t\t\t\t\tdecoders,\n\t\t\t\t)\n\t\t\t: fn as (rows: Record<string, unknown>[]) => Record<string, unknown>[],\n\t\tisArrayMode: false,\n\t\tcode: batchCode,\n\t};\n};\n\n// ============================================================================\n// Interpreted Row Mapper (works in all environments)\n// ============================================================================\n\nfunction mapRowInterpreted(\n\trow: Record<string, unknown>,\n\tselection: RowMapperSelection,\n\tparseJson: boolean,\n): Record<string, unknown> {\n\tconst result: Record<string, unknown> = {};\n\n\tfor (const item of selection) {\n\t\tconst key = item.key;\n\t\tlet value = row[key];\n\n\t\tif (item.selection) {\n\t\t\t// Nested relation\n\t\t\tif (value === null) {\n\t\t\t\tresult[key] = null;\n\t\t\t} else {\n\t\t\t\tif (parseJson && typeof value === 'string') {\n\t\t\t\t\tvalue = JSON.parse(value);\n\t\t\t\t\tif (value === null) {\n\t\t\t\t\t\tresult[key] = null;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (item.isArray) {\n\t\t\t\t\tconst arr = value as Record<string, unknown>[];\n\t\t\t\t\tconst mapped: Record<string, unknown>[] = [];\n\t\t\t\t\tfor (let i = 0; i < arr.length; i++) {\n\t\t\t\t\t\tmapped[i] = mapRowInterpreted(arr[i]!, item.selection, false);\n\t\t\t\t\t}\n\t\t\t\t\tresult[key] = mapped;\n\t\t\t\t} else {\n\t\t\t\t\tresult[key] = mapRowInterpreted(value as Record<string, unknown>, item.selection, false);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// Leaf field\n\t\t\tif (value === null) {\n\t\t\t\tresult[key] = null;\n\t\t\t} else {\n\t\t\t\tconst decoder = resolveDecoder(item.field);\n\t\t\t\tresult[key] = decoder\n\t\t\t\t\t? decoder(item.codec ? item.codec(value, item.arrayDimensions!) : value)\n\t\t\t\t\t: item.codec\n\t\t\t\t\t? item.codec(value, item.arrayDimensions!)\n\t\t\t\t\t: value;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n}\n\n/**\n * Interpreted row mapper generator.\n * Uses a recursive function to map rows at runtime.\n *\n * This mapper works in ALL JavaScript environments, including those that\n * restrict dynamic code evaluation (Cloudflare Workers, Deno Deploy, Vercel Edge Functions).\n *\n * Performance is slightly slower than `jitRowMapper`, but the difference\n * is negligible for most use cases.\n *\n * @example\n * ```ts\n * import { interpretedRowMapper } from 'drizzle-orm/row-mappers';\n *\n * const db = drizzle({\n * client,\n * schema,\n * relations,\n * rowMapperGenerator: interpretedRowMapper,\n * });\n * ```\n */\nexport const interpretedRowMapper: RowMapperGenerator = (\n\tselection: RowMapperSelection,\n\tparseJson: boolean,\n): RowMapperResult => {\n\treturn {\n\t\tmapper: (rows: Record<string, unknown>[]) => {\n\t\t\tconst l = rows.length;\n\t\t\tfor (let i = 0; i < l; i++) {\n\t\t\t\trows[i] = mapRowInterpreted(rows[i]!, selection, parseJson);\n\t\t\t}\n\t\t\treturn rows;\n\t\t},\n\t\tisArrayMode: false,\n\t\tcode: '[interpreted mode - no generated code]',\n\t};\n};\n\n/**\n * Default row mapper generator.\n * Currently uses the JIT mapper for best performance.\n */\nexport const defaultRowMapper: RowMapperGenerator = jitRowMapper;\n\n// ============================================================================\n// JIT Array-Mode Row Mapper (uses new Function + .values() for best performance)\n// ============================================================================\n\nfunction generateArrayObjectCode(\n\tselection: RowMapperSelection,\n\tdecoders: ((value: unknown) => unknown)[],\n\trowVar: string,\n\tindexRef: { value: number },\n\tparseJson: boolean,\n): string {\n\tconst props: string[] = [];\n\n\tfor (const item of selection) {\n\t\tconst key = item.key;\n\t\tconst keyLiteral = JSON.stringify(key);\n\n\t\tif (item.selection) {\n\t\t\t// Nested relations are still accessed by key (they come as JSON objects)\n\t\t\tconst idx = indexRef.value++;\n\t\t\tconst accessor = `${rowVar}[${idx}]`;\n\t\t\tconst innerVar = `i${decoders.length}`;\n\t\t\t// Nested objects still use key-based access since they're parsed JSON\n\t\t\tconst innerObject = generateObjectCode(item.selection, decoders, innerVar, false);\n\n\t\t\tlet nestedCode: string;\n\t\t\tif (item.isArray) {\n\t\t\t\tnestedCode = `((a) => {\n const l = a.length, r = Array.from({ length: l });\n for (let j = 0; j < l; j++) { const ${innerVar} = a[j]; r[j] = ${innerObject}; }\n return r;\n })`;\n\t\t\t} else {\n\t\t\t\tnestedCode = `((${innerVar}) => (${innerObject}))`;\n\t\t\t}\n\n\t\t\tif (parseJson) {\n\t\t\t\tprops.push(`${keyLiteral}: ${accessor} === null ? null : ((v) => {\n const p = JSON.parse(v);\n return p === null ? null : ${nestedCode}(p);\n })(${accessor})`);\n\t\t\t} else {\n\t\t\t\tprops.push(`${keyLiteral}: ${accessor} === null ? null : ${nestedCode}(${accessor})`);\n\t\t\t}\n\t\t} else {\n\t\t\t// Leaf field - access by index\n\t\t\tconst idx = indexRef.value++;\n\t\t\tconst accessor = `${rowVar}[${idx}]`;\n\t\t\tconst decoder = resolveDecoder(item.field);\n\t\t\tif (decoder === null) {\n\t\t\t\tprops.push(`${keyLiteral}: ${accessor}`);\n\t\t\t} else {\n\t\t\t\tconst decoderIdx = decoders.length;\n\t\t\t\tdecoders.push(decoder);\n\t\t\t\tprops.push(`${keyLiteral}: d[${decoderIdx}](${accessor})`);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn `{ ${props.join(', ')} }`;\n}\n\n/**\n * JIT-compiled array-mode row mapper generator.\n * Uses `new Function()` to generate optimized mapping code that works with\n * array-based rows from `.values()` queries for maximum performance.\n *\n * This mapper expects the driver to return rows as arrays (e.g., `[1, \"John\", \"2024-01-01\"]`)\n * instead of objects (e.g., `{id: 1, name: \"John\", createdAt: \"2024-01-01\"}`).\n *\n * **Note:** This mapper does NOT work in environments that restrict dynamic code evaluation,\n * such as Cloudflare Workers, Deno Deploy, or Vercel Edge Functions.\n *\n * @example\n * ```ts\n * import { jitArrayRowMapper } from 'drizzle-orm/row-mappers';\n *\n * const db = drizzle({\n * client,\n * schema,\n * relations,\n * rowMapperGenerator: jitArrayRowMapper,\n * });\n * ```\n */\nexport const jitArrayRowMapper: RowMapperGenerator = (\n\tselection: RowMapperSelection,\n\tparseJson: boolean,\n): RowMapperResult => {\n\tconst decoders: ((value: unknown) => unknown)[] = [];\n\tconst indexRef = { value: 0 };\n\tconst objectCode = generateArrayObjectCode(selection, decoders, 'r', indexRef, parseJson);\n\n\t// Generate batch processing code - mutates rows in-place to avoid allocation\n\tconst batchCode = `const l = rows.length;\nfor (let i = 0; i < l; i++) {\n const r = rows[i];\n rows[i] = ${objectCode};\n}\nreturn rows;`;\n\n\tconst fn = decoders.length > 0\n\t\t? new Function('rows', 'd', batchCode) as (\n\t\t\trows: unknown[][],\n\t\t\tdecoders: ((v: unknown) => unknown)[],\n\t\t) => Record<string, unknown>[]\n\t\t: new Function('rows', batchCode) as (rows: unknown[][]) => Record<string, unknown>[];\n\n\treturn {\n\t\tmapper: decoders.length > 0\n\t\t\t? (rows: unknown[][]) =>\n\t\t\t\t(fn as (rows: unknown[][], d: ((v: unknown) => unknown)[]) => Record<string, unknown>[])(rows, decoders)\n\t\t\t: fn as (rows: unknown[][]) => Record<string, unknown>[],\n\t\tisArrayMode: true,\n\t\tcode: batchCode,\n\t};\n};\n"],"mappings":"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"}
@@ -3,8 +3,8 @@ const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
3
3
  const require_singlestore_session = require('./session.cjs');
4
4
  let __entity_ts = require("../entity.cjs");
5
5
  let __version_ts = require("../version.cjs");
6
- let ___relations_ts = require("../_relations.cjs");
7
6
  let __logger_ts = require("../logger.cjs");
7
+ let ___relations_ts = require("../_relations.cjs");
8
8
  let mysql2 = require("mysql2");
9
9
  let __singlestore_core_db_ts = require("../singlestore-core/db.cjs");
10
10
  let __singlestore_core_dialect_ts = require("../singlestore-core/dialect.cjs");
@@ -20,6 +20,7 @@ var SingleStoreDriverDriver = class {
20
20
  createSession(schema, relations) {
21
21
  return new require_singlestore_session.SingleStoreDriverSession(this.client, this.dialect, relations, schema, {
22
22
  logger: this.options.logger,
23
+ useJitMapper: this.options.useJitMapper ?? false,
23
24
  cache: this.options.cache
24
25
  });
25
26
  }
@@ -45,7 +46,8 @@ function construct(client, config = {}) {
45
46
  const relations = config.relations ?? {};
46
47
  const db = new SingleStoreDriverDatabase(dialect, new SingleStoreDriverDriver(clientForInstance, dialect, {
47
48
  logger,
48
- cache: config.cache
49
+ cache: config.cache,
50
+ useJitMapper: config.useJitMappers
49
51
  }).createSession(schema, relations), relations, schema);
50
52
  db.$client = client;
51
53
  db.$cache = config.cache;
@@ -1 +1 @@
1
- {"version":3,"file":"driver.cjs","names":["entityKind","SingleStoreDriverSession","SingleStoreDatabase","SingleStoreDialect","DefaultLogger","createTableRelationsHelpers","npmVersion"],"sources":["../../src/singlestore/driver.ts"],"sourcesContent":["import { type Connection as CallbackConnection, createPool, type Pool as CallbackPool, type PoolOptions } from 'mysql2';\nimport type { Connection, Pool } from 'mysql2/promise';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/_relations.ts';\nimport type { Cache } from '~/cache/core/cache.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\nimport { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { npmVersion } from '~/version.ts';\nimport type {\n\tSingleStoreDriverClient,\n\tSingleStoreDriverPreparedQueryHKT,\n\tSingleStoreDriverQueryResultHKT,\n} from './session.ts';\nimport { SingleStoreDriverSession } from './session.ts';\n\nexport interface SingleStoreDriverOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class SingleStoreDriverDriver {\n\tstatic readonly [entityKind]: string = 'SingleStoreDriverDriver';\n\n\tconstructor(\n\t\tprivate client: SingleStoreDriverClient,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate options: SingleStoreDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t\trelations: AnyRelations,\n\t): SingleStoreDriverSession<Record<string, unknown>, AnyRelations, TablesRelationalConfig> {\n\t\treturn new SingleStoreDriverSession(this.client, this.dialect, relations, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tcache: this.options.cache,\n\t\t});\n\t}\n}\n\nexport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\n\nexport class SingleStoreDriverDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends SingleStoreDatabase<SingleStoreDriverQueryResultHKT, SingleStoreDriverPreparedQueryHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverDatabase';\n}\n\nexport type SingleStoreDriverDrizzleConfig<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> =\n\t& Omit<DrizzleConfig<TSchema, TRelations>, 'schema'>\n\t& ({ schema: TSchema } | { schema?: undefined });\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends Pool | Connection | CallbackPool | CallbackConnection = CallbackPool,\n>(\n\tclient: TClient,\n\tconfig: SingleStoreDriverDrizzleConfig<TSchema, TRelations> = {},\n): SingleStoreDriverDatabase<TSchema, TRelations> & {\n\t$client: AnySingleStoreDriverConnection extends TClient ? CallbackPool : TClient;\n} {\n\tconst dialect = new SingleStoreDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tconst clientForInstance = isCallbackClient(client) ? client.promise() : client;\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst driver = new SingleStoreDriverDriver(clientForInstance as SingleStoreDriverClient, dialect, {\n\t\tlogger,\n\t\tcache: config.cache,\n\t});\n\tconst session = driver.createSession(schema, relations);\n\tconst db = new SingleStoreDriverDatabase(dialect, session, relations, schema as any) as SingleStoreDriverDatabase<\n\t\tTSchema\n\t>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\ninterface CallbackClient {\n\tpromise(): SingleStoreDriverClient;\n}\n\nfunction isCallbackClient(client: any): client is CallbackClient {\n\treturn typeof client.promise === 'function';\n}\n\nexport type AnySingleStoreDriverConnection = Pool | Connection | CallbackPool | CallbackConnection;\n\nconst CONNECTION_ATTRS: PoolOptions['connectAttributes'] = {\n\t_connector_name: 'SingleStore Drizzle ORM Driver',\n\t_connector_version: npmVersion,\n};\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends AnySingleStoreDriverConnection = CallbackPool,\n>(\n\t...params: [\n\t\tstring,\n\t] | [\n\t\tstring,\n\t\tSingleStoreDriverDrizzleConfig<TSchema, TRelations>,\n\t] | [\n\t\t(\n\t\t\t& SingleStoreDriverDrizzleConfig<TSchema, TRelations>\n\t\t\t& ({\n\t\t\t\tconnection: string | PoolOptions;\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): SingleStoreDriverDatabase<TSchema, TRelations> & {\n\t$client: AnySingleStoreDriverConnection extends TClient ? CallbackPool : TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst connectionString = params[0]!;\n\t\tconst instance = createPool({\n\t\t\turi: connectionString,\n\t\t\tconnectAttributes: CONNECTION_ATTRS,\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t& { connection?: PoolOptions | string; client?: TClient }\n\t\t& SingleStoreDriverDrizzleConfig<TSchema, TRelations>;\n\n\tif (client) return construct(client, drizzleConfig) as any;\n\n\tlet opts: PoolOptions = {};\n\topts = typeof connection === 'string'\n\t\t? {\n\t\t\turi: connection,\n\t\t\tsupportBigNumbers: true,\n\t\t\tconnectAttributes: CONNECTION_ATTRS,\n\t\t}\n\t\t: {\n\t\t\t...connection,\n\t\t\tconnectAttributes: {\n\t\t\t\t...connection!.connectAttributes,\n\t\t\t\t...CONNECTION_ATTRS,\n\t\t\t},\n\t\t};\n\n\tconst instance = createPool(opts);\n\tconst db = construct(instance, drizzleConfig);\n\n\treturn db as any;\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig?: SingleStoreDriverDrizzleConfig<TSchema, TRelations>,\n\t): SingleStoreDriverDatabase<TSchema, TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;AA6BA,IAAa,0BAAb,MAAqC;CACpC,QAAiBA,0BAAsB;CAEvC,YACC,AAAQ,QACR,AAAQ,SACR,AAAQ,UAAoC,EAAE,EAC7C;EAHO;EACA;EACA;;CAIT,cACC,QACA,WAC0F;AAC1F,SAAO,IAAIC,qDAAyB,KAAK,QAAQ,KAAK,SAAS,WAAW,QAAQ;GACjF,QAAQ,KAAK,QAAQ;GACrB,OAAO,KAAK,QAAQ;GACpB,CAAC;;;AAMJ,IAAa,4BAAb,cAGUC,6CAA6G;CACtH,QAA0BF,0BAAsB;;AAUjD,SAAS,UAKR,QACA,SAA8D,EAAE,EAG/D;CACD,MAAM,UAAU,IAAIG,iDAAmB,EAAE,QAAQ,OAAO,QAAQ,CAAC;CACjE,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAIC,2BAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,MAAM,oBAAoB,iBAAiB,OAAO,GAAG,OAAO,SAAS,GAAG;CAExE,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,kEACL,OAAO,QACPC,4CACA;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,OAAO,aAAa,EAAE;CAMxC,MAAM,KAAK,IAAI,0BAA0B,SAL1B,IAAI,wBAAwB,mBAA8C,SAAS;EACjG;EACA,OAAO,OAAO;EACd,CAAC,CACqB,cAAc,QAAQ,UAAU,EACI,WAAW,OAAc;AAGpF,CAAO,GAAI,UAAU;AACrB,CAAO,GAAI,SAAS,OAAO;AAC3B,KAAW,GAAI,OACd,CAAO,GAAI,OAAO,gBAAgB,OAAO,OAAO;AAGjD,QAAO;;AAOR,SAAS,iBAAiB,QAAuC;AAChE,QAAO,OAAO,OAAO,YAAY;;AAKlC,MAAM,mBAAqD;CAC1D,iBAAiB;CACjB,oBAAoBC;CACpB;AAED,SAAgB,QAKf,GAAG,QAiBF;AACD,KAAI,OAAO,OAAO,OAAO,UAAU;EAClC,MAAM,mBAAmB,OAAO;AAMhC,SAAO,iCALqB;GAC3B,KAAK;GACL,mBAAmB;GACnB,CAAC,EAEyB,OAAO,GAAG;;CAGtC,MAAM,EAAE,YAAY,QAAQ,GAAG,kBAAkB,OAAO;AAIxD,KAAI,OAAQ,QAAO,UAAU,QAAQ,cAAc;CAEnD,IAAI,OAAoB,EAAE;AAC1B,QAAO,OAAO,eAAe,WAC1B;EACD,KAAK;EACL,mBAAmB;EACnB,mBAAmB;EACnB,GACC;EACD,GAAG;EACH,mBAAmB;GAClB,GAAG,WAAY;GACf,GAAG;GACH;EACD;AAKF,QAFW,iCADiB,KAAK,EACF,cAAc;;;CAMtC,SAAS,KAIf,QAGC;AACD,SAAO,UAAU,EAAE,EAAS,OAAO"}
1
+ {"version":3,"file":"driver.cjs","names":["entityKind","SingleStoreDriverSession","SingleStoreDatabase","SingleStoreDialect","DefaultLogger","createTableRelationsHelpers","npmVersion"],"sources":["../../src/singlestore/driver.ts"],"sourcesContent":["import { type Connection as CallbackConnection, createPool, type Pool as CallbackPool, type PoolOptions } from 'mysql2';\nimport type { Connection, Pool } from 'mysql2/promise';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/_relations.ts';\nimport type { Cache } from '~/cache/core/cache.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\nimport { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { npmVersion } from '~/version.ts';\nimport type {\n\tSingleStoreDriverClient,\n\tSingleStoreDriverPreparedQueryHKT,\n\tSingleStoreDriverQueryResultHKT,\n} from './session.ts';\nimport { SingleStoreDriverSession } from './session.ts';\n\nexport interface SingleStoreDriverOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tuseJitMapper?: boolean;\n}\n\nexport class SingleStoreDriverDriver {\n\tstatic readonly [entityKind]: string = 'SingleStoreDriverDriver';\n\n\tconstructor(\n\t\tprivate client: SingleStoreDriverClient,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate options: SingleStoreDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t\trelations: AnyRelations,\n\t): SingleStoreDriverSession<Record<string, unknown>, AnyRelations, TablesRelationalConfig> {\n\t\treturn new SingleStoreDriverSession(this.client, this.dialect, relations, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tuseJitMapper: this.options.useJitMapper ?? false,\n\t\t\tcache: this.options.cache,\n\t\t});\n\t}\n}\n\nexport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\n\nexport class SingleStoreDriverDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends SingleStoreDatabase<SingleStoreDriverQueryResultHKT, SingleStoreDriverPreparedQueryHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverDatabase';\n}\n\nexport type SingleStoreDriverDrizzleConfig<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> =\n\t& Omit<DrizzleConfig<TSchema, TRelations>, 'schema'>\n\t& ({ schema: TSchema } | { schema?: undefined });\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends Pool | Connection | CallbackPool | CallbackConnection = CallbackPool,\n>(\n\tclient: TClient,\n\tconfig: SingleStoreDriverDrizzleConfig<TSchema, TRelations> = {},\n): SingleStoreDriverDatabase<TSchema, TRelations> & {\n\t$client: AnySingleStoreDriverConnection extends TClient ? CallbackPool : TClient;\n} {\n\tconst dialect = new SingleStoreDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tconst clientForInstance = isCallbackClient(client) ? client.promise() : client;\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst driver = new SingleStoreDriverDriver(clientForInstance as SingleStoreDriverClient, dialect, {\n\t\tlogger,\n\t\tcache: config.cache,\n\t\tuseJitMapper: config.useJitMappers,\n\t});\n\tconst session = driver.createSession(schema, relations);\n\tconst db = new SingleStoreDriverDatabase(dialect, session, relations, schema as any) as SingleStoreDriverDatabase<\n\t\tTSchema\n\t>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\ninterface CallbackClient {\n\tpromise(): SingleStoreDriverClient;\n}\n\nfunction isCallbackClient(client: any): client is CallbackClient {\n\treturn typeof client.promise === 'function';\n}\n\nexport type AnySingleStoreDriverConnection = Pool | Connection | CallbackPool | CallbackConnection;\n\nconst CONNECTION_ATTRS: PoolOptions['connectAttributes'] = {\n\t_connector_name: 'SingleStore Drizzle ORM Driver',\n\t_connector_version: npmVersion,\n};\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends AnySingleStoreDriverConnection = CallbackPool,\n>(\n\t...params: [\n\t\tstring,\n\t] | [\n\t\tstring,\n\t\tSingleStoreDriverDrizzleConfig<TSchema, TRelations>,\n\t] | [\n\t\t(\n\t\t\t& SingleStoreDriverDrizzleConfig<TSchema, TRelations>\n\t\t\t& ({\n\t\t\t\tconnection: string | PoolOptions;\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): SingleStoreDriverDatabase<TSchema, TRelations> & {\n\t$client: AnySingleStoreDriverConnection extends TClient ? CallbackPool : TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst connectionString = params[0]!;\n\t\tconst instance = createPool({\n\t\t\turi: connectionString,\n\t\t\tconnectAttributes: CONNECTION_ATTRS,\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t& { connection?: PoolOptions | string; client?: TClient }\n\t\t& SingleStoreDriverDrizzleConfig<TSchema, TRelations>;\n\n\tif (client) return construct(client, drizzleConfig) as any;\n\n\tlet opts: PoolOptions = {};\n\topts = typeof connection === 'string'\n\t\t? {\n\t\t\turi: connection,\n\t\t\tsupportBigNumbers: true,\n\t\t\tconnectAttributes: CONNECTION_ATTRS,\n\t\t}\n\t\t: {\n\t\t\t...connection,\n\t\t\tconnectAttributes: {\n\t\t\t\t...connection!.connectAttributes,\n\t\t\t\t...CONNECTION_ATTRS,\n\t\t\t},\n\t\t};\n\n\tconst instance = createPool(opts);\n\tconst db = construct(instance, drizzleConfig);\n\n\treturn db as any;\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig?: SingleStoreDriverDrizzleConfig<TSchema, TRelations>,\n\t): SingleStoreDriverDatabase<TSchema, TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;AA8BA,IAAa,0BAAb,MAAqC;CACpC,QAAiBA,0BAAsB;CAEvC,YACC,AAAQ,QACR,AAAQ,SACR,AAAQ,UAAoC,EAAE,EAC7C;EAHO;EACA;EACA;;CAIT,cACC,QACA,WAC0F;AAC1F,SAAO,IAAIC,qDAAyB,KAAK,QAAQ,KAAK,SAAS,WAAW,QAAQ;GACjF,QAAQ,KAAK,QAAQ;GACrB,cAAc,KAAK,QAAQ,gBAAgB;GAC3C,OAAO,KAAK,QAAQ;GACpB,CAAC;;;AAMJ,IAAa,4BAAb,cAGUC,6CAA6G;CACtH,QAA0BF,0BAAsB;;AAUjD,SAAS,UAKR,QACA,SAA8D,EAAE,EAG/D;CACD,MAAM,UAAU,IAAIG,iDAAmB,EAAE,QAAQ,OAAO,QAAQ,CAAC;CACjE,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAIC,2BAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,MAAM,oBAAoB,iBAAiB,OAAO,GAAG,OAAO,SAAS,GAAG;CAExE,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,kEACL,OAAO,QACPC,4CACA;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,OAAO,aAAa,EAAE;CAOxC,MAAM,KAAK,IAAI,0BAA0B,SAN1B,IAAI,wBAAwB,mBAA8C,SAAS;EACjG;EACA,OAAO,OAAO;EACd,cAAc,OAAO;EACrB,CAAC,CACqB,cAAc,QAAQ,UAAU,EACI,WAAW,OAAc;AAGpF,CAAO,GAAI,UAAU;AACrB,CAAO,GAAI,SAAS,OAAO;AAC3B,KAAW,GAAI,OACd,CAAO,GAAI,OAAO,gBAAgB,OAAO,OAAO;AAGjD,QAAO;;AAOR,SAAS,iBAAiB,QAAuC;AAChE,QAAO,OAAO,OAAO,YAAY;;AAKlC,MAAM,mBAAqD;CAC1D,iBAAiB;CACjB,oBAAoBC;CACpB;AAED,SAAgB,QAKf,GAAG,QAiBF;AACD,KAAI,OAAO,OAAO,OAAO,UAAU;EAClC,MAAM,mBAAmB,OAAO;AAMhC,SAAO,iCALqB;GAC3B,KAAK;GACL,mBAAmB;GACnB,CAAC,EAEyB,OAAO,GAAG;;CAGtC,MAAM,EAAE,YAAY,QAAQ,GAAG,kBAAkB,OAAO;AAIxD,KAAI,OAAQ,QAAO,UAAU,QAAQ,cAAc;CAEnD,IAAI,OAAoB,EAAE;AAC1B,QAAO,OAAO,eAAe,WAC1B;EACD,KAAK;EACL,mBAAmB;EACnB,mBAAmB;EACnB,GACC;EACD,GAAG;EACH,mBAAmB;GAClB,GAAG,WAAY;GACf,GAAG;GACH;EACD;AAKF,QAFW,iCADiB,KAAK,EACF,cAAc;;;CAMtC,SAAS,KAIf,QAGC;AACD,SAAO,UAAU,EAAE,EAAS,OAAO"}
@@ -5,8 +5,8 @@ import { RelationalSchemaConfig, TablesRelationalConfig } from "../_relations.cj
5
5
  import { Cache } from "../cache/core/cache.cjs";
6
6
  import { AnyRelations, EmptyRelations } from "../relations.cjs";
7
7
  import { Connection, Pool } from "mysql2/promise";
8
- import { SingleStoreDialect } from "../singlestore-core/dialect.cjs";
9
8
  import { Logger } from "../logger.cjs";
9
+ import { SingleStoreDialect } from "../singlestore-core/dialect.cjs";
10
10
  import { Connection as Connection$1, Pool as Pool$1, PoolOptions as PoolOptions$1 } from "mysql2";
11
11
  import { SingleStoreDatabase, SingleStoreDatabase as SingleStoreDatabase$1 } from "../singlestore-core/db.cjs";
12
12
 
@@ -14,6 +14,7 @@ import { SingleStoreDatabase, SingleStoreDatabase as SingleStoreDatabase$1 } fro
14
14
  interface SingleStoreDriverOptions {
15
15
  logger?: Logger;
16
16
  cache?: Cache;
17
+ useJitMapper?: boolean;
17
18
  }
18
19
  declare class SingleStoreDriverDriver {
19
20
  private client;
@@ -1,11 +1,11 @@
1
1
  import { SingleStoreDriverClient, SingleStoreDriverPreparedQueryHKT, SingleStoreDriverQueryResultHKT, SingleStoreDriverSession } from "./session.js";
2
2
  import { entityKind } from "../entity.js";
3
3
  import { DrizzleConfig } from "../utils.js";
4
- import { RelationalSchemaConfig, TablesRelationalConfig } from "../_relations.js";
5
4
  import { Logger } from "../logger.js";
5
+ import { RelationalSchemaConfig, TablesRelationalConfig } from "../_relations.js";
6
+ import { AnyRelations, EmptyRelations } from "../relations.js";
6
7
  import { Connection, Pool } from "mysql2/promise";
7
8
  import { Cache } from "../cache/core/cache.js";
8
- import { AnyRelations, EmptyRelations } from "../relations.js";
9
9
  import { Connection as Connection$1, Pool as Pool$1, PoolOptions as PoolOptions$1 } from "mysql2";
10
10
  import { SingleStoreDatabase, SingleStoreDatabase as SingleStoreDatabase$1 } from "../singlestore-core/db.js";
11
11
  import { SingleStoreDialect } from "../singlestore-core/dialect.js";
@@ -14,6 +14,7 @@ import { SingleStoreDialect } from "../singlestore-core/dialect.js";
14
14
  interface SingleStoreDriverOptions {
15
15
  logger?: Logger;
16
16
  cache?: Cache;
17
+ useJitMapper?: boolean;
17
18
  }
18
19
  declare class SingleStoreDriverDriver {
19
20
  private client;
@@ -1,8 +1,8 @@
1
1
  import { SingleStoreDriverSession } from "./session.js";
2
2
  import { entityKind } from "../entity.js";
3
3
  import { npmVersion } from "../version.js";
4
- import { createTableRelationsHelpers, extractTablesRelationalConfig } from "../_relations.js";
5
4
  import { DefaultLogger } from "../logger.js";
5
+ import { createTableRelationsHelpers, extractTablesRelationalConfig } from "../_relations.js";
6
6
  import { createPool } from "mysql2";
7
7
  import { SingleStoreDatabase, SingleStoreDatabase as SingleStoreDatabase$1 } from "../singlestore-core/db.js";
8
8
  import { SingleStoreDialect } from "../singlestore-core/dialect.js";
@@ -18,6 +18,7 @@ var SingleStoreDriverDriver = class {
18
18
  createSession(schema, relations) {
19
19
  return new SingleStoreDriverSession(this.client, this.dialect, relations, schema, {
20
20
  logger: this.options.logger,
21
+ useJitMapper: this.options.useJitMapper ?? false,
21
22
  cache: this.options.cache
22
23
  });
23
24
  }
@@ -43,7 +44,8 @@ function construct(client, config = {}) {
43
44
  const relations = config.relations ?? {};
44
45
  const db = new SingleStoreDriverDatabase(dialect, new SingleStoreDriverDriver(clientForInstance, dialect, {
45
46
  logger,
46
- cache: config.cache
47
+ cache: config.cache,
48
+ useJitMapper: config.useJitMappers
47
49
  }).createSession(schema, relations), relations, schema);
48
50
  db.$client = client;
49
51
  db.$cache = config.cache;
@@ -1 +1 @@
1
- {"version":3,"file":"driver.js","names":["SingleStoreDatabase"],"sources":["../../src/singlestore/driver.ts"],"sourcesContent":["import { type Connection as CallbackConnection, createPool, type Pool as CallbackPool, type PoolOptions } from 'mysql2';\nimport type { Connection, Pool } from 'mysql2/promise';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/_relations.ts';\nimport type { Cache } from '~/cache/core/cache.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\nimport { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { npmVersion } from '~/version.ts';\nimport type {\n\tSingleStoreDriverClient,\n\tSingleStoreDriverPreparedQueryHKT,\n\tSingleStoreDriverQueryResultHKT,\n} from './session.ts';\nimport { SingleStoreDriverSession } from './session.ts';\n\nexport interface SingleStoreDriverOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class SingleStoreDriverDriver {\n\tstatic readonly [entityKind]: string = 'SingleStoreDriverDriver';\n\n\tconstructor(\n\t\tprivate client: SingleStoreDriverClient,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate options: SingleStoreDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t\trelations: AnyRelations,\n\t): SingleStoreDriverSession<Record<string, unknown>, AnyRelations, TablesRelationalConfig> {\n\t\treturn new SingleStoreDriverSession(this.client, this.dialect, relations, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tcache: this.options.cache,\n\t\t});\n\t}\n}\n\nexport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\n\nexport class SingleStoreDriverDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends SingleStoreDatabase<SingleStoreDriverQueryResultHKT, SingleStoreDriverPreparedQueryHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverDatabase';\n}\n\nexport type SingleStoreDriverDrizzleConfig<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> =\n\t& Omit<DrizzleConfig<TSchema, TRelations>, 'schema'>\n\t& ({ schema: TSchema } | { schema?: undefined });\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends Pool | Connection | CallbackPool | CallbackConnection = CallbackPool,\n>(\n\tclient: TClient,\n\tconfig: SingleStoreDriverDrizzleConfig<TSchema, TRelations> = {},\n): SingleStoreDriverDatabase<TSchema, TRelations> & {\n\t$client: AnySingleStoreDriverConnection extends TClient ? CallbackPool : TClient;\n} {\n\tconst dialect = new SingleStoreDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tconst clientForInstance = isCallbackClient(client) ? client.promise() : client;\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst driver = new SingleStoreDriverDriver(clientForInstance as SingleStoreDriverClient, dialect, {\n\t\tlogger,\n\t\tcache: config.cache,\n\t});\n\tconst session = driver.createSession(schema, relations);\n\tconst db = new SingleStoreDriverDatabase(dialect, session, relations, schema as any) as SingleStoreDriverDatabase<\n\t\tTSchema\n\t>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\ninterface CallbackClient {\n\tpromise(): SingleStoreDriverClient;\n}\n\nfunction isCallbackClient(client: any): client is CallbackClient {\n\treturn typeof client.promise === 'function';\n}\n\nexport type AnySingleStoreDriverConnection = Pool | Connection | CallbackPool | CallbackConnection;\n\nconst CONNECTION_ATTRS: PoolOptions['connectAttributes'] = {\n\t_connector_name: 'SingleStore Drizzle ORM Driver',\n\t_connector_version: npmVersion,\n};\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends AnySingleStoreDriverConnection = CallbackPool,\n>(\n\t...params: [\n\t\tstring,\n\t] | [\n\t\tstring,\n\t\tSingleStoreDriverDrizzleConfig<TSchema, TRelations>,\n\t] | [\n\t\t(\n\t\t\t& SingleStoreDriverDrizzleConfig<TSchema, TRelations>\n\t\t\t& ({\n\t\t\t\tconnection: string | PoolOptions;\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): SingleStoreDriverDatabase<TSchema, TRelations> & {\n\t$client: AnySingleStoreDriverConnection extends TClient ? CallbackPool : TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst connectionString = params[0]!;\n\t\tconst instance = createPool({\n\t\t\turi: connectionString,\n\t\t\tconnectAttributes: CONNECTION_ATTRS,\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t& { connection?: PoolOptions | string; client?: TClient }\n\t\t& SingleStoreDriverDrizzleConfig<TSchema, TRelations>;\n\n\tif (client) return construct(client, drizzleConfig) as any;\n\n\tlet opts: PoolOptions = {};\n\topts = typeof connection === 'string'\n\t\t? {\n\t\t\turi: connection,\n\t\t\tsupportBigNumbers: true,\n\t\t\tconnectAttributes: CONNECTION_ATTRS,\n\t\t}\n\t\t: {\n\t\t\t...connection,\n\t\t\tconnectAttributes: {\n\t\t\t\t...connection!.connectAttributes,\n\t\t\t\t...CONNECTION_ATTRS,\n\t\t\t},\n\t\t};\n\n\tconst instance = createPool(opts);\n\tconst db = construct(instance, drizzleConfig);\n\n\treturn db as any;\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig?: SingleStoreDriverDrizzleConfig<TSchema, TRelations>,\n\t): SingleStoreDriverDatabase<TSchema, TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;AA6BA,IAAa,0BAAb,MAAqC;CACpC,QAAiB,cAAsB;CAEvC,YACC,AAAQ,QACR,AAAQ,SACR,AAAQ,UAAoC,EAAE,EAC7C;EAHO;EACA;EACA;;CAIT,cACC,QACA,WAC0F;AAC1F,SAAO,IAAI,yBAAyB,KAAK,QAAQ,KAAK,SAAS,WAAW,QAAQ;GACjF,QAAQ,KAAK,QAAQ;GACrB,OAAO,KAAK,QAAQ;GACpB,CAAC;;;AAMJ,IAAa,4BAAb,cAGUA,sBAA6G;CACtH,QAA0B,cAAsB;;AAUjD,SAAS,UAKR,QACA,SAA8D,EAAE,EAG/D;CACD,MAAM,UAAU,IAAI,mBAAmB,EAAE,QAAQ,OAAO,QAAQ,CAAC;CACjE,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAI,eAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,MAAM,oBAAoB,iBAAiB,OAAO,GAAG,OAAO,SAAS,GAAG;CAExE,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAe,8BACpB,OAAO,QACP,4BACA;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,OAAO,aAAa,EAAE;CAMxC,MAAM,KAAK,IAAI,0BAA0B,SAL1B,IAAI,wBAAwB,mBAA8C,SAAS;EACjG;EACA,OAAO,OAAO;EACd,CAAC,CACqB,cAAc,QAAQ,UAAU,EACI,WAAW,OAAc;AAGpF,CAAO,GAAI,UAAU;AACrB,CAAO,GAAI,SAAS,OAAO;AAC3B,KAAW,GAAI,OACd,CAAO,GAAI,OAAO,gBAAgB,OAAO,OAAO;AAGjD,QAAO;;AAOR,SAAS,iBAAiB,QAAuC;AAChE,QAAO,OAAO,OAAO,YAAY;;AAKlC,MAAM,mBAAqD;CAC1D,iBAAiB;CACjB,oBAAoB;CACpB;AAED,SAAgB,QAKf,GAAG,QAiBF;AACD,KAAI,OAAO,OAAO,OAAO,UAAU;EAClC,MAAM,mBAAmB,OAAO;AAMhC,SAAO,UALU,WAAW;GAC3B,KAAK;GACL,mBAAmB;GACnB,CAAC,EAEyB,OAAO,GAAG;;CAGtC,MAAM,EAAE,YAAY,QAAQ,GAAG,kBAAkB,OAAO;AAIxD,KAAI,OAAQ,QAAO,UAAU,QAAQ,cAAc;CAEnD,IAAI,OAAoB,EAAE;AAC1B,QAAO,OAAO,eAAe,WAC1B;EACD,KAAK;EACL,mBAAmB;EACnB,mBAAmB;EACnB,GACC;EACD,GAAG;EACH,mBAAmB;GAClB,GAAG,WAAY;GACf,GAAG;GACH;EACD;AAKF,QAFW,UADM,WAAW,KAAK,EACF,cAAc;;;CAMtC,SAAS,KAIf,QAGC;AACD,SAAO,UAAU,EAAE,EAAS,OAAO"}
1
+ {"version":3,"file":"driver.js","names":["SingleStoreDatabase"],"sources":["../../src/singlestore/driver.ts"],"sourcesContent":["import { type Connection as CallbackConnection, createPool, type Pool as CallbackPool, type PoolOptions } from 'mysql2';\nimport type { Connection, Pool } from 'mysql2/promise';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/_relations.ts';\nimport type { Cache } from '~/cache/core/cache.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\nimport { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { npmVersion } from '~/version.ts';\nimport type {\n\tSingleStoreDriverClient,\n\tSingleStoreDriverPreparedQueryHKT,\n\tSingleStoreDriverQueryResultHKT,\n} from './session.ts';\nimport { SingleStoreDriverSession } from './session.ts';\n\nexport interface SingleStoreDriverOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tuseJitMapper?: boolean;\n}\n\nexport class SingleStoreDriverDriver {\n\tstatic readonly [entityKind]: string = 'SingleStoreDriverDriver';\n\n\tconstructor(\n\t\tprivate client: SingleStoreDriverClient,\n\t\tprivate dialect: SingleStoreDialect,\n\t\tprivate options: SingleStoreDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t\trelations: AnyRelations,\n\t): SingleStoreDriverSession<Record<string, unknown>, AnyRelations, TablesRelationalConfig> {\n\t\treturn new SingleStoreDriverSession(this.client, this.dialect, relations, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tuseJitMapper: this.options.useJitMapper ?? false,\n\t\t\tcache: this.options.cache,\n\t\t});\n\t}\n}\n\nexport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\n\nexport class SingleStoreDriverDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends SingleStoreDatabase<SingleStoreDriverQueryResultHKT, SingleStoreDriverPreparedQueryHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverDatabase';\n}\n\nexport type SingleStoreDriverDrizzleConfig<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> =\n\t& Omit<DrizzleConfig<TSchema, TRelations>, 'schema'>\n\t& ({ schema: TSchema } | { schema?: undefined });\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends Pool | Connection | CallbackPool | CallbackConnection = CallbackPool,\n>(\n\tclient: TClient,\n\tconfig: SingleStoreDriverDrizzleConfig<TSchema, TRelations> = {},\n): SingleStoreDriverDatabase<TSchema, TRelations> & {\n\t$client: AnySingleStoreDriverConnection extends TClient ? CallbackPool : TClient;\n} {\n\tconst dialect = new SingleStoreDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tconst clientForInstance = isCallbackClient(client) ? client.promise() : client;\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst driver = new SingleStoreDriverDriver(clientForInstance as SingleStoreDriverClient, dialect, {\n\t\tlogger,\n\t\tcache: config.cache,\n\t\tuseJitMapper: config.useJitMappers,\n\t});\n\tconst session = driver.createSession(schema, relations);\n\tconst db = new SingleStoreDriverDatabase(dialect, session, relations, schema as any) as SingleStoreDriverDatabase<\n\t\tTSchema\n\t>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\ninterface CallbackClient {\n\tpromise(): SingleStoreDriverClient;\n}\n\nfunction isCallbackClient(client: any): client is CallbackClient {\n\treturn typeof client.promise === 'function';\n}\n\nexport type AnySingleStoreDriverConnection = Pool | Connection | CallbackPool | CallbackConnection;\n\nconst CONNECTION_ATTRS: PoolOptions['connectAttributes'] = {\n\t_connector_name: 'SingleStore Drizzle ORM Driver',\n\t_connector_version: npmVersion,\n};\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends AnySingleStoreDriverConnection = CallbackPool,\n>(\n\t...params: [\n\t\tstring,\n\t] | [\n\t\tstring,\n\t\tSingleStoreDriverDrizzleConfig<TSchema, TRelations>,\n\t] | [\n\t\t(\n\t\t\t& SingleStoreDriverDrizzleConfig<TSchema, TRelations>\n\t\t\t& ({\n\t\t\t\tconnection: string | PoolOptions;\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): SingleStoreDriverDatabase<TSchema, TRelations> & {\n\t$client: AnySingleStoreDriverConnection extends TClient ? CallbackPool : TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst connectionString = params[0]!;\n\t\tconst instance = createPool({\n\t\t\turi: connectionString,\n\t\t\tconnectAttributes: CONNECTION_ATTRS,\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t& { connection?: PoolOptions | string; client?: TClient }\n\t\t& SingleStoreDriverDrizzleConfig<TSchema, TRelations>;\n\n\tif (client) return construct(client, drizzleConfig) as any;\n\n\tlet opts: PoolOptions = {};\n\topts = typeof connection === 'string'\n\t\t? {\n\t\t\turi: connection,\n\t\t\tsupportBigNumbers: true,\n\t\t\tconnectAttributes: CONNECTION_ATTRS,\n\t\t}\n\t\t: {\n\t\t\t...connection,\n\t\t\tconnectAttributes: {\n\t\t\t\t...connection!.connectAttributes,\n\t\t\t\t...CONNECTION_ATTRS,\n\t\t\t},\n\t\t};\n\n\tconst instance = createPool(opts);\n\tconst db = construct(instance, drizzleConfig);\n\n\treturn db as any;\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig?: SingleStoreDriverDrizzleConfig<TSchema, TRelations>,\n\t): SingleStoreDriverDatabase<TSchema, TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;AA8BA,IAAa,0BAAb,MAAqC;CACpC,QAAiB,cAAsB;CAEvC,YACC,AAAQ,QACR,AAAQ,SACR,AAAQ,UAAoC,EAAE,EAC7C;EAHO;EACA;EACA;;CAIT,cACC,QACA,WAC0F;AAC1F,SAAO,IAAI,yBAAyB,KAAK,QAAQ,KAAK,SAAS,WAAW,QAAQ;GACjF,QAAQ,KAAK,QAAQ;GACrB,cAAc,KAAK,QAAQ,gBAAgB;GAC3C,OAAO,KAAK,QAAQ;GACpB,CAAC;;;AAMJ,IAAa,4BAAb,cAGUA,sBAA6G;CACtH,QAA0B,cAAsB;;AAUjD,SAAS,UAKR,QACA,SAA8D,EAAE,EAG/D;CACD,MAAM,UAAU,IAAI,mBAAmB,EAAE,QAAQ,OAAO,QAAQ,CAAC;CACjE,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAI,eAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,MAAM,oBAAoB,iBAAiB,OAAO,GAAG,OAAO,SAAS,GAAG;CAExE,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAe,8BACpB,OAAO,QACP,4BACA;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,OAAO,aAAa,EAAE;CAOxC,MAAM,KAAK,IAAI,0BAA0B,SAN1B,IAAI,wBAAwB,mBAA8C,SAAS;EACjG;EACA,OAAO,OAAO;EACd,cAAc,OAAO;EACrB,CAAC,CACqB,cAAc,QAAQ,UAAU,EACI,WAAW,OAAc;AAGpF,CAAO,GAAI,UAAU;AACrB,CAAO,GAAI,SAAS,OAAO;AAC3B,KAAW,GAAI,OACd,CAAO,GAAI,OAAO,gBAAgB,OAAO,OAAO;AAGjD,QAAO;;AAOR,SAAS,iBAAiB,QAAuC;AAChE,QAAO,OAAO,OAAO,YAAY;;AAKlC,MAAM,mBAAqD;CAC1D,iBAAiB;CACjB,oBAAoB;CACpB;AAED,SAAgB,QAKf,GAAG,QAiBF;AACD,KAAI,OAAO,OAAO,OAAO,UAAU;EAClC,MAAM,mBAAmB,OAAO;AAMhC,SAAO,UALU,WAAW;GAC3B,KAAK;GACL,mBAAmB;GACnB,CAAC,EAEyB,OAAO,GAAG;;CAGtC,MAAM,EAAE,YAAY,QAAQ,GAAG,kBAAkB,OAAO;AAIxD,KAAI,OAAQ,QAAO,UAAU,QAAQ,cAAc;CAEnD,IAAI,OAAoB,EAAE;AAC1B,QAAO,OAAO,eAAe,WAC1B;EACD,KAAK;EACL,mBAAmB;EACnB,mBAAmB;EACnB,GACC;EACD,GAAG;EACH,mBAAmB;GAClB,GAAG,WAAY;GACf,GAAG;GACH;EACD;AAKF,QAFW,UADM,WAAW,KAAK,EACF,cAAc;;;CAMtC,SAAS,KAIf,QAGC;AACD,SAAO,UAAU,EAAE,EAAS,OAAO"}
@@ -6,6 +6,7 @@ let __utils_ts = require("../utils.cjs");
6
6
  let __sql_sql_ts = require("../sql/sql.cjs");
7
7
  let __logger_ts = require("../logger.cjs");
8
8
  let __cache_core_index_ts = require("../cache/core/index.cjs");
9
+ let __relations_ts = require("../relations.cjs");
9
10
  let node_events = require("node:events");
10
11
  let __singlestore_core_session_ts = require("../singlestore-core/session.cjs");
11
12
 
@@ -14,16 +15,19 @@ var SingleStoreDriverPreparedQuery = class extends __singlestore_core_session_ts
14
15
  static [__entity_ts.entityKind] = "SingleStoreDriverPreparedQuery";
15
16
  rawQuery;
16
17
  query;
17
- constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, customResultMapper, generatedIds, returningIds, isRqbV2Query) {
18
+ jitMapper;
19
+ constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, useJitMapper, customResultMapper, generatedIds, returningIds, isRqbV2Query, rqbConfig) {
18
20
  super(cache, queryMetadata, cacheConfig);
19
21
  this.client = client;
20
22
  this.params = params;
21
23
  this.logger = logger;
22
24
  this.fields = fields;
25
+ this.useJitMapper = useJitMapper;
23
26
  this.customResultMapper = customResultMapper;
24
27
  this.generatedIds = generatedIds;
25
28
  this.returningIds = returningIds;
26
29
  this.isRqbV2Query = isRqbV2Query;
30
+ this.rqbConfig = rqbConfig;
27
31
  this.rawQuery = {
28
32
  sql: queryString,
29
33
  typeCast: function(field, next) {
@@ -72,7 +76,7 @@ var SingleStoreDriverPreparedQuery = class extends __singlestore_core_session_ts
72
76
  return await client.query(query, params);
73
77
  }))[0];
74
78
  if (customResultMapper) return customResultMapper(rows);
75
- return rows.map((row) => (0, __utils_ts.mapResultRow)(fields, row, joinsNotNullableMap));
79
+ return this.useJitMapper ? (this.jitMapper = this.jitMapper ?? (0, __utils_ts.makeJitQueryMapper)(fields, joinsNotNullableMap))(rows) : rows.map((row) => (0, __utils_ts.mapResultRow)(fields, row, joinsNotNullableMap));
76
80
  }
77
81
  async executeRqbV2(placeholderValues = {}) {
78
82
  const params = (0, __sql_sql_ts.fillPlaceholders)(this.params, placeholderValues);
@@ -103,10 +107,16 @@ var SingleStoreDriverPreparedQuery = class extends __singlestore_core_session_ts
103
107
  ]);
104
108
  if (row === void 0 || Array.isArray(row) && row.length === 0) break;
105
109
  else if (row instanceof Error) throw row;
110
+ else if (this.isRqbV2Query) if (this.useJitMapper) yield (this.jitMapper = this.jitMapper ?? (0, __relations_ts.makeJitRqbMapper)(this.rqbConfig))([row]);
111
+ else {
112
+ const mapped = customResultMapper([row]);
113
+ if (this.rqbConfig.isFirst) yield mapped;
114
+ else yield mapped[0];
115
+ }
106
116
  else if (hasRowsMapper) if (customResultMapper) {
107
117
  const mappedRow = customResultMapper([row]);
108
118
  yield Array.isArray(mappedRow) ? mappedRow[0] : mappedRow;
109
- } else yield (0, __utils_ts.mapResultRow)(fields, row, joinsNotNullableMap);
119
+ } else yield this.useJitMapper ? (this.jitMapper = this.jitMapper ?? (0, __utils_ts.makeJitQueryMapper)(fields, joinsNotNullableMap))([row])[0] : (0, __utils_ts.mapResultRow)(fields, row, joinsNotNullableMap);
110
120
  else yield row;
111
121
  }
112
122
  } finally {
@@ -129,10 +139,10 @@ var SingleStoreDriverSession = class SingleStoreDriverSession extends __singlest
129
139
  this.cache = options.cache ?? new __cache_core_index_ts.NoopCache();
130
140
  }
131
141
  prepareQuery(query, fields, customResultMapper, generatedIds, returningIds, queryMetadata, cacheConfig) {
132
- return new SingleStoreDriverPreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, queryMetadata, cacheConfig, fields, customResultMapper, generatedIds, returningIds);
142
+ return new SingleStoreDriverPreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, queryMetadata, cacheConfig, fields, this.options.useJitMapper, customResultMapper, generatedIds, returningIds);
133
143
  }
134
- prepareRelationalQuery(query, fields, customResultMapper, generatedIds, returningIds) {
135
- return new SingleStoreDriverPreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, void 0, void 0, fields, customResultMapper, generatedIds, returningIds, true);
144
+ prepareRelationalQuery(query, fields, customResultMapper, config, generatedIds, returningIds) {
145
+ return new SingleStoreDriverPreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, void 0, void 0, fields, this.options.useJitMapper, customResultMapper, generatedIds, returningIds, true, config);
136
146
  }
137
147
  /**
138
148
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"session.cjs","names":["SingleStorePreparedQuery","entityKind","Column","SingleStoreSession","NoopLogger","NoopCache","SingleStoreTransaction","sql"],"sources":["../../src/singlestore/session.ts"],"sourcesContent":["import type { Connection as CallbackConnection } from 'mysql2';\nimport type {\n\tConnection,\n\tFieldPacket,\n\tOkPacket,\n\tPool,\n\tPoolConnection,\n\tQueryOptions,\n\tResultSetHeader,\n\tRowDataPacket,\n} from 'mysql2/promise';\nimport { once } from 'node:events';\nimport type * as V1 from '~/_relations.ts';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport type { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/singlestore-core/query-builders/select.types.ts';\nimport {\n\ttype PreparedQueryKind,\n\tSingleStorePreparedQuery,\n\ttype SingleStorePreparedQueryConfig,\n\ttype SingleStorePreparedQueryHKT,\n\ttype SingleStoreQueryResultHKT,\n\tSingleStoreSession,\n\tSingleStoreTransaction,\n\ttype SingleStoreTransactionConfig,\n} from '~/singlestore-core/session.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport { fillPlaceholders, sql } from '~/sql/sql.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nexport type SingleStoreDriverClient = Pool | Connection;\n\nexport type SingleStoreRawQueryResult = [ResultSetHeader, FieldPacket[]];\nexport type SingleStoreQueryResultType = RowDataPacket[][] | RowDataPacket[] | OkPacket | OkPacket[] | ResultSetHeader;\nexport type SingleStoreQueryResult<\n\tT = any,\n> = [T extends ResultSetHeader ? T : T[], FieldPacket[]];\n\nexport class SingleStoreDriverPreparedQuery<T extends SingleStorePreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends SingleStorePreparedQuery<T>\n{\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverPreparedQuery';\n\n\tprivate rawQuery: QueryOptions;\n\tprivate query: QueryOptions;\n\n\tconstructor(\n\t\tprivate client: SingleStoreDriverClient,\n\t\tqueryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\t// Keys that were used in $default and the value that was generated for them\n\t\tprivate generatedIds?: Record<string, unknown>[],\n\t\t// Keys that should be returned, it has the column with all properties + key from object\n\t\tprivate returningIds?: SelectedFieldsOrdered,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper(cache, queryMetadata, cacheConfig);\n\t\tthis.rawQuery = {\n\t\t\tsql: queryString,\n\t\t\t// rowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t};\n\t\tthis.query = {\n\t\t\tsql: queryString,\n\t\t\trowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t};\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQuery.sql, params);\n\n\t\tconst { fields, client, rawQuery, query, joinsNotNullableMap, customResultMapper, returningIds, generatedIds } =\n\t\t\tthis;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst res = await this.queryWithCache(rawQuery.sql, params, async () => {\n\t\t\t\treturn await client.query<any>(rawQuery, params);\n\t\t\t});\n\n\t\t\tconst insertId = res[0].insertId;\n\t\t\tconst affectedRows = res[0].affectedRows;\n\t\t\t// for each row, I need to check keys from\n\t\t\tif (returningIds) {\n\t\t\t\tconst returningResponse = [];\n\t\t\t\tlet j = 0;\n\t\t\t\tfor (let i = insertId; i < insertId + affectedRows; i++) {\n\t\t\t\t\tfor (const column of returningIds) {\n\t\t\t\t\t\tconst key = returningIds[0]!.path[0]!;\n\t\t\t\t\t\tif (is(column.field, Column)) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (column.field.primary && column.field.autoIncrement) {\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: i });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (column.field.defaultFn && generatedIds) {\n\t\t\t\t\t\t\t\t// generatedIds[rowIdx][key]\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: generatedIds[j]![key] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tj++;\n\t\t\t\t}\n\n\t\t\t\treturn returningResponse;\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\n\t\tconst result = await this.queryWithCache(query.sql, params, async () => {\n\t\t\treturn await client.query<any[]>(query, params);\n\t\t});\n\n\t\tconst rows = result[0];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows);\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQuery.sql, params);\n\n\t\tconst { client, rawQuery, customResultMapper } = this;\n\t\tconst res = await client.query<any>(rawQuery, params);\n\n\t\tconst rows = res[0];\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(rows);\n\t}\n\n\tasync *iterator(\n\t\tplaceholderValues: Record<string, unknown> = {},\n\t): AsyncGenerator<T['execute'] extends any[] ? T['execute'][number] : T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\tconst conn = ((isPool(this.client) ? await this.client.getConnection() : this.client) as {} as {\n\t\t\tconnection: CallbackConnection;\n\t\t}).connection;\n\n\t\tconst { fields, query, rawQuery, joinsNotNullableMap, client, customResultMapper } = this;\n\t\tconst hasRowsMapper = Boolean(fields || customResultMapper);\n\t\tconst driverQuery = hasRowsMapper ? conn.query(query, params) : conn.query(rawQuery, params);\n\n\t\tconst stream = driverQuery.stream();\n\n\t\tfunction dataListener() {\n\t\t\tstream.pause();\n\t\t}\n\n\t\tstream.on('data', dataListener);\n\n\t\ttry {\n\t\t\tconst onEnd = once(stream, 'end');\n\t\t\tconst onError = once(stream, 'error');\n\n\t\t\twhile (true) {\n\t\t\t\tstream.resume();\n\t\t\t\tconst row = await Promise.race([onEnd, onError, new Promise((resolve) => stream.once('data', resolve))]);\n\t\t\t\tif (row === undefined || (Array.isArray(row) && row.length === 0)) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (row instanceof Error) { // oxlint-disable-line drizzle-internal/no-instanceof\n\t\t\t\t\tthrow row;\n\t\t\t\t} else {\n\t\t\t\t\tif (hasRowsMapper) {\n\t\t\t\t\t\tif (customResultMapper) {\n\t\t\t\t\t\t\tconst mappedRow = (customResultMapper as (rows: unknown[][]) => T['execute'])([row as unknown[]]);\n\t\t\t\t\t\t\tyield (Array.isArray(mappedRow) ? mappedRow[0] : mappedRow);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tyield mapResultRow(fields!, row as unknown[], joinsNotNullableMap);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tyield row as T['execute'];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tstream.off('data', dataListener);\n\t\t\tif (isPool(client)) {\n\t\t\t\tconn.end();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport interface SingleStoreDriverSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class SingleStoreDriverSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SingleStoreSession<\n\tSingleStoreQueryResultHKT,\n\tSingleStoreDriverPreparedQueryHKT,\n\tTFullSchema,\n\tTRelations,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverSession';\n\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: SingleStoreDriverClient,\n\t\tdialect: SingleStoreDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: SingleStoreDriverSessionOptions,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery<T extends SingleStorePreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): PreparedQueryKind<SingleStoreDriverPreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new SingleStoreDriverPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t) as PreparedQueryKind<SingleStoreDriverPreparedQueryHKT, T>;\n\t}\n\n\tprepareRelationalQuery<T extends SingleStorePreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): PreparedQueryKind<SingleStorePreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new SingleStoreDriverPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t\ttrue,\n\t\t) as any;\n\t}\n\n\t/**\n\t * @internal\n\t * What is its purpose?\n\t */\n\tasync query(query: string, params: unknown[]): Promise<SingleStoreQueryResult> {\n\t\tthis.logger.logQuery(query, params);\n\t\tconst result = await this.client.query({\n\t\t\tsql: query,\n\t\t\tvalues: params,\n\t\t\trowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t});\n\t\treturn result;\n\t}\n\n\toverride all<T = unknown>(query: SQL): Promise<T[]> {\n\t\tconst querySql = this.dialect.sqlToQuery(query);\n\t\tthis.logger.logQuery(querySql.sql, querySql.params);\n\t\treturn this.client.query(querySql.sql, querySql.params).then((result) => result[0]) as Promise<T[]>;\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t\tconfig?: SingleStoreTransactionConfig,\n\t): Promise<T> {\n\t\tconst session = isPool(this.client)\n\t\t\t? new SingleStoreDriverSession(\n\t\t\t\tawait this.client.getConnection(),\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.options,\n\t\t\t)\n\t\t\t: this;\n\t\tconst tx = new SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tsession as SingleStoreSession<any, any, any, any, any>,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\t0,\n\t\t);\n\t\tif (config) {\n\t\t\tconst setTransactionConfigSql = this.getSetTransactionSQL(config);\n\t\t\tif (setTransactionConfigSql) {\n\t\t\t\tawait tx.execute(setTransactionConfigSql);\n\t\t\t}\n\t\t\tconst startTransactionSql = this.getStartTransactionSQL(config);\n\t\t\tawait (startTransactionSql ? tx.execute(startTransactionSql) : tx.execute(sql`begin`));\n\t\t} else {\n\t\t\tawait tx.execute(sql`begin`);\n\t\t}\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql`rollback`);\n\t\t\tthrow err;\n\t\t} finally {\n\t\t\tif (isPool(this.client)) {\n\t\t\t\t(session.client as PoolConnection).release();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport class SingleStoreDriverTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SingleStoreTransaction<\n\tSingleStoreDriverQueryResultHKT,\n\tSingleStoreDriverPreparedQueryHKT,\n\tTFullSchema,\n\tTRelations,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nfunction isPool(client: SingleStoreDriverClient): client is Pool {\n\treturn 'getConnection' in client;\n}\n\nexport interface SingleStoreDriverQueryResultHKT extends SingleStoreQueryResultHKT {\n\ttype: SingleStoreRawQueryResult;\n}\n\nexport interface SingleStoreDriverPreparedQueryHKT extends SingleStorePreparedQueryHKT {\n\ttype: SingleStoreDriverPreparedQuery<Assume<this['config'], SingleStorePreparedQueryConfig>>;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"session.cjs","names":["SingleStorePreparedQuery","entityKind","Column","SingleStoreSession","NoopLogger","NoopCache","SingleStoreTransaction","sql"],"sources":["../../src/singlestore/session.ts"],"sourcesContent":["import type { Connection as CallbackConnection } from 'mysql2';\nimport type {\n\tConnection,\n\tFieldPacket,\n\tOkPacket,\n\tPool,\n\tPoolConnection,\n\tQueryOptions,\n\tResultSetHeader,\n\tRowDataPacket,\n} from 'mysql2/promise';\nimport { once } from 'node:events';\nimport type * as V1 from '~/_relations.ts';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport {\n\ttype AnyRelations,\n\tmakeJitRqbMapper,\n\ttype RelationalQueryMapperConfig,\n\ttype RelationalRowsMapper,\n} from '~/relations.ts';\nimport type { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/singlestore-core/query-builders/select.types.ts';\nimport {\n\ttype PreparedQueryKind,\n\tSingleStorePreparedQuery,\n\ttype SingleStorePreparedQueryConfig,\n\ttype SingleStorePreparedQueryHKT,\n\ttype SingleStoreQueryResultHKT,\n\tSingleStoreSession,\n\tSingleStoreTransaction,\n\ttype SingleStoreTransactionConfig,\n} from '~/singlestore-core/session.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport { fillPlaceholders, sql } from '~/sql/sql.ts';\nimport { type Assume, makeJitQueryMapper, mapResultRow, type RowsMapper } from '~/utils.ts';\n\nexport type SingleStoreDriverClient = Pool | Connection;\n\nexport type SingleStoreRawQueryResult = [ResultSetHeader, FieldPacket[]];\nexport type SingleStoreQueryResultType = RowDataPacket[][] | RowDataPacket[] | OkPacket | OkPacket[] | ResultSetHeader;\nexport type SingleStoreQueryResult<\n\tT = any,\n> = [T extends ResultSetHeader ? T : T[], FieldPacket[]];\n\nexport class SingleStoreDriverPreparedQuery<T extends SingleStorePreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends SingleStorePreparedQuery<T>\n{\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverPreparedQuery';\n\n\tprivate rawQuery: QueryOptions;\n\tprivate query: QueryOptions;\n\tprivate jitMapper?:\n\t\t| RowsMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>\n\t\t| RelationalRowsMapper<T['execute']>;\n\n\tconstructor(\n\t\tprivate client: SingleStoreDriverClient,\n\t\tqueryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate useJitMapper: boolean | undefined,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\t// Keys that were used in $default and the value that was generated for them\n\t\tprivate generatedIds?: Record<string, unknown>[],\n\t\t// Keys that should be returned, it has the column with all properties + key from object\n\t\tprivate returningIds?: SelectedFieldsOrdered,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t\tprivate rqbConfig?: RelationalQueryMapperConfig,\n\t) {\n\t\tsuper(cache, queryMetadata, cacheConfig);\n\t\tthis.rawQuery = {\n\t\t\tsql: queryString,\n\t\t\t// rowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t};\n\t\tthis.query = {\n\t\t\tsql: queryString,\n\t\t\trowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t};\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQuery.sql, params);\n\n\t\tconst { fields, client, rawQuery, query, joinsNotNullableMap, customResultMapper, returningIds, generatedIds } =\n\t\t\tthis;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst res = await this.queryWithCache(rawQuery.sql, params, async () => {\n\t\t\t\treturn await client.query<any>(rawQuery, params);\n\t\t\t});\n\n\t\t\tconst insertId = res[0].insertId;\n\t\t\tconst affectedRows = res[0].affectedRows;\n\t\t\t// for each row, I need to check keys from\n\t\t\tif (returningIds) {\n\t\t\t\tconst returningResponse = [];\n\t\t\t\tlet j = 0;\n\t\t\t\tfor (let i = insertId; i < insertId + affectedRows; i++) {\n\t\t\t\t\tfor (const column of returningIds) {\n\t\t\t\t\t\tconst key = returningIds[0]!.path[0]!;\n\t\t\t\t\t\tif (is(column.field, Column)) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (column.field.primary && column.field.autoIncrement) {\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: i });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (column.field.defaultFn && generatedIds) {\n\t\t\t\t\t\t\t\t// generatedIds[rowIdx][key]\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: generatedIds[j]![key] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tj++;\n\t\t\t\t}\n\n\t\t\t\treturn returningResponse;\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\n\t\tconst result = await this.queryWithCache(query.sql, params, async () => {\n\t\t\treturn await client.query<any[]>(query, params);\n\t\t});\n\n\t\tconst rows = result[0];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows);\n\t\t}\n\n\t\treturn this.useJitMapper\n\t\t\t? (this.jitMapper =\n\t\t\t\tthis.jitMapper as RowsMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>\n\t\t\t\t\t?? makeJitQueryMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>(\n\t\t\t\t\t\tfields!,\n\t\t\t\t\t\tjoinsNotNullableMap,\n\t\t\t\t\t))(rows)\n\t\t\t: rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQuery.sql, params);\n\n\t\tconst { client, rawQuery, customResultMapper } = this;\n\t\tconst res = await client.query<any>(rawQuery, params);\n\n\t\tconst rows = res[0];\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(rows);\n\t}\n\n\tasync *iterator(\n\t\tplaceholderValues: Record<string, unknown> = {},\n\t): AsyncGenerator<T['execute'] extends any[] ? T['execute'][number] : T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\tconst conn = ((isPool(this.client) ? await this.client.getConnection() : this.client) as {} as {\n\t\t\tconnection: CallbackConnection;\n\t\t}).connection;\n\n\t\tconst { fields, query, rawQuery, joinsNotNullableMap, client, customResultMapper } = this;\n\t\tconst hasRowsMapper = Boolean(fields || customResultMapper);\n\t\tconst driverQuery = hasRowsMapper ? conn.query(query, params) : conn.query(rawQuery, params);\n\n\t\tconst stream = driverQuery.stream();\n\n\t\tfunction dataListener() {\n\t\t\tstream.pause();\n\t\t}\n\n\t\tstream.on('data', dataListener);\n\n\t\ttry {\n\t\t\tconst onEnd = once(stream, 'end');\n\t\t\tconst onError = once(stream, 'error');\n\n\t\t\twhile (true) {\n\t\t\t\tstream.resume();\n\t\t\t\tconst row = await Promise.race([onEnd, onError, new Promise((resolve) => stream.once('data', resolve))]);\n\t\t\t\tif (row === undefined || (Array.isArray(row) && row.length === 0)) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (row instanceof Error) { // oxlint-disable-line drizzle-internal/no-instanceof\n\t\t\t\t\tthrow row;\n\t\t\t\t} else {\n\t\t\t\t\tif (this.isRqbV2Query) {\n\t\t\t\t\t\tif (this.useJitMapper) {\n\t\t\t\t\t\t\tyield (this.jitMapper = this.jitMapper as RelationalRowsMapper<T['execute']>\n\t\t\t\t\t\t\t\t?? makeJitRqbMapper<T['execute']>(this.rqbConfig!))([row as Record<string, unknown>]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst mapped = (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])([\n\t\t\t\t\t\t\t\trow as Record<string, unknown>,\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\tif (this.rqbConfig!.isFirst) yield mapped;\n\t\t\t\t\t\t\telse yield ((<any[]> mapped)[0]);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (hasRowsMapper) {\n\t\t\t\t\t\tif (customResultMapper) {\n\t\t\t\t\t\t\tconst mappedRow = (customResultMapper as (rows: unknown[][]) => T['execute'])([row as unknown[]]);\n\t\t\t\t\t\t\tyield (Array.isArray(mappedRow) ? mappedRow[0] : mappedRow);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tyield this.useJitMapper\n\t\t\t\t\t\t\t\t? (this.jitMapper = this.jitMapper as RowsMapper<(T['execute'] extends any[] ? T['execute'][number]\n\t\t\t\t\t\t\t\t\t: T['execute'])[]>\n\t\t\t\t\t\t\t\t\t?? makeJitQueryMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>(\n\t\t\t\t\t\t\t\t\t\tfields!,\n\t\t\t\t\t\t\t\t\t\tjoinsNotNullableMap,\n\t\t\t\t\t\t\t\t\t))([row as unknown[]])[0] as T['execute']\n\t\t\t\t\t\t\t\t: mapResultRow(fields!, row as unknown[], joinsNotNullableMap);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tyield row as T['execute'];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tstream.off('data', dataListener);\n\t\t\tif (isPool(client)) {\n\t\t\t\tconn.end();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport interface SingleStoreDriverSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tuseJitMapper?: boolean;\n}\n\nexport class SingleStoreDriverSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SingleStoreSession<\n\tSingleStoreQueryResultHKT,\n\tSingleStoreDriverPreparedQueryHKT,\n\tTFullSchema,\n\tTRelations,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverSession';\n\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: SingleStoreDriverClient,\n\t\tdialect: SingleStoreDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: SingleStoreDriverSessionOptions,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery<T extends SingleStorePreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): PreparedQueryKind<SingleStoreDriverPreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new SingleStoreDriverPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\tthis.options.useJitMapper,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t) as PreparedQueryKind<SingleStoreDriverPreparedQueryHKT, T>;\n\t}\n\n\tprepareRelationalQuery<T extends SingleStorePreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t\tconfig: RelationalQueryMapperConfig,\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): PreparedQueryKind<SingleStorePreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new SingleStoreDriverPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\tthis.options.useJitMapper,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t\ttrue,\n\t\t\tconfig,\n\t\t) as any;\n\t}\n\n\t/**\n\t * @internal\n\t * What is its purpose?\n\t */\n\tasync query(query: string, params: unknown[]): Promise<SingleStoreQueryResult> {\n\t\tthis.logger.logQuery(query, params);\n\t\tconst result = await this.client.query({\n\t\t\tsql: query,\n\t\t\tvalues: params,\n\t\t\trowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t});\n\t\treturn result;\n\t}\n\n\toverride all<T = unknown>(query: SQL): Promise<T[]> {\n\t\tconst querySql = this.dialect.sqlToQuery(query);\n\t\tthis.logger.logQuery(querySql.sql, querySql.params);\n\t\treturn this.client.query(querySql.sql, querySql.params).then((result) => result[0]) as Promise<T[]>;\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t\tconfig?: SingleStoreTransactionConfig,\n\t): Promise<T> {\n\t\tconst session = isPool(this.client)\n\t\t\t? new SingleStoreDriverSession(\n\t\t\t\tawait this.client.getConnection(),\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.options,\n\t\t\t)\n\t\t\t: this;\n\t\tconst tx = new SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tsession as SingleStoreSession<any, any, any, any, any>,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\t0,\n\t\t);\n\t\tif (config) {\n\t\t\tconst setTransactionConfigSql = this.getSetTransactionSQL(config);\n\t\t\tif (setTransactionConfigSql) {\n\t\t\t\tawait tx.execute(setTransactionConfigSql);\n\t\t\t}\n\t\t\tconst startTransactionSql = this.getStartTransactionSQL(config);\n\t\t\tawait (startTransactionSql ? tx.execute(startTransactionSql) : tx.execute(sql`begin`));\n\t\t} else {\n\t\t\tawait tx.execute(sql`begin`);\n\t\t}\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql`rollback`);\n\t\t\tthrow err;\n\t\t} finally {\n\t\t\tif (isPool(this.client)) {\n\t\t\t\t(session.client as PoolConnection).release();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport class SingleStoreDriverTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SingleStoreTransaction<\n\tSingleStoreDriverQueryResultHKT,\n\tSingleStoreDriverPreparedQueryHKT,\n\tTFullSchema,\n\tTRelations,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreDriverTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nfunction isPool(client: SingleStoreDriverClient): client is Pool {\n\treturn 'getConnection' in client;\n}\n\nexport interface SingleStoreDriverQueryResultHKT extends SingleStoreQueryResultHKT {\n\ttype: SingleStoreRawQueryResult;\n}\n\nexport interface SingleStoreDriverPreparedQueryHKT extends SingleStorePreparedQueryHKT {\n\ttype: SingleStoreDriverPreparedQuery<Assume<this['config'], SingleStorePreparedQueryConfig>>;\n}\n"],"mappings":"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"}
@@ -3,11 +3,11 @@ import { Query, SQL } from "../sql/sql.cjs";
3
3
  import { Assume } from "../utils.cjs";
4
4
  import * as V1 from "../_relations.cjs";
5
5
  import { WithCacheConfig } from "../cache/core/types.cjs";
6
- import { AnyRelations } from "../relations.cjs";
6
+ import { AnyRelations, RelationalQueryMapperConfig } from "../relations.cjs";
7
7
  import { Connection, FieldPacket, OkPacket, Pool, ResultSetHeader, RowDataPacket } from "mysql2/promise";
8
+ import { Logger } from "../logger.cjs";
8
9
  import { SingleStoreDialect } from "../singlestore-core/dialect.cjs";
9
10
  import { PreparedQueryKind, SingleStorePreparedQuery, SingleStorePreparedQueryConfig, SingleStorePreparedQueryHKT, SingleStoreQueryResultHKT, SingleStoreSession, SingleStoreTransaction, SingleStoreTransactionConfig } from "../singlestore-core/session.cjs";
10
- import { Logger } from "../logger.cjs";
11
11
  import { Cache } from "../cache/core/index.cjs";
12
12
  import { SelectedFieldsOrdered } from "../singlestore-core/query-builders/select.types.cjs";
13
13
 
@@ -21,17 +21,20 @@ declare class SingleStoreDriverPreparedQuery<T extends SingleStorePreparedQueryC
21
21
  private params;
22
22
  private logger;
23
23
  private fields;
24
+ private useJitMapper;
24
25
  private customResultMapper?;
25
26
  private generatedIds?;
26
27
  private returningIds?;
27
28
  private isRqbV2Query?;
29
+ private rqbConfig?;
28
30
  static readonly [entityKind]: string;
29
31
  private rawQuery;
30
32
  private query;
33
+ private jitMapper?;
31
34
  constructor(client: SingleStoreDriverClient, queryString: string, params: unknown[], logger: Logger, cache: Cache, queryMetadata: {
32
35
  type: 'select' | 'update' | 'delete' | 'insert';
33
36
  tables: string[];
34
- } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => T["execute"]) | undefined, generatedIds?: Record<string, unknown>[] | undefined, returningIds?: SelectedFieldsOrdered | undefined, isRqbV2Query?: TIsRqbV2 | undefined);
37
+ } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, useJitMapper: boolean | undefined, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => T["execute"]) | undefined, generatedIds?: Record<string, unknown>[] | undefined, returningIds?: SelectedFieldsOrdered | undefined, isRqbV2Query?: TIsRqbV2 | undefined, rqbConfig?: RelationalQueryMapperConfig | undefined);
35
38
  execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;
36
39
  private executeRqbV2;
37
40
  iterator(placeholderValues?: Record<string, unknown>): AsyncGenerator<T['execute'] extends any[] ? T['execute'][number] : T['execute']>;
@@ -39,6 +42,7 @@ declare class SingleStoreDriverPreparedQuery<T extends SingleStorePreparedQueryC
39
42
  interface SingleStoreDriverSessionOptions {
40
43
  logger?: Logger;
41
44
  cache?: Cache;
45
+ useJitMapper?: boolean;
42
46
  }
43
47
  declare class SingleStoreDriverSession<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TSchema extends V1.TablesRelationalConfig> extends SingleStoreSession<SingleStoreQueryResultHKT, SingleStoreDriverPreparedQueryHKT, TFullSchema, TRelations, TSchema> {
44
48
  private client;
@@ -53,7 +57,7 @@ declare class SingleStoreDriverSession<TFullSchema extends Record<string, unknow
53
57
  type: 'select' | 'update' | 'delete' | 'insert';
54
58
  tables: string[];
55
59
  }, cacheConfig?: WithCacheConfig): PreparedQueryKind<SingleStoreDriverPreparedQueryHKT, T>;
56
- prepareRelationalQuery<T extends SingleStorePreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, customResultMapper: (rows: Record<string, unknown>[]) => T['execute'], generatedIds?: Record<string, unknown>[], returningIds?: SelectedFieldsOrdered): PreparedQueryKind<SingleStorePreparedQueryHKT, T>;
60
+ prepareRelationalQuery<T extends SingleStorePreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, customResultMapper: (rows: Record<string, unknown>[]) => T['execute'], config: RelationalQueryMapperConfig, generatedIds?: Record<string, unknown>[], returningIds?: SelectedFieldsOrdered): PreparedQueryKind<SingleStorePreparedQueryHKT, T>;
57
61
  all<T = unknown>(query: SQL): Promise<T[]>;
58
62
  transaction<T>(transaction: (tx: SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>, config?: SingleStoreTransactionConfig): Promise<T>;
59
63
  }
@@ -1,11 +1,11 @@
1
1
  import { entityKind } from "../entity.js";
2
2
  import { Assume } from "../utils.js";
3
3
  import { Query, SQL } from "../sql/sql.js";
4
- import * as V1 from "../_relations.js";
5
4
  import { Logger } from "../logger.js";
6
5
  import { Cache } from "../cache/core/index.js";
6
+ import * as V1 from "../_relations.js";
7
+ import { AnyRelations, RelationalQueryMapperConfig } from "../relations.js";
7
8
  import { Connection, FieldPacket, OkPacket, Pool, ResultSetHeader, RowDataPacket } from "mysql2/promise";
8
- import { AnyRelations } from "../relations.js";
9
9
  import { SingleStoreDialect } from "../singlestore-core/dialect.js";
10
10
  import { PreparedQueryKind, SingleStorePreparedQuery, SingleStorePreparedQueryConfig, SingleStorePreparedQueryHKT, SingleStoreQueryResultHKT, SingleStoreSession, SingleStoreTransaction, SingleStoreTransactionConfig } from "../singlestore-core/session.js";
11
11
  import { WithCacheConfig } from "../cache/core/types.js";
@@ -21,17 +21,20 @@ declare class SingleStoreDriverPreparedQuery<T extends SingleStorePreparedQueryC
21
21
  private params;
22
22
  private logger;
23
23
  private fields;
24
+ private useJitMapper;
24
25
  private customResultMapper?;
25
26
  private generatedIds?;
26
27
  private returningIds?;
27
28
  private isRqbV2Query?;
29
+ private rqbConfig?;
28
30
  static readonly [entityKind]: string;
29
31
  private rawQuery;
30
32
  private query;
33
+ private jitMapper?;
31
34
  constructor(client: SingleStoreDriverClient, queryString: string, params: unknown[], logger: Logger, cache: Cache, queryMetadata: {
32
35
  type: 'select' | 'update' | 'delete' | 'insert';
33
36
  tables: string[];
34
- } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => T["execute"]) | undefined, generatedIds?: Record<string, unknown>[] | undefined, returningIds?: SelectedFieldsOrdered | undefined, isRqbV2Query?: TIsRqbV2 | undefined);
37
+ } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, useJitMapper: boolean | undefined, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => T["execute"]) | undefined, generatedIds?: Record<string, unknown>[] | undefined, returningIds?: SelectedFieldsOrdered | undefined, isRqbV2Query?: TIsRqbV2 | undefined, rqbConfig?: RelationalQueryMapperConfig | undefined);
35
38
  execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;
36
39
  private executeRqbV2;
37
40
  iterator(placeholderValues?: Record<string, unknown>): AsyncGenerator<T['execute'] extends any[] ? T['execute'][number] : T['execute']>;
@@ -39,6 +42,7 @@ declare class SingleStoreDriverPreparedQuery<T extends SingleStorePreparedQueryC
39
42
  interface SingleStoreDriverSessionOptions {
40
43
  logger?: Logger;
41
44
  cache?: Cache;
45
+ useJitMapper?: boolean;
42
46
  }
43
47
  declare class SingleStoreDriverSession<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TSchema extends V1.TablesRelationalConfig> extends SingleStoreSession<SingleStoreQueryResultHKT, SingleStoreDriverPreparedQueryHKT, TFullSchema, TRelations, TSchema> {
44
48
  private client;
@@ -53,7 +57,7 @@ declare class SingleStoreDriverSession<TFullSchema extends Record<string, unknow
53
57
  type: 'select' | 'update' | 'delete' | 'insert';
54
58
  tables: string[];
55
59
  }, cacheConfig?: WithCacheConfig): PreparedQueryKind<SingleStoreDriverPreparedQueryHKT, T>;
56
- prepareRelationalQuery<T extends SingleStorePreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, customResultMapper: (rows: Record<string, unknown>[]) => T['execute'], generatedIds?: Record<string, unknown>[], returningIds?: SelectedFieldsOrdered): PreparedQueryKind<SingleStorePreparedQueryHKT, T>;
60
+ prepareRelationalQuery<T extends SingleStorePreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, customResultMapper: (rows: Record<string, unknown>[]) => T['execute'], config: RelationalQueryMapperConfig, generatedIds?: Record<string, unknown>[], returningIds?: SelectedFieldsOrdered): PreparedQueryKind<SingleStorePreparedQueryHKT, T>;
57
61
  all<T = unknown>(query: SQL): Promise<T[]>;
58
62
  transaction<T>(transaction: (tx: SingleStoreDriverTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>, config?: SingleStoreTransactionConfig): Promise<T>;
59
63
  }