drizzle-orm 0.36.4-3c69a1f → 0.36.4-3efe329

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 (971) hide show
  1. package/alias.cjs.map +1 -1
  2. package/alias.d.cts +3 -3
  3. package/alias.d.ts +3 -3
  4. package/alias.js.map +1 -1
  5. package/aws-data-api/pg/driver.cjs +5 -19
  6. package/aws-data-api/pg/driver.cjs.map +1 -1
  7. package/aws-data-api/pg/driver.d.cts +8 -9
  8. package/aws-data-api/pg/driver.d.ts +8 -9
  9. package/aws-data-api/pg/driver.js +8 -9
  10. package/aws-data-api/pg/driver.js.map +1 -1
  11. package/aws-data-api/pg/migrator.cjs.map +1 -1
  12. package/aws-data-api/pg/migrator.d.cts +1 -2
  13. package/aws-data-api/pg/migrator.d.ts +1 -2
  14. package/aws-data-api/pg/migrator.js.map +1 -1
  15. package/aws-data-api/pg/session.cjs +4 -67
  16. package/aws-data-api/pg/session.cjs.map +1 -1
  17. package/aws-data-api/pg/session.d.cts +8 -13
  18. package/aws-data-api/pg/session.d.ts +8 -13
  19. package/aws-data-api/pg/session.js +4 -67
  20. package/aws-data-api/pg/session.js.map +1 -1
  21. package/better-sqlite3/driver.cjs +5 -12
  22. package/better-sqlite3/driver.cjs.map +1 -1
  23. package/better-sqlite3/driver.d.cts +6 -7
  24. package/better-sqlite3/driver.d.ts +6 -7
  25. package/better-sqlite3/driver.js +8 -12
  26. package/better-sqlite3/driver.js.map +1 -1
  27. package/better-sqlite3/migrator.cjs.map +1 -1
  28. package/better-sqlite3/migrator.d.cts +1 -2
  29. package/better-sqlite3/migrator.d.ts +1 -2
  30. package/better-sqlite3/migrator.js.map +1 -1
  31. package/better-sqlite3/session.cjs +4 -49
  32. package/better-sqlite3/session.cjs.map +1 -1
  33. package/better-sqlite3/session.d.cts +8 -14
  34. package/better-sqlite3/session.d.ts +8 -14
  35. package/better-sqlite3/session.js +4 -49
  36. package/better-sqlite3/session.js.map +1 -1
  37. package/bun-sqlite/driver.cjs +5 -22
  38. package/bun-sqlite/driver.cjs.map +1 -1
  39. package/bun-sqlite/driver.d.cts +6 -7
  40. package/bun-sqlite/driver.d.ts +6 -7
  41. package/bun-sqlite/driver.js +8 -12
  42. package/bun-sqlite/driver.js.map +1 -1
  43. package/bun-sqlite/migrator.cjs.map +1 -1
  44. package/bun-sqlite/migrator.d.cts +1 -2
  45. package/bun-sqlite/migrator.d.ts +1 -2
  46. package/bun-sqlite/migrator.js.map +1 -1
  47. package/bun-sqlite/session.cjs +4 -49
  48. package/bun-sqlite/session.cjs.map +1 -1
  49. package/bun-sqlite/session.d.cts +8 -14
  50. package/bun-sqlite/session.d.ts +8 -14
  51. package/bun-sqlite/session.js +4 -49
  52. package/bun-sqlite/session.js.map +1 -1
  53. package/column-builder.cjs.map +1 -1
  54. package/column-builder.d.cts +4 -3
  55. package/column-builder.d.ts +4 -3
  56. package/column-builder.js.map +1 -1
  57. package/d1/driver.cjs +5 -22
  58. package/d1/driver.cjs.map +1 -1
  59. package/d1/driver.d.cts +2 -3
  60. package/d1/driver.d.ts +2 -3
  61. package/d1/driver.js +8 -12
  62. package/d1/driver.js.map +1 -1
  63. package/d1/migrator.cjs.map +1 -1
  64. package/d1/migrator.d.cts +1 -2
  65. package/d1/migrator.d.ts +1 -2
  66. package/d1/migrator.js.map +1 -1
  67. package/d1/session.cjs +6 -48
  68. package/d1/session.cjs.map +1 -1
  69. package/d1/session.d.cts +8 -15
  70. package/d1/session.d.ts +8 -15
  71. package/d1/session.js +6 -48
  72. package/d1/session.js.map +1 -1
  73. package/durable-sqlite/driver.cjs +64 -0
  74. package/durable-sqlite/driver.cjs.map +1 -0
  75. package/durable-sqlite/driver.d.cts +9 -0
  76. package/durable-sqlite/driver.d.ts +9 -0
  77. package/durable-sqlite/driver.js +42 -0
  78. package/durable-sqlite/driver.js.map +1 -0
  79. package/durable-sqlite/index.cjs +25 -0
  80. package/durable-sqlite/index.cjs.map +1 -0
  81. package/durable-sqlite/index.d.cts +2 -0
  82. package/durable-sqlite/index.d.ts +2 -0
  83. package/durable-sqlite/index.js +3 -0
  84. package/durable-sqlite/index.js.map +1 -0
  85. package/durable-sqlite/migrator.cjs +85 -0
  86. package/durable-sqlite/migrator.cjs.map +1 -0
  87. package/durable-sqlite/migrator.d.cts +14 -0
  88. package/durable-sqlite/migrator.d.ts +14 -0
  89. package/durable-sqlite/migrator.js +61 -0
  90. package/durable-sqlite/migrator.js.map +1 -0
  91. package/durable-sqlite/session.cjs +131 -0
  92. package/durable-sqlite/session.cjs.map +1 -0
  93. package/durable-sqlite/session.d.cts +46 -0
  94. package/durable-sqlite/session.d.ts +46 -0
  95. package/durable-sqlite/session.js +107 -0
  96. package/durable-sqlite/session.js.map +1 -0
  97. package/expo-sqlite/driver.cjs +5 -22
  98. package/expo-sqlite/driver.cjs.map +1 -1
  99. package/expo-sqlite/driver.d.cts +2 -3
  100. package/expo-sqlite/driver.d.ts +2 -3
  101. package/expo-sqlite/driver.js +8 -12
  102. package/expo-sqlite/driver.js.map +1 -1
  103. package/expo-sqlite/migrator.cjs.map +1 -1
  104. package/expo-sqlite/migrator.d.cts +2 -3
  105. package/expo-sqlite/migrator.d.ts +2 -3
  106. package/expo-sqlite/migrator.js.map +1 -1
  107. package/expo-sqlite/query.cjs +2 -13
  108. package/expo-sqlite/query.cjs.map +1 -1
  109. package/expo-sqlite/query.d.cts +1 -2
  110. package/expo-sqlite/query.d.ts +1 -2
  111. package/expo-sqlite/query.js +2 -3
  112. package/expo-sqlite/query.js.map +1 -1
  113. package/expo-sqlite/session.cjs +4 -47
  114. package/expo-sqlite/session.cjs.map +1 -1
  115. package/expo-sqlite/session.d.cts +8 -14
  116. package/expo-sqlite/session.d.ts +8 -14
  117. package/expo-sqlite/session.js +4 -47
  118. package/expo-sqlite/session.js.map +1 -1
  119. package/libsql/driver-core.cjs +5 -22
  120. package/libsql/driver-core.cjs.map +1 -1
  121. package/libsql/driver-core.d.cts +1 -2
  122. package/libsql/driver-core.d.ts +1 -2
  123. package/libsql/driver-core.js +8 -12
  124. package/libsql/driver-core.js.map +1 -1
  125. package/libsql/driver.cjs.map +1 -1
  126. package/libsql/driver.d.cts +5 -6
  127. package/libsql/driver.d.ts +5 -6
  128. package/libsql/driver.js.map +1 -1
  129. package/libsql/http/index.cjs.map +1 -1
  130. package/libsql/http/index.d.cts +5 -6
  131. package/libsql/http/index.d.ts +5 -6
  132. package/libsql/http/index.js.map +1 -1
  133. package/libsql/migrator.cjs.map +1 -1
  134. package/libsql/migrator.d.cts +1 -2
  135. package/libsql/migrator.d.ts +1 -2
  136. package/libsql/migrator.js.map +1 -1
  137. package/libsql/node/index.cjs.map +1 -1
  138. package/libsql/node/index.d.cts +5 -6
  139. package/libsql/node/index.d.ts +5 -6
  140. package/libsql/node/index.js.map +1 -1
  141. package/libsql/session.cjs +4 -60
  142. package/libsql/session.cjs.map +1 -1
  143. package/libsql/session.d.cts +9 -15
  144. package/libsql/session.d.ts +9 -15
  145. package/libsql/session.js +4 -60
  146. package/libsql/session.js.map +1 -1
  147. package/libsql/sqlite3/index.cjs.map +1 -1
  148. package/libsql/sqlite3/index.d.cts +5 -6
  149. package/libsql/sqlite3/index.d.ts +5 -6
  150. package/libsql/sqlite3/index.js.map +1 -1
  151. package/libsql/wasm/index.cjs.map +1 -1
  152. package/libsql/wasm/index.d.cts +5 -6
  153. package/libsql/wasm/index.d.ts +5 -6
  154. package/libsql/wasm/index.js.map +1 -1
  155. package/libsql/web/index.cjs.map +1 -1
  156. package/libsql/web/index.d.cts +5 -6
  157. package/libsql/web/index.d.ts +5 -6
  158. package/libsql/web/index.js.map +1 -1
  159. package/libsql/ws/index.cjs.map +1 -1
  160. package/libsql/ws/index.d.cts +5 -6
  161. package/libsql/ws/index.d.ts +5 -6
  162. package/libsql/ws/index.js.map +1 -1
  163. package/mysql-core/db.cjs +8 -29
  164. package/mysql-core/db.cjs.map +1 -1
  165. package/mysql-core/db.d.cts +8 -15
  166. package/mysql-core/db.d.ts +8 -15
  167. package/mysql-core/db.js +7 -28
  168. package/mysql-core/db.js.map +1 -1
  169. package/mysql-core/dialect.cjs +15 -170
  170. package/mysql-core/dialect.cjs.map +1 -1
  171. package/mysql-core/dialect.d.cts +13 -29
  172. package/mysql-core/dialect.d.ts +13 -29
  173. package/mysql-core/dialect.js +21 -167
  174. package/mysql-core/dialect.js.map +1 -1
  175. package/mysql-core/query-builders/count.cjs.map +1 -1
  176. package/mysql-core/query-builders/count.d.cts +1 -1
  177. package/mysql-core/query-builders/count.d.ts +1 -1
  178. package/mysql-core/query-builders/count.js.map +1 -1
  179. package/mysql-core/query-builders/query.cjs +31 -18
  180. package/mysql-core/query-builders/query.cjs.map +1 -1
  181. package/mysql-core/query-builders/query.d.cts +10 -8
  182. package/mysql-core/query-builders/query.d.ts +10 -8
  183. package/mysql-core/query-builders/query.js +31 -18
  184. package/mysql-core/query-builders/query.js.map +1 -1
  185. package/mysql-core/session.cjs +2 -3
  186. package/mysql-core/session.cjs.map +1 -1
  187. package/mysql-core/session.d.cts +7 -10
  188. package/mysql-core/session.d.ts +7 -10
  189. package/mysql-core/session.js +2 -3
  190. package/mysql-core/session.js.map +1 -1
  191. package/mysql-proxy/driver.cjs +5 -22
  192. package/mysql-proxy/driver.cjs.map +1 -1
  193. package/mysql-proxy/driver.d.cts +2 -3
  194. package/mysql-proxy/driver.d.ts +2 -3
  195. package/mysql-proxy/driver.js +8 -12
  196. package/mysql-proxy/driver.js.map +1 -1
  197. package/mysql-proxy/migrator.cjs.map +1 -1
  198. package/mysql-proxy/migrator.d.cts +1 -2
  199. package/mysql-proxy/migrator.d.ts +1 -2
  200. package/mysql-proxy/migrator.js.map +1 -1
  201. package/mysql-proxy/session.cjs +2 -47
  202. package/mysql-proxy/session.cjs.map +1 -1
  203. package/mysql-proxy/session.d.cts +8 -13
  204. package/mysql-proxy/session.d.ts +8 -13
  205. package/mysql-proxy/session.js +2 -47
  206. package/mysql-proxy/session.js.map +1 -1
  207. package/mysql2/driver.cjs +7 -24
  208. package/mysql2/driver.cjs.map +1 -1
  209. package/mysql2/driver.d.cts +9 -10
  210. package/mysql2/driver.d.ts +9 -10
  211. package/mysql2/driver.js +10 -14
  212. package/mysql2/driver.js.map +1 -1
  213. package/mysql2/migrator.cjs.map +1 -1
  214. package/mysql2/migrator.d.cts +1 -2
  215. package/mysql2/migrator.d.ts +1 -2
  216. package/mysql2/migrator.js.map +1 -1
  217. package/mysql2/session.cjs +2 -51
  218. package/mysql2/session.cjs.map +1 -1
  219. package/mysql2/session.d.cts +8 -13
  220. package/mysql2/session.d.ts +8 -13
  221. package/mysql2/session.js +2 -51
  222. package/mysql2/session.js.map +1 -1
  223. package/neon-http/driver.cjs +8 -22
  224. package/neon-http/driver.cjs.map +1 -1
  225. package/neon-http/driver.d.cts +10 -11
  226. package/neon-http/driver.d.ts +10 -11
  227. package/neon-http/driver.js +8 -12
  228. package/neon-http/driver.js.map +1 -1
  229. package/neon-http/migrator.cjs.map +1 -1
  230. package/neon-http/migrator.d.cts +1 -2
  231. package/neon-http/migrator.d.ts +1 -2
  232. package/neon-http/migrator.js.map +1 -1
  233. package/neon-http/session.cjs +2 -32
  234. package/neon-http/session.cjs.map +1 -1
  235. package/neon-http/session.d.cts +8 -13
  236. package/neon-http/session.d.ts +8 -13
  237. package/neon-http/session.js +2 -32
  238. package/neon-http/session.js.map +1 -1
  239. package/neon-serverless/driver.cjs +7 -18
  240. package/neon-serverless/driver.cjs.map +1 -1
  241. package/neon-serverless/driver.d.cts +8 -9
  242. package/neon-serverless/driver.d.ts +8 -9
  243. package/neon-serverless/driver.js +10 -8
  244. package/neon-serverless/driver.js.map +1 -1
  245. package/neon-serverless/migrator.cjs.map +1 -1
  246. package/neon-serverless/migrator.d.cts +1 -2
  247. package/neon-serverless/migrator.d.ts +1 -2
  248. package/neon-serverless/migrator.js.map +1 -1
  249. package/neon-serverless/session.cjs +5 -40
  250. package/neon-serverless/session.cjs.map +1 -1
  251. package/neon-serverless/session.d.cts +8 -13
  252. package/neon-serverless/session.d.ts +8 -13
  253. package/neon-serverless/session.js +5 -40
  254. package/neon-serverless/session.js.map +1 -1
  255. package/node-postgres/driver.cjs +7 -13
  256. package/node-postgres/driver.cjs.map +1 -1
  257. package/node-postgres/driver.d.cts +8 -9
  258. package/node-postgres/driver.d.ts +8 -9
  259. package/node-postgres/driver.js +10 -13
  260. package/node-postgres/driver.js.map +1 -1
  261. package/node-postgres/migrator.cjs.map +1 -1
  262. package/node-postgres/migrator.d.cts +1 -2
  263. package/node-postgres/migrator.d.ts +1 -2
  264. package/node-postgres/migrator.js.map +1 -1
  265. package/node-postgres/session.cjs +4 -45
  266. package/node-postgres/session.cjs.map +1 -1
  267. package/node-postgres/session.d.cts +8 -13
  268. package/node-postgres/session.d.ts +8 -13
  269. package/node-postgres/session.js +4 -45
  270. package/node-postgres/session.js.map +1 -1
  271. package/op-sqlite/driver.cjs +5 -22
  272. package/op-sqlite/driver.cjs.map +1 -1
  273. package/op-sqlite/driver.d.cts +2 -3
  274. package/op-sqlite/driver.d.ts +2 -3
  275. package/op-sqlite/driver.js +8 -12
  276. package/op-sqlite/driver.js.map +1 -1
  277. package/op-sqlite/migrator.cjs.map +1 -1
  278. package/op-sqlite/migrator.d.cts +2 -3
  279. package/op-sqlite/migrator.d.ts +2 -3
  280. package/op-sqlite/migrator.js.map +1 -1
  281. package/op-sqlite/session.cjs +4 -47
  282. package/op-sqlite/session.cjs.map +1 -1
  283. package/op-sqlite/session.d.cts +8 -14
  284. package/op-sqlite/session.d.ts +8 -14
  285. package/op-sqlite/session.js +4 -47
  286. package/op-sqlite/session.js.map +1 -1
  287. package/package.json +786 -53
  288. package/pg-core/db.cjs +11 -33
  289. package/pg-core/db.cjs.map +1 -1
  290. package/pg-core/db.d.cts +11 -18
  291. package/pg-core/db.d.ts +11 -18
  292. package/pg-core/db.js +10 -32
  293. package/pg-core/db.js.map +1 -1
  294. package/pg-core/dialect.cjs +488 -146
  295. package/pg-core/dialect.cjs.map +1 -1
  296. package/pg-core/dialect.d.cts +7 -21
  297. package/pg-core/dialect.d.ts +7 -21
  298. package/pg-core/dialect.js +494 -143
  299. package/pg-core/dialect.js.map +1 -1
  300. package/pg-core/query-builders/count.cjs +1 -0
  301. package/pg-core/query-builders/count.cjs.map +1 -1
  302. package/pg-core/query-builders/count.d.cts +3 -2
  303. package/pg-core/query-builders/count.d.ts +3 -2
  304. package/pg-core/query-builders/count.js +1 -0
  305. package/pg-core/query-builders/count.js.map +1 -1
  306. package/pg-core/query-builders/delete.cjs.map +1 -1
  307. package/pg-core/query-builders/delete.js.map +1 -1
  308. package/pg-core/query-builders/insert.cjs +1 -9
  309. package/pg-core/query-builders/insert.cjs.map +1 -1
  310. package/pg-core/query-builders/insert.js +1 -9
  311. package/pg-core/query-builders/insert.js.map +1 -1
  312. package/pg-core/query-builders/query.cjs +18 -15
  313. package/pg-core/query-builders/query.cjs.map +1 -1
  314. package/pg-core/query-builders/query.d.cts +6 -6
  315. package/pg-core/query-builders/query.d.ts +6 -6
  316. package/pg-core/query-builders/query.js +18 -15
  317. package/pg-core/query-builders/query.js.map +1 -1
  318. package/pg-core/query-builders/refresh-materialized-view.cjs.map +1 -1
  319. package/pg-core/query-builders/refresh-materialized-view.js.map +1 -1
  320. package/pg-core/query-builders/select.cjs +2 -10
  321. package/pg-core/query-builders/select.cjs.map +1 -1
  322. package/pg-core/query-builders/select.js +8 -11
  323. package/pg-core/query-builders/select.js.map +1 -1
  324. package/pg-core/query-builders/update.cjs +1 -7
  325. package/pg-core/query-builders/update.cjs.map +1 -1
  326. package/pg-core/query-builders/update.d.cts +2 -2
  327. package/pg-core/query-builders/update.d.ts +2 -2
  328. package/pg-core/query-builders/update.js +6 -8
  329. package/pg-core/query-builders/update.js.map +1 -1
  330. package/pg-core/session.cjs +2 -3
  331. package/pg-core/session.cjs.map +1 -1
  332. package/pg-core/session.d.cts +8 -10
  333. package/pg-core/session.d.ts +8 -10
  334. package/pg-core/session.js +2 -3
  335. package/pg-core/session.js.map +1 -1
  336. package/pg-proxy/driver.cjs +5 -21
  337. package/pg-proxy/driver.cjs.map +1 -1
  338. package/pg-proxy/driver.d.cts +2 -3
  339. package/pg-proxy/driver.d.ts +2 -3
  340. package/pg-proxy/driver.js +8 -11
  341. package/pg-proxy/driver.js.map +1 -1
  342. package/pg-proxy/migrator.cjs.map +1 -1
  343. package/pg-proxy/migrator.d.cts +1 -2
  344. package/pg-proxy/migrator.d.ts +1 -2
  345. package/pg-proxy/migrator.js.map +1 -1
  346. package/pg-proxy/session.cjs +2 -37
  347. package/pg-proxy/session.cjs.map +1 -1
  348. package/pg-proxy/session.d.cts +8 -13
  349. package/pg-proxy/session.d.ts +8 -13
  350. package/pg-proxy/session.js +2 -37
  351. package/pg-proxy/session.js.map +1 -1
  352. package/pglite/driver.cjs +7 -23
  353. package/pglite/driver.cjs.map +1 -1
  354. package/pglite/driver.d.cts +8 -9
  355. package/pglite/driver.d.ts +8 -9
  356. package/pglite/driver.js +10 -13
  357. package/pglite/driver.js.map +1 -1
  358. package/pglite/migrator.cjs.map +1 -1
  359. package/pglite/migrator.d.cts +1 -2
  360. package/pglite/migrator.d.ts +1 -2
  361. package/pglite/migrator.js.map +1 -1
  362. package/pglite/session.cjs +3 -34
  363. package/pglite/session.cjs.map +1 -1
  364. package/pglite/session.d.cts +8 -13
  365. package/pglite/session.d.ts +8 -13
  366. package/pglite/session.js +3 -34
  367. package/pglite/session.js.map +1 -1
  368. package/planetscale-serverless/driver.cjs +5 -22
  369. package/planetscale-serverless/driver.cjs.map +1 -1
  370. package/planetscale-serverless/driver.d.cts +6 -7
  371. package/planetscale-serverless/driver.d.ts +6 -7
  372. package/planetscale-serverless/driver.js +8 -12
  373. package/planetscale-serverless/driver.js.map +1 -1
  374. package/planetscale-serverless/migrator.cjs.map +1 -1
  375. package/planetscale-serverless/migrator.d.cts +1 -2
  376. package/planetscale-serverless/migrator.d.ts +1 -2
  377. package/planetscale-serverless/migrator.js.map +1 -1
  378. package/planetscale-serverless/session.cjs +5 -68
  379. package/planetscale-serverless/session.cjs.map +1 -1
  380. package/planetscale-serverless/session.d.cts +9 -14
  381. package/planetscale-serverless/session.d.ts +9 -14
  382. package/planetscale-serverless/session.js +5 -68
  383. package/planetscale-serverless/session.js.map +1 -1
  384. package/postgres-js/driver.cjs +6 -12
  385. package/postgres-js/driver.cjs.map +1 -1
  386. package/postgres-js/driver.d.cts +6 -7
  387. package/postgres-js/driver.d.ts +6 -7
  388. package/postgres-js/driver.js +9 -12
  389. package/postgres-js/driver.js.map +1 -1
  390. package/postgres-js/migrator.cjs.map +1 -1
  391. package/postgres-js/migrator.d.cts +1 -2
  392. package/postgres-js/migrator.d.ts +1 -2
  393. package/postgres-js/migrator.js.map +1 -1
  394. package/postgres-js/session.cjs +6 -51
  395. package/postgres-js/session.cjs.map +1 -1
  396. package/postgres-js/session.d.cts +9 -15
  397. package/postgres-js/session.d.ts +9 -15
  398. package/postgres-js/session.js +6 -51
  399. package/postgres-js/session.js.map +1 -1
  400. package/prisma/mysql/driver.cjs +1 -1
  401. package/prisma/mysql/driver.cjs.map +1 -1
  402. package/prisma/mysql/driver.js +1 -1
  403. package/prisma/mysql/driver.js.map +1 -1
  404. package/prisma/mysql/session.cjs +0 -3
  405. package/prisma/mysql/session.cjs.map +1 -1
  406. package/prisma/mysql/session.d.cts +1 -3
  407. package/prisma/mysql/session.d.ts +1 -3
  408. package/prisma/mysql/session.js +0 -3
  409. package/prisma/mysql/session.js.map +1 -1
  410. package/prisma/pg/driver.cjs +1 -1
  411. package/prisma/pg/driver.cjs.map +1 -1
  412. package/prisma/pg/driver.js +1 -1
  413. package/prisma/pg/driver.js.map +1 -1
  414. package/prisma/pg/session.cjs +0 -3
  415. package/prisma/pg/session.cjs.map +1 -1
  416. package/prisma/pg/session.d.cts +1 -3
  417. package/prisma/pg/session.d.ts +1 -3
  418. package/prisma/pg/session.js +0 -3
  419. package/prisma/pg/session.js.map +1 -1
  420. package/prisma/sqlite/driver.cjs +1 -1
  421. package/prisma/sqlite/driver.cjs.map +1 -1
  422. package/prisma/sqlite/driver.js +1 -1
  423. package/prisma/sqlite/driver.js.map +1 -1
  424. package/prisma/sqlite/session.cjs +0 -3
  425. package/prisma/sqlite/session.cjs.map +1 -1
  426. package/prisma/sqlite/session.d.cts +2 -4
  427. package/prisma/sqlite/session.d.ts +2 -4
  428. package/prisma/sqlite/session.js +0 -3
  429. package/prisma/sqlite/session.js.map +1 -1
  430. package/relations.cjs +245 -468
  431. package/relations.cjs.map +1 -1
  432. package/relations.d.cts +125 -264
  433. package/relations.d.ts +125 -264
  434. package/relations.js +238 -455
  435. package/relations.js.map +1 -1
  436. package/singlestore/driver.cjs +113 -0
  437. package/singlestore/driver.cjs.map +1 -0
  438. package/singlestore/driver.d.cts +52 -0
  439. package/singlestore/driver.d.ts +52 -0
  440. package/singlestore/driver.js +89 -0
  441. package/singlestore/driver.js.map +1 -0
  442. package/singlestore/index.cjs +25 -0
  443. package/singlestore/index.cjs.map +1 -0
  444. package/singlestore/index.d.cts +2 -0
  445. package/singlestore/index.d.ts +2 -0
  446. package/singlestore/index.js +3 -0
  447. package/singlestore/index.js.map +1 -0
  448. package/singlestore/migrator.cjs +33 -0
  449. package/singlestore/migrator.cjs.map +1 -0
  450. package/singlestore/migrator.d.cts +3 -0
  451. package/singlestore/migrator.d.ts +3 -0
  452. package/singlestore/migrator.js +9 -0
  453. package/singlestore/migrator.js.map +1 -0
  454. package/singlestore/session.cjs +258 -0
  455. package/singlestore/session.cjs.map +1 -0
  456. package/singlestore/session.d.cts +52 -0
  457. package/singlestore/session.d.ts +52 -0
  458. package/singlestore/session.js +236 -0
  459. package/singlestore/session.js.map +1 -0
  460. package/singlestore-core/alias.cjs +32 -0
  461. package/singlestore-core/alias.cjs.map +1 -0
  462. package/singlestore-core/alias.d.cts +4 -0
  463. package/singlestore-core/alias.d.ts +4 -0
  464. package/singlestore-core/alias.js +8 -0
  465. package/singlestore-core/alias.js.map +1 -0
  466. package/singlestore-core/columns/all.cjs +80 -0
  467. package/singlestore-core/columns/all.cjs.map +1 -0
  468. package/singlestore-core/columns/all.d.cts +51 -0
  469. package/singlestore-core/columns/all.d.ts +51 -0
  470. package/singlestore-core/columns/all.js +56 -0
  471. package/singlestore-core/columns/all.js.map +1 -0
  472. package/singlestore-core/columns/bigint.cjs +96 -0
  473. package/singlestore-core/columns/bigint.cjs.map +1 -0
  474. package/singlestore-core/columns/bigint.d.cts +54 -0
  475. package/singlestore-core/columns/bigint.d.ts +54 -0
  476. package/singlestore-core/columns/bigint.js +68 -0
  477. package/singlestore-core/columns/bigint.js.map +1 -0
  478. package/singlestore-core/columns/binary.cjs +60 -0
  479. package/singlestore-core/columns/binary.cjs.map +1 -0
  480. package/singlestore-core/columns/binary.d.cts +28 -0
  481. package/singlestore-core/columns/binary.d.ts +28 -0
  482. package/singlestore-core/columns/binary.js +34 -0
  483. package/singlestore-core/columns/binary.js.map +1 -0
  484. package/singlestore-core/columns/boolean.cjs +62 -0
  485. package/singlestore-core/columns/boolean.cjs.map +1 -0
  486. package/singlestore-core/columns/boolean.d.cts +24 -0
  487. package/singlestore-core/columns/boolean.d.ts +24 -0
  488. package/singlestore-core/columns/boolean.js +36 -0
  489. package/singlestore-core/columns/boolean.js.map +1 -0
  490. package/singlestore-core/columns/char.cjs +62 -0
  491. package/singlestore-core/columns/char.cjs.map +1 -0
  492. package/singlestore-core/columns/char.d.cts +31 -0
  493. package/singlestore-core/columns/char.d.ts +31 -0
  494. package/singlestore-core/columns/char.js +36 -0
  495. package/singlestore-core/columns/char.js.map +1 -0
  496. package/singlestore-core/columns/common.cjs +82 -0
  497. package/singlestore-core/columns/common.cjs.map +1 -0
  498. package/singlestore-core/columns/common.d.cts +42 -0
  499. package/singlestore-core/columns/common.d.ts +42 -0
  500. package/singlestore-core/columns/common.js +55 -0
  501. package/singlestore-core/columns/common.js.map +1 -0
  502. package/singlestore-core/columns/custom.cjs +77 -0
  503. package/singlestore-core/columns/custom.cjs.map +1 -0
  504. package/singlestore-core/columns/custom.d.cts +156 -0
  505. package/singlestore-core/columns/custom.d.ts +156 -0
  506. package/singlestore-core/columns/custom.js +51 -0
  507. package/singlestore-core/columns/custom.js.map +1 -0
  508. package/singlestore-core/columns/date.cjs +93 -0
  509. package/singlestore-core/columns/date.cjs.map +1 -0
  510. package/singlestore-core/columns/date.common.cjs +48 -0
  511. package/singlestore-core/columns/date.common.cjs.map +1 -0
  512. package/singlestore-core/columns/date.common.d.cts +16 -0
  513. package/singlestore-core/columns/date.common.d.ts +16 -0
  514. package/singlestore-core/columns/date.common.js +23 -0
  515. package/singlestore-core/columns/date.common.js.map +1 -0
  516. package/singlestore-core/columns/date.d.cts +53 -0
  517. package/singlestore-core/columns/date.d.ts +53 -0
  518. package/singlestore-core/columns/date.js +65 -0
  519. package/singlestore-core/columns/date.js.map +1 -0
  520. package/singlestore-core/columns/datetime.cjs +106 -0
  521. package/singlestore-core/columns/datetime.cjs.map +1 -0
  522. package/singlestore-core/columns/datetime.d.cts +54 -0
  523. package/singlestore-core/columns/datetime.d.ts +54 -0
  524. package/singlestore-core/columns/datetime.js +78 -0
  525. package/singlestore-core/columns/datetime.js.map +1 -0
  526. package/singlestore-core/columns/decimal.cjs +76 -0
  527. package/singlestore-core/columns/decimal.cjs.map +1 -0
  528. package/singlestore-core/columns/decimal.d.cts +32 -0
  529. package/singlestore-core/columns/decimal.d.ts +32 -0
  530. package/singlestore-core/columns/decimal.js +50 -0
  531. package/singlestore-core/columns/decimal.js.map +1 -0
  532. package/singlestore-core/columns/double.cjs +72 -0
  533. package/singlestore-core/columns/double.cjs.map +1 -0
  534. package/singlestore-core/columns/double.d.cts +32 -0
  535. package/singlestore-core/columns/double.d.ts +32 -0
  536. package/singlestore-core/columns/double.js +46 -0
  537. package/singlestore-core/columns/double.js.map +1 -0
  538. package/singlestore-core/columns/enum.cjs +67 -0
  539. package/singlestore-core/columns/enum.cjs.map +1 -0
  540. package/singlestore-core/columns/enum.d.cts +31 -0
  541. package/singlestore-core/columns/enum.d.ts +31 -0
  542. package/singlestore-core/columns/enum.js +41 -0
  543. package/singlestore-core/columns/enum.js.map +1 -0
  544. package/singlestore-core/columns/float.cjs +72 -0
  545. package/singlestore-core/columns/float.cjs.map +1 -0
  546. package/singlestore-core/columns/float.d.cts +32 -0
  547. package/singlestore-core/columns/float.d.ts +32 -0
  548. package/singlestore-core/columns/float.js +46 -0
  549. package/singlestore-core/columns/float.js.map +1 -0
  550. package/singlestore-core/columns/index.cjs +71 -0
  551. package/singlestore-core/columns/index.cjs.map +1 -0
  552. package/singlestore-core/columns/index.d.cts +25 -0
  553. package/singlestore-core/columns/index.d.ts +25 -0
  554. package/singlestore-core/columns/index.js +26 -0
  555. package/singlestore-core/columns/index.js.map +1 -0
  556. package/singlestore-core/columns/int.cjs +65 -0
  557. package/singlestore-core/columns/int.cjs.map +1 -0
  558. package/singlestore-core/columns/int.d.cts +28 -0
  559. package/singlestore-core/columns/int.d.ts +28 -0
  560. package/singlestore-core/columns/int.js +39 -0
  561. package/singlestore-core/columns/int.js.map +1 -0
  562. package/singlestore-core/columns/json.cjs +59 -0
  563. package/singlestore-core/columns/json.cjs.map +1 -0
  564. package/singlestore-core/columns/json.d.cts +24 -0
  565. package/singlestore-core/columns/json.d.ts +24 -0
  566. package/singlestore-core/columns/json.js +33 -0
  567. package/singlestore-core/columns/json.js.map +1 -0
  568. package/singlestore-core/columns/mediumint.cjs +65 -0
  569. package/singlestore-core/columns/mediumint.cjs.map +1 -0
  570. package/singlestore-core/columns/mediumint.d.cts +26 -0
  571. package/singlestore-core/columns/mediumint.d.ts +26 -0
  572. package/singlestore-core/columns/mediumint.js +39 -0
  573. package/singlestore-core/columns/mediumint.js.map +1 -0
  574. package/singlestore-core/columns/real.cjs +68 -0
  575. package/singlestore-core/columns/real.cjs.map +1 -0
  576. package/singlestore-core/columns/real.d.cts +30 -0
  577. package/singlestore-core/columns/real.d.ts +30 -0
  578. package/singlestore-core/columns/real.js +42 -0
  579. package/singlestore-core/columns/real.js.map +1 -0
  580. package/singlestore-core/columns/serial.cjs +64 -0
  581. package/singlestore-core/columns/serial.cjs.map +1 -0
  582. package/singlestore-core/columns/serial.d.cts +24 -0
  583. package/singlestore-core/columns/serial.d.ts +24 -0
  584. package/singlestore-core/columns/serial.js +38 -0
  585. package/singlestore-core/columns/serial.js.map +1 -0
  586. package/singlestore-core/columns/smallint.cjs +65 -0
  587. package/singlestore-core/columns/smallint.cjs.map +1 -0
  588. package/singlestore-core/columns/smallint.d.cts +26 -0
  589. package/singlestore-core/columns/smallint.d.ts +26 -0
  590. package/singlestore-core/columns/smallint.js +39 -0
  591. package/singlestore-core/columns/smallint.js.map +1 -0
  592. package/singlestore-core/columns/text.cjs +80 -0
  593. package/singlestore-core/columns/text.cjs.map +1 -0
  594. package/singlestore-core/columns/text.d.cts +46 -0
  595. package/singlestore-core/columns/text.d.ts +46 -0
  596. package/singlestore-core/columns/text.js +51 -0
  597. package/singlestore-core/columns/text.js.map +1 -0
  598. package/singlestore-core/columns/time.cjs +56 -0
  599. package/singlestore-core/columns/time.cjs.map +1 -0
  600. package/singlestore-core/columns/time.d.cts +23 -0
  601. package/singlestore-core/columns/time.d.ts +23 -0
  602. package/singlestore-core/columns/time.js +30 -0
  603. package/singlestore-core/columns/time.js.map +1 -0
  604. package/singlestore-core/columns/timestamp.cjs +97 -0
  605. package/singlestore-core/columns/timestamp.cjs.map +1 -0
  606. package/singlestore-core/columns/timestamp.d.cts +49 -0
  607. package/singlestore-core/columns/timestamp.d.ts +49 -0
  608. package/singlestore-core/columns/timestamp.js +69 -0
  609. package/singlestore-core/columns/timestamp.js.map +1 -0
  610. package/singlestore-core/columns/tinyint.cjs +65 -0
  611. package/singlestore-core/columns/tinyint.cjs.map +1 -0
  612. package/singlestore-core/columns/tinyint.d.cts +26 -0
  613. package/singlestore-core/columns/tinyint.d.ts +26 -0
  614. package/singlestore-core/columns/tinyint.js +39 -0
  615. package/singlestore-core/columns/tinyint.js.map +1 -0
  616. package/singlestore-core/columns/varbinary.cjs +61 -0
  617. package/singlestore-core/columns/varbinary.cjs.map +1 -0
  618. package/singlestore-core/columns/varbinary.d.cts +26 -0
  619. package/singlestore-core/columns/varbinary.d.ts +26 -0
  620. package/singlestore-core/columns/varbinary.js +35 -0
  621. package/singlestore-core/columns/varbinary.js.map +1 -0
  622. package/singlestore-core/columns/varchar.cjs +63 -0
  623. package/singlestore-core/columns/varchar.cjs.map +1 -0
  624. package/singlestore-core/columns/varchar.d.cts +29 -0
  625. package/singlestore-core/columns/varchar.d.ts +29 -0
  626. package/singlestore-core/columns/varchar.js +37 -0
  627. package/singlestore-core/columns/varchar.js.map +1 -0
  628. package/singlestore-core/columns/year.cjs +56 -0
  629. package/singlestore-core/columns/year.cjs.map +1 -0
  630. package/singlestore-core/columns/year.d.cts +23 -0
  631. package/singlestore-core/columns/year.d.ts +23 -0
  632. package/singlestore-core/columns/year.js +30 -0
  633. package/singlestore-core/columns/year.js.map +1 -0
  634. package/singlestore-core/db.cjs +261 -0
  635. package/singlestore-core/db.cjs.map +1 -0
  636. package/singlestore-core/db.d.cts +231 -0
  637. package/singlestore-core/db.d.ts +231 -0
  638. package/singlestore-core/db.js +242 -0
  639. package/singlestore-core/db.js.map +1 -0
  640. package/singlestore-core/dialect.cjs +607 -0
  641. package/singlestore-core/dialect.cjs.map +1 -0
  642. package/singlestore-core/dialect.d.cts +64 -0
  643. package/singlestore-core/dialect.d.ts +64 -0
  644. package/singlestore-core/dialect.js +589 -0
  645. package/singlestore-core/dialect.js.map +1 -0
  646. package/singlestore-core/expressions.cjs +49 -0
  647. package/singlestore-core/expressions.cjs.map +1 -0
  648. package/singlestore-core/expressions.d.cts +8 -0
  649. package/singlestore-core/expressions.d.ts +8 -0
  650. package/singlestore-core/expressions.js +22 -0
  651. package/singlestore-core/expressions.js.map +1 -0
  652. package/singlestore-core/index.cjs +47 -0
  653. package/singlestore-core/index.cjs.map +1 -0
  654. package/singlestore-core/index.d.cts +13 -0
  655. package/singlestore-core/index.d.ts +13 -0
  656. package/singlestore-core/index.js +14 -0
  657. package/singlestore-core/index.js.map +1 -0
  658. package/singlestore-core/indexes.cjs +88 -0
  659. package/singlestore-core/indexes.cjs.map +1 -0
  660. package/singlestore-core/indexes.d.cts +62 -0
  661. package/singlestore-core/indexes.d.ts +62 -0
  662. package/singlestore-core/indexes.js +60 -0
  663. package/singlestore-core/indexes.js.map +1 -0
  664. package/singlestore-core/primary-keys.cjs +68 -0
  665. package/singlestore-core/primary-keys.cjs.map +1 -0
  666. package/singlestore-core/primary-keys.d.cts +30 -0
  667. package/singlestore-core/primary-keys.d.ts +30 -0
  668. package/singlestore-core/primary-keys.js +42 -0
  669. package/singlestore-core/primary-keys.js.map +1 -0
  670. package/singlestore-core/query-builders/count.cjs +73 -0
  671. package/singlestore-core/query-builders/count.cjs.map +1 -0
  672. package/singlestore-core/query-builders/count.d.cts +25 -0
  673. package/singlestore-core/query-builders/count.d.ts +25 -0
  674. package/singlestore-core/query-builders/count.js +49 -0
  675. package/singlestore-core/query-builders/count.js.map +1 -0
  676. package/singlestore-core/query-builders/delete.cjs +123 -0
  677. package/singlestore-core/query-builders/delete.cjs.map +1 -0
  678. package/singlestore-core/query-builders/delete.d.cts +83 -0
  679. package/singlestore-core/query-builders/delete.d.ts +83 -0
  680. package/singlestore-core/query-builders/delete.js +99 -0
  681. package/singlestore-core/query-builders/delete.js.map +1 -0
  682. package/singlestore-core/query-builders/index.cjs +33 -0
  683. package/singlestore-core/query-builders/index.cjs.map +1 -0
  684. package/singlestore-core/query-builders/index.d.cts +6 -0
  685. package/singlestore-core/query-builders/index.d.ts +6 -0
  686. package/singlestore-core/query-builders/index.js +7 -0
  687. package/singlestore-core/query-builders/index.js.map +1 -0
  688. package/singlestore-core/query-builders/insert.cjs +146 -0
  689. package/singlestore-core/query-builders/insert.cjs.map +1 -0
  690. package/singlestore-core/query-builders/insert.d.cts +106 -0
  691. package/singlestore-core/query-builders/insert.d.ts +106 -0
  692. package/singlestore-core/query-builders/insert.js +121 -0
  693. package/singlestore-core/query-builders/insert.js.map +1 -0
  694. package/singlestore-core/query-builders/query-builder.cjs +99 -0
  695. package/singlestore-core/query-builders/query-builder.cjs.map +1 -0
  696. package/singlestore-core/query-builders/query-builder.d.cts +33 -0
  697. package/singlestore-core/query-builders/query-builder.d.ts +33 -0
  698. package/singlestore-core/query-builders/query-builder.js +75 -0
  699. package/singlestore-core/query-builders/query-builder.js.map +1 -0
  700. package/{mysql-core/query-builders/_query.cjs → singlestore-core/query-builders/query.cjs} +18 -41
  701. package/singlestore-core/query-builders/query.cjs.map +1 -0
  702. package/singlestore-core/query-builders/query.d.cts +42 -0
  703. package/singlestore-core/query-builders/query.d.ts +42 -0
  704. package/{mysql-core/query-builders/_query.js → singlestore-core/query-builders/query.js} +18 -29
  705. package/singlestore-core/query-builders/query.js.map +1 -0
  706. package/singlestore-core/query-builders/select.cjs +687 -0
  707. package/singlestore-core/query-builders/select.cjs.map +1 -0
  708. package/singlestore-core/query-builders/select.d.cts +585 -0
  709. package/singlestore-core/query-builders/select.d.ts +585 -0
  710. package/singlestore-core/query-builders/select.js +662 -0
  711. package/singlestore-core/query-builders/select.js.map +1 -0
  712. package/singlestore-core/query-builders/select.types.cjs +17 -0
  713. package/singlestore-core/query-builders/select.types.cjs.map +1 -0
  714. package/singlestore-core/query-builders/select.types.d.cts +137 -0
  715. package/singlestore-core/query-builders/select.types.d.ts +137 -0
  716. package/singlestore-core/query-builders/select.types.js +1 -0
  717. package/singlestore-core/query-builders/select.types.js.map +1 -0
  718. package/singlestore-core/query-builders/update.cjs +147 -0
  719. package/singlestore-core/query-builders/update.cjs.map +1 -0
  720. package/singlestore-core/query-builders/update.d.cts +102 -0
  721. package/singlestore-core/query-builders/update.d.ts +102 -0
  722. package/singlestore-core/query-builders/update.js +122 -0
  723. package/singlestore-core/query-builders/update.js.map +1 -0
  724. package/singlestore-core/schema.cjs +56 -0
  725. package/singlestore-core/schema.cjs.map +1 -0
  726. package/singlestore-core/schema.d.cts +22 -0
  727. package/singlestore-core/schema.d.ts +22 -0
  728. package/singlestore-core/schema.js +29 -0
  729. package/singlestore-core/schema.js.map +1 -0
  730. package/singlestore-core/session.cjs +87 -0
  731. package/singlestore-core/session.cjs.map +1 -0
  732. package/singlestore-core/session.d.cts +66 -0
  733. package/singlestore-core/session.d.ts +66 -0
  734. package/singlestore-core/session.js +61 -0
  735. package/singlestore-core/session.js.map +1 -0
  736. package/singlestore-core/subquery.cjs +17 -0
  737. package/singlestore-core/subquery.cjs.map +1 -0
  738. package/singlestore-core/subquery.d.cts +5 -0
  739. package/singlestore-core/subquery.d.ts +5 -0
  740. package/singlestore-core/subquery.js +1 -0
  741. package/singlestore-core/subquery.js.map +1 -0
  742. package/singlestore-core/table.cjs +73 -0
  743. package/singlestore-core/table.cjs.map +1 -0
  744. package/singlestore-core/table.d.cts +40 -0
  745. package/singlestore-core/table.d.ts +40 -0
  746. package/singlestore-core/table.js +46 -0
  747. package/singlestore-core/table.js.map +1 -0
  748. package/singlestore-core/unique-constraint.cjs +82 -0
  749. package/singlestore-core/unique-constraint.cjs.map +1 -0
  750. package/singlestore-core/unique-constraint.d.cts +24 -0
  751. package/singlestore-core/unique-constraint.d.ts +24 -0
  752. package/singlestore-core/unique-constraint.js +54 -0
  753. package/singlestore-core/unique-constraint.js.map +1 -0
  754. package/singlestore-core/utils.cjs +65 -0
  755. package/singlestore-core/utils.cjs.map +1 -0
  756. package/singlestore-core/utils.d.cts +13 -0
  757. package/singlestore-core/utils.d.ts +13 -0
  758. package/singlestore-core/utils.js +41 -0
  759. package/singlestore-core/utils.js.map +1 -0
  760. package/singlestore-core/view-base.cjs +33 -0
  761. package/singlestore-core/view-base.cjs.map +1 -0
  762. package/singlestore-core/view-base.d.cts +9 -0
  763. package/singlestore-core/view-base.d.ts +9 -0
  764. package/singlestore-core/view-base.js +9 -0
  765. package/singlestore-core/view-base.js.map +1 -0
  766. package/singlestore-core/view-common.cjs +29 -0
  767. package/singlestore-core/view-common.cjs.map +1 -0
  768. package/singlestore-core/view-common.d.cts +1 -0
  769. package/singlestore-core/view-common.d.ts +1 -0
  770. package/singlestore-core/view-common.js +5 -0
  771. package/singlestore-core/view-common.js.map +1 -0
  772. package/singlestore-core/view.cjs +146 -0
  773. package/singlestore-core/view.cjs.map +1 -0
  774. package/singlestore-core/view.d.cts +65 -0
  775. package/singlestore-core/view.d.ts +65 -0
  776. package/singlestore-core/view.js +119 -0
  777. package/singlestore-core/view.js.map +1 -0
  778. package/singlestore-proxy/driver.cjs +62 -0
  779. package/singlestore-proxy/driver.cjs.map +1 -0
  780. package/singlestore-proxy/driver.d.cts +13 -0
  781. package/singlestore-proxy/driver.d.ts +13 -0
  782. package/singlestore-proxy/driver.js +42 -0
  783. package/singlestore-proxy/driver.js.map +1 -0
  784. package/singlestore-proxy/index.cjs +25 -0
  785. package/singlestore-proxy/index.cjs.map +1 -0
  786. package/singlestore-proxy/index.d.cts +2 -0
  787. package/singlestore-proxy/index.d.ts +2 -0
  788. package/singlestore-proxy/index.js +3 -0
  789. package/singlestore-proxy/index.js.map +1 -0
  790. package/singlestore-proxy/migrator.cjs +60 -0
  791. package/singlestore-proxy/migrator.cjs.map +1 -0
  792. package/singlestore-proxy/migrator.d.cts +4 -0
  793. package/singlestore-proxy/migrator.d.ts +4 -0
  794. package/singlestore-proxy/migrator.js +36 -0
  795. package/singlestore-proxy/migrator.js.map +1 -0
  796. package/singlestore-proxy/session.cjs +127 -0
  797. package/singlestore-proxy/session.cjs.map +1 -0
  798. package/singlestore-proxy/session.d.cts +50 -0
  799. package/singlestore-proxy/session.d.ts +50 -0
  800. package/singlestore-proxy/session.js +101 -0
  801. package/singlestore-proxy/session.js.map +1 -0
  802. package/sql/sql.cjs.map +1 -1
  803. package/sql/sql.d.cts +4 -4
  804. package/sql/sql.d.ts +4 -4
  805. package/sql/sql.js.map +1 -1
  806. package/sql-js/driver.cjs +5 -16
  807. package/sql-js/driver.cjs.map +1 -1
  808. package/sql-js/driver.d.cts +2 -3
  809. package/sql-js/driver.d.ts +2 -3
  810. package/sql-js/driver.js +8 -6
  811. package/sql-js/driver.js.map +1 -1
  812. package/sql-js/migrator.cjs.map +1 -1
  813. package/sql-js/migrator.d.cts +1 -2
  814. package/sql-js/migrator.d.ts +1 -2
  815. package/sql-js/migrator.js.map +1 -1
  816. package/sql-js/session.cjs +4 -58
  817. package/sql-js/session.cjs.map +1 -1
  818. package/sql-js/session.d.cts +8 -14
  819. package/sql-js/session.d.ts +8 -14
  820. package/sql-js/session.js +4 -58
  821. package/sql-js/session.js.map +1 -1
  822. package/sqlite-core/columns/blob.cjs +16 -2
  823. package/sqlite-core/columns/blob.cjs.map +1 -1
  824. package/sqlite-core/columns/blob.d.cts +2 -2
  825. package/sqlite-core/columns/blob.d.ts +2 -2
  826. package/sqlite-core/columns/blob.js +16 -2
  827. package/sqlite-core/columns/blob.js.map +1 -1
  828. package/sqlite-core/db.cjs +14 -35
  829. package/sqlite-core/db.cjs.map +1 -1
  830. package/sqlite-core/db.d.cts +8 -15
  831. package/sqlite-core/db.d.ts +8 -15
  832. package/sqlite-core/db.js +13 -34
  833. package/sqlite-core/db.js.map +1 -1
  834. package/sqlite-core/dialect.cjs +7 -164
  835. package/sqlite-core/dialect.cjs.map +1 -1
  836. package/sqlite-core/dialect.d.cts +9 -25
  837. package/sqlite-core/dialect.d.ts +9 -25
  838. package/sqlite-core/dialect.js +13 -161
  839. package/sqlite-core/dialect.js.map +1 -1
  840. package/sqlite-core/query-builders/count.cjs.map +1 -1
  841. package/sqlite-core/query-builders/count.d.cts +1 -1
  842. package/sqlite-core/query-builders/count.d.ts +1 -1
  843. package/sqlite-core/query-builders/count.js.map +1 -1
  844. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  845. package/sqlite-core/query-builders/delete.d.cts +1 -1
  846. package/sqlite-core/query-builders/delete.d.ts +1 -1
  847. package/sqlite-core/query-builders/delete.js.map +1 -1
  848. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  849. package/sqlite-core/query-builders/insert.d.cts +3 -3
  850. package/sqlite-core/query-builders/insert.d.ts +3 -3
  851. package/sqlite-core/query-builders/insert.js.map +1 -1
  852. package/sqlite-core/query-builders/query.cjs +48 -30
  853. package/sqlite-core/query-builders/query.cjs.map +1 -1
  854. package/sqlite-core/query-builders/query.d.cts +16 -14
  855. package/sqlite-core/query-builders/query.d.ts +16 -14
  856. package/sqlite-core/query-builders/query.js +48 -30
  857. package/sqlite-core/query-builders/query.js.map +1 -1
  858. package/sqlite-core/query-builders/select.cjs.map +1 -1
  859. package/sqlite-core/query-builders/select.d.cts +3 -3
  860. package/sqlite-core/query-builders/select.d.ts +3 -3
  861. package/sqlite-core/query-builders/select.js.map +1 -1
  862. package/sqlite-core/query-builders/update.cjs.map +1 -1
  863. package/sqlite-core/query-builders/update.d.cts +3 -3
  864. package/sqlite-core/query-builders/update.d.ts +3 -3
  865. package/sqlite-core/query-builders/update.js.map +1 -1
  866. package/sqlite-core/session.cjs +2 -6
  867. package/sqlite-core/session.cjs.map +1 -1
  868. package/sqlite-core/session.d.cts +6 -14
  869. package/sqlite-core/session.d.ts +6 -14
  870. package/sqlite-core/session.js +2 -6
  871. package/sqlite-core/session.js.map +1 -1
  872. package/sqlite-proxy/driver.cjs +5 -22
  873. package/sqlite-proxy/driver.cjs.map +1 -1
  874. package/sqlite-proxy/driver.d.cts +3 -4
  875. package/sqlite-proxy/driver.d.ts +3 -4
  876. package/sqlite-proxy/driver.js +5 -12
  877. package/sqlite-proxy/driver.js.map +1 -1
  878. package/sqlite-proxy/migrator.cjs.map +1 -1
  879. package/sqlite-proxy/migrator.d.cts +1 -2
  880. package/sqlite-proxy/migrator.d.ts +1 -2
  881. package/sqlite-proxy/migrator.js.map +1 -1
  882. package/sqlite-proxy/session.cjs +4 -47
  883. package/sqlite-proxy/session.cjs.map +1 -1
  884. package/sqlite-proxy/session.d.cts +8 -14
  885. package/sqlite-proxy/session.d.ts +8 -14
  886. package/sqlite-proxy/session.js +4 -47
  887. package/sqlite-proxy/session.js.map +1 -1
  888. package/table.cjs.map +1 -1
  889. package/table.d.cts +1 -1
  890. package/table.d.ts +1 -1
  891. package/table.js.map +1 -1
  892. package/tidb-serverless/driver.cjs +5 -22
  893. package/tidb-serverless/driver.cjs.map +1 -1
  894. package/tidb-serverless/driver.d.cts +6 -7
  895. package/tidb-serverless/driver.d.ts +6 -7
  896. package/tidb-serverless/driver.js +8 -12
  897. package/tidb-serverless/driver.js.map +1 -1
  898. package/tidb-serverless/migrator.cjs.map +1 -1
  899. package/tidb-serverless/migrator.d.cts +1 -2
  900. package/tidb-serverless/migrator.d.ts +1 -2
  901. package/tidb-serverless/migrator.js.map +1 -1
  902. package/tidb-serverless/session.cjs +5 -62
  903. package/tidb-serverless/session.cjs.map +1 -1
  904. package/tidb-serverless/session.d.cts +9 -14
  905. package/tidb-serverless/session.d.ts +9 -14
  906. package/tidb-serverless/session.js +5 -62
  907. package/tidb-serverless/session.js.map +1 -1
  908. package/utils.cjs +2 -2
  909. package/utils.cjs.map +1 -1
  910. package/utils.d.cts +2 -3
  911. package/utils.d.ts +2 -3
  912. package/utils.js +2 -2
  913. package/utils.js.map +1 -1
  914. package/vercel-postgres/driver.cjs +7 -23
  915. package/vercel-postgres/driver.cjs.map +1 -1
  916. package/vercel-postgres/driver.d.cts +8 -9
  917. package/vercel-postgres/driver.d.ts +8 -9
  918. package/vercel-postgres/driver.js +10 -13
  919. package/vercel-postgres/driver.js.map +1 -1
  920. package/vercel-postgres/migrator.cjs.map +1 -1
  921. package/vercel-postgres/migrator.d.cts +1 -2
  922. package/vercel-postgres/migrator.d.ts +1 -2
  923. package/vercel-postgres/migrator.js.map +1 -1
  924. package/vercel-postgres/session.cjs +4 -34
  925. package/vercel-postgres/session.cjs.map +1 -1
  926. package/vercel-postgres/session.d.cts +8 -13
  927. package/vercel-postgres/session.d.ts +8 -13
  928. package/vercel-postgres/session.js +4 -34
  929. package/vercel-postgres/session.js.map +1 -1
  930. package/version.cjs +1 -1
  931. package/version.d.cts +1 -1
  932. package/version.d.ts +1 -1
  933. package/version.js +1 -1
  934. package/xata-http/driver.cjs +5 -17
  935. package/xata-http/driver.cjs.map +1 -1
  936. package/xata-http/driver.d.cts +4 -5
  937. package/xata-http/driver.d.ts +4 -5
  938. package/xata-http/driver.js +5 -7
  939. package/xata-http/driver.js.map +1 -1
  940. package/xata-http/migrator.cjs.map +1 -1
  941. package/xata-http/migrator.d.cts +1 -2
  942. package/xata-http/migrator.d.ts +1 -2
  943. package/xata-http/migrator.js.map +1 -1
  944. package/xata-http/session.cjs +2 -30
  945. package/xata-http/session.cjs.map +1 -1
  946. package/xata-http/session.d.cts +8 -13
  947. package/xata-http/session.d.ts +8 -13
  948. package/xata-http/session.js +2 -30
  949. package/xata-http/session.js.map +1 -1
  950. package/_relations.cjs +0 -328
  951. package/_relations.cjs.map +0 -1
  952. package/_relations.d.cts +0 -215
  953. package/_relations.d.ts +0 -215
  954. package/_relations.js +0 -316
  955. package/_relations.js.map +0 -1
  956. package/mysql-core/query-builders/_query.cjs.map +0 -1
  957. package/mysql-core/query-builders/_query.d.cts +0 -44
  958. package/mysql-core/query-builders/_query.d.ts +0 -44
  959. package/mysql-core/query-builders/_query.js.map +0 -1
  960. package/pg-core/query-builders/_query.cjs +0 -155
  961. package/pg-core/query-builders/_query.cjs.map +0 -1
  962. package/pg-core/query-builders/_query.d.cts +0 -47
  963. package/pg-core/query-builders/_query.d.ts +0 -47
  964. package/pg-core/query-builders/_query.js +0 -120
  965. package/pg-core/query-builders/_query.js.map +0 -1
  966. package/sqlite-core/query-builders/_query.cjs +0 -187
  967. package/sqlite-core/query-builders/_query.cjs.map +0 -1
  968. package/sqlite-core/query-builders/_query.d.cts +0 -55
  969. package/sqlite-core/query-builders/_query.d.ts +0 -55
  970. package/sqlite-core/query-builders/_query.js +0 -151
  971. package/sqlite-core/query-builders/_query.js.map +0 -1
package/pg-core/db.cjs CHANGED
@@ -27,33 +27,29 @@ var import_query_builders = require("./query-builders/index.cjs");
27
27
  var import_selection_proxy = require("../selection-proxy.cjs");
28
28
  var import_sql = require("../sql/sql.cjs");
29
29
  var import_subquery = require("../subquery.cjs");
30
- var import_query = require("./query-builders/_query.cjs");
31
30
  var import_count = require("./query-builders/count.cjs");
32
- var import_query2 = require("./query-builders/query.cjs");
31
+ var import_query = require("./query-builders/query.cjs");
33
32
  var import_raw = require("./query-builders/raw.cjs");
34
33
  var import_refresh_materialized_view = require("./query-builders/refresh-materialized-view.cjs");
35
34
  class PgDatabase {
36
- constructor(dialect, session, relations, schema) {
35
+ constructor(dialect, session, schema) {
37
36
  this.dialect = dialect;
38
37
  this.session = session;
39
- const rel = relations ?? {};
40
38
  this._ = schema ? {
41
39
  schema: schema.schema,
42
40
  fullSchema: schema.fullSchema,
43
41
  tableNamesMap: schema.tableNamesMap,
44
- relations: rel,
45
42
  session
46
43
  } : {
47
44
  schema: void 0,
48
45
  fullSchema: {},
49
46
  tableNamesMap: {},
50
- relations: rel,
51
47
  session
52
48
  };
53
- this._query = {};
49
+ this.query = {};
54
50
  if (this._.schema) {
55
51
  for (const [tableName, columns] of Object.entries(this._.schema)) {
56
- this._query[tableName] = new import_query._RelationalQueryBuilder(
52
+ this.query[tableName] = new import_query.RelationalQueryBuilder(
57
53
  schema.fullSchema,
58
54
  this._.schema,
59
55
  this._.tableNamesMap,
@@ -64,25 +60,8 @@ class PgDatabase {
64
60
  );
65
61
  }
66
62
  }
67
- this.query = {};
68
- if (relations) {
69
- for (const [tableName, relation] of Object.entries(relations.tablesConfig)) {
70
- this.query[tableName] = new import_query2.RelationalQueryBuilder(
71
- relations.tables,
72
- relations.tablesConfig,
73
- relations.tableNamesMap,
74
- relation.table,
75
- relation,
76
- dialect,
77
- session
78
- );
79
- }
80
- }
81
63
  }
82
64
  static [import_entity.entityKind] = "PgDatabase";
83
- /** @deprecated */
84
- _query;
85
- // TO-DO: Figure out how to pass DrizzleTypeError without breaking withReplicas
86
65
  query;
87
66
  /**
88
67
  * Creates a subquery that defines a temporary named result set as a CTE.
@@ -319,17 +298,15 @@ class PgDatabase {
319
298
  );
320
299
  }
321
300
  transaction(transaction, config) {
322
- return this.session.transaction(
323
- transaction,
324
- config
325
- );
301
+ return this.session.transaction(transaction, config);
326
302
  }
327
303
  }
328
304
  const withReplicas = (primary, replicas, getReplica = () => replicas[Math.floor(Math.random() * replicas.length)]) => {
329
305
  const select = (...args) => getReplica(replicas).select(...args);
330
306
  const selectDistinct = (...args) => getReplica(replicas).selectDistinct(...args);
331
307
  const selectDistinctOn = (...args) => getReplica(replicas).selectDistinctOn(...args);
332
- const $with = (...args) => getReplica(replicas).with(...args);
308
+ const _with = (...args) => getReplica(replicas).with(...args);
309
+ const $with = (arg) => getReplica(replicas).$with(arg);
333
310
  const update = (...args) => primary.update(...args);
334
311
  const insert = (...args) => primary.insert(...args);
335
312
  const $delete = (...args) => primary.delete(...args);
@@ -348,9 +325,10 @@ const withReplicas = (primary, replicas, getReplica = () => replicas[Math.floor(
348
325
  select,
349
326
  selectDistinct,
350
327
  selectDistinctOn,
351
- with: $with,
352
- get _query() {
353
- return getReplica(replicas)._query;
328
+ $with,
329
+ with: _with,
330
+ get query() {
331
+ return getReplica(replicas).query;
354
332
  }
355
333
  };
356
334
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/pg-core/db.ts"],"sourcesContent":["import type * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport {\n\tPgDeleteBase,\n\tPgInsertBuilder,\n\tPgSelectBuilder,\n\tPgUpdateBuilder,\n\tQueryBuilder,\n} from '~/pg-core/query-builders/index.ts';\nimport type {\n\tPgQueryResultHKT,\n\tPgQueryResultKind,\n\tPgSession,\n\tPgTransaction,\n\tPgTransactionConfig,\n\tPreparedQueryConfig,\n} from '~/pg-core/session.ts';\nimport type { PgTable } from '~/pg-core/table.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type { AnyRelations, EmptyRelations, ExtractTablesWithRelations, TablesRelationalConfig } from '~/relations.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport { type ColumnsSelection, type SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport { WithSubquery } from '~/subquery.ts';\nimport type { DrizzleTypeError } from '~/utils.ts';\nimport type { PgColumn } from './columns/index.ts';\nimport { _RelationalQueryBuilder } from './query-builders/_query.ts';\nimport { PgCountBuilder } from './query-builders/count.ts';\nimport { RelationalQueryBuilder } from './query-builders/query.ts';\nimport { PgRaw } from './query-builders/raw.ts';\nimport { PgRefreshMaterializedView } from './query-builders/refresh-materialized-view.ts';\nimport type { SelectedFields } from './query-builders/select.types.ts';\nimport type { WithSubqueryWithSelection } from './subquery.ts';\nimport type { PgViewBase } from './view-base.ts';\nimport type { PgMaterializedView } from './view.ts';\n\nexport class PgDatabase<\n\tTQueryResult extends PgQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTTablesConfig extends TablesRelationalConfig = ExtractTablesWithRelations<TRelations>,\n\tTSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>,\n> {\n\tstatic readonly [entityKind]: string = 'PgDatabase';\n\n\tdeclare readonly _: {\n\t\treadonly schema: TSchema | undefined;\n\t\treadonly fullSchema: TFullSchema;\n\t\treadonly tableNamesMap: Record<string, string>;\n\t\treadonly relations: TRelations;\n\t\treadonly session: PgSession<TQueryResult, TFullSchema, TRelations, TTablesConfig, TSchema>;\n\t};\n\n\t/** @deprecated */\n\t_query: TFullSchema extends Record<string, never>\n\t\t? DrizzleTypeError<'Seems like the schema generic is missing - did you forget to add it to your DB type?'>\n\t\t: {\n\t\t\t[K in keyof TSchema]: _RelationalQueryBuilder<TSchema, TSchema[K]>;\n\t\t};\n\n\t// TO-DO: Figure out how to pass DrizzleTypeError without breaking withReplicas\n\tquery: {\n\t\t[K in keyof TRelations['tables']]: RelationalQueryBuilder<\n\t\t\tTTablesConfig,\n\t\t\tTTablesConfig[K]\n\t\t>;\n\t};\n\n\tconstructor(\n\t\t/** @internal */\n\t\treadonly dialect: PgDialect,\n\t\t/** @internal */\n\t\treadonly session: PgSession<any, any, any, any, any>,\n\t\trelations: AnyRelations | undefined,\n\t\tschema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t) {\n\t\tconst rel = relations ?? {} as EmptyRelations;\n\n\t\tthis._ = schema\n\t\t\t? {\n\t\t\t\tschema: schema.schema,\n\t\t\t\tfullSchema: schema.fullSchema as TFullSchema,\n\t\t\t\ttableNamesMap: schema.tableNamesMap,\n\t\t\t\trelations: rel as TRelations,\n\t\t\t\tsession,\n\t\t\t}\n\t\t\t: {\n\t\t\t\tschema: undefined,\n\t\t\t\tfullSchema: {} as TFullSchema,\n\t\t\t\ttableNamesMap: {},\n\t\t\t\trelations: rel as TRelations,\n\t\t\t\tsession,\n\t\t\t};\n\t\tthis._query = {} as typeof this['_query'];\n\t\tif (this._.schema) {\n\t\t\tfor (const [tableName, columns] of Object.entries(this._.schema)) {\n\t\t\t\t(this._query as PgDatabase<TQueryResult, Record<string, any>>['_query'])[tableName] =\n\t\t\t\t\tnew _RelationalQueryBuilder(\n\t\t\t\t\t\tschema!.fullSchema,\n\t\t\t\t\t\tthis._.schema,\n\t\t\t\t\t\tthis._.tableNamesMap,\n\t\t\t\t\t\tschema!.fullSchema[tableName] as PgTable,\n\t\t\t\t\t\tcolumns,\n\t\t\t\t\t\tdialect,\n\t\t\t\t\t\tsession,\n\t\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tthis.query = {} as typeof this['query'];\n\t\tif (relations) {\n\t\t\tfor (const [tableName, relation] of Object.entries(relations.tablesConfig)) {\n\t\t\t\t(this.query as PgDatabase<\n\t\t\t\t\tTQueryResult,\n\t\t\t\t\tTSchema,\n\t\t\t\t\tAnyRelations,\n\t\t\t\t\tTablesRelationalConfig,\n\t\t\t\t\tV1.TablesRelationalConfig\n\t\t\t\t>['query'])[tableName] = new RelationalQueryBuilder(\n\t\t\t\t\trelations.tables,\n\t\t\t\t\trelations.tablesConfig,\n\t\t\t\t\trelations.tableNamesMap,\n\t\t\t\t\trelation.table as PgTable,\n\t\t\t\t\trelation,\n\t\t\t\t\tdialect,\n\t\t\t\t\tsession,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Creates a subquery that defines a temporary named result set as a CTE.\n\t *\n\t * It is useful for breaking down complex queries into simpler parts and for reusing the result set in subsequent parts of the query.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#with-clause}\n\t *\n\t * @param alias The alias for the subquery.\n\t *\n\t * Failure to provide an alias will result in a DrizzleTypeError, preventing the subquery from being referenced in other queries.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Create a subquery with alias 'sq' and use it in the select query\n\t * const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));\n\t *\n\t * const result = await db.with(sq).select().from(sq);\n\t * ```\n\t *\n\t * To select arbitrary SQL values as fields in a CTE and reference them in other CTEs or in the main query, you need to add aliases to them:\n\t *\n\t * ```ts\n\t * // Select an arbitrary SQL value as a field in a CTE and reference it in the main query\n\t * const sq = db.$with('sq').as(db.select({\n\t * name: sql<string>`upper(${users.name})`.as('name'),\n\t * })\n\t * .from(users));\n\t *\n\t * const result = await db.with(sq).select({ name: sq.name }).from(sq);\n\t * ```\n\t */\n\t$with<TAlias extends string>(alias: TAlias) {\n\t\tconst self = this;\n\t\treturn {\n\t\t\tas<TSelection extends ColumnsSelection>(\n\t\t\t\tqb: TypedQueryBuilder<TSelection> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelection>),\n\t\t\t): WithSubqueryWithSelection<TSelection, TAlias> {\n\t\t\t\tif (typeof qb === 'function') {\n\t\t\t\t\tqb = qb(new QueryBuilder(self.dialect));\n\t\t\t\t}\n\n\t\t\t\treturn new Proxy(\n\t\t\t\t\tnew WithSubquery(qb.getSQL(), qb.getSelectedFields() as SelectedFields, alias, true),\n\t\t\t\t\tnew SelectionProxyHandler({ alias, sqlAliasedBehavior: 'alias', sqlBehavior: 'error' }),\n\t\t\t\t) as WithSubqueryWithSelection<TSelection, TAlias>;\n\t\t\t},\n\t\t};\n\t}\n\n\t$count(\n\t\tsource: PgTable | PgViewBase | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t) {\n\t\treturn new PgCountBuilder({ source, filters, session: this.session });\n\t}\n\n\t/**\n\t * Incorporates a previously defined CTE (using `$with`) into the main query.\n\t *\n\t * This method allows the main query to reference a temporary named result set.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#with-clause}\n\t *\n\t * @param queries The CTEs to incorporate into the main query.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Define a subquery 'sq' as a CTE using $with\n\t * const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));\n\t *\n\t * // Incorporate the CTE 'sq' into the main query and select from it\n\t * const result = await db.with(sq).select().from(sq);\n\t * ```\n\t */\n\twith(...queries: WithSubquery[]) {\n\t\tconst self = this;\n\n\t\t/**\n\t\t * Creates a select query.\n\t\t *\n\t\t * Calling this method with no arguments will select all columns from the table. Pass a selection object to specify the columns you want to select.\n\t\t *\n\t\t * Use `.from()` method to specify which table to select from.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/select}\n\t\t *\n\t\t * @param fields The selection object.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Select all columns and all rows from the 'cars' table\n\t\t * const allCars: Car[] = await db.select().from(cars);\n\t\t *\n\t\t * // Select specific columns and all rows from the 'cars' table\n\t\t * const carsIdsAndBrands: { id: number; brand: string }[] = await db.select({\n\t\t * id: cars.id,\n\t\t * brand: cars.brand\n\t\t * })\n\t\t * .from(cars);\n\t\t * ```\n\t\t *\n\t\t * Like in SQL, you can use arbitrary expressions as selection fields, not just table columns:\n\t\t *\n\t\t * ```ts\n\t\t * // Select specific columns along with expression and all rows from the 'cars' table\n\t\t * const carsIdsAndLowerNames: { id: number; lowerBrand: string }[] = await db.select({\n\t\t * id: cars.id,\n\t\t * lowerBrand: sql<string>`lower(${cars.brand})`,\n\t\t * })\n\t\t * .from(cars);\n\t\t * ```\n\t\t */\n\t\tfunction select(): PgSelectBuilder<undefined>;\n\t\tfunction select<TSelection extends SelectedFields>(fields: TSelection): PgSelectBuilder<TSelection>;\n\t\tfunction select(fields?: SelectedFields): PgSelectBuilder<SelectedFields | undefined> {\n\t\t\treturn new PgSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries,\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Adds `distinct` expression to the select query.\n\t\t *\n\t\t * Calling this method will return only unique values. When multiple columns are selected, it returns rows with unique combinations of values in these columns.\n\t\t *\n\t\t * Use `.from()` method to specify which table to select from.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/select#distinct}\n\t\t *\n\t\t * @param fields The selection object.\n\t\t *\n\t\t * @example\n\t\t * ```ts\n\t\t * // Select all unique rows from the 'cars' table\n\t\t * await db.selectDistinct()\n\t\t * .from(cars)\n\t\t * .orderBy(cars.id, cars.brand, cars.color);\n\t\t *\n\t\t * // Select all unique brands from the 'cars' table\n\t\t * await db.selectDistinct({ brand: cars.brand })\n\t\t * .from(cars)\n\t\t * .orderBy(cars.brand);\n\t\t * ```\n\t\t */\n\t\tfunction selectDistinct(): PgSelectBuilder<undefined>;\n\t\tfunction selectDistinct<TSelection extends SelectedFields>(fields: TSelection): PgSelectBuilder<TSelection>;\n\t\tfunction selectDistinct(fields?: SelectedFields): PgSelectBuilder<SelectedFields | undefined> {\n\t\t\treturn new PgSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries,\n\t\t\t\tdistinct: true,\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Adds `distinct on` expression to the select query.\n\t\t *\n\t\t * Calling this method will specify how the unique rows are determined.\n\t\t *\n\t\t * Use `.from()` method to specify which table to select from.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/select#distinct}\n\t\t *\n\t\t * @param on The expression defining uniqueness.\n\t\t * @param fields The selection object.\n\t\t *\n\t\t * @example\n\t\t * ```ts\n\t\t * // Select the first row for each unique brand from the 'cars' table\n\t\t * await db.selectDistinctOn([cars.brand])\n\t\t * .from(cars)\n\t\t * .orderBy(cars.brand);\n\t\t *\n\t\t * // Selects the first occurrence of each unique car brand along with its color from the 'cars' table\n\t\t * await db.selectDistinctOn([cars.brand], { brand: cars.brand, color: cars.color })\n\t\t * .from(cars)\n\t\t * .orderBy(cars.brand, cars.color);\n\t\t * ```\n\t\t */\n\t\tfunction selectDistinctOn(on: (PgColumn | SQLWrapper)[]): PgSelectBuilder<undefined>;\n\t\tfunction selectDistinctOn<TSelection extends SelectedFields>(\n\t\t\ton: (PgColumn | SQLWrapper)[],\n\t\t\tfields: TSelection,\n\t\t): PgSelectBuilder<TSelection>;\n\t\tfunction selectDistinctOn(\n\t\t\ton: (PgColumn | SQLWrapper)[],\n\t\t\tfields?: SelectedFields,\n\t\t): PgSelectBuilder<SelectedFields | undefined> {\n\t\t\treturn new PgSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries,\n\t\t\t\tdistinct: { on },\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Creates an update query.\n\t\t *\n\t\t * Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated.\n\t\t *\n\t\t * Use `.set()` method to specify which values to update.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t\t *\n\t\t * @param table The table to update.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Update all rows in the 'cars' table\n\t\t * await db.update(cars).set({ color: 'red' });\n\t\t *\n\t\t * // Update rows with filters and conditions\n\t\t * await db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n\t\t *\n\t\t * // Update with returning clause\n\t\t * const updatedCar: Car[] = await db.update(cars)\n\t\t * .set({ color: 'red' })\n\t\t * .where(eq(cars.id, 1))\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction update<TTable extends PgTable>(table: TTable): PgUpdateBuilder<TTable, TQueryResult> {\n\t\t\treturn new PgUpdateBuilder(table, self.session, self.dialect, queries);\n\t\t}\n\n\t\t/**\n\t\t * Creates an insert query.\n\t\t *\n\t\t * Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/insert}\n\t\t *\n\t\t * @param table The table to insert into.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Insert one row\n\t\t * await db.insert(cars).values({ brand: 'BMW' });\n\t\t *\n\t\t * // Insert multiple rows\n\t\t * await db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t\t *\n\t\t * // Insert with returning clause\n\t\t * const insertedCar: Car[] = await db.insert(cars)\n\t\t * .values({ brand: 'BMW' })\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction insert<TTable extends PgTable>(table: TTable): PgInsertBuilder<TTable, TQueryResult> {\n\t\t\treturn new PgInsertBuilder(table, self.session, self.dialect, queries);\n\t\t}\n\n\t\t/**\n\t\t * Creates a delete query.\n\t\t *\n\t\t * Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/delete}\n\t\t *\n\t\t * @param table The table to delete from.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Delete all rows in the 'cars' table\n\t\t * await db.delete(cars);\n\t\t *\n\t\t * // Delete rows with filters and conditions\n\t\t * await db.delete(cars).where(eq(cars.color, 'green'));\n\t\t *\n\t\t * // Delete with returning clause\n\t\t * const deletedCar: Car[] = await db.delete(cars)\n\t\t * .where(eq(cars.id, 1))\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction delete_<TTable extends PgTable>(table: TTable): PgDeleteBase<TTable, TQueryResult> {\n\t\t\treturn new PgDeleteBase(table, self.session, self.dialect, queries);\n\t\t}\n\n\t\treturn { select, selectDistinct, selectDistinctOn, update, insert, delete: delete_ };\n\t}\n\n\t/**\n\t * Creates a select query.\n\t *\n\t * Calling this method with no arguments will select all columns from the table. Pass a selection object to specify the columns you want to select.\n\t *\n\t * Use `.from()` method to specify which table to select from.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select}\n\t *\n\t * @param fields The selection object.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all columns and all rows from the 'cars' table\n\t * const allCars: Car[] = await db.select().from(cars);\n\t *\n\t * // Select specific columns and all rows from the 'cars' table\n\t * const carsIdsAndBrands: { id: number; brand: string }[] = await db.select({\n\t * id: cars.id,\n\t * brand: cars.brand\n\t * })\n\t * .from(cars);\n\t * ```\n\t *\n\t * Like in SQL, you can use arbitrary expressions as selection fields, not just table columns:\n\t *\n\t * ```ts\n\t * // Select specific columns along with expression and all rows from the 'cars' table\n\t * const carsIdsAndLowerNames: { id: number; lowerBrand: string }[] = await db.select({\n\t * id: cars.id,\n\t * lowerBrand: sql<string>`lower(${cars.brand})`,\n\t * })\n\t * .from(cars);\n\t * ```\n\t */\n\tselect(): PgSelectBuilder<undefined>;\n\tselect<TSelection extends SelectedFields>(fields: TSelection): PgSelectBuilder<TSelection>;\n\tselect(fields?: SelectedFields): PgSelectBuilder<SelectedFields | undefined> {\n\t\treturn new PgSelectBuilder({\n\t\t\tfields: fields ?? undefined,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect,\n\t\t});\n\t}\n\n\t/**\n\t * Adds `distinct` expression to the select query.\n\t *\n\t * Calling this method will return only unique values. When multiple columns are selected, it returns rows with unique combinations of values in these columns.\n\t *\n\t * Use `.from()` method to specify which table to select from.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#distinct}\n\t *\n\t * @param fields The selection object.\n\t *\n\t * @example\n\t * ```ts\n\t * // Select all unique rows from the 'cars' table\n\t * await db.selectDistinct()\n\t * .from(cars)\n\t * .orderBy(cars.id, cars.brand, cars.color);\n\t *\n\t * // Select all unique brands from the 'cars' table\n\t * await db.selectDistinct({ brand: cars.brand })\n\t * .from(cars)\n\t * .orderBy(cars.brand);\n\t * ```\n\t */\n\tselectDistinct(): PgSelectBuilder<undefined>;\n\tselectDistinct<TSelection extends SelectedFields>(fields: TSelection): PgSelectBuilder<TSelection>;\n\tselectDistinct(fields?: SelectedFields): PgSelectBuilder<SelectedFields | undefined> {\n\t\treturn new PgSelectBuilder({\n\t\t\tfields: fields ?? undefined,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect,\n\t\t\tdistinct: true,\n\t\t});\n\t}\n\n\t/**\n\t * Adds `distinct on` expression to the select query.\n\t *\n\t * Calling this method will specify how the unique rows are determined.\n\t *\n\t * Use `.from()` method to specify which table to select from.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#distinct}\n\t *\n\t * @param on The expression defining uniqueness.\n\t * @param fields The selection object.\n\t *\n\t * @example\n\t * ```ts\n\t * // Select the first row for each unique brand from the 'cars' table\n\t * await db.selectDistinctOn([cars.brand])\n\t * .from(cars)\n\t * .orderBy(cars.brand);\n\t *\n\t * // Selects the first occurrence of each unique car brand along with its color from the 'cars' table\n\t * await db.selectDistinctOn([cars.brand], { brand: cars.brand, color: cars.color })\n\t * .from(cars)\n\t * .orderBy(cars.brand, cars.color);\n\t * ```\n\t */\n\tselectDistinctOn(on: (PgColumn | SQLWrapper)[]): PgSelectBuilder<undefined>;\n\tselectDistinctOn<TSelection extends SelectedFields>(\n\t\ton: (PgColumn | SQLWrapper)[],\n\t\tfields: TSelection,\n\t): PgSelectBuilder<TSelection>;\n\tselectDistinctOn(\n\t\ton: (PgColumn | SQLWrapper)[],\n\t\tfields?: SelectedFields,\n\t): PgSelectBuilder<SelectedFields | undefined> {\n\t\treturn new PgSelectBuilder({\n\t\t\tfields: fields ?? undefined,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect,\n\t\t\tdistinct: { on },\n\t\t});\n\t}\n\n\t/**\n\t * Creates an update query.\n\t *\n\t * Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated.\n\t *\n\t * Use `.set()` method to specify which values to update.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param table The table to update.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Update all rows in the 'cars' table\n\t * await db.update(cars).set({ color: 'red' });\n\t *\n\t * // Update rows with filters and conditions\n\t * await db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n\t *\n\t * // Update with returning clause\n\t * const updatedCar: Car[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.id, 1))\n\t * .returning();\n\t * ```\n\t */\n\tupdate<TTable extends PgTable>(table: TTable): PgUpdateBuilder<TTable, TQueryResult> {\n\t\treturn new PgUpdateBuilder(table, this.session, this.dialect);\n\t}\n\n\t/**\n\t * Creates an insert query.\n\t *\n\t * Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert}\n\t *\n\t * @param table The table to insert into.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Insert one row\n\t * await db.insert(cars).values({ brand: 'BMW' });\n\t *\n\t * // Insert multiple rows\n\t * await db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t *\n\t * // Insert with returning clause\n\t * const insertedCar: Car[] = await db.insert(cars)\n\t * .values({ brand: 'BMW' })\n\t * .returning();\n\t * ```\n\t */\n\tinsert<TTable extends PgTable>(table: TTable): PgInsertBuilder<TTable, TQueryResult> {\n\t\treturn new PgInsertBuilder(table, this.session, this.dialect);\n\t}\n\n\t/**\n\t * Creates a delete query.\n\t *\n\t * Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/delete}\n\t *\n\t * @param table The table to delete from.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Delete all rows in the 'cars' table\n\t * await db.delete(cars);\n\t *\n\t * // Delete rows with filters and conditions\n\t * await db.delete(cars).where(eq(cars.color, 'green'));\n\t *\n\t * // Delete with returning clause\n\t * const deletedCar: Car[] = await db.delete(cars)\n\t * .where(eq(cars.id, 1))\n\t * .returning();\n\t * ```\n\t */\n\tdelete<TTable extends PgTable>(table: TTable): PgDeleteBase<TTable, TQueryResult> {\n\t\treturn new PgDeleteBase(table, this.session, this.dialect);\n\t}\n\n\trefreshMaterializedView<TView extends PgMaterializedView>(view: TView): PgRefreshMaterializedView<TQueryResult> {\n\t\treturn new PgRefreshMaterializedView(view, this.session, this.dialect);\n\t}\n\n\tprotected authToken?: string;\n\n\texecute<TRow extends Record<string, unknown> = Record<string, unknown>>(\n\t\tquery: SQLWrapper | string,\n\t): PgRaw<PgQueryResultKind<TQueryResult, TRow>> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\tconst builtQuery = this.dialect.sqlToQuery(sequel);\n\t\tconst prepared = this.session.prepareQuery<\n\t\t\tPreparedQueryConfig & { execute: PgQueryResultKind<TQueryResult, TRow> }\n\t\t>(\n\t\t\tbuiltQuery,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfalse,\n\t\t);\n\t\treturn new PgRaw(\n\t\t\t() => prepared.execute(undefined, this.authToken),\n\t\t\tsequel,\n\t\t\tbuiltQuery,\n\t\t\t(result) => prepared.mapResult(result, true),\n\t\t);\n\t}\n\n\ttransaction<T>(\n\t\ttransaction: (tx: PgTransaction<TQueryResult, TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig,\n\t): Promise<T> {\n\t\treturn this.session.transaction(\n\t\t\ttransaction,\n\t\t\tconfig,\n\t\t);\n\t}\n}\n\nexport type PgWithReplicas<Q> = Q & { $primary: Q };\n\nexport const withReplicas = <\n\tHKT extends PgQueryResultHKT,\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n\tQ extends PgDatabase<\n\t\tHKT,\n\t\tTFullSchema,\n\t\tTRelations,\n\t\tTTablesConfig,\n\t\tTSchema extends Record<string, unknown> ? V1.ExtractTablesWithRelations<TFullSchema> : TSchema\n\t>,\n>(\n\tprimary: Q,\n\treplicas: [Q, ...Q[]],\n\tgetReplica: (replicas: Q[]) => Q = () => replicas[Math.floor(Math.random() * replicas.length)]!,\n): PgWithReplicas<Q> => {\n\tconst select: Q['select'] = (...args: []) => getReplica(replicas).select(...args);\n\tconst selectDistinct: Q['selectDistinct'] = (...args: []) => getReplica(replicas).selectDistinct(...args);\n\tconst selectDistinctOn: Q['selectDistinctOn'] = (...args: [any]) => getReplica(replicas).selectDistinctOn(...args);\n\tconst $with: Q['with'] = (...args: any) => getReplica(replicas).with(...args);\n\n\tconst update: Q['update'] = (...args: [any]) => primary.update(...args);\n\tconst insert: Q['insert'] = (...args: [any]) => primary.insert(...args);\n\tconst $delete: Q['delete'] = (...args: [any]) => primary.delete(...args);\n\tconst execute: Q['execute'] = (...args: [any]) => primary.execute(...args);\n\tconst transaction: Q['transaction'] = (...args: [any]) => primary.transaction(...args);\n\tconst refreshMaterializedView: Q['refreshMaterializedView'] = (...args: [any]) =>\n\t\tprimary.refreshMaterializedView(...args);\n\n\treturn {\n\t\t...primary,\n\t\tupdate,\n\t\tinsert,\n\t\tdelete: $delete,\n\t\texecute,\n\t\ttransaction,\n\t\trefreshMaterializedView,\n\t\t$primary: primary,\n\t\tselect,\n\t\tselectDistinct,\n\t\tselectDistinctOn,\n\t\twith: $with,\n\t\tget _query() {\n\t\t\treturn getReplica(replicas)._query;\n\t\t},\n\t};\n};\n"],"mappings":"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","names":["import_query"]}
1
+ {"version":3,"sources":["../../src/pg-core/db.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport {\n\tPgDeleteBase,\n\tPgInsertBuilder,\n\tPgSelectBuilder,\n\tPgUpdateBuilder,\n\tQueryBuilder,\n} from '~/pg-core/query-builders/index.ts';\nimport type {\n\tPgQueryResultHKT,\n\tPgQueryResultKind,\n\tPgSession,\n\tPgTransaction,\n\tPgTransactionConfig,\n\tPreparedQueryConfig,\n} from '~/pg-core/session.ts';\nimport type { PgTable } from '~/pg-core/table.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type { ExtractTablesWithRelations, RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport { type ColumnsSelection, type SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport { WithSubquery } from '~/subquery.ts';\nimport type { DrizzleTypeError, NeonAuthToken } from '~/utils.ts';\nimport type { PgColumn } from './columns/index.ts';\nimport { PgCountBuilder } from './query-builders/count.ts';\nimport { RelationalQueryBuilder } from './query-builders/query.ts';\nimport { PgRaw } from './query-builders/raw.ts';\nimport { PgRefreshMaterializedView } from './query-builders/refresh-materialized-view.ts';\nimport type { SelectedFields } from './query-builders/select.types.ts';\nimport type { WithSubqueryWithSelection } from './subquery.ts';\nimport type { PgViewBase } from './view-base.ts';\nimport type { PgMaterializedView } from './view.ts';\n\nexport class PgDatabase<\n\tTQueryResult extends PgQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = ExtractTablesWithRelations<TFullSchema>,\n> {\n\tstatic readonly [entityKind]: string = 'PgDatabase';\n\n\tdeclare readonly _: {\n\t\treadonly schema: TSchema | undefined;\n\t\treadonly fullSchema: TFullSchema;\n\t\treadonly tableNamesMap: Record<string, string>;\n\t\treadonly session: PgSession<TQueryResult, TFullSchema, TSchema>;\n\t};\n\n\tquery: TFullSchema extends Record<string, never>\n\t\t? DrizzleTypeError<'Seems like the schema generic is missing - did you forget to add it to your DB type?'>\n\t\t: {\n\t\t\t[K in keyof TSchema]: RelationalQueryBuilder<TSchema, TSchema[K]>;\n\t\t};\n\n\tconstructor(\n\t\t/** @internal */\n\t\treadonly dialect: PgDialect,\n\t\t/** @internal */\n\t\treadonly session: PgSession<any, any, any>,\n\t\tschema: RelationalSchemaConfig<TSchema> | undefined,\n\t) {\n\t\tthis._ = schema\n\t\t\t? {\n\t\t\t\tschema: schema.schema,\n\t\t\t\tfullSchema: schema.fullSchema as TFullSchema,\n\t\t\t\ttableNamesMap: schema.tableNamesMap,\n\t\t\t\tsession,\n\t\t\t}\n\t\t\t: {\n\t\t\t\tschema: undefined,\n\t\t\t\tfullSchema: {} as TFullSchema,\n\t\t\t\ttableNamesMap: {},\n\t\t\t\tsession,\n\t\t\t};\n\t\tthis.query = {} as typeof this['query'];\n\t\tif (this._.schema) {\n\t\t\tfor (const [tableName, columns] of Object.entries(this._.schema)) {\n\t\t\t\t(this.query as PgDatabase<TQueryResult, Record<string, any>>['query'])[tableName] = new RelationalQueryBuilder(\n\t\t\t\t\tschema!.fullSchema,\n\t\t\t\t\tthis._.schema,\n\t\t\t\t\tthis._.tableNamesMap,\n\t\t\t\t\tschema!.fullSchema[tableName] as PgTable,\n\t\t\t\t\tcolumns,\n\t\t\t\t\tdialect,\n\t\t\t\t\tsession,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Creates a subquery that defines a temporary named result set as a CTE.\n\t *\n\t * It is useful for breaking down complex queries into simpler parts and for reusing the result set in subsequent parts of the query.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#with-clause}\n\t *\n\t * @param alias The alias for the subquery.\n\t *\n\t * Failure to provide an alias will result in a DrizzleTypeError, preventing the subquery from being referenced in other queries.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Create a subquery with alias 'sq' and use it in the select query\n\t * const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));\n\t *\n\t * const result = await db.with(sq).select().from(sq);\n\t * ```\n\t *\n\t * To select arbitrary SQL values as fields in a CTE and reference them in other CTEs or in the main query, you need to add aliases to them:\n\t *\n\t * ```ts\n\t * // Select an arbitrary SQL value as a field in a CTE and reference it in the main query\n\t * const sq = db.$with('sq').as(db.select({\n\t * name: sql<string>`upper(${users.name})`.as('name'),\n\t * })\n\t * .from(users));\n\t *\n\t * const result = await db.with(sq).select({ name: sq.name }).from(sq);\n\t * ```\n\t */\n\t$with<TAlias extends string>(alias: TAlias) {\n\t\tconst self = this;\n\t\treturn {\n\t\t\tas<TSelection extends ColumnsSelection>(\n\t\t\t\tqb: TypedQueryBuilder<TSelection> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelection>),\n\t\t\t): WithSubqueryWithSelection<TSelection, TAlias> {\n\t\t\t\tif (typeof qb === 'function') {\n\t\t\t\t\tqb = qb(new QueryBuilder(self.dialect));\n\t\t\t\t}\n\n\t\t\t\treturn new Proxy(\n\t\t\t\t\tnew WithSubquery(qb.getSQL(), qb.getSelectedFields() as SelectedFields, alias, true),\n\t\t\t\t\tnew SelectionProxyHandler({ alias, sqlAliasedBehavior: 'alias', sqlBehavior: 'error' }),\n\t\t\t\t) as WithSubqueryWithSelection<TSelection, TAlias>;\n\t\t\t},\n\t\t};\n\t}\n\n\t$count(\n\t\tsource: PgTable | PgViewBase | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t) {\n\t\treturn new PgCountBuilder({ source, filters, session: this.session });\n\t}\n\n\t/**\n\t * Incorporates a previously defined CTE (using `$with`) into the main query.\n\t *\n\t * This method allows the main query to reference a temporary named result set.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#with-clause}\n\t *\n\t * @param queries The CTEs to incorporate into the main query.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Define a subquery 'sq' as a CTE using $with\n\t * const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));\n\t *\n\t * // Incorporate the CTE 'sq' into the main query and select from it\n\t * const result = await db.with(sq).select().from(sq);\n\t * ```\n\t */\n\twith(...queries: WithSubquery[]) {\n\t\tconst self = this;\n\n\t\t/**\n\t\t * Creates a select query.\n\t\t *\n\t\t * Calling this method with no arguments will select all columns from the table. Pass a selection object to specify the columns you want to select.\n\t\t *\n\t\t * Use `.from()` method to specify which table to select from.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/select}\n\t\t *\n\t\t * @param fields The selection object.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Select all columns and all rows from the 'cars' table\n\t\t * const allCars: Car[] = await db.select().from(cars);\n\t\t *\n\t\t * // Select specific columns and all rows from the 'cars' table\n\t\t * const carsIdsAndBrands: { id: number; brand: string }[] = await db.select({\n\t\t * id: cars.id,\n\t\t * brand: cars.brand\n\t\t * })\n\t\t * .from(cars);\n\t\t * ```\n\t\t *\n\t\t * Like in SQL, you can use arbitrary expressions as selection fields, not just table columns:\n\t\t *\n\t\t * ```ts\n\t\t * // Select specific columns along with expression and all rows from the 'cars' table\n\t\t * const carsIdsAndLowerNames: { id: number; lowerBrand: string }[] = await db.select({\n\t\t * id: cars.id,\n\t\t * lowerBrand: sql<string>`lower(${cars.brand})`,\n\t\t * })\n\t\t * .from(cars);\n\t\t * ```\n\t\t */\n\t\tfunction select(): PgSelectBuilder<undefined>;\n\t\tfunction select<TSelection extends SelectedFields>(fields: TSelection): PgSelectBuilder<TSelection>;\n\t\tfunction select(fields?: SelectedFields): PgSelectBuilder<SelectedFields | undefined> {\n\t\t\treturn new PgSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries,\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Adds `distinct` expression to the select query.\n\t\t *\n\t\t * Calling this method will return only unique values. When multiple columns are selected, it returns rows with unique combinations of values in these columns.\n\t\t *\n\t\t * Use `.from()` method to specify which table to select from.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/select#distinct}\n\t\t *\n\t\t * @param fields The selection object.\n\t\t *\n\t\t * @example\n\t\t * ```ts\n\t\t * // Select all unique rows from the 'cars' table\n\t\t * await db.selectDistinct()\n\t\t * .from(cars)\n\t\t * .orderBy(cars.id, cars.brand, cars.color);\n\t\t *\n\t\t * // Select all unique brands from the 'cars' table\n\t\t * await db.selectDistinct({ brand: cars.brand })\n\t\t * .from(cars)\n\t\t * .orderBy(cars.brand);\n\t\t * ```\n\t\t */\n\t\tfunction selectDistinct(): PgSelectBuilder<undefined>;\n\t\tfunction selectDistinct<TSelection extends SelectedFields>(fields: TSelection): PgSelectBuilder<TSelection>;\n\t\tfunction selectDistinct(fields?: SelectedFields): PgSelectBuilder<SelectedFields | undefined> {\n\t\t\treturn new PgSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries,\n\t\t\t\tdistinct: true,\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Adds `distinct on` expression to the select query.\n\t\t *\n\t\t * Calling this method will specify how the unique rows are determined.\n\t\t *\n\t\t * Use `.from()` method to specify which table to select from.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/select#distinct}\n\t\t *\n\t\t * @param on The expression defining uniqueness.\n\t\t * @param fields The selection object.\n\t\t *\n\t\t * @example\n\t\t * ```ts\n\t\t * // Select the first row for each unique brand from the 'cars' table\n\t\t * await db.selectDistinctOn([cars.brand])\n\t\t * .from(cars)\n\t\t * .orderBy(cars.brand);\n\t\t *\n\t\t * // Selects the first occurrence of each unique car brand along with its color from the 'cars' table\n\t\t * await db.selectDistinctOn([cars.brand], { brand: cars.brand, color: cars.color })\n\t\t * .from(cars)\n\t\t * .orderBy(cars.brand, cars.color);\n\t\t * ```\n\t\t */\n\t\tfunction selectDistinctOn(on: (PgColumn | SQLWrapper)[]): PgSelectBuilder<undefined>;\n\t\tfunction selectDistinctOn<TSelection extends SelectedFields>(\n\t\t\ton: (PgColumn | SQLWrapper)[],\n\t\t\tfields: TSelection,\n\t\t): PgSelectBuilder<TSelection>;\n\t\tfunction selectDistinctOn(\n\t\t\ton: (PgColumn | SQLWrapper)[],\n\t\t\tfields?: SelectedFields,\n\t\t): PgSelectBuilder<SelectedFields | undefined> {\n\t\t\treturn new PgSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries,\n\t\t\t\tdistinct: { on },\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Creates an update query.\n\t\t *\n\t\t * Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated.\n\t\t *\n\t\t * Use `.set()` method to specify which values to update.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t\t *\n\t\t * @param table The table to update.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Update all rows in the 'cars' table\n\t\t * await db.update(cars).set({ color: 'red' });\n\t\t *\n\t\t * // Update rows with filters and conditions\n\t\t * await db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n\t\t *\n\t\t * // Update with returning clause\n\t\t * const updatedCar: Car[] = await db.update(cars)\n\t\t * .set({ color: 'red' })\n\t\t * .where(eq(cars.id, 1))\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction update<TTable extends PgTable>(table: TTable): PgUpdateBuilder<TTable, TQueryResult> {\n\t\t\treturn new PgUpdateBuilder(table, self.session, self.dialect, queries);\n\t\t}\n\n\t\t/**\n\t\t * Creates an insert query.\n\t\t *\n\t\t * Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/insert}\n\t\t *\n\t\t * @param table The table to insert into.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Insert one row\n\t\t * await db.insert(cars).values({ brand: 'BMW' });\n\t\t *\n\t\t * // Insert multiple rows\n\t\t * await db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t\t *\n\t\t * // Insert with returning clause\n\t\t * const insertedCar: Car[] = await db.insert(cars)\n\t\t * .values({ brand: 'BMW' })\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction insert<TTable extends PgTable>(table: TTable): PgInsertBuilder<TTable, TQueryResult> {\n\t\t\treturn new PgInsertBuilder(table, self.session, self.dialect, queries);\n\t\t}\n\n\t\t/**\n\t\t * Creates a delete query.\n\t\t *\n\t\t * Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/delete}\n\t\t *\n\t\t * @param table The table to delete from.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Delete all rows in the 'cars' table\n\t\t * await db.delete(cars);\n\t\t *\n\t\t * // Delete rows with filters and conditions\n\t\t * await db.delete(cars).where(eq(cars.color, 'green'));\n\t\t *\n\t\t * // Delete with returning clause\n\t\t * const deletedCar: Car[] = await db.delete(cars)\n\t\t * .where(eq(cars.id, 1))\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction delete_<TTable extends PgTable>(table: TTable): PgDeleteBase<TTable, TQueryResult> {\n\t\t\treturn new PgDeleteBase(table, self.session, self.dialect, queries);\n\t\t}\n\n\t\treturn { select, selectDistinct, selectDistinctOn, update, insert, delete: delete_ };\n\t}\n\n\t/**\n\t * Creates a select query.\n\t *\n\t * Calling this method with no arguments will select all columns from the table. Pass a selection object to specify the columns you want to select.\n\t *\n\t * Use `.from()` method to specify which table to select from.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select}\n\t *\n\t * @param fields The selection object.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all columns and all rows from the 'cars' table\n\t * const allCars: Car[] = await db.select().from(cars);\n\t *\n\t * // Select specific columns and all rows from the 'cars' table\n\t * const carsIdsAndBrands: { id: number; brand: string }[] = await db.select({\n\t * id: cars.id,\n\t * brand: cars.brand\n\t * })\n\t * .from(cars);\n\t * ```\n\t *\n\t * Like in SQL, you can use arbitrary expressions as selection fields, not just table columns:\n\t *\n\t * ```ts\n\t * // Select specific columns along with expression and all rows from the 'cars' table\n\t * const carsIdsAndLowerNames: { id: number; lowerBrand: string }[] = await db.select({\n\t * id: cars.id,\n\t * lowerBrand: sql<string>`lower(${cars.brand})`,\n\t * })\n\t * .from(cars);\n\t * ```\n\t */\n\tselect(): PgSelectBuilder<undefined>;\n\tselect<TSelection extends SelectedFields>(fields: TSelection): PgSelectBuilder<TSelection>;\n\tselect(fields?: SelectedFields): PgSelectBuilder<SelectedFields | undefined> {\n\t\treturn new PgSelectBuilder({\n\t\t\tfields: fields ?? undefined,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect,\n\t\t});\n\t}\n\n\t/**\n\t * Adds `distinct` expression to the select query.\n\t *\n\t * Calling this method will return only unique values. When multiple columns are selected, it returns rows with unique combinations of values in these columns.\n\t *\n\t * Use `.from()` method to specify which table to select from.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#distinct}\n\t *\n\t * @param fields The selection object.\n\t *\n\t * @example\n\t * ```ts\n\t * // Select all unique rows from the 'cars' table\n\t * await db.selectDistinct()\n\t * .from(cars)\n\t * .orderBy(cars.id, cars.brand, cars.color);\n\t *\n\t * // Select all unique brands from the 'cars' table\n\t * await db.selectDistinct({ brand: cars.brand })\n\t * .from(cars)\n\t * .orderBy(cars.brand);\n\t * ```\n\t */\n\tselectDistinct(): PgSelectBuilder<undefined>;\n\tselectDistinct<TSelection extends SelectedFields>(fields: TSelection): PgSelectBuilder<TSelection>;\n\tselectDistinct(fields?: SelectedFields): PgSelectBuilder<SelectedFields | undefined> {\n\t\treturn new PgSelectBuilder({\n\t\t\tfields: fields ?? undefined,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect,\n\t\t\tdistinct: true,\n\t\t});\n\t}\n\n\t/**\n\t * Adds `distinct on` expression to the select query.\n\t *\n\t * Calling this method will specify how the unique rows are determined.\n\t *\n\t * Use `.from()` method to specify which table to select from.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#distinct}\n\t *\n\t * @param on The expression defining uniqueness.\n\t * @param fields The selection object.\n\t *\n\t * @example\n\t * ```ts\n\t * // Select the first row for each unique brand from the 'cars' table\n\t * await db.selectDistinctOn([cars.brand])\n\t * .from(cars)\n\t * .orderBy(cars.brand);\n\t *\n\t * // Selects the first occurrence of each unique car brand along with its color from the 'cars' table\n\t * await db.selectDistinctOn([cars.brand], { brand: cars.brand, color: cars.color })\n\t * .from(cars)\n\t * .orderBy(cars.brand, cars.color);\n\t * ```\n\t */\n\tselectDistinctOn(on: (PgColumn | SQLWrapper)[]): PgSelectBuilder<undefined>;\n\tselectDistinctOn<TSelection extends SelectedFields>(\n\t\ton: (PgColumn | SQLWrapper)[],\n\t\tfields: TSelection,\n\t): PgSelectBuilder<TSelection>;\n\tselectDistinctOn(\n\t\ton: (PgColumn | SQLWrapper)[],\n\t\tfields?: SelectedFields,\n\t): PgSelectBuilder<SelectedFields | undefined> {\n\t\treturn new PgSelectBuilder({\n\t\t\tfields: fields ?? undefined,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect,\n\t\t\tdistinct: { on },\n\t\t});\n\t}\n\n\t/**\n\t * Creates an update query.\n\t *\n\t * Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated.\n\t *\n\t * Use `.set()` method to specify which values to update.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param table The table to update.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Update all rows in the 'cars' table\n\t * await db.update(cars).set({ color: 'red' });\n\t *\n\t * // Update rows with filters and conditions\n\t * await db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n\t *\n\t * // Update with returning clause\n\t * const updatedCar: Car[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.id, 1))\n\t * .returning();\n\t * ```\n\t */\n\tupdate<TTable extends PgTable>(table: TTable): PgUpdateBuilder<TTable, TQueryResult> {\n\t\treturn new PgUpdateBuilder(table, this.session, this.dialect);\n\t}\n\n\t/**\n\t * Creates an insert query.\n\t *\n\t * Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert}\n\t *\n\t * @param table The table to insert into.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Insert one row\n\t * await db.insert(cars).values({ brand: 'BMW' });\n\t *\n\t * // Insert multiple rows\n\t * await db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t *\n\t * // Insert with returning clause\n\t * const insertedCar: Car[] = await db.insert(cars)\n\t * .values({ brand: 'BMW' })\n\t * .returning();\n\t * ```\n\t */\n\tinsert<TTable extends PgTable>(table: TTable): PgInsertBuilder<TTable, TQueryResult> {\n\t\treturn new PgInsertBuilder(table, this.session, this.dialect);\n\t}\n\n\t/**\n\t * Creates a delete query.\n\t *\n\t * Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/delete}\n\t *\n\t * @param table The table to delete from.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Delete all rows in the 'cars' table\n\t * await db.delete(cars);\n\t *\n\t * // Delete rows with filters and conditions\n\t * await db.delete(cars).where(eq(cars.color, 'green'));\n\t *\n\t * // Delete with returning clause\n\t * const deletedCar: Car[] = await db.delete(cars)\n\t * .where(eq(cars.id, 1))\n\t * .returning();\n\t * ```\n\t */\n\tdelete<TTable extends PgTable>(table: TTable): PgDeleteBase<TTable, TQueryResult> {\n\t\treturn new PgDeleteBase(table, this.session, this.dialect);\n\t}\n\n\trefreshMaterializedView<TView extends PgMaterializedView>(view: TView): PgRefreshMaterializedView<TQueryResult> {\n\t\treturn new PgRefreshMaterializedView(view, this.session, this.dialect);\n\t}\n\n\tprotected authToken?: NeonAuthToken;\n\n\texecute<TRow extends Record<string, unknown> = Record<string, unknown>>(\n\t\tquery: SQLWrapper | string,\n\t): PgRaw<PgQueryResultKind<TQueryResult, TRow>> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\tconst builtQuery = this.dialect.sqlToQuery(sequel);\n\t\tconst prepared = this.session.prepareQuery<\n\t\t\tPreparedQueryConfig & { execute: PgQueryResultKind<TQueryResult, TRow> }\n\t\t>(\n\t\t\tbuiltQuery,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfalse,\n\t\t);\n\t\treturn new PgRaw(\n\t\t\t() => prepared.execute(undefined, this.authToken),\n\t\t\tsequel,\n\t\t\tbuiltQuery,\n\t\t\t(result) => prepared.mapResult(result, true),\n\t\t);\n\t}\n\n\ttransaction<T>(\n\t\ttransaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig,\n\t): Promise<T> {\n\t\treturn this.session.transaction(transaction, config);\n\t}\n}\n\nexport type PgWithReplicas<Q> = Q & { $primary: Q };\n\nexport const withReplicas = <\n\tHKT extends PgQueryResultHKT,\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n\tQ extends PgDatabase<\n\t\tHKT,\n\t\tTFullSchema,\n\t\tTSchema extends Record<string, unknown> ? ExtractTablesWithRelations<TFullSchema> : TSchema\n\t>,\n>(\n\tprimary: Q,\n\treplicas: [Q, ...Q[]],\n\tgetReplica: (replicas: Q[]) => Q = () => replicas[Math.floor(Math.random() * replicas.length)]!,\n): PgWithReplicas<Q> => {\n\tconst select: Q['select'] = (...args: []) => getReplica(replicas).select(...args);\n\tconst selectDistinct: Q['selectDistinct'] = (...args: []) => getReplica(replicas).selectDistinct(...args);\n\tconst selectDistinctOn: Q['selectDistinctOn'] = (...args: [any]) => getReplica(replicas).selectDistinctOn(...args);\n\tconst _with: Q['with'] = (...args: any) => getReplica(replicas).with(...args);\n\tconst $with: Q['$with'] = (arg: any) => getReplica(replicas).$with(arg);\n\n\tconst update: Q['update'] = (...args: [any]) => primary.update(...args);\n\tconst insert: Q['insert'] = (...args: [any]) => primary.insert(...args);\n\tconst $delete: Q['delete'] = (...args: [any]) => primary.delete(...args);\n\tconst execute: Q['execute'] = (...args: [any]) => primary.execute(...args);\n\tconst transaction: Q['transaction'] = (...args: [any]) => primary.transaction(...args);\n\tconst refreshMaterializedView: Q['refreshMaterializedView'] = (...args: [any]) =>\n\t\tprimary.refreshMaterializedView(...args);\n\n\treturn {\n\t\t...primary,\n\t\tupdate,\n\t\tinsert,\n\t\tdelete: $delete,\n\t\texecute,\n\t\ttransaction,\n\t\trefreshMaterializedView,\n\t\t$primary: primary,\n\t\tselect,\n\t\tselectDistinct,\n\t\tselectDistinctOn,\n\t\t$with,\n\t\twith: _with,\n\t\tget query() {\n\t\t\treturn getReplica(replicas).query;\n\t\t},\n\t};\n};\n"],"mappings":"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","names":[]}
package/pg-core/db.d.cts CHANGED
@@ -1,16 +1,14 @@
1
- import type * as V1 from "../_relations.cjs";
2
1
  import { entityKind } from "../entity.cjs";
3
2
  import type { PgDialect } from "./dialect.cjs";
4
3
  import { PgDeleteBase, PgInsertBuilder, PgSelectBuilder, PgUpdateBuilder, QueryBuilder } from "./query-builders/index.cjs";
5
4
  import type { PgQueryResultHKT, PgQueryResultKind, PgSession, PgTransaction, PgTransactionConfig } from "./session.cjs";
6
5
  import type { PgTable } from "./table.cjs";
7
6
  import type { TypedQueryBuilder } from "../query-builders/query-builder.cjs";
8
- import type { AnyRelations, EmptyRelations, ExtractTablesWithRelations, TablesRelationalConfig } from "../relations.cjs";
7
+ import type { ExtractTablesWithRelations, RelationalSchemaConfig, TablesRelationalConfig } from "../relations.cjs";
9
8
  import { type ColumnsSelection, type SQL, type SQLWrapper } from "../sql/sql.cjs";
10
9
  import { WithSubquery } from "../subquery.cjs";
11
- import type { DrizzleTypeError } from "../utils.cjs";
10
+ import type { DrizzleTypeError, NeonAuthToken } from "../utils.cjs";
12
11
  import type { PgColumn } from "./columns/index.cjs";
13
- import { _RelationalQueryBuilder } from "./query-builders/_query.cjs";
14
12
  import { PgCountBuilder } from "./query-builders/count.cjs";
15
13
  import { RelationalQueryBuilder } from "./query-builders/query.cjs";
16
14
  import { PgRaw } from "./query-builders/raw.cjs";
@@ -19,27 +17,22 @@ import type { SelectedFields } from "./query-builders/select.types.cjs";
19
17
  import type { WithSubqueryWithSelection } from "./subquery.cjs";
20
18
  import type { PgViewBase } from "./view-base.cjs";
21
19
  import type { PgMaterializedView } from "./view.cjs";
22
- export declare class PgDatabase<TQueryResult extends PgQueryResultHKT, TFullSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations, TTablesConfig extends TablesRelationalConfig = ExtractTablesWithRelations<TRelations>, TSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>> {
20
+ export declare class PgDatabase<TQueryResult extends PgQueryResultHKT, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends TablesRelationalConfig = ExtractTablesWithRelations<TFullSchema>> {
23
21
  static readonly [entityKind]: string;
24
22
  readonly _: {
25
23
  readonly schema: TSchema | undefined;
26
24
  readonly fullSchema: TFullSchema;
27
25
  readonly tableNamesMap: Record<string, string>;
28
- readonly relations: TRelations;
29
- readonly session: PgSession<TQueryResult, TFullSchema, TRelations, TTablesConfig, TSchema>;
26
+ readonly session: PgSession<TQueryResult, TFullSchema, TSchema>;
30
27
  };
31
- /** @deprecated */
32
- _query: TFullSchema extends Record<string, never> ? DrizzleTypeError<'Seems like the schema generic is missing - did you forget to add it to your DB type?'> : {
33
- [K in keyof TSchema]: _RelationalQueryBuilder<TSchema, TSchema[K]>;
34
- };
35
- query: {
36
- [K in keyof TRelations['tables']]: RelationalQueryBuilder<TTablesConfig, TTablesConfig[K]>;
28
+ query: TFullSchema extends Record<string, never> ? DrizzleTypeError<'Seems like the schema generic is missing - did you forget to add it to your DB type?'> : {
29
+ [K in keyof TSchema]: RelationalQueryBuilder<TSchema, TSchema[K]>;
37
30
  };
38
31
  constructor(
39
32
  /** @internal */
40
33
  dialect: PgDialect,
41
34
  /** @internal */
42
- session: PgSession<any, any, any, any, any>, relations: AnyRelations | undefined, schema: V1.RelationalSchemaConfig<TSchema> | undefined);
35
+ session: PgSession<any, any, any>, schema: RelationalSchemaConfig<TSchema> | undefined);
43
36
  /**
44
37
  * Creates a subquery that defines a temporary named result set as a CTE.
45
38
  *
@@ -75,7 +68,7 @@ export declare class PgDatabase<TQueryResult extends PgQueryResultHKT, TFullSche
75
68
  $with<TAlias extends string>(alias: TAlias): {
76
69
  as<TSelection extends ColumnsSelection>(qb: TypedQueryBuilder<TSelection> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelection>)): WithSubqueryWithSelection<TSelection, TAlias>;
77
70
  };
78
- $count(source: PgTable | PgViewBase | SQL | SQLWrapper, filters?: SQL<unknown>): PgCountBuilder<PgSession<any, any, any, any, any>>;
71
+ $count(source: PgTable | PgViewBase | SQL | SQLWrapper, filters?: SQL<unknown>): PgCountBuilder<PgSession<any, any, any>>;
79
72
  /**
80
73
  * Incorporates a previously defined CTE (using `$with`) into the main query.
81
74
  *
@@ -282,11 +275,11 @@ export declare class PgDatabase<TQueryResult extends PgQueryResultHKT, TFullSche
282
275
  */
283
276
  delete<TTable extends PgTable>(table: TTable): PgDeleteBase<TTable, TQueryResult>;
284
277
  refreshMaterializedView<TView extends PgMaterializedView>(view: TView): PgRefreshMaterializedView<TQueryResult>;
285
- protected authToken?: string;
278
+ protected authToken?: NeonAuthToken;
286
279
  execute<TRow extends Record<string, unknown> = Record<string, unknown>>(query: SQLWrapper | string): PgRaw<PgQueryResultKind<TQueryResult, TRow>>;
287
- transaction<T>(transaction: (tx: PgTransaction<TQueryResult, TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>, config?: PgTransactionConfig): Promise<T>;
280
+ transaction<T>(transaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>, config?: PgTransactionConfig): Promise<T>;
288
281
  }
289
282
  export type PgWithReplicas<Q> = Q & {
290
283
  $primary: Q;
291
284
  };
292
- export declare const withReplicas: <HKT extends PgQueryResultHKT, TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig, Q extends PgDatabase<HKT, TFullSchema, TRelations, TTablesConfig, TSchema extends Record<string, unknown> ? V1.ExtractTablesWithRelations<TFullSchema> : TSchema>>(primary: Q, replicas: [Q, ...Q[]], getReplica?: (replicas: Q[]) => Q) => PgWithReplicas<Q>;
285
+ export declare const withReplicas: <HKT extends PgQueryResultHKT, TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig, Q extends PgDatabase<HKT, TFullSchema, TSchema extends Record<string, unknown> ? ExtractTablesWithRelations<TFullSchema> : TSchema>>(primary: Q, replicas: [Q, ...Q[]], getReplica?: (replicas: Q[]) => Q) => PgWithReplicas<Q>;
package/pg-core/db.d.ts CHANGED
@@ -1,16 +1,14 @@
1
- import type * as V1 from "../_relations.js";
2
1
  import { entityKind } from "../entity.js";
3
2
  import type { PgDialect } from "./dialect.js";
4
3
  import { PgDeleteBase, PgInsertBuilder, PgSelectBuilder, PgUpdateBuilder, QueryBuilder } from "./query-builders/index.js";
5
4
  import type { PgQueryResultHKT, PgQueryResultKind, PgSession, PgTransaction, PgTransactionConfig } from "./session.js";
6
5
  import type { PgTable } from "./table.js";
7
6
  import type { TypedQueryBuilder } from "../query-builders/query-builder.js";
8
- import type { AnyRelations, EmptyRelations, ExtractTablesWithRelations, TablesRelationalConfig } from "../relations.js";
7
+ import type { ExtractTablesWithRelations, RelationalSchemaConfig, TablesRelationalConfig } from "../relations.js";
9
8
  import { type ColumnsSelection, type SQL, type SQLWrapper } from "../sql/sql.js";
10
9
  import { WithSubquery } from "../subquery.js";
11
- import type { DrizzleTypeError } from "../utils.js";
10
+ import type { DrizzleTypeError, NeonAuthToken } from "../utils.js";
12
11
  import type { PgColumn } from "./columns/index.js";
13
- import { _RelationalQueryBuilder } from "./query-builders/_query.js";
14
12
  import { PgCountBuilder } from "./query-builders/count.js";
15
13
  import { RelationalQueryBuilder } from "./query-builders/query.js";
16
14
  import { PgRaw } from "./query-builders/raw.js";
@@ -19,27 +17,22 @@ import type { SelectedFields } from "./query-builders/select.types.js";
19
17
  import type { WithSubqueryWithSelection } from "./subquery.js";
20
18
  import type { PgViewBase } from "./view-base.js";
21
19
  import type { PgMaterializedView } from "./view.js";
22
- export declare class PgDatabase<TQueryResult extends PgQueryResultHKT, TFullSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations, TTablesConfig extends TablesRelationalConfig = ExtractTablesWithRelations<TRelations>, TSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>> {
20
+ export declare class PgDatabase<TQueryResult extends PgQueryResultHKT, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends TablesRelationalConfig = ExtractTablesWithRelations<TFullSchema>> {
23
21
  static readonly [entityKind]: string;
24
22
  readonly _: {
25
23
  readonly schema: TSchema | undefined;
26
24
  readonly fullSchema: TFullSchema;
27
25
  readonly tableNamesMap: Record<string, string>;
28
- readonly relations: TRelations;
29
- readonly session: PgSession<TQueryResult, TFullSchema, TRelations, TTablesConfig, TSchema>;
26
+ readonly session: PgSession<TQueryResult, TFullSchema, TSchema>;
30
27
  };
31
- /** @deprecated */
32
- _query: TFullSchema extends Record<string, never> ? DrizzleTypeError<'Seems like the schema generic is missing - did you forget to add it to your DB type?'> : {
33
- [K in keyof TSchema]: _RelationalQueryBuilder<TSchema, TSchema[K]>;
34
- };
35
- query: {
36
- [K in keyof TRelations['tables']]: RelationalQueryBuilder<TTablesConfig, TTablesConfig[K]>;
28
+ query: TFullSchema extends Record<string, never> ? DrizzleTypeError<'Seems like the schema generic is missing - did you forget to add it to your DB type?'> : {
29
+ [K in keyof TSchema]: RelationalQueryBuilder<TSchema, TSchema[K]>;
37
30
  };
38
31
  constructor(
39
32
  /** @internal */
40
33
  dialect: PgDialect,
41
34
  /** @internal */
42
- session: PgSession<any, any, any, any, any>, relations: AnyRelations | undefined, schema: V1.RelationalSchemaConfig<TSchema> | undefined);
35
+ session: PgSession<any, any, any>, schema: RelationalSchemaConfig<TSchema> | undefined);
43
36
  /**
44
37
  * Creates a subquery that defines a temporary named result set as a CTE.
45
38
  *
@@ -75,7 +68,7 @@ export declare class PgDatabase<TQueryResult extends PgQueryResultHKT, TFullSche
75
68
  $with<TAlias extends string>(alias: TAlias): {
76
69
  as<TSelection extends ColumnsSelection>(qb: TypedQueryBuilder<TSelection> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelection>)): WithSubqueryWithSelection<TSelection, TAlias>;
77
70
  };
78
- $count(source: PgTable | PgViewBase | SQL | SQLWrapper, filters?: SQL<unknown>): PgCountBuilder<PgSession<any, any, any, any, any>>;
71
+ $count(source: PgTable | PgViewBase | SQL | SQLWrapper, filters?: SQL<unknown>): PgCountBuilder<PgSession<any, any, any>>;
79
72
  /**
80
73
  * Incorporates a previously defined CTE (using `$with`) into the main query.
81
74
  *
@@ -282,11 +275,11 @@ export declare class PgDatabase<TQueryResult extends PgQueryResultHKT, TFullSche
282
275
  */
283
276
  delete<TTable extends PgTable>(table: TTable): PgDeleteBase<TTable, TQueryResult>;
284
277
  refreshMaterializedView<TView extends PgMaterializedView>(view: TView): PgRefreshMaterializedView<TQueryResult>;
285
- protected authToken?: string;
278
+ protected authToken?: NeonAuthToken;
286
279
  execute<TRow extends Record<string, unknown> = Record<string, unknown>>(query: SQLWrapper | string): PgRaw<PgQueryResultKind<TQueryResult, TRow>>;
287
- transaction<T>(transaction: (tx: PgTransaction<TQueryResult, TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>, config?: PgTransactionConfig): Promise<T>;
280
+ transaction<T>(transaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>, config?: PgTransactionConfig): Promise<T>;
288
281
  }
289
282
  export type PgWithReplicas<Q> = Q & {
290
283
  $primary: Q;
291
284
  };
292
- export declare const withReplicas: <HKT extends PgQueryResultHKT, TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig, Q extends PgDatabase<HKT, TFullSchema, TRelations, TTablesConfig, TSchema extends Record<string, unknown> ? V1.ExtractTablesWithRelations<TFullSchema> : TSchema>>(primary: Q, replicas: [Q, ...Q[]], getReplica?: (replicas: Q[]) => Q) => PgWithReplicas<Q>;
285
+ export declare const withReplicas: <HKT extends PgQueryResultHKT, TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig, Q extends PgDatabase<HKT, TFullSchema, TSchema extends Record<string, unknown> ? ExtractTablesWithRelations<TFullSchema> : TSchema>>(primary: Q, replicas: [Q, ...Q[]], getReplica?: (replicas: Q[]) => Q) => PgWithReplicas<Q>;
package/pg-core/db.js CHANGED
@@ -9,33 +9,29 @@ import {
9
9
  import { SelectionProxyHandler } from "../selection-proxy.js";
10
10
  import { sql } from "../sql/sql.js";
11
11
  import { WithSubquery } from "../subquery.js";
12
- import { _RelationalQueryBuilder } from "./query-builders/_query.js";
13
12
  import { PgCountBuilder } from "./query-builders/count.js";
14
13
  import { RelationalQueryBuilder } from "./query-builders/query.js";
15
14
  import { PgRaw } from "./query-builders/raw.js";
16
15
  import { PgRefreshMaterializedView } from "./query-builders/refresh-materialized-view.js";
17
16
  class PgDatabase {
18
- constructor(dialect, session, relations, schema) {
17
+ constructor(dialect, session, schema) {
19
18
  this.dialect = dialect;
20
19
  this.session = session;
21
- const rel = relations ?? {};
22
20
  this._ = schema ? {
23
21
  schema: schema.schema,
24
22
  fullSchema: schema.fullSchema,
25
23
  tableNamesMap: schema.tableNamesMap,
26
- relations: rel,
27
24
  session
28
25
  } : {
29
26
  schema: void 0,
30
27
  fullSchema: {},
31
28
  tableNamesMap: {},
32
- relations: rel,
33
29
  session
34
30
  };
35
- this._query = {};
31
+ this.query = {};
36
32
  if (this._.schema) {
37
33
  for (const [tableName, columns] of Object.entries(this._.schema)) {
38
- this._query[tableName] = new _RelationalQueryBuilder(
34
+ this.query[tableName] = new RelationalQueryBuilder(
39
35
  schema.fullSchema,
40
36
  this._.schema,
41
37
  this._.tableNamesMap,
@@ -46,25 +42,8 @@ class PgDatabase {
46
42
  );
47
43
  }
48
44
  }
49
- this.query = {};
50
- if (relations) {
51
- for (const [tableName, relation] of Object.entries(relations.tablesConfig)) {
52
- this.query[tableName] = new RelationalQueryBuilder(
53
- relations.tables,
54
- relations.tablesConfig,
55
- relations.tableNamesMap,
56
- relation.table,
57
- relation,
58
- dialect,
59
- session
60
- );
61
- }
62
- }
63
45
  }
64
46
  static [entityKind] = "PgDatabase";
65
- /** @deprecated */
66
- _query;
67
- // TO-DO: Figure out how to pass DrizzleTypeError without breaking withReplicas
68
47
  query;
69
48
  /**
70
49
  * Creates a subquery that defines a temporary named result set as a CTE.
@@ -301,17 +280,15 @@ class PgDatabase {
301
280
  );
302
281
  }
303
282
  transaction(transaction, config) {
304
- return this.session.transaction(
305
- transaction,
306
- config
307
- );
283
+ return this.session.transaction(transaction, config);
308
284
  }
309
285
  }
310
286
  const withReplicas = (primary, replicas, getReplica = () => replicas[Math.floor(Math.random() * replicas.length)]) => {
311
287
  const select = (...args) => getReplica(replicas).select(...args);
312
288
  const selectDistinct = (...args) => getReplica(replicas).selectDistinct(...args);
313
289
  const selectDistinctOn = (...args) => getReplica(replicas).selectDistinctOn(...args);
314
- const $with = (...args) => getReplica(replicas).with(...args);
290
+ const _with = (...args) => getReplica(replicas).with(...args);
291
+ const $with = (arg) => getReplica(replicas).$with(arg);
315
292
  const update = (...args) => primary.update(...args);
316
293
  const insert = (...args) => primary.insert(...args);
317
294
  const $delete = (...args) => primary.delete(...args);
@@ -330,9 +307,10 @@ const withReplicas = (primary, replicas, getReplica = () => replicas[Math.floor(
330
307
  select,
331
308
  selectDistinct,
332
309
  selectDistinctOn,
333
- with: $with,
334
- get _query() {
335
- return getReplica(replicas)._query;
310
+ $with,
311
+ with: _with,
312
+ get query() {
313
+ return getReplica(replicas).query;
336
314
  }
337
315
  };
338
316
  };