drizzle-orm 0.40.0 → 1.0.0-beta.1-cacd055

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 (735) hide show
  1. package/_relations.cjs +328 -0
  2. package/_relations.cjs.map +1 -0
  3. package/_relations.d.cts +215 -0
  4. package/_relations.d.ts +215 -0
  5. package/_relations.js +316 -0
  6. package/_relations.js.map +1 -0
  7. package/alias.cjs.map +1 -1
  8. package/alias.d.cts +3 -3
  9. package/alias.d.ts +3 -3
  10. package/alias.js.map +1 -1
  11. package/aws-data-api/pg/driver.cjs +19 -5
  12. package/aws-data-api/pg/driver.cjs.map +1 -1
  13. package/aws-data-api/pg/driver.d.cts +9 -8
  14. package/aws-data-api/pg/driver.d.ts +9 -8
  15. package/aws-data-api/pg/driver.js +9 -8
  16. package/aws-data-api/pg/driver.js.map +1 -1
  17. package/aws-data-api/pg/migrator.cjs.map +1 -1
  18. package/aws-data-api/pg/migrator.d.cts +2 -1
  19. package/aws-data-api/pg/migrator.d.ts +2 -1
  20. package/aws-data-api/pg/migrator.js.map +1 -1
  21. package/aws-data-api/pg/session.cjs +67 -4
  22. package/aws-data-api/pg/session.cjs.map +1 -1
  23. package/aws-data-api/pg/session.d.cts +13 -8
  24. package/aws-data-api/pg/session.d.ts +13 -8
  25. package/aws-data-api/pg/session.js +67 -4
  26. package/aws-data-api/pg/session.js.map +1 -1
  27. package/better-sqlite3/driver.cjs +12 -5
  28. package/better-sqlite3/driver.cjs.map +1 -1
  29. package/better-sqlite3/driver.d.cts +7 -6
  30. package/better-sqlite3/driver.d.ts +7 -6
  31. package/better-sqlite3/driver.js +12 -8
  32. package/better-sqlite3/driver.js.map +1 -1
  33. package/better-sqlite3/migrator.cjs.map +1 -1
  34. package/better-sqlite3/migrator.d.cts +2 -1
  35. package/better-sqlite3/migrator.d.ts +2 -1
  36. package/better-sqlite3/migrator.js.map +1 -1
  37. package/better-sqlite3/session.cjs +49 -4
  38. package/better-sqlite3/session.cjs.map +1 -1
  39. package/better-sqlite3/session.d.cts +14 -8
  40. package/better-sqlite3/session.d.ts +14 -8
  41. package/better-sqlite3/session.js +49 -4
  42. package/better-sqlite3/session.js.map +1 -1
  43. package/bun-sql/driver.cjs +16 -5
  44. package/bun-sql/driver.cjs.map +1 -1
  45. package/bun-sql/driver.d.cts +7 -6
  46. package/bun-sql/driver.d.ts +7 -6
  47. package/bun-sql/driver.js +6 -8
  48. package/bun-sql/driver.js.map +1 -1
  49. package/bun-sql/migrator.cjs.map +1 -1
  50. package/bun-sql/migrator.d.cts +2 -1
  51. package/bun-sql/migrator.d.ts +2 -1
  52. package/bun-sql/migrator.js.map +1 -1
  53. package/bun-sql/session.cjs +50 -6
  54. package/bun-sql/session.cjs.map +1 -1
  55. package/bun-sql/session.d.cts +14 -9
  56. package/bun-sql/session.d.ts +14 -9
  57. package/bun-sql/session.js +50 -6
  58. package/bun-sql/session.js.map +1 -1
  59. package/bun-sqlite/driver.cjs +22 -5
  60. package/bun-sqlite/driver.cjs.map +1 -1
  61. package/bun-sqlite/driver.d.cts +7 -6
  62. package/bun-sqlite/driver.d.ts +7 -6
  63. package/bun-sqlite/driver.js +12 -8
  64. package/bun-sqlite/driver.js.map +1 -1
  65. package/bun-sqlite/migrator.cjs.map +1 -1
  66. package/bun-sqlite/migrator.d.cts +2 -1
  67. package/bun-sqlite/migrator.d.ts +2 -1
  68. package/bun-sqlite/migrator.js.map +1 -1
  69. package/bun-sqlite/session.cjs +49 -4
  70. package/bun-sqlite/session.cjs.map +1 -1
  71. package/bun-sqlite/session.d.cts +14 -8
  72. package/bun-sqlite/session.d.ts +14 -8
  73. package/bun-sqlite/session.js +49 -4
  74. package/bun-sqlite/session.js.map +1 -1
  75. package/casing.cjs +3 -0
  76. package/casing.cjs.map +1 -1
  77. package/casing.d.cts +1 -1
  78. package/casing.d.ts +1 -1
  79. package/casing.js +4 -1
  80. package/casing.js.map +1 -1
  81. package/d1/driver.cjs +22 -5
  82. package/d1/driver.cjs.map +1 -1
  83. package/d1/driver.d.cts +3 -2
  84. package/d1/driver.d.ts +3 -2
  85. package/d1/driver.js +12 -8
  86. package/d1/driver.js.map +1 -1
  87. package/d1/migrator.cjs.map +1 -1
  88. package/d1/migrator.d.cts +2 -1
  89. package/d1/migrator.d.ts +2 -1
  90. package/d1/migrator.js.map +1 -1
  91. package/d1/session.cjs +50 -8
  92. package/d1/session.cjs.map +1 -1
  93. package/d1/session.d.cts +15 -8
  94. package/d1/session.d.ts +15 -8
  95. package/d1/session.js +50 -8
  96. package/d1/session.js.map +1 -1
  97. package/durable-sqlite/driver.cjs +16 -5
  98. package/durable-sqlite/driver.cjs.map +1 -1
  99. package/durable-sqlite/driver.d.cts +3 -2
  100. package/durable-sqlite/driver.d.ts +3 -2
  101. package/durable-sqlite/driver.js +6 -8
  102. package/durable-sqlite/driver.js.map +1 -1
  103. package/durable-sqlite/migrator.cjs.map +1 -1
  104. package/durable-sqlite/migrator.d.cts +2 -1
  105. package/durable-sqlite/migrator.d.ts +2 -1
  106. package/durable-sqlite/migrator.js.map +1 -1
  107. package/durable-sqlite/session.cjs +46 -4
  108. package/durable-sqlite/session.cjs.map +1 -1
  109. package/durable-sqlite/session.d.cts +14 -8
  110. package/durable-sqlite/session.d.ts +14 -8
  111. package/durable-sqlite/session.js +46 -4
  112. package/durable-sqlite/session.js.map +1 -1
  113. package/expo-sqlite/driver.cjs +22 -5
  114. package/expo-sqlite/driver.cjs.map +1 -1
  115. package/expo-sqlite/driver.d.cts +3 -2
  116. package/expo-sqlite/driver.d.ts +3 -2
  117. package/expo-sqlite/driver.js +12 -8
  118. package/expo-sqlite/driver.js.map +1 -1
  119. package/expo-sqlite/migrator.cjs.map +1 -1
  120. package/expo-sqlite/migrator.d.cts +3 -2
  121. package/expo-sqlite/migrator.d.ts +3 -2
  122. package/expo-sqlite/migrator.js.map +1 -1
  123. package/expo-sqlite/query.cjs +13 -2
  124. package/expo-sqlite/query.cjs.map +1 -1
  125. package/expo-sqlite/query.d.cts +2 -1
  126. package/expo-sqlite/query.d.ts +2 -1
  127. package/expo-sqlite/query.js +3 -2
  128. package/expo-sqlite/query.js.map +1 -1
  129. package/expo-sqlite/session.cjs +47 -4
  130. package/expo-sqlite/session.cjs.map +1 -1
  131. package/expo-sqlite/session.d.cts +14 -8
  132. package/expo-sqlite/session.d.ts +14 -8
  133. package/expo-sqlite/session.js +47 -4
  134. package/expo-sqlite/session.js.map +1 -1
  135. package/gel/driver.cjs +17 -6
  136. package/gel/driver.cjs.map +1 -1
  137. package/gel/driver.d.cts +8 -7
  138. package/gel/driver.d.ts +8 -7
  139. package/gel/driver.js +7 -9
  140. package/gel/driver.js.map +1 -1
  141. package/gel/migrator.cjs.map +1 -1
  142. package/gel/migrator.d.cts +1 -1
  143. package/gel/migrator.d.ts +1 -1
  144. package/gel/migrator.js.map +1 -1
  145. package/gel/session.cjs +46 -4
  146. package/gel/session.cjs.map +1 -1
  147. package/gel/session.d.cts +13 -8
  148. package/gel/session.d.ts +13 -8
  149. package/gel/session.js +46 -4
  150. package/gel/session.js.map +1 -1
  151. package/gel-core/columns/timestamptz.cjs +5 -0
  152. package/gel-core/columns/timestamptz.cjs.map +1 -1
  153. package/gel-core/columns/timestamptz.d.cts +1 -0
  154. package/gel-core/columns/timestamptz.d.ts +1 -0
  155. package/gel-core/columns/timestamptz.js +5 -0
  156. package/gel-core/columns/timestamptz.js.map +1 -1
  157. package/gel-core/db.cjs +28 -4
  158. package/gel-core/db.cjs.map +1 -1
  159. package/gel-core/db.d.cts +16 -9
  160. package/gel-core/db.d.ts +16 -9
  161. package/gel-core/db.js +27 -3
  162. package/gel-core/db.js.map +1 -1
  163. package/gel-core/dialect.cjs +172 -488
  164. package/gel-core/dialect.cjs.map +1 -1
  165. package/gel-core/dialect.d.cts +26 -8
  166. package/gel-core/dialect.d.ts +26 -8
  167. package/gel-core/dialect.js +170 -495
  168. package/gel-core/dialect.js.map +1 -1
  169. package/gel-core/query-builders/_query.cjs +149 -0
  170. package/gel-core/query-builders/_query.cjs.map +1 -0
  171. package/gel-core/query-builders/_query.d.cts +46 -0
  172. package/gel-core/query-builders/_query.d.ts +46 -0
  173. package/gel-core/query-builders/_query.js +114 -0
  174. package/gel-core/query-builders/_query.js.map +1 -0
  175. package/gel-core/query-builders/query.cjs +27 -24
  176. package/gel-core/query-builders/query.cjs.map +1 -1
  177. package/gel-core/query-builders/query.d.cts +9 -8
  178. package/gel-core/query-builders/query.d.ts +9 -8
  179. package/gel-core/query-builders/query.js +26 -23
  180. package/gel-core/query-builders/query.js.map +1 -1
  181. package/gel-core/session.cjs +3 -2
  182. package/gel-core/session.cjs.map +1 -1
  183. package/gel-core/session.d.cts +9 -6
  184. package/gel-core/session.d.ts +9 -6
  185. package/gel-core/session.js +3 -2
  186. package/gel-core/session.js.map +1 -1
  187. package/libsql/driver-core.cjs +22 -5
  188. package/libsql/driver-core.cjs.map +1 -1
  189. package/libsql/driver-core.d.cts +2 -1
  190. package/libsql/driver-core.d.ts +2 -1
  191. package/libsql/driver-core.js +12 -8
  192. package/libsql/driver-core.js.map +1 -1
  193. package/libsql/driver.cjs.map +1 -1
  194. package/libsql/driver.d.cts +6 -5
  195. package/libsql/driver.d.ts +6 -5
  196. package/libsql/driver.js.map +1 -1
  197. package/libsql/http/index.cjs.map +1 -1
  198. package/libsql/http/index.d.cts +6 -5
  199. package/libsql/http/index.d.ts +6 -5
  200. package/libsql/http/index.js.map +1 -1
  201. package/libsql/migrator.cjs.map +1 -1
  202. package/libsql/migrator.d.cts +2 -1
  203. package/libsql/migrator.d.ts +2 -1
  204. package/libsql/migrator.js.map +1 -1
  205. package/libsql/node/index.cjs.map +1 -1
  206. package/libsql/node/index.d.cts +6 -5
  207. package/libsql/node/index.d.ts +6 -5
  208. package/libsql/node/index.js.map +1 -1
  209. package/libsql/session.cjs +56 -4
  210. package/libsql/session.cjs.map +1 -1
  211. package/libsql/session.d.cts +15 -9
  212. package/libsql/session.d.ts +15 -9
  213. package/libsql/session.js +56 -4
  214. package/libsql/session.js.map +1 -1
  215. package/libsql/sqlite3/index.cjs.map +1 -1
  216. package/libsql/sqlite3/index.d.cts +6 -5
  217. package/libsql/sqlite3/index.d.ts +6 -5
  218. package/libsql/sqlite3/index.js.map +1 -1
  219. package/libsql/wasm/index.cjs.map +1 -1
  220. package/libsql/wasm/index.d.cts +6 -5
  221. package/libsql/wasm/index.d.ts +6 -5
  222. package/libsql/wasm/index.js.map +1 -1
  223. package/libsql/web/index.cjs.map +1 -1
  224. package/libsql/web/index.d.cts +6 -5
  225. package/libsql/web/index.d.ts +6 -5
  226. package/libsql/web/index.js.map +1 -1
  227. package/libsql/ws/index.cjs.map +1 -1
  228. package/libsql/ws/index.d.cts +6 -5
  229. package/libsql/ws/index.d.ts +6 -5
  230. package/libsql/ws/index.js.map +1 -1
  231. package/mysql-core/columns/binary.cjs +11 -0
  232. package/mysql-core/columns/binary.cjs.map +1 -1
  233. package/mysql-core/columns/binary.d.cts +1 -0
  234. package/mysql-core/columns/binary.d.ts +1 -0
  235. package/mysql-core/columns/binary.js +11 -0
  236. package/mysql-core/columns/binary.js.map +1 -1
  237. package/mysql-core/columns/decimal.cjs +5 -0
  238. package/mysql-core/columns/decimal.cjs.map +1 -1
  239. package/mysql-core/columns/decimal.d.cts +1 -0
  240. package/mysql-core/columns/decimal.d.ts +1 -0
  241. package/mysql-core/columns/decimal.js +5 -0
  242. package/mysql-core/columns/decimal.js.map +1 -1
  243. package/mysql-core/columns/float.cjs +6 -0
  244. package/mysql-core/columns/float.cjs.map +1 -1
  245. package/mysql-core/columns/float.d.cts +1 -0
  246. package/mysql-core/columns/float.d.ts +1 -0
  247. package/mysql-core/columns/float.js +6 -0
  248. package/mysql-core/columns/float.js.map +1 -1
  249. package/mysql-core/columns/varbinary.cjs +11 -0
  250. package/mysql-core/columns/varbinary.cjs.map +1 -1
  251. package/mysql-core/columns/varbinary.d.cts +1 -0
  252. package/mysql-core/columns/varbinary.d.ts +1 -0
  253. package/mysql-core/columns/varbinary.js +11 -0
  254. package/mysql-core/columns/varbinary.js.map +1 -1
  255. package/mysql-core/columns/varchar.cjs.map +1 -1
  256. package/mysql-core/columns/varchar.d.cts +1 -1
  257. package/mysql-core/columns/varchar.d.ts +1 -1
  258. package/mysql-core/columns/varchar.js.map +1 -1
  259. package/mysql-core/db.cjs +30 -6
  260. package/mysql-core/db.cjs.map +1 -1
  261. package/mysql-core/db.d.cts +15 -8
  262. package/mysql-core/db.d.ts +15 -8
  263. package/mysql-core/db.js +29 -5
  264. package/mysql-core/db.js.map +1 -1
  265. package/mysql-core/dialect.cjs +208 -15
  266. package/mysql-core/dialect.cjs.map +1 -1
  267. package/mysql-core/dialect.d.cts +36 -13
  268. package/mysql-core/dialect.d.ts +36 -13
  269. package/mysql-core/dialect.js +206 -22
  270. package/mysql-core/dialect.js.map +1 -1
  271. package/mysql-core/query-builders/_query.cjs +149 -0
  272. package/mysql-core/query-builders/_query.cjs.map +1 -0
  273. package/mysql-core/query-builders/_query.d.cts +44 -0
  274. package/mysql-core/query-builders/_query.d.ts +44 -0
  275. package/mysql-core/query-builders/_query.js +114 -0
  276. package/mysql-core/query-builders/_query.js.map +1 -0
  277. package/mysql-core/query-builders/count.cjs.map +1 -1
  278. package/mysql-core/query-builders/count.d.cts +1 -1
  279. package/mysql-core/query-builders/count.d.ts +1 -1
  280. package/mysql-core/query-builders/count.js.map +1 -1
  281. package/mysql-core/query-builders/query.cjs +18 -31
  282. package/mysql-core/query-builders/query.cjs.map +1 -1
  283. package/mysql-core/query-builders/query.d.cts +8 -10
  284. package/mysql-core/query-builders/query.d.ts +8 -10
  285. package/mysql-core/query-builders/query.js +18 -31
  286. package/mysql-core/query-builders/query.js.map +1 -1
  287. package/mysql-core/session.cjs +3 -2
  288. package/mysql-core/session.cjs.map +1 -1
  289. package/mysql-core/session.d.cts +10 -7
  290. package/mysql-core/session.d.ts +10 -7
  291. package/mysql-core/session.js +3 -2
  292. package/mysql-core/session.js.map +1 -1
  293. package/mysql-proxy/driver.cjs +22 -5
  294. package/mysql-proxy/driver.cjs.map +1 -1
  295. package/mysql-proxy/driver.d.cts +3 -2
  296. package/mysql-proxy/driver.d.ts +3 -2
  297. package/mysql-proxy/driver.js +12 -8
  298. package/mysql-proxy/driver.js.map +1 -1
  299. package/mysql-proxy/migrator.cjs.map +1 -1
  300. package/mysql-proxy/migrator.d.cts +2 -1
  301. package/mysql-proxy/migrator.d.ts +2 -1
  302. package/mysql-proxy/migrator.js.map +1 -1
  303. package/mysql-proxy/session.cjs +27 -2
  304. package/mysql-proxy/session.cjs.map +1 -1
  305. package/mysql-proxy/session.d.cts +13 -8
  306. package/mysql-proxy/session.d.ts +13 -8
  307. package/mysql-proxy/session.js +27 -2
  308. package/mysql-proxy/session.js.map +1 -1
  309. package/mysql2/driver.cjs +24 -7
  310. package/mysql2/driver.cjs.map +1 -1
  311. package/mysql2/driver.d.cts +10 -9
  312. package/mysql2/driver.d.ts +10 -9
  313. package/mysql2/driver.js +14 -10
  314. package/mysql2/driver.js.map +1 -1
  315. package/mysql2/migrator.cjs.map +1 -1
  316. package/mysql2/migrator.d.cts +2 -1
  317. package/mysql2/migrator.d.ts +2 -1
  318. package/mysql2/migrator.js.map +1 -1
  319. package/mysql2/session.cjs +30 -2
  320. package/mysql2/session.cjs.map +1 -1
  321. package/mysql2/session.d.cts +13 -8
  322. package/mysql2/session.d.ts +13 -8
  323. package/mysql2/session.js +30 -2
  324. package/mysql2/session.js.map +1 -1
  325. package/neon-http/driver.cjs +21 -7
  326. package/neon-http/driver.cjs.map +1 -1
  327. package/neon-http/driver.d.cts +10 -9
  328. package/neon-http/driver.d.ts +10 -9
  329. package/neon-http/driver.js +11 -7
  330. package/neon-http/driver.js.map +1 -1
  331. package/neon-http/migrator.cjs.map +1 -1
  332. package/neon-http/migrator.d.cts +2 -1
  333. package/neon-http/migrator.d.ts +2 -1
  334. package/neon-http/migrator.js.map +1 -1
  335. package/neon-http/session.cjs +32 -2
  336. package/neon-http/session.cjs.map +1 -1
  337. package/neon-http/session.d.cts +13 -8
  338. package/neon-http/session.d.ts +13 -8
  339. package/neon-http/session.js +32 -2
  340. package/neon-http/session.js.map +1 -1
  341. package/neon-serverless/driver.cjs +18 -7
  342. package/neon-serverless/driver.cjs.map +1 -1
  343. package/neon-serverless/driver.d.cts +9 -8
  344. package/neon-serverless/driver.d.ts +9 -8
  345. package/neon-serverless/driver.js +8 -10
  346. package/neon-serverless/driver.js.map +1 -1
  347. package/neon-serverless/migrator.cjs.map +1 -1
  348. package/neon-serverless/migrator.d.cts +2 -1
  349. package/neon-serverless/migrator.d.ts +2 -1
  350. package/neon-serverless/migrator.js.map +1 -1
  351. package/neon-serverless/session.cjs +64 -5
  352. package/neon-serverless/session.cjs.map +1 -1
  353. package/neon-serverless/session.d.cts +13 -8
  354. package/neon-serverless/session.d.ts +13 -8
  355. package/neon-serverless/session.js +64 -5
  356. package/neon-serverless/session.js.map +1 -1
  357. package/node-postgres/driver.cjs +13 -7
  358. package/node-postgres/driver.cjs.map +1 -1
  359. package/node-postgres/driver.d.cts +9 -8
  360. package/node-postgres/driver.d.ts +9 -8
  361. package/node-postgres/driver.js +13 -10
  362. package/node-postgres/driver.js.map +1 -1
  363. package/node-postgres/migrator.cjs.map +1 -1
  364. package/node-postgres/migrator.d.cts +2 -1
  365. package/node-postgres/migrator.d.ts +2 -1
  366. package/node-postgres/migrator.js.map +1 -1
  367. package/node-postgres/session.cjs +69 -4
  368. package/node-postgres/session.cjs.map +1 -1
  369. package/node-postgres/session.d.cts +13 -8
  370. package/node-postgres/session.d.ts +13 -8
  371. package/node-postgres/session.js +69 -4
  372. package/node-postgres/session.js.map +1 -1
  373. package/op-sqlite/driver.cjs +22 -5
  374. package/op-sqlite/driver.cjs.map +1 -1
  375. package/op-sqlite/driver.d.cts +3 -2
  376. package/op-sqlite/driver.d.ts +3 -2
  377. package/op-sqlite/driver.js +12 -8
  378. package/op-sqlite/driver.js.map +1 -1
  379. package/op-sqlite/migrator.cjs.map +1 -1
  380. package/op-sqlite/migrator.d.cts +3 -2
  381. package/op-sqlite/migrator.d.ts +3 -2
  382. package/op-sqlite/migrator.js.map +1 -1
  383. package/op-sqlite/session.cjs +47 -4
  384. package/op-sqlite/session.cjs.map +1 -1
  385. package/op-sqlite/session.d.cts +14 -8
  386. package/op-sqlite/session.d.ts +14 -8
  387. package/op-sqlite/session.js +47 -4
  388. package/op-sqlite/session.js.map +1 -1
  389. package/package.json +111 -51
  390. package/pg-core/columns/numeric.cjs +5 -0
  391. package/pg-core/columns/numeric.cjs.map +1 -1
  392. package/pg-core/columns/numeric.d.cts +1 -0
  393. package/pg-core/columns/numeric.d.ts +1 -0
  394. package/pg-core/columns/numeric.js +5 -0
  395. package/pg-core/columns/numeric.js.map +1 -1
  396. package/pg-core/columns/postgis_extension/geometry.cjs +2 -0
  397. package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -1
  398. package/pg-core/columns/postgis_extension/geometry.d.cts +1 -1
  399. package/pg-core/columns/postgis_extension/geometry.d.ts +1 -1
  400. package/pg-core/columns/postgis_extension/geometry.js +2 -0
  401. package/pg-core/columns/postgis_extension/geometry.js.map +1 -1
  402. package/pg-core/db.cjs +32 -5
  403. package/pg-core/db.cjs.map +1 -1
  404. package/pg-core/db.d.cts +16 -9
  405. package/pg-core/db.d.ts +16 -9
  406. package/pg-core/db.js +31 -4
  407. package/pg-core/db.js.map +1 -1
  408. package/pg-core/dialect.cjs +190 -488
  409. package/pg-core/dialect.cjs.map +1 -1
  410. package/pg-core/dialect.d.cts +27 -8
  411. package/pg-core/dialect.d.ts +27 -8
  412. package/pg-core/dialect.js +189 -495
  413. package/pg-core/dialect.js.map +1 -1
  414. package/pg-core/query-builders/_query.cjs +155 -0
  415. package/pg-core/query-builders/_query.cjs.map +1 -0
  416. package/pg-core/query-builders/_query.d.cts +47 -0
  417. package/pg-core/query-builders/_query.d.ts +47 -0
  418. package/pg-core/query-builders/_query.js +120 -0
  419. package/pg-core/query-builders/_query.js.map +1 -0
  420. package/pg-core/query-builders/count.cjs.map +1 -1
  421. package/pg-core/query-builders/count.d.cts +1 -1
  422. package/pg-core/query-builders/count.d.ts +1 -1
  423. package/pg-core/query-builders/count.js.map +1 -1
  424. package/pg-core/query-builders/query.cjs +15 -18
  425. package/pg-core/query-builders/query.cjs.map +1 -1
  426. package/pg-core/query-builders/query.d.cts +6 -6
  427. package/pg-core/query-builders/query.d.ts +6 -6
  428. package/pg-core/query-builders/query.js +15 -18
  429. package/pg-core/query-builders/query.js.map +1 -1
  430. package/pg-core/session.cjs +3 -2
  431. package/pg-core/session.cjs.map +1 -1
  432. package/pg-core/session.d.cts +9 -6
  433. package/pg-core/session.d.ts +9 -6
  434. package/pg-core/session.js +3 -2
  435. package/pg-core/session.js.map +1 -1
  436. package/pg-proxy/driver.cjs +21 -5
  437. package/pg-proxy/driver.cjs.map +1 -1
  438. package/pg-proxy/driver.d.cts +3 -2
  439. package/pg-proxy/driver.d.ts +3 -2
  440. package/pg-proxy/driver.js +11 -8
  441. package/pg-proxy/driver.js.map +1 -1
  442. package/pg-proxy/migrator.cjs.map +1 -1
  443. package/pg-proxy/migrator.d.cts +2 -1
  444. package/pg-proxy/migrator.d.ts +2 -1
  445. package/pg-proxy/migrator.js.map +1 -1
  446. package/pg-proxy/session.cjs +37 -2
  447. package/pg-proxy/session.cjs.map +1 -1
  448. package/pg-proxy/session.d.cts +13 -8
  449. package/pg-proxy/session.d.ts +13 -8
  450. package/pg-proxy/session.js +37 -2
  451. package/pg-proxy/session.js.map +1 -1
  452. package/pglite/driver.cjs +23 -7
  453. package/pglite/driver.cjs.map +1 -1
  454. package/pglite/driver.d.cts +9 -8
  455. package/pglite/driver.d.ts +9 -8
  456. package/pglite/driver.js +13 -10
  457. package/pglite/driver.js.map +1 -1
  458. package/pglite/migrator.cjs.map +1 -1
  459. package/pglite/migrator.d.cts +2 -1
  460. package/pglite/migrator.d.ts +2 -1
  461. package/pglite/migrator.js.map +1 -1
  462. package/pglite/session.cjs +48 -5
  463. package/pglite/session.cjs.map +1 -1
  464. package/pglite/session.d.cts +13 -8
  465. package/pglite/session.d.ts +13 -8
  466. package/pglite/session.js +48 -5
  467. package/pglite/session.js.map +1 -1
  468. package/planetscale-serverless/driver.cjs +22 -5
  469. package/planetscale-serverless/driver.cjs.map +1 -1
  470. package/planetscale-serverless/driver.d.cts +7 -6
  471. package/planetscale-serverless/driver.d.ts +7 -6
  472. package/planetscale-serverless/driver.js +12 -8
  473. package/planetscale-serverless/driver.js.map +1 -1
  474. package/planetscale-serverless/migrator.cjs.map +1 -1
  475. package/planetscale-serverless/migrator.d.cts +2 -1
  476. package/planetscale-serverless/migrator.d.ts +2 -1
  477. package/planetscale-serverless/migrator.js.map +1 -1
  478. package/planetscale-serverless/session.cjs +45 -5
  479. package/planetscale-serverless/session.cjs.map +1 -1
  480. package/planetscale-serverless/session.d.cts +14 -9
  481. package/planetscale-serverless/session.d.ts +14 -9
  482. package/planetscale-serverless/session.js +45 -5
  483. package/planetscale-serverless/session.js.map +1 -1
  484. package/postgres-js/driver.cjs +7 -6
  485. package/postgres-js/driver.cjs.map +1 -1
  486. package/postgres-js/driver.d.cts +7 -6
  487. package/postgres-js/driver.d.ts +7 -6
  488. package/postgres-js/driver.js +7 -9
  489. package/postgres-js/driver.js.map +1 -1
  490. package/postgres-js/migrator.cjs.map +1 -1
  491. package/postgres-js/migrator.d.cts +2 -1
  492. package/postgres-js/migrator.d.ts +2 -1
  493. package/postgres-js/migrator.js.map +1 -1
  494. package/postgres-js/session.cjs +51 -6
  495. package/postgres-js/session.cjs.map +1 -1
  496. package/postgres-js/session.d.cts +15 -9
  497. package/postgres-js/session.d.ts +15 -9
  498. package/postgres-js/session.js +51 -6
  499. package/postgres-js/session.js.map +1 -1
  500. package/prisma/mysql/driver.cjs +1 -1
  501. package/prisma/mysql/driver.cjs.map +1 -1
  502. package/prisma/mysql/driver.js +1 -1
  503. package/prisma/mysql/driver.js.map +1 -1
  504. package/prisma/mysql/session.cjs +3 -0
  505. package/prisma/mysql/session.cjs.map +1 -1
  506. package/prisma/mysql/session.d.cts +3 -1
  507. package/prisma/mysql/session.d.ts +3 -1
  508. package/prisma/mysql/session.js +3 -0
  509. package/prisma/mysql/session.js.map +1 -1
  510. package/prisma/pg/driver.cjs +1 -1
  511. package/prisma/pg/driver.cjs.map +1 -1
  512. package/prisma/pg/driver.js +1 -1
  513. package/prisma/pg/driver.js.map +1 -1
  514. package/prisma/pg/session.cjs +3 -0
  515. package/prisma/pg/session.cjs.map +1 -1
  516. package/prisma/pg/session.d.cts +3 -1
  517. package/prisma/pg/session.d.ts +3 -1
  518. package/prisma/pg/session.js +3 -0
  519. package/prisma/pg/session.js.map +1 -1
  520. package/prisma/sqlite/driver.cjs +1 -1
  521. package/prisma/sqlite/driver.cjs.map +1 -1
  522. package/prisma/sqlite/driver.js +1 -1
  523. package/prisma/sqlite/driver.js.map +1 -1
  524. package/prisma/sqlite/session.cjs +3 -0
  525. package/prisma/sqlite/session.cjs.map +1 -1
  526. package/prisma/sqlite/session.d.cts +4 -2
  527. package/prisma/sqlite/session.d.ts +4 -2
  528. package/prisma/sqlite/session.js +3 -0
  529. package/prisma/sqlite/session.js.map +1 -1
  530. package/relations.cjs +657 -245
  531. package/relations.cjs.map +1 -1
  532. package/relations.d.cts +339 -140
  533. package/relations.d.ts +339 -140
  534. package/relations.js +643 -240
  535. package/relations.js.map +1 -1
  536. package/singlestore/driver.cjs +1 -1
  537. package/singlestore/driver.cjs.map +1 -1
  538. package/singlestore/driver.d.cts +1 -1
  539. package/singlestore/driver.d.ts +1 -1
  540. package/singlestore/driver.js +3 -3
  541. package/singlestore/driver.js.map +1 -1
  542. package/singlestore/session.cjs.map +1 -1
  543. package/singlestore/session.d.cts +4 -4
  544. package/singlestore/session.d.ts +4 -4
  545. package/singlestore/session.js.map +1 -1
  546. package/singlestore-core/db.cjs.map +1 -1
  547. package/singlestore-core/db.d.cts +3 -3
  548. package/singlestore-core/db.d.ts +3 -3
  549. package/singlestore-core/db.js.map +1 -1
  550. package/singlestore-core/dialect.cjs +16 -6
  551. package/singlestore-core/dialect.cjs.map +1 -1
  552. package/singlestore-core/dialect.d.cts +6 -6
  553. package/singlestore-core/dialect.d.ts +6 -6
  554. package/singlestore-core/dialect.js +6 -12
  555. package/singlestore-core/dialect.js.map +1 -1
  556. package/singlestore-core/query-builders/query.cjs +12 -2
  557. package/singlestore-core/query-builders/query.cjs.map +1 -1
  558. package/singlestore-core/query-builders/query.d.cts +6 -6
  559. package/singlestore-core/query-builders/query.d.ts +6 -6
  560. package/singlestore-core/query-builders/query.js +2 -4
  561. package/singlestore-core/query-builders/query.js.map +1 -1
  562. package/singlestore-core/session.cjs.map +1 -1
  563. package/singlestore-core/session.d.cts +5 -5
  564. package/singlestore-core/session.d.ts +5 -5
  565. package/singlestore-core/session.js.map +1 -1
  566. package/singlestore-proxy/driver.cjs +1 -1
  567. package/singlestore-proxy/driver.cjs.map +1 -1
  568. package/singlestore-proxy/driver.js +3 -3
  569. package/singlestore-proxy/driver.js.map +1 -1
  570. package/singlestore-proxy/session.cjs.map +1 -1
  571. package/singlestore-proxy/session.d.cts +4 -4
  572. package/singlestore-proxy/session.d.ts +4 -4
  573. package/singlestore-proxy/session.js.map +1 -1
  574. package/sql/expressions/conditions.cjs.map +1 -1
  575. package/sql/expressions/conditions.d.cts +4 -4
  576. package/sql/expressions/conditions.d.ts +4 -4
  577. package/sql/expressions/conditions.js.map +1 -1
  578. package/sql/sql.cjs +21 -0
  579. package/sql/sql.cjs.map +1 -1
  580. package/sql/sql.d.cts +8 -8
  581. package/sql/sql.d.ts +8 -8
  582. package/sql/sql.js +22 -1
  583. package/sql/sql.js.map +1 -1
  584. package/sql-js/driver.cjs +16 -5
  585. package/sql-js/driver.cjs.map +1 -1
  586. package/sql-js/driver.d.cts +3 -2
  587. package/sql-js/driver.d.ts +3 -2
  588. package/sql-js/driver.js +6 -8
  589. package/sql-js/driver.js.map +1 -1
  590. package/sql-js/migrator.cjs.map +1 -1
  591. package/sql-js/migrator.d.cts +2 -1
  592. package/sql-js/migrator.d.ts +2 -1
  593. package/sql-js/migrator.js.map +1 -1
  594. package/sql-js/session.cjs +71 -36
  595. package/sql-js/session.cjs.map +1 -1
  596. package/sql-js/session.d.cts +16 -13
  597. package/sql-js/session.d.ts +16 -13
  598. package/sql-js/session.js +71 -36
  599. package/sql-js/session.js.map +1 -1
  600. package/sqlite-core/columns/blob.cjs +12 -0
  601. package/sqlite-core/columns/blob.cjs.map +1 -1
  602. package/sqlite-core/columns/blob.d.cts +2 -1
  603. package/sqlite-core/columns/blob.d.ts +2 -1
  604. package/sqlite-core/columns/blob.js +12 -0
  605. package/sqlite-core/columns/blob.js.map +1 -1
  606. package/sqlite-core/db.cjs +39 -12
  607. package/sqlite-core/db.cjs.map +1 -1
  608. package/sqlite-core/db.d.cts +16 -8
  609. package/sqlite-core/db.d.ts +16 -8
  610. package/sqlite-core/db.js +38 -11
  611. package/sqlite-core/db.js.map +1 -1
  612. package/sqlite-core/dialect.cjs +193 -7
  613. package/sqlite-core/dialect.cjs.map +1 -1
  614. package/sqlite-core/dialect.d.cts +31 -9
  615. package/sqlite-core/dialect.d.ts +31 -9
  616. package/sqlite-core/dialect.js +191 -14
  617. package/sqlite-core/dialect.js.map +1 -1
  618. package/sqlite-core/query-builders/_query.cjs +187 -0
  619. package/sqlite-core/query-builders/_query.cjs.map +1 -0
  620. package/sqlite-core/query-builders/_query.d.cts +55 -0
  621. package/sqlite-core/query-builders/_query.d.ts +55 -0
  622. package/sqlite-core/query-builders/_query.js +151 -0
  623. package/sqlite-core/query-builders/_query.js.map +1 -0
  624. package/sqlite-core/query-builders/count.cjs.map +1 -1
  625. package/sqlite-core/query-builders/count.d.cts +1 -1
  626. package/sqlite-core/query-builders/count.d.ts +1 -1
  627. package/sqlite-core/query-builders/count.js.map +1 -1
  628. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  629. package/sqlite-core/query-builders/delete.d.cts +1 -1
  630. package/sqlite-core/query-builders/delete.d.ts +1 -1
  631. package/sqlite-core/query-builders/delete.js.map +1 -1
  632. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  633. package/sqlite-core/query-builders/insert.d.cts +3 -3
  634. package/sqlite-core/query-builders/insert.d.ts +3 -3
  635. package/sqlite-core/query-builders/insert.js.map +1 -1
  636. package/sqlite-core/query-builders/query.cjs +56 -35
  637. package/sqlite-core/query-builders/query.cjs.map +1 -1
  638. package/sqlite-core/query-builders/query.d.cts +18 -17
  639. package/sqlite-core/query-builders/query.d.ts +18 -17
  640. package/sqlite-core/query-builders/query.js +56 -35
  641. package/sqlite-core/query-builders/query.js.map +1 -1
  642. package/sqlite-core/query-builders/select.cjs.map +1 -1
  643. package/sqlite-core/query-builders/select.d.cts +3 -3
  644. package/sqlite-core/query-builders/select.d.ts +3 -3
  645. package/sqlite-core/query-builders/select.js.map +1 -1
  646. package/sqlite-core/query-builders/update.cjs.map +1 -1
  647. package/sqlite-core/query-builders/update.d.cts +3 -3
  648. package/sqlite-core/query-builders/update.d.ts +3 -3
  649. package/sqlite-core/query-builders/update.js.map +1 -1
  650. package/sqlite-core/session.cjs +6 -2
  651. package/sqlite-core/session.cjs.map +1 -1
  652. package/sqlite-core/session.d.cts +15 -7
  653. package/sqlite-core/session.d.ts +15 -7
  654. package/sqlite-core/session.js +6 -2
  655. package/sqlite-core/session.js.map +1 -1
  656. package/sqlite-proxy/driver.cjs +23 -5
  657. package/sqlite-proxy/driver.cjs.map +1 -1
  658. package/sqlite-proxy/driver.d.cts +4 -3
  659. package/sqlite-proxy/driver.d.ts +4 -3
  660. package/sqlite-proxy/driver.js +13 -5
  661. package/sqlite-proxy/driver.js.map +1 -1
  662. package/sqlite-proxy/migrator.cjs.map +1 -1
  663. package/sqlite-proxy/migrator.d.cts +2 -1
  664. package/sqlite-proxy/migrator.d.ts +2 -1
  665. package/sqlite-proxy/migrator.js.map +1 -1
  666. package/sqlite-proxy/session.cjs +50 -6
  667. package/sqlite-proxy/session.cjs.map +1 -1
  668. package/sqlite-proxy/session.d.cts +14 -8
  669. package/sqlite-proxy/session.d.ts +14 -8
  670. package/sqlite-proxy/session.js +50 -6
  671. package/sqlite-proxy/session.js.map +1 -1
  672. package/table.cjs.map +1 -1
  673. package/table.d.cts +2 -2
  674. package/table.d.ts +2 -2
  675. package/table.js.map +1 -1
  676. package/tidb-serverless/driver.cjs +22 -5
  677. package/tidb-serverless/driver.cjs.map +1 -1
  678. package/tidb-serverless/driver.d.cts +7 -6
  679. package/tidb-serverless/driver.d.ts +7 -6
  680. package/tidb-serverless/driver.js +12 -8
  681. package/tidb-serverless/driver.js.map +1 -1
  682. package/tidb-serverless/migrator.cjs.map +1 -1
  683. package/tidb-serverless/migrator.d.cts +2 -1
  684. package/tidb-serverless/migrator.d.ts +2 -1
  685. package/tidb-serverless/migrator.js.map +1 -1
  686. package/tidb-serverless/session.cjs +62 -5
  687. package/tidb-serverless/session.cjs.map +1 -1
  688. package/tidb-serverless/session.d.cts +14 -9
  689. package/tidb-serverless/session.d.ts +14 -9
  690. package/tidb-serverless/session.js +62 -5
  691. package/tidb-serverless/session.js.map +1 -1
  692. package/utils.cjs +2 -2
  693. package/utils.cjs.map +1 -1
  694. package/utils.d.cts +3 -1
  695. package/utils.d.ts +3 -1
  696. package/utils.js +2 -2
  697. package/utils.js.map +1 -1
  698. package/vercel-postgres/driver.cjs +23 -7
  699. package/vercel-postgres/driver.cjs.map +1 -1
  700. package/vercel-postgres/driver.d.cts +9 -8
  701. package/vercel-postgres/driver.d.ts +9 -8
  702. package/vercel-postgres/driver.js +13 -10
  703. package/vercel-postgres/driver.js.map +1 -1
  704. package/vercel-postgres/migrator.cjs.map +1 -1
  705. package/vercel-postgres/migrator.d.cts +2 -1
  706. package/vercel-postgres/migrator.d.ts +2 -1
  707. package/vercel-postgres/migrator.js.map +1 -1
  708. package/vercel-postgres/session.cjs +58 -4
  709. package/vercel-postgres/session.cjs.map +1 -1
  710. package/vercel-postgres/session.d.cts +13 -8
  711. package/vercel-postgres/session.d.ts +13 -8
  712. package/vercel-postgres/session.js +58 -4
  713. package/vercel-postgres/session.js.map +1 -1
  714. package/version.cjs +2 -2
  715. package/version.cjs.map +1 -1
  716. package/version.d.cts +2 -2
  717. package/version.d.ts +2 -2
  718. package/version.js +2 -2
  719. package/version.js.map +1 -1
  720. package/xata-http/driver.cjs +17 -5
  721. package/xata-http/driver.cjs.map +1 -1
  722. package/xata-http/driver.d.cts +5 -4
  723. package/xata-http/driver.d.ts +5 -4
  724. package/xata-http/driver.js +7 -5
  725. package/xata-http/driver.js.map +1 -1
  726. package/xata-http/migrator.cjs.map +1 -1
  727. package/xata-http/migrator.d.cts +2 -1
  728. package/xata-http/migrator.d.ts +2 -1
  729. package/xata-http/migrator.js.map +1 -1
  730. package/xata-http/session.cjs +30 -2
  731. package/xata-http/session.cjs.map +1 -1
  732. package/xata-http/session.d.cts +13 -8
  733. package/xata-http/session.d.ts +13 -8
  734. package/xata-http/session.js +30 -2
  735. package/xata-http/session.js.map +1 -1
@@ -1,29 +1,30 @@
1
1
  import { type Options, type PostgresType, type Sql } from 'postgres';
2
2
  import { entityKind } from "../entity.js";
3
3
  import { PgDatabase } from "../pg-core/db.js";
4
+ import type { AnyRelations, EmptyRelations } from "../relations.js";
4
5
  import { type DrizzleConfig } from "../utils.js";
5
6
  import type { PostgresJsQueryResultHKT } from "./session.js";
6
- export declare class PostgresJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends PgDatabase<PostgresJsQueryResultHKT, TSchema> {
7
+ export declare class PostgresJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations> extends PgDatabase<PostgresJsQueryResultHKT, TSchema, TRelations> {
7
8
  static readonly [entityKind]: string;
8
9
  }
9
- export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends Sql = Sql>(...params: [
10
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations, TClient extends Sql = Sql>(...params: [
10
11
  TClient | string
11
12
  ] | [
12
13
  TClient | string,
13
- DrizzleConfig<TSchema>
14
+ DrizzleConfig<TSchema, TRelations>
14
15
  ] | [
15
- (DrizzleConfig<TSchema> & ({
16
+ (DrizzleConfig<TSchema, TRelations> & ({
16
17
  connection: string | ({
17
18
  url?: string;
18
19
  } & Options<Record<string, PostgresType>>);
19
20
  } | {
20
21
  client: TClient;
21
22
  }))
22
- ]): PostgresJsDatabase<TSchema> & {
23
+ ]): PostgresJsDatabase<TSchema, TRelations> & {
23
24
  $client: TClient;
24
25
  };
25
26
  export declare namespace drizzle {
26
- function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: DrizzleConfig<TSchema>): PostgresJsDatabase<TSchema> & {
27
+ function mock<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations>(config?: DrizzleConfig<TSchema, TRelations>): PostgresJsDatabase<TSchema> & {
27
28
  $client: '$client is not available on drizzle.mock()';
28
29
  };
29
30
  }
@@ -1,12 +1,9 @@
1
1
  import pgClient from "postgres";
2
+ import * as V1 from "../_relations.js";
2
3
  import { entityKind } from "../entity.js";
3
4
  import { DefaultLogger } from "../logger.js";
4
5
  import { PgDatabase } from "../pg-core/db.js";
5
6
  import { PgDialect } from "../pg-core/dialect.js";
6
- import {
7
- createTableRelationsHelpers,
8
- extractTablesRelationalConfig
9
- } from "../relations.js";
10
7
  import { isConfig } from "../utils.js";
11
8
  import { PostgresJsSession } from "./session.js";
12
9
  class PostgresJsDatabase extends PgDatabase {
@@ -14,7 +11,7 @@ class PostgresJsDatabase extends PgDatabase {
14
11
  }
15
12
  function construct(client, config = {}) {
16
13
  const transparentParser = (val) => val;
17
- for (const type of ["1184", "1082", "1083", "1114"]) {
14
+ for (const type of ["1184", "1082", "1083", "1114", "1182", "1185", "1115"]) {
18
15
  client.options.parsers[type] = transparentParser;
19
16
  client.options.serializers[type] = transparentParser;
20
17
  }
@@ -29,9 +26,9 @@ function construct(client, config = {}) {
29
26
  }
30
27
  let schema;
31
28
  if (config.schema) {
32
- const tablesConfig = extractTablesRelationalConfig(
29
+ const tablesConfig = V1.extractTablesRelationalConfig(
33
30
  config.schema,
34
- createTableRelationsHelpers
31
+ V1.createTableRelationsHelpers
35
32
  );
36
33
  schema = {
37
34
  fullSchema: config.schema,
@@ -39,8 +36,9 @@ function construct(client, config = {}) {
39
36
  tableNamesMap: tablesConfig.tableNamesMap
40
37
  };
41
38
  }
42
- const session = new PostgresJsSession(client, dialect, schema, { logger });
43
- const db = new PostgresJsDatabase(dialect, session, schema);
39
+ const relations = config.relations;
40
+ const session = new PostgresJsSession(client, dialect, relations, schema, { logger });
41
+ const db = new PostgresJsDatabase(dialect, session, relations, schema);
44
42
  db.$client = client;
45
43
  return db;
46
44
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/postgres-js/driver.ts"],"sourcesContent":["import pgClient, { type Options, type PostgresType, type Sql } from 'postgres';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport type { PostgresJsQueryResultHKT } from './session.ts';\nimport { PostgresJsSession } from './session.ts';\n\nexport class PostgresJsDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<PostgresJsQueryResultHKT, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsDatabase';\n}\n\nfunction construct<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: Sql,\n\tconfig: DrizzleConfig<TSchema> = {},\n): PostgresJsDatabase<TSchema> & {\n\t$client: Sql;\n} {\n\tconst transparentParser = (val: any) => val;\n\n\t// Override postgres.js default date parsers: https://github.com/porsager/postgres/discussions/761\n\tfor (const type of ['1184', '1082', '1083', '1114']) {\n\t\tclient.options.parsers[type as any] = transparentParser;\n\t\tclient.options.serializers[type as any] = transparentParser;\n\t}\n\tclient.options.serializers['114'] = transparentParser;\n\tclient.options.serializers['3802'] = transparentParser;\n\n\tconst dialect = new PgDialect({ 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\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 session = new PostgresJsSession(client, dialect, schema, { logger });\n\tconst db = new PostgresJsDatabase(dialect, session, schema as any) as PostgresJsDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Sql = Sql,\n>(\n\t...params: [\n\t\tTClient | string,\n\t] | [\n\t\tTClient | string,\n\t\tDrizzleConfig<TSchema>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleConfig<TSchema>\n\t\t\t& ({\n\t\t\t\tconnection: string | ({ url?: string } & Options<Record<string, PostgresType>>);\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): PostgresJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = pgClient(params[0] as string);\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as {\n\t\t\tconnection?: { url?: string } & Options<Record<string, PostgresType>>;\n\t\t\tclient?: TClient;\n\t\t} & DrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tif (typeof connection === 'object' && connection.url !== undefined) {\n\t\t\tconst { url, ...config } = connection;\n\n\t\t\tconst instance = pgClient(url, config);\n\t\t\treturn construct(instance, drizzleConfig) as any;\n\t\t}\n\n\t\tconst instance = pgClient(connection);\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: DrizzleConfig<TSchema>,\n\t): PostgresJsDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({\n\t\t\toptions: {\n\t\t\t\tparsers: {},\n\t\t\t\tserializers: {},\n\t\t\t},\n\t\t} as any, config) as any;\n\t}\n}\n"],"mappings":"AAAA,OAAO,cAA6D;AACpE,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAC1B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AACP,SAA6B,gBAAgB;AAE7C,SAAS,yBAAyB;AAE3B,MAAM,2BAEH,WAA8C;AAAA,EACvD,QAA0B,UAAU,IAAY;AACjD;AAEA,SAAS,UACR,QACA,SAAiC,CAAC,GAGjC;AACD,QAAM,oBAAoB,CAAC,QAAa;AAGxC,aAAW,QAAQ,CAAC,QAAQ,QAAQ,QAAQ,MAAM,GAAG;AACpD,WAAO,QAAQ,QAAQ,IAAW,IAAI;AACtC,WAAO,QAAQ,YAAY,IAAW,IAAI;AAAA,EAC3C;AACA,SAAO,QAAQ,YAAY,KAAK,IAAI;AACpC,SAAO,QAAQ,YAAY,MAAM,IAAI;AAErC,QAAM,UAAU,IAAI,UAAU,EAAE,QAAQ,OAAO,OAAO,CAAC;AACvD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,UAAU,IAAI,kBAAkB,QAAQ,SAAS,QAAQ,EAAE,OAAO,CAAC;AACzE,QAAM,KAAK,IAAI,mBAAmB,SAAS,SAAS,MAAa;AACjE,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;AAEO,SAAS,WAIZ,QAiBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,WAAW,SAAS,OAAO,CAAC,CAAW;AAE7C,WAAO,UAAU,UAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,MAAI,SAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAKzD,QAAI;AAAQ,aAAO,UAAU,QAAQ,aAAa;AAElD,QAAI,OAAO,eAAe,YAAY,WAAW,QAAQ,QAAW;AACnE,YAAM,EAAE,KAAK,GAAG,OAAO,IAAI;AAE3B,YAAMA,YAAW,SAAS,KAAK,MAAM;AACrC,aAAO,UAAUA,WAAU,aAAa;AAAA,IACzC;AAEA,UAAM,WAAW,SAAS,UAAU;AACpC,WAAO,UAAU,UAAU,aAAa;AAAA,EACzC;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAuC;AACvF;AAAA,CAEO,CAAUC,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU;AAAA,MAChB,SAAS;AAAA,QACR,SAAS,CAAC;AAAA,QACV,aAAa,CAAC;AAAA,MACf;AAAA,IACD,GAAU,MAAM;AAAA,EACjB;AAXO,EAAAA,SAAS;AAAA,GADA;","names":["instance","drizzle"]}
1
+ {"version":3,"sources":["../../src/postgres-js/driver.ts"],"sourcesContent":["import pgClient, { type Options, type PostgresType, type Sql } from 'postgres';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport type { PostgresJsQueryResultHKT } from './session.ts';\nimport { PostgresJsSession } from './session.ts';\n\nexport class PostgresJsDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends PgDatabase<PostgresJsQueryResultHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: Sql,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): PostgresJsDatabase<TSchema, TRelations> & {\n\t$client: Sql;\n} {\n\tconst transparentParser = (val: any) => val;\n\n\t// Override postgres.js default date parsers: https://github.com/porsager/postgres/discussions/761\n\tfor (const type of ['1184', '1082', '1083', '1114', '1182', '1185', '1115']) {\n\t\tclient.options.parsers[type as any] = transparentParser;\n\t\tclient.options.serializers[type as any] = transparentParser;\n\t}\n\tclient.options.serializers['114'] = transparentParser;\n\tclient.options.serializers['3802'] = transparentParser;\n\n\tconst dialect = new PgDialect({ 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\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\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;\n\tconst session = new PostgresJsSession(client, dialect, relations, schema, { logger });\n\tconst db = new PostgresJsDatabase(dialect, session, relations, schema as V1.RelationalSchemaConfig<any>);\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends Sql = Sql,\n>(\n\t...params: [\n\t\tTClient | string,\n\t] | [\n\t\tTClient | string,\n\t\tDrizzleConfig<TSchema, TRelations>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleConfig<TSchema, TRelations>\n\t\t\t& ({\n\t\t\t\tconnection: string | ({ url?: string } & Options<Record<string, PostgresType>>);\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): PostgresJsDatabase<TSchema, TRelations> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = pgClient(params[0] as string);\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as {\n\t\t\tconnection?: { url?: string } & Options<Record<string, PostgresType>>;\n\t\t\tclient?: TClient;\n\t\t} & DrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tif (typeof connection === 'object' && connection.url !== undefined) {\n\t\t\tconst { url, ...config } = connection;\n\n\t\t\tconst instance = pgClient(url, config);\n\t\t\treturn construct(instance, drizzleConfig) as any;\n\t\t}\n\n\t\tconst instance = pgClient(connection);\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema> | undefined) 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?: DrizzleConfig<TSchema, TRelations>,\n\t): PostgresJsDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({\n\t\t\toptions: {\n\t\t\t\tparsers: {},\n\t\t\t\tserializers: {},\n\t\t\t},\n\t\t} as any, config) as any;\n\t}\n}\n"],"mappings":"AAAA,OAAO,cAA6D;AACpE,YAAY,QAAQ;AACpB,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAE1B,SAA6B,gBAAgB;AAE7C,SAAS,yBAAyB;AAE3B,MAAM,2BAGH,WAA0D;AAAA,EACnE,QAA0B,UAAU,IAAY;AACjD;AAEA,SAAS,UAIR,QACA,SAA6C,CAAC,GAG7C;AACD,QAAM,oBAAoB,CAAC,QAAa;AAGxC,aAAW,QAAQ,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM,GAAG;AAC5E,WAAO,QAAQ,QAAQ,IAAW,IAAI;AACtC,WAAO,QAAQ,YAAY,IAAW,IAAI;AAAA,EAC3C;AACA,SAAO,QAAQ,YAAY,KAAK,IAAI;AACpC,SAAO,QAAQ,YAAY,MAAM,IAAI;AAErC,QAAM,UAAU,IAAI,UAAU,EAAE,QAAQ,OAAO,OAAO,CAAC;AACvD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe,GAAG;AAAA,MACvB,OAAO;AAAA,MACP,GAAG;AAAA,IACJ;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,YAAY,OAAO;AACzB,QAAM,UAAU,IAAI,kBAAkB,QAAQ,SAAS,WAAW,QAAQ,EAAE,OAAO,CAAC;AACpF,QAAM,KAAK,IAAI,mBAAmB,SAAS,SAAS,WAAW,MAAwC;AACvG,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;AAEO,SAAS,WAKZ,QAiBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,WAAW,SAAS,OAAO,CAAC,CAAW;AAE7C,WAAO,UAAU,UAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,MAAI,SAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAKzD,QAAI;AAAQ,aAAO,UAAU,QAAQ,aAAa;AAElD,QAAI,OAAO,eAAe,YAAY,WAAW,QAAQ,QAAW;AACnE,YAAM,EAAE,KAAK,GAAG,OAAO,IAAI;AAE3B,YAAMA,YAAW,SAAS,KAAK,MAAM;AACrC,aAAO,UAAUA,WAAU,aAAa;AAAA,IACzC;AAEA,UAAM,WAAW,SAAS,UAAU;AACpC,WAAO,UAAU,UAAU,aAAa;AAAA,EACzC;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAuC;AACvF;AAAA,CAEO,CAAUC,aAAV;AACC,WAAS,KAIf,QAGC;AACD,WAAO,UAAU;AAAA,MAChB,SAAS;AAAA,QACR,SAAS,CAAC;AAAA,QACV,aAAa,CAAC;AAAA,MACf;AAAA,IACD,GAAU,MAAM;AAAA,EACjB;AAdO,EAAAA,SAAS;AAAA,GADA;","names":["instance","drizzle"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/postgres-js/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { PostgresJsDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: PostgresJsDatabase<TSchema>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tawait db.dialect.migrate(migrations, db.session, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAAmC;AAGnC,eAAsB,QACrB,IACA,QACC;AACD,QAAM,iBAAa,oCAAmB,MAAM;AAC5C,QAAM,GAAG,QAAQ,QAAQ,YAAY,GAAG,SAAS,MAAM;AACxD;","names":[]}
1
+ {"version":3,"sources":["../../src/postgres-js/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport type { PostgresJsDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(\n\tdb: PostgresJsDatabase<TSchema, TRelations>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tawait db.dialect.migrate(migrations, db.session, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAAmC;AAInC,eAAsB,QACrB,IACA,QACC;AACD,QAAM,iBAAa,oCAAmB,MAAM;AAC5C,QAAM,GAAG,QAAQ,QAAQ,YAAY,GAAG,SAAS,MAAM;AACxD;","names":[]}
@@ -1,3 +1,4 @@
1
1
  import type { MigrationConfig } from "../migrator.cjs";
2
+ import type { AnyRelations } from "../relations.cjs";
2
3
  import type { PostgresJsDatabase } from "./driver.cjs";
3
- export declare function migrate<TSchema extends Record<string, unknown>>(db: PostgresJsDatabase<TSchema>, config: MigrationConfig): Promise<void>;
4
+ export declare function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(db: PostgresJsDatabase<TSchema, TRelations>, config: MigrationConfig): Promise<void>;
@@ -1,3 +1,4 @@
1
1
  import type { MigrationConfig } from "../migrator.js";
2
+ import type { AnyRelations } from "../relations.js";
2
3
  import type { PostgresJsDatabase } from "./driver.js";
3
- export declare function migrate<TSchema extends Record<string, unknown>>(db: PostgresJsDatabase<TSchema>, config: MigrationConfig): Promise<void>;
4
+ export declare function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(db: PostgresJsDatabase<TSchema, TRelations>, config: MigrationConfig): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/postgres-js/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { PostgresJsDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: PostgresJsDatabase<TSchema>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tawait db.dialect.migrate(migrations, db.session, config);\n}\n"],"mappings":"AACA,SAAS,0BAA0B;AAGnC,eAAsB,QACrB,IACA,QACC;AACD,QAAM,aAAa,mBAAmB,MAAM;AAC5C,QAAM,GAAG,QAAQ,QAAQ,YAAY,GAAG,SAAS,MAAM;AACxD;","names":[]}
1
+ {"version":3,"sources":["../../src/postgres-js/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport type { PostgresJsDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(\n\tdb: PostgresJsDatabase<TSchema, TRelations>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tawait db.dialect.migrate(migrations, db.session, config);\n}\n"],"mappings":"AACA,SAAS,0BAA0B;AAInC,eAAsB,QACrB,IACA,QACC;AACD,QAAM,aAAa,mBAAmB,MAAM;AAC5C,QAAM,GAAG,QAAQ,QAAQ,YAAY,GAAG,SAAS,MAAM;AACxD;","names":[]}
@@ -31,7 +31,7 @@ var import_sql = require("../sql/sql.cjs");
31
31
  var import_tracing = require("../tracing.cjs");
32
32
  var import_utils = require("../utils.cjs");
33
33
  class PostgresJsPreparedQuery extends import_session.PgPreparedQuery {
34
- constructor(client, queryString, params, logger, fields, _isResponseInArrayMode, customResultMapper) {
34
+ constructor(client, queryString, params, logger, fields, _isResponseInArrayMode, customResultMapper, isRqbV2Query) {
35
35
  super({ sql: queryString, params });
36
36
  this.client = client;
37
37
  this.queryString = queryString;
@@ -40,9 +40,12 @@ class PostgresJsPreparedQuery extends import_session.PgPreparedQuery {
40
40
  this.fields = fields;
41
41
  this._isResponseInArrayMode = _isResponseInArrayMode;
42
42
  this.customResultMapper = customResultMapper;
43
+ this.isRqbV2Query = isRqbV2Query;
43
44
  }
44
45
  static [import_entity.entityKind] = "PostgresJsPreparedQuery";
45
46
  async execute(placeholderValues = {}) {
47
+ if (this.isRqbV2Query)
48
+ return this.executeRqbV2(placeholderValues);
46
49
  return import_tracing.tracer.startActiveSpan("drizzle.execute", async (span) => {
47
50
  const params = (0, import_sql.fillPlaceholders)(this.params, placeholderValues);
48
51
  span?.setAttributes({
@@ -68,6 +71,27 @@ class PostgresJsPreparedQuery extends import_session.PgPreparedQuery {
68
71
  });
69
72
  });
70
73
  }
74
+ async executeRqbV2(placeholderValues = {}) {
75
+ return import_tracing.tracer.startActiveSpan("drizzle.execute", async (span) => {
76
+ const params = (0, import_sql.fillPlaceholders)(this.params, placeholderValues);
77
+ span?.setAttributes({
78
+ "drizzle.query.text": this.queryString,
79
+ "drizzle.query.params": JSON.stringify(params)
80
+ });
81
+ this.logger.logQuery(this.queryString, params);
82
+ const { queryString: query, client, customResultMapper } = this;
83
+ const rows = await import_tracing.tracer.startActiveSpan("drizzle.driver.execute", () => {
84
+ span?.setAttributes({
85
+ "drizzle.query.text": query,
86
+ "drizzle.query.params": JSON.stringify(params)
87
+ });
88
+ return client.unsafe(query, params);
89
+ });
90
+ return import_tracing.tracer.startActiveSpan("drizzle.mapResponse", () => {
91
+ return customResultMapper(rows);
92
+ });
93
+ });
94
+ }
71
95
  all(placeholderValues = {}) {
72
96
  return import_tracing.tracer.startActiveSpan("drizzle.execute", async (span) => {
73
97
  const params = (0, import_sql.fillPlaceholders)(this.params, placeholderValues);
@@ -91,9 +115,10 @@ class PostgresJsPreparedQuery extends import_session.PgPreparedQuery {
91
115
  }
92
116
  }
93
117
  class PostgresJsSession extends import_session.PgSession {
94
- constructor(client, dialect, schema, options = {}) {
118
+ constructor(client, dialect, relations, schema, options = {}) {
95
119
  super(dialect);
96
120
  this.client = client;
121
+ this.relations = relations;
97
122
  this.schema = schema;
98
123
  this.options = options;
99
124
  this.logger = options.logger ?? new import_logger.NoopLogger();
@@ -111,6 +136,18 @@ class PostgresJsSession extends import_session.PgSession {
111
136
  customResultMapper
112
137
  );
113
138
  }
139
+ prepareRelationalQuery(query, fields, name, customResultMapper) {
140
+ return new PostgresJsPreparedQuery(
141
+ this.client,
142
+ query.sql,
143
+ query.params,
144
+ this.logger,
145
+ fields,
146
+ false,
147
+ customResultMapper,
148
+ true
149
+ );
150
+ }
114
151
  query(query, params) {
115
152
  this.logger.logQuery(query, params);
116
153
  return this.client.unsafe(query, params).values();
@@ -123,10 +160,11 @@ class PostgresJsSession extends import_session.PgSession {
123
160
  const session = new PostgresJsSession(
124
161
  client,
125
162
  this.dialect,
163
+ this.relations,
126
164
  this.schema,
127
165
  this.options
128
166
  );
129
- const tx = new PostgresJsTransaction(this.dialect, session, this.schema);
167
+ const tx = new PostgresJsTransaction(this.dialect, session, this.schema, this.relations);
130
168
  if (config) {
131
169
  await tx.setTransaction(config);
132
170
  }
@@ -135,9 +173,10 @@ class PostgresJsSession extends import_session.PgSession {
135
173
  }
136
174
  }
137
175
  class PostgresJsTransaction extends import_pg_core.PgTransaction {
138
- constructor(dialect, session, schema, nestedIndex = 0) {
139
- super(dialect, session, schema, nestedIndex);
176
+ constructor(dialect, session, schema, relations, nestedIndex = 0) {
177
+ super(dialect, session, relations, schema, nestedIndex);
140
178
  this.session = session;
179
+ this.relations = relations;
141
180
  }
142
181
  static [import_entity.entityKind] = "PostgresJsTransaction";
143
182
  transaction(transaction) {
@@ -145,10 +184,16 @@ class PostgresJsTransaction extends import_pg_core.PgTransaction {
145
184
  const session = new PostgresJsSession(
146
185
  client,
147
186
  this.dialect,
187
+ this.relations,
148
188
  this.schema,
149
189
  this.session.options
150
190
  );
151
- const tx = new PostgresJsTransaction(this.dialect, session, this.schema);
191
+ const tx = new PostgresJsTransaction(
192
+ this.dialect,
193
+ session,
194
+ this.schema,
195
+ this.relations
196
+ );
152
197
  return transaction(tx);
153
198
  });
154
199
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/postgres-js/session.ts"],"sourcesContent":["import type { Row, RowList, Sql, TransactionSql } from 'postgres';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery, PgSession } from '~/pg-core/session.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nexport class PostgresJsPreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: Sql,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t) {\n\t\tsuper({ sql: queryString, params });\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\t\tconst { fields, queryString: query, client, joinsNotNullableMap, customResultMapper } = this;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\t\treturn client.unsafe(query, params as any[]);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst rows = await tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\n\t\t\t\treturn client.unsafe(query, params as any[]).values();\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn customResultMapper\n\t\t\t\t\t? customResultMapper(rows)\n\t\t\t\t\t: rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn this.client.unsafe(this.queryString, params as any[]);\n\t\t\t});\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface PostgresJsSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class PostgresJsSession<\n\tTSQL extends Sql,\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgSession<PostgresJsQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsSession';\n\n\tlogger: Logger;\n\n\tconstructor(\n\t\tpublic client: TSQL,\n\t\tdialect: PgDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\t/** @internal */\n\t\treadonly options: PostgresJsSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t): PgPreparedQuery<T> {\n\t\treturn new PostgresJsPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tquery(query: string, params: unknown[]): Promise<RowList<Row[]>> {\n\t\tthis.logger.logQuery(query, params);\n\t\treturn this.client.unsafe(query, params as any[]).values();\n\t}\n\n\tqueryObjects<T extends Row>(\n\t\tquery: string,\n\t\tparams: unknown[],\n\t): Promise<RowList<T[]>> {\n\t\treturn this.client.unsafe(query, params as any[]);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: PostgresJsTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig,\n\t): Promise<T> {\n\t\treturn this.client.begin(async (client) => {\n\t\t\tconst session = new PostgresJsSession<TransactionSql, TFullSchema, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.options,\n\t\t\t);\n\t\t\tconst tx = new PostgresJsTransaction(this.dialect, session, this.schema);\n\t\t\tif (config) {\n\t\t\t\tawait tx.setTransaction(config);\n\t\t\t}\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n}\n\nexport class PostgresJsTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgTransaction<PostgresJsQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsTransaction';\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\t/** @internal */\n\t\toverride readonly session: PostgresJsSession<TransactionSql, TFullSchema, TSchema>,\n\t\tschema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tnestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, schema, nestedIndex);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: PostgresJsTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn this.session.client.savepoint((client) => {\n\t\t\tconst session = new PostgresJsSession<TransactionSql, TFullSchema, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.session.options,\n\t\t\t);\n\t\t\tconst tx = new PostgresJsTransaction<TFullSchema, TSchema>(this.dialect, session, this.schema);\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n}\n\nexport interface PostgresJsQueryResultHKT extends PgQueryResultHKT {\n\ttype: RowList<Assume<this['row'], Row>[]>;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/postgres-js/session.ts"],"sourcesContent":["import type { Row, RowList, Sql, TransactionSql } from 'postgres';\nimport type * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery, PgSession } from '~/pg-core/session.ts';\nimport type { AnyRelations, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nexport class PostgresJsPreparedQuery<\n\tT extends PreparedQueryConfig,\n\tTIsRqbV2 extends boolean = false,\n> extends PgPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: Sql,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper({ sql: queryString, params });\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\t\tconst { fields, queryString: query, client, joinsNotNullableMap, customResultMapper } = this;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\t\treturn client.unsafe(query, params as any[]);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst rows = await tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\n\t\t\t\treturn client.unsafe(query, params as any[]).values();\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn customResultMapper\n\t\t\t\t\t? (customResultMapper as (rows: unknown[][]) => T['execute'])(rows)\n\t\t\t\t\t: rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\t\tconst { queryString: query, client, customResultMapper } = this;\n\n\t\t\tconst rows = await tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\n\t\t\t\treturn client.unsafe(query, params as any[]);\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(rows);\n\t\t\t});\n\t\t});\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn this.client.unsafe(this.queryString, params as any[]);\n\t\t\t});\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface PostgresJsSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class PostgresJsSession<\n\tTSQL extends Sql,\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgSession<PostgresJsQueryResultHKT, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsSession';\n\n\tlogger: Logger;\n\n\tconstructor(\n\t\tpublic client: TSQL,\n\t\tdialect: PgDialect,\n\t\tprivate relations: AnyRelations | undefined,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\t/** @internal */\n\t\treadonly options: PostgresJsSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t): PgPreparedQuery<T> {\n\t\treturn new PostgresJsPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t): PgPreparedQuery<T> {\n\t\treturn new PostgresJsPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tfalse,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\tquery(query: string, params: unknown[]): Promise<RowList<Row[]>> {\n\t\tthis.logger.logQuery(query, params);\n\t\treturn this.client.unsafe(query, params as any[]).values();\n\t}\n\n\tqueryObjects<T extends Row>(\n\t\tquery: string,\n\t\tparams: unknown[],\n\t): Promise<RowList<T[]>> {\n\t\treturn this.client.unsafe(query, params as any[]);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: PostgresJsTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig,\n\t): Promise<T> {\n\t\treturn this.client.begin(async (client) => {\n\t\t\tconst session = new PostgresJsSession<TransactionSql, TFullSchema, TRelations, TTablesConfig, TSchema>(\n\t\t\t\tclient,\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\tconst tx = new PostgresJsTransaction(this.dialect, session, this.schema, this.relations);\n\t\t\tif (config) {\n\t\t\t\tawait tx.setTransaction(config);\n\t\t\t}\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n}\n\nexport class PostgresJsTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgTransaction<PostgresJsQueryResultHKT, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PostgresJsTransaction';\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\t/** @internal */\n\t\toverride readonly session: PostgresJsSession<TransactionSql, TFullSchema, TRelations, TTablesConfig, TSchema>,\n\t\tschema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprotected override relations: AnyRelations | undefined,\n\t\tnestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, relations, schema, nestedIndex);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: PostgresJsTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn this.session.client.savepoint((client) => {\n\t\t\tconst session = new PostgresJsSession<TransactionSql, TFullSchema, TRelations, TTablesConfig, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.session.options,\n\t\t\t);\n\t\t\tconst tx = new PostgresJsTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>(\n\t\t\t\tthis.dialect,\n\t\t\t\tsession,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.relations,\n\t\t\t);\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n}\n\nexport interface PostgresJsQueryResultHKT extends PgQueryResultHKT {\n\ttype: RowList<Assume<this['row'], Row>[]>;\n}\n"],"mappings":"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","names":[]}
@@ -1,4 +1,5 @@
1
1
  import type { Row, RowList, Sql, TransactionSql } from 'postgres';
2
+ import type * as V1 from "../_relations.cjs";
2
3
  import { entityKind } from "../entity.cjs";
3
4
  import type { Logger } from "../logger.cjs";
4
5
  import type { PgDialect } from "../pg-core/dialect.cjs";
@@ -6,10 +7,10 @@ import { PgTransaction } from "../pg-core/index.cjs";
6
7
  import type { SelectedFieldsOrdered } from "../pg-core/query-builders/select.types.cjs";
7
8
  import type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from "../pg-core/session.cjs";
8
9
  import { PgPreparedQuery, PgSession } from "../pg-core/session.cjs";
9
- import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.cjs";
10
+ import type { AnyRelations, TablesRelationalConfig } from "../relations.cjs";
10
11
  import { type Query } from "../sql/sql.cjs";
11
12
  import { type Assume } from "../utils.cjs";
12
- export declare class PostgresJsPreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {
13
+ export declare class PostgresJsPreparedQuery<T extends PreparedQueryConfig, TIsRqbV2 extends boolean = false> extends PgPreparedQuery<T> {
13
14
  private client;
14
15
  private queryString;
15
16
  private params;
@@ -17,33 +18,38 @@ export declare class PostgresJsPreparedQuery<T extends PreparedQueryConfig> exte
17
18
  private fields;
18
19
  private _isResponseInArrayMode;
19
20
  private customResultMapper?;
21
+ private isRqbV2Query?;
20
22
  static readonly [entityKind]: string;
21
- constructor(client: Sql, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
23
+ constructor(client: Sql, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => T["execute"]) | undefined, isRqbV2Query?: TIsRqbV2 | undefined);
22
24
  execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
25
+ private executeRqbV2;
23
26
  all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']>;
24
27
  }
25
28
  export interface PostgresJsSessionOptions {
26
29
  logger?: Logger;
27
30
  }
28
- export declare class PostgresJsSession<TSQL extends Sql, TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends PgSession<PostgresJsQueryResultHKT, TFullSchema, TSchema> {
31
+ export declare class PostgresJsSession<TSQL extends Sql, TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends PgSession<PostgresJsQueryResultHKT, TFullSchema, TRelations, TTablesConfig, TSchema> {
29
32
  client: TSQL;
33
+ private relations;
30
34
  private schema;
31
35
  static readonly [entityKind]: string;
32
36
  logger: Logger;
33
- constructor(client: TSQL, dialect: PgDialect, schema: RelationalSchemaConfig<TSchema> | undefined,
37
+ constructor(client: TSQL, dialect: PgDialect, relations: AnyRelations | undefined, schema: V1.RelationalSchemaConfig<TSchema> | undefined,
34
38
  /** @internal */
35
39
  options?: PostgresJsSessionOptions);
36
40
  prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => T['execute']): PgPreparedQuery<T>;
41
+ prepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, customResultMapper: (rows: Record<string, unknown>[]) => T['execute']): PgPreparedQuery<T>;
37
42
  query(query: string, params: unknown[]): Promise<RowList<Row[]>>;
38
43
  queryObjects<T extends Row>(query: string, params: unknown[]): Promise<RowList<T[]>>;
39
- transaction<T>(transaction: (tx: PostgresJsTransaction<TFullSchema, TSchema>) => Promise<T>, config?: PgTransactionConfig): Promise<T>;
44
+ transaction<T>(transaction: (tx: PostgresJsTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>, config?: PgTransactionConfig): Promise<T>;
40
45
  }
41
- export declare class PostgresJsTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends PgTransaction<PostgresJsQueryResultHKT, TFullSchema, TSchema> {
46
+ export declare class PostgresJsTransaction<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends PgTransaction<PostgresJsQueryResultHKT, TFullSchema, TRelations, TTablesConfig, TSchema> {
47
+ protected relations: AnyRelations | undefined;
42
48
  static readonly [entityKind]: string;
43
49
  constructor(dialect: PgDialect,
44
50
  /** @internal */
45
- session: PostgresJsSession<TransactionSql, TFullSchema, TSchema>, schema: RelationalSchemaConfig<TSchema> | undefined, nestedIndex?: number);
46
- transaction<T>(transaction: (tx: PostgresJsTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
51
+ session: PostgresJsSession<TransactionSql, TFullSchema, TRelations, TTablesConfig, TSchema>, schema: V1.RelationalSchemaConfig<TSchema> | undefined, relations: AnyRelations | undefined, nestedIndex?: number);
52
+ transaction<T>(transaction: (tx: PostgresJsTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>): Promise<T>;
47
53
  }
48
54
  export interface PostgresJsQueryResultHKT extends PgQueryResultHKT {
49
55
  type: RowList<Assume<this['row'], Row>[]>;
@@ -1,4 +1,5 @@
1
1
  import type { Row, RowList, Sql, TransactionSql } from 'postgres';
2
+ import type * as V1 from "../_relations.js";
2
3
  import { entityKind } from "../entity.js";
3
4
  import type { Logger } from "../logger.js";
4
5
  import type { PgDialect } from "../pg-core/dialect.js";
@@ -6,10 +7,10 @@ import { PgTransaction } from "../pg-core/index.js";
6
7
  import type { SelectedFieldsOrdered } from "../pg-core/query-builders/select.types.js";
7
8
  import type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from "../pg-core/session.js";
8
9
  import { PgPreparedQuery, PgSession } from "../pg-core/session.js";
9
- import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.js";
10
+ import type { AnyRelations, TablesRelationalConfig } from "../relations.js";
10
11
  import { type Query } from "../sql/sql.js";
11
12
  import { type Assume } from "../utils.js";
12
- export declare class PostgresJsPreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {
13
+ export declare class PostgresJsPreparedQuery<T extends PreparedQueryConfig, TIsRqbV2 extends boolean = false> extends PgPreparedQuery<T> {
13
14
  private client;
14
15
  private queryString;
15
16
  private params;
@@ -17,33 +18,38 @@ export declare class PostgresJsPreparedQuery<T extends PreparedQueryConfig> exte
17
18
  private fields;
18
19
  private _isResponseInArrayMode;
19
20
  private customResultMapper?;
21
+ private isRqbV2Query?;
20
22
  static readonly [entityKind]: string;
21
- constructor(client: Sql, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
23
+ constructor(client: Sql, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => T["execute"]) | undefined, isRqbV2Query?: TIsRqbV2 | undefined);
22
24
  execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
25
+ private executeRqbV2;
23
26
  all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']>;
24
27
  }
25
28
  export interface PostgresJsSessionOptions {
26
29
  logger?: Logger;
27
30
  }
28
- export declare class PostgresJsSession<TSQL extends Sql, TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends PgSession<PostgresJsQueryResultHKT, TFullSchema, TSchema> {
31
+ export declare class PostgresJsSession<TSQL extends Sql, TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends PgSession<PostgresJsQueryResultHKT, TFullSchema, TRelations, TTablesConfig, TSchema> {
29
32
  client: TSQL;
33
+ private relations;
30
34
  private schema;
31
35
  static readonly [entityKind]: string;
32
36
  logger: Logger;
33
- constructor(client: TSQL, dialect: PgDialect, schema: RelationalSchemaConfig<TSchema> | undefined,
37
+ constructor(client: TSQL, dialect: PgDialect, relations: AnyRelations | undefined, schema: V1.RelationalSchemaConfig<TSchema> | undefined,
34
38
  /** @internal */
35
39
  options?: PostgresJsSessionOptions);
36
40
  prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => T['execute']): PgPreparedQuery<T>;
41
+ prepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, customResultMapper: (rows: Record<string, unknown>[]) => T['execute']): PgPreparedQuery<T>;
37
42
  query(query: string, params: unknown[]): Promise<RowList<Row[]>>;
38
43
  queryObjects<T extends Row>(query: string, params: unknown[]): Promise<RowList<T[]>>;
39
- transaction<T>(transaction: (tx: PostgresJsTransaction<TFullSchema, TSchema>) => Promise<T>, config?: PgTransactionConfig): Promise<T>;
44
+ transaction<T>(transaction: (tx: PostgresJsTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>, config?: PgTransactionConfig): Promise<T>;
40
45
  }
41
- export declare class PostgresJsTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends PgTransaction<PostgresJsQueryResultHKT, TFullSchema, TSchema> {
46
+ export declare class PostgresJsTransaction<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends PgTransaction<PostgresJsQueryResultHKT, TFullSchema, TRelations, TTablesConfig, TSchema> {
47
+ protected relations: AnyRelations | undefined;
42
48
  static readonly [entityKind]: string;
43
49
  constructor(dialect: PgDialect,
44
50
  /** @internal */
45
- session: PostgresJsSession<TransactionSql, TFullSchema, TSchema>, schema: RelationalSchemaConfig<TSchema> | undefined, nestedIndex?: number);
46
- transaction<T>(transaction: (tx: PostgresJsTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
51
+ session: PostgresJsSession<TransactionSql, TFullSchema, TRelations, TTablesConfig, TSchema>, schema: V1.RelationalSchemaConfig<TSchema> | undefined, relations: AnyRelations | undefined, nestedIndex?: number);
52
+ transaction<T>(transaction: (tx: PostgresJsTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>): Promise<T>;
47
53
  }
48
54
  export interface PostgresJsQueryResultHKT extends PgQueryResultHKT {
49
55
  type: RowList<Assume<this['row'], Row>[]>;
@@ -6,7 +6,7 @@ import { fillPlaceholders } from "../sql/sql.js";
6
6
  import { tracer } from "../tracing.js";
7
7
  import { mapResultRow } from "../utils.js";
8
8
  class PostgresJsPreparedQuery extends PgPreparedQuery {
9
- constructor(client, queryString, params, logger, fields, _isResponseInArrayMode, customResultMapper) {
9
+ constructor(client, queryString, params, logger, fields, _isResponseInArrayMode, customResultMapper, isRqbV2Query) {
10
10
  super({ sql: queryString, params });
11
11
  this.client = client;
12
12
  this.queryString = queryString;
@@ -15,9 +15,12 @@ class PostgresJsPreparedQuery extends PgPreparedQuery {
15
15
  this.fields = fields;
16
16
  this._isResponseInArrayMode = _isResponseInArrayMode;
17
17
  this.customResultMapper = customResultMapper;
18
+ this.isRqbV2Query = isRqbV2Query;
18
19
  }
19
20
  static [entityKind] = "PostgresJsPreparedQuery";
20
21
  async execute(placeholderValues = {}) {
22
+ if (this.isRqbV2Query)
23
+ return this.executeRqbV2(placeholderValues);
21
24
  return tracer.startActiveSpan("drizzle.execute", async (span) => {
22
25
  const params = fillPlaceholders(this.params, placeholderValues);
23
26
  span?.setAttributes({
@@ -43,6 +46,27 @@ class PostgresJsPreparedQuery extends PgPreparedQuery {
43
46
  });
44
47
  });
45
48
  }
49
+ async executeRqbV2(placeholderValues = {}) {
50
+ return tracer.startActiveSpan("drizzle.execute", async (span) => {
51
+ const params = fillPlaceholders(this.params, placeholderValues);
52
+ span?.setAttributes({
53
+ "drizzle.query.text": this.queryString,
54
+ "drizzle.query.params": JSON.stringify(params)
55
+ });
56
+ this.logger.logQuery(this.queryString, params);
57
+ const { queryString: query, client, customResultMapper } = this;
58
+ const rows = await tracer.startActiveSpan("drizzle.driver.execute", () => {
59
+ span?.setAttributes({
60
+ "drizzle.query.text": query,
61
+ "drizzle.query.params": JSON.stringify(params)
62
+ });
63
+ return client.unsafe(query, params);
64
+ });
65
+ return tracer.startActiveSpan("drizzle.mapResponse", () => {
66
+ return customResultMapper(rows);
67
+ });
68
+ });
69
+ }
46
70
  all(placeholderValues = {}) {
47
71
  return tracer.startActiveSpan("drizzle.execute", async (span) => {
48
72
  const params = fillPlaceholders(this.params, placeholderValues);
@@ -66,9 +90,10 @@ class PostgresJsPreparedQuery extends PgPreparedQuery {
66
90
  }
67
91
  }
68
92
  class PostgresJsSession extends PgSession {
69
- constructor(client, dialect, schema, options = {}) {
93
+ constructor(client, dialect, relations, schema, options = {}) {
70
94
  super(dialect);
71
95
  this.client = client;
96
+ this.relations = relations;
72
97
  this.schema = schema;
73
98
  this.options = options;
74
99
  this.logger = options.logger ?? new NoopLogger();
@@ -86,6 +111,18 @@ class PostgresJsSession extends PgSession {
86
111
  customResultMapper
87
112
  );
88
113
  }
114
+ prepareRelationalQuery(query, fields, name, customResultMapper) {
115
+ return new PostgresJsPreparedQuery(
116
+ this.client,
117
+ query.sql,
118
+ query.params,
119
+ this.logger,
120
+ fields,
121
+ false,
122
+ customResultMapper,
123
+ true
124
+ );
125
+ }
89
126
  query(query, params) {
90
127
  this.logger.logQuery(query, params);
91
128
  return this.client.unsafe(query, params).values();
@@ -98,10 +135,11 @@ class PostgresJsSession extends PgSession {
98
135
  const session = new PostgresJsSession(
99
136
  client,
100
137
  this.dialect,
138
+ this.relations,
101
139
  this.schema,
102
140
  this.options
103
141
  );
104
- const tx = new PostgresJsTransaction(this.dialect, session, this.schema);
142
+ const tx = new PostgresJsTransaction(this.dialect, session, this.schema, this.relations);
105
143
  if (config) {
106
144
  await tx.setTransaction(config);
107
145
  }
@@ -110,9 +148,10 @@ class PostgresJsSession extends PgSession {
110
148
  }
111
149
  }
112
150
  class PostgresJsTransaction extends PgTransaction {
113
- constructor(dialect, session, schema, nestedIndex = 0) {
114
- super(dialect, session, schema, nestedIndex);
151
+ constructor(dialect, session, schema, relations, nestedIndex = 0) {
152
+ super(dialect, session, relations, schema, nestedIndex);
115
153
  this.session = session;
154
+ this.relations = relations;
116
155
  }
117
156
  static [entityKind] = "PostgresJsTransaction";
118
157
  transaction(transaction) {
@@ -120,10 +159,16 @@ class PostgresJsTransaction extends PgTransaction {
120
159
  const session = new PostgresJsSession(
121
160
  client,
122
161
  this.dialect,
162
+ this.relations,
123
163
  this.schema,
124
164
  this.session.options
125
165
  );
126
- const tx = new PostgresJsTransaction(this.dialect, session, this.schema);
166
+ const tx = new PostgresJsTransaction(
167
+ this.dialect,
168
+ session,
169
+ this.schema,
170
+ this.relations
171
+ );
127
172
  return transaction(tx);
128
173
  });
129
174
  }