drizzle-orm 0.36.4-166fb8d → 0.36.4-3c69a1f

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.

Potentially problematic release.


This version of drizzle-orm might be problematic. Click here for more details.

Files changed (553) hide show
  1. package/_relations.cjs +328 -0
  2. package/_relations.cjs.map +1 -0
  3. package/_relations.d.cts +215 -0
  4. package/_relations.d.ts +215 -0
  5. package/_relations.js +316 -0
  6. package/_relations.js.map +1 -0
  7. package/alias.cjs.map +1 -1
  8. package/alias.d.cts +3 -3
  9. package/alias.d.ts +3 -3
  10. package/alias.js.map +1 -1
  11. package/aws-data-api/pg/driver.cjs +19 -5
  12. package/aws-data-api/pg/driver.cjs.map +1 -1
  13. package/aws-data-api/pg/driver.d.cts +9 -8
  14. package/aws-data-api/pg/driver.d.ts +9 -8
  15. package/aws-data-api/pg/driver.js +9 -8
  16. package/aws-data-api/pg/driver.js.map +1 -1
  17. package/aws-data-api/pg/migrator.cjs.map +1 -1
  18. package/aws-data-api/pg/migrator.d.cts +2 -1
  19. package/aws-data-api/pg/migrator.d.ts +2 -1
  20. package/aws-data-api/pg/migrator.js.map +1 -1
  21. package/aws-data-api/pg/session.cjs +67 -4
  22. package/aws-data-api/pg/session.cjs.map +1 -1
  23. package/aws-data-api/pg/session.d.cts +13 -8
  24. package/aws-data-api/pg/session.d.ts +13 -8
  25. package/aws-data-api/pg/session.js +67 -4
  26. package/aws-data-api/pg/session.js.map +1 -1
  27. package/better-sqlite3/driver.cjs +12 -5
  28. package/better-sqlite3/driver.cjs.map +1 -1
  29. package/better-sqlite3/driver.d.cts +7 -6
  30. package/better-sqlite3/driver.d.ts +7 -6
  31. package/better-sqlite3/driver.js +12 -8
  32. package/better-sqlite3/driver.js.map +1 -1
  33. package/better-sqlite3/migrator.cjs.map +1 -1
  34. package/better-sqlite3/migrator.d.cts +2 -1
  35. package/better-sqlite3/migrator.d.ts +2 -1
  36. package/better-sqlite3/migrator.js.map +1 -1
  37. package/better-sqlite3/session.cjs +49 -4
  38. package/better-sqlite3/session.cjs.map +1 -1
  39. package/better-sqlite3/session.d.cts +14 -8
  40. package/better-sqlite3/session.d.ts +14 -8
  41. package/better-sqlite3/session.js +49 -4
  42. package/better-sqlite3/session.js.map +1 -1
  43. package/bun-sqlite/driver.cjs +22 -5
  44. package/bun-sqlite/driver.cjs.map +1 -1
  45. package/bun-sqlite/driver.d.cts +7 -6
  46. package/bun-sqlite/driver.d.ts +7 -6
  47. package/bun-sqlite/driver.js +12 -8
  48. package/bun-sqlite/driver.js.map +1 -1
  49. package/bun-sqlite/migrator.cjs.map +1 -1
  50. package/bun-sqlite/migrator.d.cts +2 -1
  51. package/bun-sqlite/migrator.d.ts +2 -1
  52. package/bun-sqlite/migrator.js.map +1 -1
  53. package/bun-sqlite/session.cjs +49 -4
  54. package/bun-sqlite/session.cjs.map +1 -1
  55. package/bun-sqlite/session.d.cts +14 -8
  56. package/bun-sqlite/session.d.ts +14 -8
  57. package/bun-sqlite/session.js +49 -4
  58. package/bun-sqlite/session.js.map +1 -1
  59. package/d1/driver.cjs +22 -5
  60. package/d1/driver.cjs.map +1 -1
  61. package/d1/driver.d.cts +3 -2
  62. package/d1/driver.d.ts +3 -2
  63. package/d1/driver.js +12 -8
  64. package/d1/driver.js.map +1 -1
  65. package/d1/migrator.cjs.map +1 -1
  66. package/d1/migrator.d.cts +2 -1
  67. package/d1/migrator.d.ts +2 -1
  68. package/d1/migrator.js.map +1 -1
  69. package/d1/session.cjs +48 -6
  70. package/d1/session.cjs.map +1 -1
  71. package/d1/session.d.cts +15 -8
  72. package/d1/session.d.ts +15 -8
  73. package/d1/session.js +48 -6
  74. package/d1/session.js.map +1 -1
  75. package/expo-sqlite/driver.cjs +22 -5
  76. package/expo-sqlite/driver.cjs.map +1 -1
  77. package/expo-sqlite/driver.d.cts +3 -2
  78. package/expo-sqlite/driver.d.ts +3 -2
  79. package/expo-sqlite/driver.js +12 -8
  80. package/expo-sqlite/driver.js.map +1 -1
  81. package/expo-sqlite/migrator.cjs.map +1 -1
  82. package/expo-sqlite/migrator.d.cts +3 -2
  83. package/expo-sqlite/migrator.d.ts +3 -2
  84. package/expo-sqlite/migrator.js.map +1 -1
  85. package/expo-sqlite/query.cjs +13 -2
  86. package/expo-sqlite/query.cjs.map +1 -1
  87. package/expo-sqlite/query.d.cts +2 -1
  88. package/expo-sqlite/query.d.ts +2 -1
  89. package/expo-sqlite/query.js +3 -2
  90. package/expo-sqlite/query.js.map +1 -1
  91. package/expo-sqlite/session.cjs +47 -4
  92. package/expo-sqlite/session.cjs.map +1 -1
  93. package/expo-sqlite/session.d.cts +14 -8
  94. package/expo-sqlite/session.d.ts +14 -8
  95. package/expo-sqlite/session.js +47 -4
  96. package/expo-sqlite/session.js.map +1 -1
  97. package/libsql/driver-core.cjs +22 -5
  98. package/libsql/driver-core.cjs.map +1 -1
  99. package/libsql/driver-core.d.cts +2 -1
  100. package/libsql/driver-core.d.ts +2 -1
  101. package/libsql/driver-core.js +12 -8
  102. package/libsql/driver-core.js.map +1 -1
  103. package/libsql/driver.cjs.map +1 -1
  104. package/libsql/driver.d.cts +6 -5
  105. package/libsql/driver.d.ts +6 -5
  106. package/libsql/driver.js.map +1 -1
  107. package/libsql/http/index.cjs.map +1 -1
  108. package/libsql/http/index.d.cts +6 -5
  109. package/libsql/http/index.d.ts +6 -5
  110. package/libsql/http/index.js.map +1 -1
  111. package/libsql/migrator.cjs.map +1 -1
  112. package/libsql/migrator.d.cts +2 -1
  113. package/libsql/migrator.d.ts +2 -1
  114. package/libsql/migrator.js.map +1 -1
  115. package/libsql/node/index.cjs.map +1 -1
  116. package/libsql/node/index.d.cts +6 -5
  117. package/libsql/node/index.d.ts +6 -5
  118. package/libsql/node/index.js.map +1 -1
  119. package/libsql/session.cjs +60 -4
  120. package/libsql/session.cjs.map +1 -1
  121. package/libsql/session.d.cts +15 -9
  122. package/libsql/session.d.ts +15 -9
  123. package/libsql/session.js +60 -4
  124. package/libsql/session.js.map +1 -1
  125. package/libsql/sqlite3/index.cjs.map +1 -1
  126. package/libsql/sqlite3/index.d.cts +6 -5
  127. package/libsql/sqlite3/index.d.ts +6 -5
  128. package/libsql/sqlite3/index.js.map +1 -1
  129. package/libsql/wasm/index.cjs.map +1 -1
  130. package/libsql/wasm/index.d.cts +6 -5
  131. package/libsql/wasm/index.d.ts +6 -5
  132. package/libsql/wasm/index.js.map +1 -1
  133. package/libsql/web/index.cjs.map +1 -1
  134. package/libsql/web/index.d.cts +6 -5
  135. package/libsql/web/index.d.ts +6 -5
  136. package/libsql/web/index.js.map +1 -1
  137. package/libsql/ws/index.cjs.map +1 -1
  138. package/libsql/ws/index.d.cts +6 -5
  139. package/libsql/ws/index.d.ts +6 -5
  140. package/libsql/ws/index.js.map +1 -1
  141. package/mysql-core/db.cjs +29 -8
  142. package/mysql-core/db.cjs.map +1 -1
  143. package/mysql-core/db.d.cts +15 -8
  144. package/mysql-core/db.d.ts +15 -8
  145. package/mysql-core/db.js +28 -7
  146. package/mysql-core/db.js.map +1 -1
  147. package/mysql-core/dialect.cjs +170 -15
  148. package/mysql-core/dialect.cjs.map +1 -1
  149. package/mysql-core/dialect.d.cts +29 -13
  150. package/mysql-core/dialect.d.ts +29 -13
  151. package/mysql-core/dialect.js +167 -21
  152. package/mysql-core/dialect.js.map +1 -1
  153. package/mysql-core/query-builders/_query.cjs +149 -0
  154. package/mysql-core/query-builders/_query.cjs.map +1 -0
  155. package/mysql-core/query-builders/_query.d.cts +44 -0
  156. package/mysql-core/query-builders/_query.d.ts +44 -0
  157. package/mysql-core/query-builders/_query.js +114 -0
  158. package/mysql-core/query-builders/_query.js.map +1 -0
  159. package/mysql-core/query-builders/count.cjs.map +1 -1
  160. package/mysql-core/query-builders/count.d.cts +1 -1
  161. package/mysql-core/query-builders/count.d.ts +1 -1
  162. package/mysql-core/query-builders/count.js.map +1 -1
  163. package/mysql-core/query-builders/query.cjs +18 -31
  164. package/mysql-core/query-builders/query.cjs.map +1 -1
  165. package/mysql-core/query-builders/query.d.cts +8 -10
  166. package/mysql-core/query-builders/query.d.ts +8 -10
  167. package/mysql-core/query-builders/query.js +18 -31
  168. package/mysql-core/query-builders/query.js.map +1 -1
  169. package/mysql-core/session.cjs +3 -2
  170. package/mysql-core/session.cjs.map +1 -1
  171. package/mysql-core/session.d.cts +10 -7
  172. package/mysql-core/session.d.ts +10 -7
  173. package/mysql-core/session.js +3 -2
  174. package/mysql-core/session.js.map +1 -1
  175. package/mysql-proxy/driver.cjs +22 -5
  176. package/mysql-proxy/driver.cjs.map +1 -1
  177. package/mysql-proxy/driver.d.cts +3 -2
  178. package/mysql-proxy/driver.d.ts +3 -2
  179. package/mysql-proxy/driver.js +12 -8
  180. package/mysql-proxy/driver.js.map +1 -1
  181. package/mysql-proxy/migrator.cjs.map +1 -1
  182. package/mysql-proxy/migrator.d.cts +2 -1
  183. package/mysql-proxy/migrator.d.ts +2 -1
  184. package/mysql-proxy/migrator.js.map +1 -1
  185. package/mysql-proxy/session.cjs +47 -2
  186. package/mysql-proxy/session.cjs.map +1 -1
  187. package/mysql-proxy/session.d.cts +13 -8
  188. package/mysql-proxy/session.d.ts +13 -8
  189. package/mysql-proxy/session.js +47 -2
  190. package/mysql-proxy/session.js.map +1 -1
  191. package/mysql2/driver.cjs +24 -7
  192. package/mysql2/driver.cjs.map +1 -1
  193. package/mysql2/driver.d.cts +10 -9
  194. package/mysql2/driver.d.ts +10 -9
  195. package/mysql2/driver.js +14 -10
  196. package/mysql2/driver.js.map +1 -1
  197. package/mysql2/migrator.cjs.map +1 -1
  198. package/mysql2/migrator.d.cts +2 -1
  199. package/mysql2/migrator.d.ts +2 -1
  200. package/mysql2/migrator.js.map +1 -1
  201. package/mysql2/session.cjs +51 -2
  202. package/mysql2/session.cjs.map +1 -1
  203. package/mysql2/session.d.cts +13 -8
  204. package/mysql2/session.d.ts +13 -8
  205. package/mysql2/session.js +51 -2
  206. package/mysql2/session.js.map +1 -1
  207. package/neon-http/driver.cjs +21 -7
  208. package/neon-http/driver.cjs.map +1 -1
  209. package/neon-http/driver.d.cts +10 -9
  210. package/neon-http/driver.d.ts +10 -9
  211. package/neon-http/driver.js +11 -7
  212. package/neon-http/driver.js.map +1 -1
  213. package/neon-http/migrator.cjs.map +1 -1
  214. package/neon-http/migrator.d.cts +2 -1
  215. package/neon-http/migrator.d.ts +2 -1
  216. package/neon-http/migrator.js.map +1 -1
  217. package/neon-http/session.cjs +32 -2
  218. package/neon-http/session.cjs.map +1 -1
  219. package/neon-http/session.d.cts +13 -8
  220. package/neon-http/session.d.ts +13 -8
  221. package/neon-http/session.js +32 -2
  222. package/neon-http/session.js.map +1 -1
  223. package/neon-serverless/driver.cjs +18 -7
  224. package/neon-serverless/driver.cjs.map +1 -1
  225. package/neon-serverless/driver.d.cts +9 -8
  226. package/neon-serverless/driver.d.ts +9 -8
  227. package/neon-serverless/driver.js +8 -10
  228. package/neon-serverless/driver.js.map +1 -1
  229. package/neon-serverless/migrator.cjs.map +1 -1
  230. package/neon-serverless/migrator.d.cts +2 -1
  231. package/neon-serverless/migrator.d.ts +2 -1
  232. package/neon-serverless/migrator.js.map +1 -1
  233. package/neon-serverless/session.cjs +40 -5
  234. package/neon-serverless/session.cjs.map +1 -1
  235. package/neon-serverless/session.d.cts +13 -8
  236. package/neon-serverless/session.d.ts +13 -8
  237. package/neon-serverless/session.js +40 -5
  238. package/neon-serverless/session.js.map +1 -1
  239. package/node-postgres/driver.cjs +13 -7
  240. package/node-postgres/driver.cjs.map +1 -1
  241. package/node-postgres/driver.d.cts +9 -8
  242. package/node-postgres/driver.d.ts +9 -8
  243. package/node-postgres/driver.js +13 -10
  244. package/node-postgres/driver.js.map +1 -1
  245. package/node-postgres/migrator.cjs.map +1 -1
  246. package/node-postgres/migrator.d.cts +2 -1
  247. package/node-postgres/migrator.d.ts +2 -1
  248. package/node-postgres/migrator.js.map +1 -1
  249. package/node-postgres/session.cjs +45 -4
  250. package/node-postgres/session.cjs.map +1 -1
  251. package/node-postgres/session.d.cts +13 -8
  252. package/node-postgres/session.d.ts +13 -8
  253. package/node-postgres/session.js +45 -4
  254. package/node-postgres/session.js.map +1 -1
  255. package/op-sqlite/driver.cjs +22 -5
  256. package/op-sqlite/driver.cjs.map +1 -1
  257. package/op-sqlite/driver.d.cts +3 -2
  258. package/op-sqlite/driver.d.ts +3 -2
  259. package/op-sqlite/driver.js +12 -8
  260. package/op-sqlite/driver.js.map +1 -1
  261. package/op-sqlite/migrator.cjs.map +1 -1
  262. package/op-sqlite/migrator.d.cts +3 -2
  263. package/op-sqlite/migrator.d.ts +3 -2
  264. package/op-sqlite/migrator.js.map +1 -1
  265. package/op-sqlite/session.cjs +47 -4
  266. package/op-sqlite/session.cjs.map +1 -1
  267. package/op-sqlite/session.d.cts +14 -8
  268. package/op-sqlite/session.d.ts +14 -8
  269. package/op-sqlite/session.js +47 -4
  270. package/op-sqlite/session.js.map +1 -1
  271. package/package.json +63 -15
  272. package/pg-core/db.cjs +31 -7
  273. package/pg-core/db.cjs.map +1 -1
  274. package/pg-core/db.d.cts +16 -9
  275. package/pg-core/db.d.ts +16 -9
  276. package/pg-core/db.js +30 -6
  277. package/pg-core/db.js.map +1 -1
  278. package/pg-core/dialect.cjs +146 -488
  279. package/pg-core/dialect.cjs.map +1 -1
  280. package/pg-core/dialect.d.cts +21 -7
  281. package/pg-core/dialect.d.ts +21 -7
  282. package/pg-core/dialect.js +143 -494
  283. package/pg-core/dialect.js.map +1 -1
  284. package/pg-core/query-builders/_query.cjs +155 -0
  285. package/pg-core/query-builders/_query.cjs.map +1 -0
  286. package/pg-core/query-builders/_query.d.cts +47 -0
  287. package/pg-core/query-builders/_query.d.ts +47 -0
  288. package/pg-core/query-builders/_query.js +120 -0
  289. package/pg-core/query-builders/_query.js.map +1 -0
  290. package/pg-core/query-builders/count.cjs.map +1 -1
  291. package/pg-core/query-builders/count.d.cts +1 -1
  292. package/pg-core/query-builders/count.d.ts +1 -1
  293. package/pg-core/query-builders/count.js.map +1 -1
  294. package/pg-core/query-builders/query.cjs +15 -18
  295. package/pg-core/query-builders/query.cjs.map +1 -1
  296. package/pg-core/query-builders/query.d.cts +6 -6
  297. package/pg-core/query-builders/query.d.ts +6 -6
  298. package/pg-core/query-builders/query.js +15 -18
  299. package/pg-core/query-builders/query.js.map +1 -1
  300. package/pg-core/session.cjs +3 -2
  301. package/pg-core/session.cjs.map +1 -1
  302. package/pg-core/session.d.cts +9 -6
  303. package/pg-core/session.d.ts +9 -6
  304. package/pg-core/session.js +3 -2
  305. package/pg-core/session.js.map +1 -1
  306. package/pg-proxy/driver.cjs +21 -5
  307. package/pg-proxy/driver.cjs.map +1 -1
  308. package/pg-proxy/driver.d.cts +3 -2
  309. package/pg-proxy/driver.d.ts +3 -2
  310. package/pg-proxy/driver.js +11 -8
  311. package/pg-proxy/driver.js.map +1 -1
  312. package/pg-proxy/migrator.cjs.map +1 -1
  313. package/pg-proxy/migrator.d.cts +2 -1
  314. package/pg-proxy/migrator.d.ts +2 -1
  315. package/pg-proxy/migrator.js.map +1 -1
  316. package/pg-proxy/session.cjs +37 -2
  317. package/pg-proxy/session.cjs.map +1 -1
  318. package/pg-proxy/session.d.cts +13 -8
  319. package/pg-proxy/session.d.ts +13 -8
  320. package/pg-proxy/session.js +37 -2
  321. package/pg-proxy/session.js.map +1 -1
  322. package/pglite/driver.cjs +23 -7
  323. package/pglite/driver.cjs.map +1 -1
  324. package/pglite/driver.d.cts +9 -8
  325. package/pglite/driver.d.ts +9 -8
  326. package/pglite/driver.js +13 -10
  327. package/pglite/driver.js.map +1 -1
  328. package/pglite/migrator.cjs.map +1 -1
  329. package/pglite/migrator.d.cts +2 -1
  330. package/pglite/migrator.d.ts +2 -1
  331. package/pglite/migrator.js.map +1 -1
  332. package/pglite/session.cjs +34 -3
  333. package/pglite/session.cjs.map +1 -1
  334. package/pglite/session.d.cts +13 -8
  335. package/pglite/session.d.ts +13 -8
  336. package/pglite/session.js +34 -3
  337. package/pglite/session.js.map +1 -1
  338. package/planetscale-serverless/driver.cjs +22 -5
  339. package/planetscale-serverless/driver.cjs.map +1 -1
  340. package/planetscale-serverless/driver.d.cts +7 -6
  341. package/planetscale-serverless/driver.d.ts +7 -6
  342. package/planetscale-serverless/driver.js +12 -8
  343. package/planetscale-serverless/driver.js.map +1 -1
  344. package/planetscale-serverless/migrator.cjs.map +1 -1
  345. package/planetscale-serverless/migrator.d.cts +2 -1
  346. package/planetscale-serverless/migrator.d.ts +2 -1
  347. package/planetscale-serverless/migrator.js.map +1 -1
  348. package/planetscale-serverless/session.cjs +68 -5
  349. package/planetscale-serverless/session.cjs.map +1 -1
  350. package/planetscale-serverless/session.d.cts +14 -9
  351. package/planetscale-serverless/session.d.ts +14 -9
  352. package/planetscale-serverless/session.js +68 -5
  353. package/planetscale-serverless/session.js.map +1 -1
  354. package/postgres-js/driver.cjs +12 -6
  355. package/postgres-js/driver.cjs.map +1 -1
  356. package/postgres-js/driver.d.cts +7 -6
  357. package/postgres-js/driver.d.ts +7 -6
  358. package/postgres-js/driver.js +12 -9
  359. package/postgres-js/driver.js.map +1 -1
  360. package/postgres-js/migrator.cjs.map +1 -1
  361. package/postgres-js/migrator.d.cts +2 -1
  362. package/postgres-js/migrator.d.ts +2 -1
  363. package/postgres-js/migrator.js.map +1 -1
  364. package/postgres-js/session.cjs +51 -6
  365. package/postgres-js/session.cjs.map +1 -1
  366. package/postgres-js/session.d.cts +15 -9
  367. package/postgres-js/session.d.ts +15 -9
  368. package/postgres-js/session.js +51 -6
  369. package/postgres-js/session.js.map +1 -1
  370. package/prisma/mysql/driver.cjs +1 -1
  371. package/prisma/mysql/driver.cjs.map +1 -1
  372. package/prisma/mysql/driver.js +1 -1
  373. package/prisma/mysql/driver.js.map +1 -1
  374. package/prisma/mysql/session.cjs +3 -0
  375. package/prisma/mysql/session.cjs.map +1 -1
  376. package/prisma/mysql/session.d.cts +3 -1
  377. package/prisma/mysql/session.d.ts +3 -1
  378. package/prisma/mysql/session.js +3 -0
  379. package/prisma/mysql/session.js.map +1 -1
  380. package/prisma/pg/driver.cjs +1 -1
  381. package/prisma/pg/driver.cjs.map +1 -1
  382. package/prisma/pg/driver.js +1 -1
  383. package/prisma/pg/driver.js.map +1 -1
  384. package/prisma/pg/session.cjs +3 -0
  385. package/prisma/pg/session.cjs.map +1 -1
  386. package/prisma/pg/session.d.cts +3 -1
  387. package/prisma/pg/session.d.ts +3 -1
  388. package/prisma/pg/session.js +3 -0
  389. package/prisma/pg/session.js.map +1 -1
  390. package/prisma/sqlite/driver.cjs +1 -1
  391. package/prisma/sqlite/driver.cjs.map +1 -1
  392. package/prisma/sqlite/driver.js +1 -1
  393. package/prisma/sqlite/driver.js.map +1 -1
  394. package/prisma/sqlite/session.cjs +3 -0
  395. package/prisma/sqlite/session.cjs.map +1 -1
  396. package/prisma/sqlite/session.d.cts +4 -2
  397. package/prisma/sqlite/session.d.ts +4 -2
  398. package/prisma/sqlite/session.js +3 -0
  399. package/prisma/sqlite/session.js.map +1 -1
  400. package/relations.cjs +468 -245
  401. package/relations.cjs.map +1 -1
  402. package/relations.d.cts +264 -125
  403. package/relations.d.ts +264 -125
  404. package/relations.js +455 -238
  405. package/relations.js.map +1 -1
  406. package/sql/sql.cjs.map +1 -1
  407. package/sql/sql.d.cts +4 -4
  408. package/sql/sql.d.ts +4 -4
  409. package/sql/sql.js.map +1 -1
  410. package/sql-js/driver.cjs +16 -5
  411. package/sql-js/driver.cjs.map +1 -1
  412. package/sql-js/driver.d.cts +3 -2
  413. package/sql-js/driver.d.ts +3 -2
  414. package/sql-js/driver.js +6 -8
  415. package/sql-js/driver.js.map +1 -1
  416. package/sql-js/migrator.cjs.map +1 -1
  417. package/sql-js/migrator.d.cts +2 -1
  418. package/sql-js/migrator.d.ts +2 -1
  419. package/sql-js/migrator.js.map +1 -1
  420. package/sql-js/session.cjs +58 -4
  421. package/sql-js/session.cjs.map +1 -1
  422. package/sql-js/session.d.cts +14 -8
  423. package/sql-js/session.d.ts +14 -8
  424. package/sql-js/session.js +58 -4
  425. package/sql-js/session.js.map +1 -1
  426. package/sqlite-core/db.cjs +35 -14
  427. package/sqlite-core/db.cjs.map +1 -1
  428. package/sqlite-core/db.d.cts +15 -8
  429. package/sqlite-core/db.d.ts +15 -8
  430. package/sqlite-core/db.js +34 -13
  431. package/sqlite-core/db.js.map +1 -1
  432. package/sqlite-core/dialect.cjs +164 -7
  433. package/sqlite-core/dialect.cjs.map +1 -1
  434. package/sqlite-core/dialect.d.cts +25 -9
  435. package/sqlite-core/dialect.d.ts +25 -9
  436. package/sqlite-core/dialect.js +161 -13
  437. package/sqlite-core/dialect.js.map +1 -1
  438. package/sqlite-core/query-builders/_query.cjs +187 -0
  439. package/sqlite-core/query-builders/_query.cjs.map +1 -0
  440. package/sqlite-core/query-builders/_query.d.cts +55 -0
  441. package/sqlite-core/query-builders/_query.d.ts +55 -0
  442. package/sqlite-core/query-builders/_query.js +151 -0
  443. package/sqlite-core/query-builders/_query.js.map +1 -0
  444. package/sqlite-core/query-builders/count.cjs.map +1 -1
  445. package/sqlite-core/query-builders/count.d.cts +1 -1
  446. package/sqlite-core/query-builders/count.d.ts +1 -1
  447. package/sqlite-core/query-builders/count.js.map +1 -1
  448. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  449. package/sqlite-core/query-builders/delete.d.cts +1 -1
  450. package/sqlite-core/query-builders/delete.d.ts +1 -1
  451. package/sqlite-core/query-builders/delete.js.map +1 -1
  452. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  453. package/sqlite-core/query-builders/insert.d.cts +3 -3
  454. package/sqlite-core/query-builders/insert.d.ts +3 -3
  455. package/sqlite-core/query-builders/insert.js.map +1 -1
  456. package/sqlite-core/query-builders/query.cjs +30 -48
  457. package/sqlite-core/query-builders/query.cjs.map +1 -1
  458. package/sqlite-core/query-builders/query.d.cts +14 -16
  459. package/sqlite-core/query-builders/query.d.ts +14 -16
  460. package/sqlite-core/query-builders/query.js +30 -48
  461. package/sqlite-core/query-builders/query.js.map +1 -1
  462. package/sqlite-core/query-builders/select.cjs.map +1 -1
  463. package/sqlite-core/query-builders/select.d.cts +3 -3
  464. package/sqlite-core/query-builders/select.d.ts +3 -3
  465. package/sqlite-core/query-builders/select.js.map +1 -1
  466. package/sqlite-core/query-builders/update.cjs.map +1 -1
  467. package/sqlite-core/query-builders/update.d.cts +3 -3
  468. package/sqlite-core/query-builders/update.d.ts +3 -3
  469. package/sqlite-core/query-builders/update.js.map +1 -1
  470. package/sqlite-core/session.cjs +6 -2
  471. package/sqlite-core/session.cjs.map +1 -1
  472. package/sqlite-core/session.d.cts +14 -6
  473. package/sqlite-core/session.d.ts +14 -6
  474. package/sqlite-core/session.js +6 -2
  475. package/sqlite-core/session.js.map +1 -1
  476. package/sqlite-proxy/driver.cjs +22 -5
  477. package/sqlite-proxy/driver.cjs.map +1 -1
  478. package/sqlite-proxy/driver.d.cts +4 -3
  479. package/sqlite-proxy/driver.d.ts +4 -3
  480. package/sqlite-proxy/driver.js +12 -5
  481. package/sqlite-proxy/driver.js.map +1 -1
  482. package/sqlite-proxy/migrator.cjs.map +1 -1
  483. package/sqlite-proxy/migrator.d.cts +2 -1
  484. package/sqlite-proxy/migrator.d.ts +2 -1
  485. package/sqlite-proxy/migrator.js.map +1 -1
  486. package/sqlite-proxy/session.cjs +47 -4
  487. package/sqlite-proxy/session.cjs.map +1 -1
  488. package/sqlite-proxy/session.d.cts +14 -8
  489. package/sqlite-proxy/session.d.ts +14 -8
  490. package/sqlite-proxy/session.js +47 -4
  491. package/sqlite-proxy/session.js.map +1 -1
  492. package/table.cjs.map +1 -1
  493. package/table.d.cts +1 -1
  494. package/table.d.ts +1 -1
  495. package/table.js.map +1 -1
  496. package/tidb-serverless/driver.cjs +22 -5
  497. package/tidb-serverless/driver.cjs.map +1 -1
  498. package/tidb-serverless/driver.d.cts +7 -6
  499. package/tidb-serverless/driver.d.ts +7 -6
  500. package/tidb-serverless/driver.js +12 -8
  501. package/tidb-serverless/driver.js.map +1 -1
  502. package/tidb-serverless/migrator.cjs.map +1 -1
  503. package/tidb-serverless/migrator.d.cts +2 -1
  504. package/tidb-serverless/migrator.d.ts +2 -1
  505. package/tidb-serverless/migrator.js.map +1 -1
  506. package/tidb-serverless/session.cjs +62 -5
  507. package/tidb-serverless/session.cjs.map +1 -1
  508. package/tidb-serverless/session.d.cts +14 -9
  509. package/tidb-serverless/session.d.ts +14 -9
  510. package/tidb-serverless/session.js +62 -5
  511. package/tidb-serverless/session.js.map +1 -1
  512. package/utils.cjs +2 -2
  513. package/utils.cjs.map +1 -1
  514. package/utils.d.cts +3 -1
  515. package/utils.d.ts +3 -1
  516. package/utils.js +2 -2
  517. package/utils.js.map +1 -1
  518. package/vercel-postgres/driver.cjs +23 -7
  519. package/vercel-postgres/driver.cjs.map +1 -1
  520. package/vercel-postgres/driver.d.cts +9 -8
  521. package/vercel-postgres/driver.d.ts +9 -8
  522. package/vercel-postgres/driver.js +13 -10
  523. package/vercel-postgres/driver.js.map +1 -1
  524. package/vercel-postgres/migrator.cjs.map +1 -1
  525. package/vercel-postgres/migrator.d.cts +2 -1
  526. package/vercel-postgres/migrator.d.ts +2 -1
  527. package/vercel-postgres/migrator.js.map +1 -1
  528. package/vercel-postgres/session.cjs +34 -4
  529. package/vercel-postgres/session.cjs.map +1 -1
  530. package/vercel-postgres/session.d.cts +13 -8
  531. package/vercel-postgres/session.d.ts +13 -8
  532. package/vercel-postgres/session.js +34 -4
  533. package/vercel-postgres/session.js.map +1 -1
  534. package/version.cjs +1 -1
  535. package/version.d.cts +1 -1
  536. package/version.d.ts +1 -1
  537. package/version.js +1 -1
  538. package/xata-http/driver.cjs +17 -5
  539. package/xata-http/driver.cjs.map +1 -1
  540. package/xata-http/driver.d.cts +5 -4
  541. package/xata-http/driver.d.ts +5 -4
  542. package/xata-http/driver.js +7 -5
  543. package/xata-http/driver.js.map +1 -1
  544. package/xata-http/migrator.cjs.map +1 -1
  545. package/xata-http/migrator.d.cts +2 -1
  546. package/xata-http/migrator.d.ts +2 -1
  547. package/xata-http/migrator.js.map +1 -1
  548. package/xata-http/session.cjs +30 -2
  549. package/xata-http/session.cjs.map +1 -1
  550. package/xata-http/session.d.cts +13 -8
  551. package/xata-http/session.d.ts +13 -8
  552. package/xata-http/session.js +30 -2
  553. package/xata-http/session.js.map +1 -1
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
8
  var __export = (target, all) => {
7
9
  for (var name in all)
@@ -15,12 +17,21 @@ var __copyProps = (to, from, except, desc) => {
15
17
  }
16
18
  return to;
17
19
  };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
18
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
29
  var dialect_exports = {};
20
30
  __export(dialect_exports, {
21
31
  PgDialect: () => PgDialect
22
32
  });
23
33
  module.exports = __toCommonJS(dialect_exports);
34
+ var V1 = __toESM(require("../_relations.cjs"), 1);
24
35
  var import_alias = require("../alias.cjs");
25
36
  var import_casing = require("../casing.cjs");
26
37
  var import_column = require("../column.cjs");
@@ -426,488 +437,8 @@ class PgDialect {
426
437
  invokeSource
427
438
  });
428
439
  }
429
- // buildRelationalQueryWithPK({
430
- // fullSchema,
431
- // schema,
432
- // tableNamesMap,
433
- // table,
434
- // tableConfig,
435
- // queryConfig: config,
436
- // tableAlias,
437
- // isRoot = false,
438
- // joinOn,
439
- // }: {
440
- // fullSchema: Record<string, unknown>;
441
- // schema: TablesRelationalConfig;
442
- // tableNamesMap: Record<string, string>;
443
- // table: PgTable;
444
- // tableConfig: TableRelationalConfig;
445
- // queryConfig: true | DBQueryConfig<'many', true>;
446
- // tableAlias: string;
447
- // isRoot?: boolean;
448
- // joinOn?: SQL;
449
- // }): BuildRelationalQueryResult<PgTable, PgColumn> {
450
- // // For { "<relation>": true }, return a table with selection of all columns
451
- // if (config === true) {
452
- // const selectionEntries = Object.entries(tableConfig.columns);
453
- // const selection: BuildRelationalQueryResult<PgTable, PgColumn>['selection'] = selectionEntries.map((
454
- // [key, value],
455
- // ) => ({
456
- // dbKey: value.name,
457
- // tsKey: key,
458
- // field: value as PgColumn,
459
- // relationTableTsKey: undefined,
460
- // isJson: false,
461
- // selection: [],
462
- // }));
463
- // return {
464
- // tableTsKey: tableConfig.tsName,
465
- // sql: table,
466
- // selection,
467
- // };
468
- // }
469
- // // let selection: BuildRelationalQueryResult<PgTable, PgColumn>['selection'] = [];
470
- // // let selectionForBuild = selection;
471
- // const aliasedColumns = Object.fromEntries(
472
- // Object.entries(tableConfig.columns).map(([key, value]) => [key, aliasedTableColumn(value, tableAlias)]),
473
- // );
474
- // const aliasedRelations = Object.fromEntries(
475
- // Object.entries(tableConfig.relations).map(([key, value]) => [key, aliasedRelation(value, tableAlias)]),
476
- // );
477
- // const aliasedFields = Object.assign({}, aliasedColumns, aliasedRelations);
478
- // let where, hasUserDefinedWhere;
479
- // if (config.where) {
480
- // const whereSql = typeof config.where === 'function' ? config.where(aliasedFields, operators) : config.where;
481
- // where = whereSql && mapColumnsInSQLToAlias(whereSql, tableAlias);
482
- // hasUserDefinedWhere = !!where;
483
- // }
484
- // where = and(joinOn, where);
485
- // // const fieldsSelection: { tsKey: string; value: PgColumn | SQL.Aliased; isExtra?: boolean }[] = [];
486
- // let joins: Join[] = [];
487
- // let selectedColumns: string[] = [];
488
- // // Figure out which columns to select
489
- // if (config.columns) {
490
- // let isIncludeMode = false;
491
- // for (const [field, value] of Object.entries(config.columns)) {
492
- // if (value === undefined) {
493
- // continue;
494
- // }
495
- // if (field in tableConfig.columns) {
496
- // if (!isIncludeMode && value === true) {
497
- // isIncludeMode = true;
498
- // }
499
- // selectedColumns.push(field);
500
- // }
501
- // }
502
- // if (selectedColumns.length > 0) {
503
- // selectedColumns = isIncludeMode
504
- // ? selectedColumns.filter((c) => config.columns?.[c] === true)
505
- // : Object.keys(tableConfig.columns).filter((key) => !selectedColumns.includes(key));
506
- // }
507
- // } else {
508
- // // Select all columns if selection is not specified
509
- // selectedColumns = Object.keys(tableConfig.columns);
510
- // }
511
- // // for (const field of selectedColumns) {
512
- // // const column = tableConfig.columns[field]! as PgColumn;
513
- // // fieldsSelection.push({ tsKey: field, value: column });
514
- // // }
515
- // let initiallySelectedRelations: {
516
- // tsKey: string;
517
- // queryConfig: true | DBQueryConfig<'many', false>;
518
- // relation: Relation;
519
- // }[] = [];
520
- // // let selectedRelations: BuildRelationalQueryResult<PgTable, PgColumn>['selection'] = [];
521
- // // Figure out which relations to select
522
- // if (config.with) {
523
- // initiallySelectedRelations = Object.entries(config.with)
524
- // .filter((entry): entry is [typeof entry[0], NonNullable<typeof entry[1]>] => !!entry[1])
525
- // .map(([tsKey, queryConfig]) => ({ tsKey, queryConfig, relation: tableConfig.relations[tsKey]! }));
526
- // }
527
- // const manyRelations = initiallySelectedRelations.filter((r) =>
528
- // is(r.relation, Many)
529
- // && (schema[tableNamesMap[r.relation.referencedTable[Table.Symbol.Name]]!]?.primaryKey.length ?? 0) > 0
530
- // );
531
- // // If this is the last Many relation (or there are no Many relations), we are on the innermost subquery level
532
- // const isInnermostQuery = manyRelations.length < 2;
533
- // const selectedExtras: {
534
- // tsKey: string;
535
- // value: SQL.Aliased;
536
- // }[] = [];
537
- // // Figure out which extras to select
538
- // if (isInnermostQuery && config.extras) {
539
- // const extras = typeof config.extras === 'function'
540
- // ? config.extras(aliasedFields, { sql })
541
- // : config.extras;
542
- // for (const [tsKey, value] of Object.entries(extras)) {
543
- // selectedExtras.push({
544
- // tsKey,
545
- // value: mapColumnsInAliasedSQLToAlias(value, tableAlias),
546
- // });
547
- // }
548
- // }
549
- // // Transform `fieldsSelection` into `selection`
550
- // // `fieldsSelection` shouldn't be used after this point
551
- // // for (const { tsKey, value, isExtra } of fieldsSelection) {
552
- // // selection.push({
553
- // // dbKey: is(value, SQL.Aliased) ? value.fieldAlias : tableConfig.columns[tsKey]!.name,
554
- // // tsKey,
555
- // // field: is(value, Column) ? aliasedTableColumn(value, tableAlias) : value,
556
- // // relationTableTsKey: undefined,
557
- // // isJson: false,
558
- // // isExtra,
559
- // // selection: [],
560
- // // });
561
- // // }
562
- // let orderByOrig = typeof config.orderBy === 'function'
563
- // ? config.orderBy(aliasedFields, orderByOperators)
564
- // : config.orderBy ?? [];
565
- // if (!Array.isArray(orderByOrig)) {
566
- // orderByOrig = [orderByOrig];
567
- // }
568
- // const orderBy = orderByOrig.map((orderByValue) => {
569
- // if (is(orderByValue, Column)) {
570
- // return aliasedTableColumn(orderByValue, tableAlias) as PgColumn;
571
- // }
572
- // return mapColumnsInSQLToAlias(orderByValue, tableAlias);
573
- // });
574
- // const limit = isInnermostQuery ? config.limit : undefined;
575
- // const offset = isInnermostQuery ? config.offset : undefined;
576
- // // For non-root queries without additional config except columns, return a table with selection
577
- // if (
578
- // !isRoot
579
- // && initiallySelectedRelations.length === 0
580
- // && selectedExtras.length === 0
581
- // && !where
582
- // && orderBy.length === 0
583
- // && limit === undefined
584
- // && offset === undefined
585
- // ) {
586
- // return {
587
- // tableTsKey: tableConfig.tsName,
588
- // sql: table,
589
- // selection: selectedColumns.map((key) => ({
590
- // dbKey: tableConfig.columns[key]!.name,
591
- // tsKey: key,
592
- // field: tableConfig.columns[key] as PgColumn,
593
- // relationTableTsKey: undefined,
594
- // isJson: false,
595
- // selection: [],
596
- // })),
597
- // };
598
- // }
599
- // const selectedRelationsWithoutPK:
600
- // // Process all relations without primary keys, because they need to be joined differently and will all be on the same query level
601
- // for (
602
- // const {
603
- // tsKey: selectedRelationTsKey,
604
- // queryConfig: selectedRelationConfigValue,
605
- // relation,
606
- // } of initiallySelectedRelations
607
- // ) {
608
- // const normalizedRelation = normalizeRelation(schema, tableNamesMap, relation);
609
- // const relationTableName = relation.referencedTable[Table.Symbol.Name];
610
- // const relationTableTsName = tableNamesMap[relationTableName]!;
611
- // const relationTable = schema[relationTableTsName]!;
612
- // if (relationTable.primaryKey.length > 0) {
613
- // continue;
614
- // }
615
- // const relationTableAlias = `${tableAlias}_${selectedRelationTsKey}`;
616
- // const joinOn = and(
617
- // ...normalizedRelation.fields.map((field, i) =>
618
- // eq(
619
- // aliasedTableColumn(normalizedRelation.references[i]!, relationTableAlias),
620
- // aliasedTableColumn(field, tableAlias),
621
- // )
622
- // ),
623
- // );
624
- // const builtRelation = this.buildRelationalQueryWithoutPK({
625
- // fullSchema,
626
- // schema,
627
- // tableNamesMap,
628
- // table: fullSchema[relationTableTsName] as PgTable,
629
- // tableConfig: schema[relationTableTsName]!,
630
- // queryConfig: selectedRelationConfigValue,
631
- // tableAlias: relationTableAlias,
632
- // joinOn,
633
- // nestedQueryRelation: relation,
634
- // });
635
- // const field = sql`${sql.identifier(relationTableAlias)}.${sql.identifier('data')}`.as(selectedRelationTsKey);
636
- // joins.push({
637
- // on: sql`true`,
638
- // table: new Subquery(builtRelation.sql as SQL, {}, relationTableAlias),
639
- // alias: relationTableAlias,
640
- // joinType: 'left',
641
- // lateral: true,
642
- // });
643
- // selectedRelations.push({
644
- // dbKey: selectedRelationTsKey,
645
- // tsKey: selectedRelationTsKey,
646
- // field,
647
- // relationTableTsKey: relationTableTsName,
648
- // isJson: true,
649
- // selection: builtRelation.selection,
650
- // });
651
- // }
652
- // const oneRelations = initiallySelectedRelations.filter((r): r is typeof r & { relation: One } =>
653
- // is(r.relation, One)
654
- // );
655
- // // Process all One relations with PKs, because they can all be joined on the same level
656
- // for (
657
- // const {
658
- // tsKey: selectedRelationTsKey,
659
- // queryConfig: selectedRelationConfigValue,
660
- // relation,
661
- // } of oneRelations
662
- // ) {
663
- // const normalizedRelation = normalizeRelation(schema, tableNamesMap, relation);
664
- // const relationTableName = relation.referencedTable[Table.Symbol.Name];
665
- // const relationTableTsName = tableNamesMap[relationTableName]!;
666
- // const relationTableAlias = `${tableAlias}_${selectedRelationTsKey}`;
667
- // const relationTable = schema[relationTableTsName]!;
668
- // if (relationTable.primaryKey.length === 0) {
669
- // continue;
670
- // }
671
- // const joinOn = and(
672
- // ...normalizedRelation.fields.map((field, i) =>
673
- // eq(
674
- // aliasedTableColumn(normalizedRelation.references[i]!, relationTableAlias),
675
- // aliasedTableColumn(field, tableAlias),
676
- // )
677
- // ),
678
- // );
679
- // const builtRelation = this.buildRelationalQueryWithPK({
680
- // fullSchema,
681
- // schema,
682
- // tableNamesMap,
683
- // table: fullSchema[relationTableTsName] as PgTable,
684
- // tableConfig: schema[relationTableTsName]!,
685
- // queryConfig: selectedRelationConfigValue,
686
- // tableAlias: relationTableAlias,
687
- // joinOn,
688
- // });
689
- // const field = sql`case when ${sql.identifier(relationTableAlias)} is null then null else json_build_array(${
690
- // sql.join(
691
- // builtRelation.selection.map(({ field }) =>
692
- // is(field, SQL.Aliased)
693
- // ? sql`${sql.identifier(relationTableAlias)}.${sql.identifier(field.fieldAlias)}`
694
- // : is(field, Column)
695
- // ? aliasedTableColumn(field, relationTableAlias)
696
- // : field
697
- // ),
698
- // sql`, `,
699
- // )
700
- // }) end`.as(selectedRelationTsKey);
701
- // const isLateralJoin = is(builtRelation.sql, SQL);
702
- // joins.push({
703
- // on: isLateralJoin ? sql`true` : joinOn,
704
- // table: is(builtRelation.sql, SQL)
705
- // ? new Subquery(builtRelation.sql, {}, relationTableAlias)
706
- // : aliasedTable(builtRelation.sql, relationTableAlias),
707
- // alias: relationTableAlias,
708
- // joinType: 'left',
709
- // lateral: is(builtRelation.sql, SQL),
710
- // });
711
- // selectedRelations.push({
712
- // dbKey: selectedRelationTsKey,
713
- // tsKey: selectedRelationTsKey,
714
- // field,
715
- // relationTableTsKey: relationTableTsName,
716
- // isJson: true,
717
- // selection: builtRelation.selection,
718
- // });
719
- // }
720
- // let distinct: PgSelectConfig['distinct'];
721
- // let tableFrom: PgTable | Subquery = table;
722
- // // Process first Many relation - each one requires a nested subquery
723
- // const manyRelation = manyRelations[0];
724
- // if (manyRelation) {
725
- // const {
726
- // tsKey: selectedRelationTsKey,
727
- // queryConfig: selectedRelationQueryConfig,
728
- // relation,
729
- // } = manyRelation;
730
- // distinct = {
731
- // on: tableConfig.primaryKey.map((c) => aliasedTableColumn(c as PgColumn, tableAlias)),
732
- // };
733
- // const normalizedRelation = normalizeRelation(schema, tableNamesMap, relation);
734
- // const relationTableName = relation.referencedTable[Table.Symbol.Name];
735
- // const relationTableTsName = tableNamesMap[relationTableName]!;
736
- // const relationTableAlias = `${tableAlias}_${selectedRelationTsKey}`;
737
- // const joinOn = and(
738
- // ...normalizedRelation.fields.map((field, i) =>
739
- // eq(
740
- // aliasedTableColumn(normalizedRelation.references[i]!, relationTableAlias),
741
- // aliasedTableColumn(field, tableAlias),
742
- // )
743
- // ),
744
- // );
745
- // const builtRelationJoin = this.buildRelationalQueryWithPK({
746
- // fullSchema,
747
- // schema,
748
- // tableNamesMap,
749
- // table: fullSchema[relationTableTsName] as PgTable,
750
- // tableConfig: schema[relationTableTsName]!,
751
- // queryConfig: selectedRelationQueryConfig,
752
- // tableAlias: relationTableAlias,
753
- // joinOn,
754
- // });
755
- // const builtRelationSelectionField = sql`case when ${
756
- // sql.identifier(relationTableAlias)
757
- // } is null then '[]' else json_agg(json_build_array(${
758
- // sql.join(
759
- // builtRelationJoin.selection.map(({ field }) =>
760
- // is(field, SQL.Aliased)
761
- // ? sql`${sql.identifier(relationTableAlias)}.${sql.identifier(field.fieldAlias)}`
762
- // : is(field, Column)
763
- // ? aliasedTableColumn(field, relationTableAlias)
764
- // : field
765
- // ),
766
- // sql`, `,
767
- // )
768
- // })) over (partition by ${sql.join(distinct.on, sql`, `)}) end`.as(selectedRelationTsKey);
769
- // const isLateralJoin = is(builtRelationJoin.sql, SQL);
770
- // joins.push({
771
- // on: isLateralJoin ? sql`true` : joinOn,
772
- // table: isLateralJoin
773
- // ? new Subquery(builtRelationJoin.sql as SQL, {}, relationTableAlias)
774
- // : aliasedTable(builtRelationJoin.sql as PgTable, relationTableAlias),
775
- // alias: relationTableAlias,
776
- // joinType: 'left',
777
- // lateral: isLateralJoin,
778
- // });
779
- // // Build the "from" subquery with the remaining Many relations
780
- // const builtTableFrom = this.buildRelationalQueryWithPK({
781
- // fullSchema,
782
- // schema,
783
- // tableNamesMap,
784
- // table,
785
- // tableConfig,
786
- // queryConfig: {
787
- // ...config,
788
- // where: undefined,
789
- // orderBy: undefined,
790
- // limit: undefined,
791
- // offset: undefined,
792
- // with: manyRelations.slice(1).reduce<NonNullable<typeof config['with']>>(
793
- // (result, { tsKey, queryConfig: configValue }) => {
794
- // result[tsKey] = configValue;
795
- // return result;
796
- // },
797
- // {},
798
- // ),
799
- // },
800
- // tableAlias,
801
- // });
802
- // selectedRelations.push({
803
- // dbKey: selectedRelationTsKey,
804
- // tsKey: selectedRelationTsKey,
805
- // field: builtRelationSelectionField,
806
- // relationTableTsKey: relationTableTsName,
807
- // isJson: true,
808
- // selection: builtRelationJoin.selection,
809
- // });
810
- // // selection = builtTableFrom.selection.map((item) =>
811
- // // is(item.field, SQL.Aliased)
812
- // // ? { ...item, field: sql`${sql.identifier(tableAlias)}.${sql.identifier(item.field.fieldAlias)}` }
813
- // // : item
814
- // // );
815
- // // selectionForBuild = [{
816
- // // dbKey: '*',
817
- // // tsKey: '*',
818
- // // field: sql`${sql.identifier(tableAlias)}.*`,
819
- // // selection: [],
820
- // // isJson: false,
821
- // // relationTableTsKey: undefined,
822
- // // }];
823
- // // const newSelectionItem: (typeof selection)[number] = {
824
- // // dbKey: selectedRelationTsKey,
825
- // // tsKey: selectedRelationTsKey,
826
- // // field,
827
- // // relationTableTsKey: relationTableTsName,
828
- // // isJson: true,
829
- // // selection: builtRelationJoin.selection,
830
- // // };
831
- // // selection.push(newSelectionItem);
832
- // // selectionForBuild.push(newSelectionItem);
833
- // tableFrom = is(builtTableFrom.sql, PgTable)
834
- // ? builtTableFrom.sql
835
- // : new Subquery(builtTableFrom.sql, {}, tableAlias);
836
- // }
837
- // if (selectedColumns.length === 0 && selectedRelations.length === 0 && selectedExtras.length === 0) {
838
- // throw new DrizzleError(`No fields selected for table "${tableConfig.tsName}" ("${tableAlias}")`);
839
- // }
840
- // let selection: BuildRelationalQueryResult<PgTable, PgColumn>['selection'];
841
- // function prepareSelectedColumns() {
842
- // return selectedColumns.map((key) => ({
843
- // dbKey: tableConfig.columns[key]!.name,
844
- // tsKey: key,
845
- // field: tableConfig.columns[key] as PgColumn,
846
- // relationTableTsKey: undefined,
847
- // isJson: false,
848
- // selection: [],
849
- // }));
850
- // }
851
- // function prepareSelectedExtras() {
852
- // return selectedExtras.map((item) => ({
853
- // dbKey: item.value.fieldAlias,
854
- // tsKey: item.tsKey,
855
- // field: item.value,
856
- // relationTableTsKey: undefined,
857
- // isJson: false,
858
- // selection: [],
859
- // }));
860
- // }
861
- // if (isRoot) {
862
- // selection = [
863
- // ...prepareSelectedColumns(),
864
- // ...prepareSelectedExtras(),
865
- // ];
866
- // }
867
- // if (hasUserDefinedWhere || orderBy.length > 0) {
868
- // tableFrom = new Subquery(
869
- // this.buildSelectQuery({
870
- // table: is(tableFrom, PgTable) ? aliasedTable(tableFrom, tableAlias) : tableFrom,
871
- // fields: {},
872
- // fieldsFlat: selectionForBuild.map(({ field }) => ({
873
- // path: [],
874
- // field: is(field, Column) ? aliasedTableColumn(field, tableAlias) : field,
875
- // })),
876
- // joins,
877
- // distinct,
878
- // }),
879
- // {},
880
- // tableAlias,
881
- // );
882
- // selectionForBuild = selection.map((item) =>
883
- // is(item.field, SQL.Aliased)
884
- // ? { ...item, field: sql`${sql.identifier(tableAlias)}.${sql.identifier(item.field.fieldAlias)}` }
885
- // : item
886
- // );
887
- // joins = [];
888
- // distinct = undefined;
889
- // }
890
- // const result = this.buildSelectQuery({
891
- // table: is(tableFrom, PgTable) ? aliasedTable(tableFrom, tableAlias) : tableFrom,
892
- // fields: {},
893
- // fieldsFlat: selectionForBuild.map(({ field }) => ({
894
- // path: [],
895
- // field: is(field, Column) ? aliasedTableColumn(field, tableAlias) : field,
896
- // })),
897
- // where,
898
- // limit,
899
- // offset,
900
- // joins,
901
- // orderBy,
902
- // distinct,
903
- // });
904
- // return {
905
- // tableTsKey: tableConfig.tsName,
906
- // sql: result,
907
- // selection,
908
- // };
909
- // }
910
- buildRelationalQueryWithoutPK({
440
+ /** @deprecated */
441
+ _buildRelationalQuery({
911
442
  fullSchema,
912
443
  schema,
913
444
  tableNamesMap,
@@ -936,7 +467,7 @@ class PgDialect {
936
467
  Object.entries(tableConfig.columns).map(([key, value]) => [key, (0, import_alias.aliasedTableColumn)(value, tableAlias)])
937
468
  );
938
469
  if (config.where) {
939
- const whereSql = typeof config.where === "function" ? config.where(aliasedColumns, (0, import_relations.getOperators)()) : config.where;
470
+ const whereSql = typeof config.where === "function" ? config.where(aliasedColumns, V1.getOperators()) : config.where;
940
471
  where = whereSql && (0, import_alias.mapColumnsInSQLToAlias)(whereSql, tableAlias);
941
472
  }
942
473
  const fieldsSelection = [];
@@ -988,7 +519,7 @@ class PgDialect {
988
519
  selection: []
989
520
  });
990
521
  }
991
- let orderByOrig = typeof config.orderBy === "function" ? config.orderBy(aliasedColumns, (0, import_relations.getOrderByOperators)()) : config.orderBy ?? [];
522
+ let orderByOrig = typeof config.orderBy === "function" ? config.orderBy(aliasedColumns, V1.getOrderByOperators()) : config.orderBy ?? [];
992
523
  if (!Array.isArray(orderByOrig)) {
993
524
  orderByOrig = [orderByOrig];
994
525
  }
@@ -1005,7 +536,7 @@ class PgDialect {
1005
536
  queryConfig: selectedRelationConfigValue,
1006
537
  relation
1007
538
  } of selectedRelations) {
1008
- const normalizedRelation = (0, import_relations.normalizeRelation)(schema, tableNamesMap, relation);
539
+ const normalizedRelation = V1.normalizeRelation(schema, tableNamesMap, relation);
1009
540
  const relationTableName = (0, import_table2.getTableUniqueName)(relation.referencedTable);
1010
541
  const relationTableTsName = tableNamesMap[relationTableName];
1011
542
  const relationTableAlias = `${tableAlias}_${selectedRelationTsKey}`;
@@ -1017,13 +548,13 @@ class PgDialect {
1017
548
  )
1018
549
  )
1019
550
  );
1020
- const builtRelation = this.buildRelationalQueryWithoutPK({
551
+ const builtRelation = this._buildRelationalQuery({
1021
552
  fullSchema,
1022
553
  schema,
1023
554
  tableNamesMap,
1024
555
  table: fullSchema[relationTableTsName],
1025
556
  tableConfig: schema[relationTableTsName],
1026
- queryConfig: (0, import_entity.is)(relation, import_relations.One) ? selectedRelationConfigValue === true ? { limit: 1 } : { ...selectedRelationConfigValue, limit: 1 } : selectedRelationConfigValue,
557
+ queryConfig: (0, import_entity.is)(relation, V1.One) ? selectedRelationConfigValue === true ? { limit: 1 } : { ...selectedRelationConfigValue, limit: 1 } : selectedRelationConfigValue,
1027
558
  tableAlias: relationTableAlias,
1028
559
  joinOn: joinOn2,
1029
560
  nestedQueryRelation: relation
@@ -1058,7 +589,7 @@ class PgDialect {
1058
589
  ),
1059
590
  import_sql2.sql`, `
1060
591
  )})`;
1061
- if ((0, import_entity.is)(nestedQueryRelation, import_relations.Many)) {
592
+ if ((0, import_entity.is)(nestedQueryRelation, V1.Many)) {
1062
593
  field = import_sql2.sql`coalesce(json_agg(${field}${orderBy.length > 0 ? import_sql2.sql` order by ${import_sql2.sql.join(orderBy, import_sql2.sql`, `)}` : void 0}), '[]'::json)`;
1063
594
  }
1064
595
  const nestedSelection = [{
@@ -1127,6 +658,133 @@ class PgDialect {
1127
658
  selection
1128
659
  };
1129
660
  }
661
+ unwrapAllColumns = (table, selection) => {
662
+ return import_sql2.sql.join(
663
+ Object.entries(table[import_table2.Columns]).map(([k, v]) => {
664
+ selection.push({
665
+ key: k,
666
+ field: v
667
+ });
668
+ return import_sql2.sql`${v} as ${import_sql2.sql.identifier(k)}`;
669
+ }),
670
+ import_sql2.sql`, `
671
+ );
672
+ };
673
+ buildColumns = (table, tableConfig, selection, config) => config?.columns ? (() => {
674
+ const entries = Object.entries(config.columns);
675
+ const columnIdentifiers = [];
676
+ let colSelectionMode;
677
+ for (const [k, v] of entries) {
678
+ if (colSelectionMode === void 0)
679
+ colSelectionMode = v;
680
+ else if (v !== void 0 && colSelectionMode !== v) {
681
+ throw new Error("Columns cannot be both true and false at the same time");
682
+ }
683
+ if (v) {
684
+ columnIdentifiers.push(
685
+ import_sql2.sql`${table[import_table2.Columns][k]} as ${import_sql2.sql.identifier(k)}`
686
+ );
687
+ selection.push({
688
+ key: k,
689
+ field: table[import_table2.Columns][k]
690
+ });
691
+ }
692
+ }
693
+ if (colSelectionMode === false) {
694
+ for (const [k, v] of Object.entries(table[import_table2.Columns])) {
695
+ if (config.columns[k] === false)
696
+ continue;
697
+ columnIdentifiers.push(import_sql2.sql`${v} as ${import_sql2.sql.identifier(k)}`);
698
+ selection.push({
699
+ key: k,
700
+ field: v
701
+ });
702
+ }
703
+ }
704
+ return columnIdentifiers.length ? import_sql2.sql.join(columnIdentifiers, import_sql2.sql`, `) : this.unwrapAllColumns(table, selection);
705
+ })() : (() => {
706
+ const columnIdentifiers = [this.unwrapAllColumns(table, selection)];
707
+ return import_sql2.sql.join(columnIdentifiers, import_sql2.sql`, `);
708
+ })();
709
+ buildRelationalQuery({
710
+ tables,
711
+ schema,
712
+ tableNamesMap,
713
+ table,
714
+ tableConfig,
715
+ queryConfig: config,
716
+ relationWhere,
717
+ mode
718
+ }) {
719
+ const selection = [];
720
+ const isSingle = mode === "first";
721
+ const params = config === true ? void 0 : config;
722
+ const limit = isSingle ? 1 : params?.limit;
723
+ const offset = params?.offset;
724
+ const where = params?.where && relationWhere ? (0, import_sql.and)((0, import_relations.relationFilterToSQL)(table, params.where), relationWhere) : params?.where ? (0, import_relations.relationFilterToSQL)(table, params.where) : relationWhere;
725
+ const order = params?.orderBy ? (0, import_relations.relationsOrderToSQL)(table, params.orderBy) : void 0;
726
+ const columns = this.buildColumns(table, tableConfig, selection, params);
727
+ const extras = params?.extras ? (0, import_relations.relationExtrasToSQL)(table, params.extras) : void 0;
728
+ if (extras)
729
+ selection.push(...extras.selection);
730
+ const selectionArr = [columns];
731
+ const joins = params ? (() => {
732
+ const { with: joins2 } = params;
733
+ if (!joins2)
734
+ return;
735
+ const withEntries = Object.entries(joins2).filter(([_, v]) => v);
736
+ if (!withEntries.length)
737
+ return;
738
+ return import_sql2.sql.join(
739
+ withEntries.map(([k, join]) => {
740
+ if ((0, import_entity.is)(tableConfig.relations[k], import_relations.AggregatedField)) {
741
+ const relation2 = tableConfig.relations[k];
742
+ relation2.onTable(table);
743
+ const query2 = relation2.getSQL();
744
+ selection.push({
745
+ key: k,
746
+ field: relation2
747
+ });
748
+ selectionArr.push(import_sql2.sql`${import_sql2.sql.identifier(k)}.${import_sql2.sql.identifier("r")} as ${import_sql2.sql.identifier(k)}`);
749
+ return import_sql2.sql`left join lateral(${query2}) as ${import_sql2.sql.identifier(k)} on true`;
750
+ }
751
+ const relation = tableConfig.relations[k];
752
+ const isSingle2 = (0, import_entity.is)(relation, import_relations.One);
753
+ const targetTable = relation.targetTable;
754
+ const relationFilter = (0, import_relations.relationToSQL)(relation);
755
+ selectionArr.push(
756
+ isSingle2 ? import_sql2.sql`${import_sql2.sql.identifier(k)}.${import_sql2.sql.identifier("r")} as ${import_sql2.sql.identifier(k)}` : import_sql2.sql`coalesce(${import_sql2.sql.identifier(k)}.${import_sql2.sql.identifier("r")}, '[]') as ${import_sql2.sql.identifier(k)}`
757
+ );
758
+ const innerQuery = this.buildRelationalQuery({
759
+ table: targetTable,
760
+ mode: isSingle2 ? "first" : "many",
761
+ schema,
762
+ queryConfig: join,
763
+ tableConfig: schema[tableNamesMap[(0, import_table2.getTableUniqueName)(targetTable)]],
764
+ tableNamesMap,
765
+ tables,
766
+ relationWhere: relationFilter
767
+ });
768
+ selection.push({
769
+ field: targetTable,
770
+ key: k,
771
+ selection: innerQuery.selection,
772
+ isArray: !isSingle2
773
+ });
774
+ return import_sql2.sql`left join lateral(select ${isSingle2 ? import_sql2.sql`row_to_json(${import_sql2.sql.identifier("t")}.*) ${import_sql2.sql.identifier("r")}` : import_sql2.sql`json_agg(row_to_json(${import_sql2.sql.identifier("t")}.*)) ${import_sql2.sql.identifier("r")}`} from (${innerQuery.sql}) as ${import_sql2.sql.identifier("t")}) as ${import_sql2.sql.identifier(k)} on true`;
775
+ }),
776
+ import_sql2.sql` `
777
+ );
778
+ })() : void 0;
779
+ if (extras?.sql)
780
+ selectionArr.push(extras.sql);
781
+ const selectionSet = import_sql2.sql.join(selectionArr.filter((e) => e !== void 0), import_sql2.sql`, `);
782
+ const query = import_sql2.sql`select ${selectionSet} from ${table}${import_sql2.sql` ${joins}`.if(joins)}${import_sql2.sql` where ${where}`.if(where)}${import_sql2.sql` order by ${order}`.if(order)}${import_sql2.sql` limit ${limit}`.if(limit !== void 0)}${import_sql2.sql` offset ${offset}`.if(offset !== void 0)}`;
783
+ return {
784
+ sql: query,
785
+ selection
786
+ };
787
+ }
1130
788
  }
1131
789
  // Annotate the CommonJS export names for ESM import in node:
1132
790
  0 && (module.exports = {