drizzle-orm 0.39.2-8628c8a → 0.39.2-aaa57ff

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 (1001) hide show
  1. package/_relations.cjs +328 -0
  2. package/_relations.cjs.map +1 -0
  3. package/_relations.d.cts +215 -0
  4. package/_relations.d.ts +215 -0
  5. package/_relations.js +316 -0
  6. package/_relations.js.map +1 -0
  7. package/alias.cjs.map +1 -1
  8. package/alias.d.cts +3 -3
  9. package/alias.d.ts +3 -3
  10. package/alias.js.map +1 -1
  11. package/aws-data-api/pg/driver.cjs +19 -5
  12. package/aws-data-api/pg/driver.cjs.map +1 -1
  13. package/aws-data-api/pg/driver.d.cts +9 -8
  14. package/aws-data-api/pg/driver.d.ts +9 -8
  15. package/aws-data-api/pg/driver.js +9 -8
  16. package/aws-data-api/pg/driver.js.map +1 -1
  17. package/aws-data-api/pg/migrator.cjs.map +1 -1
  18. package/aws-data-api/pg/migrator.d.cts +2 -1
  19. package/aws-data-api/pg/migrator.d.ts +2 -1
  20. package/aws-data-api/pg/migrator.js.map +1 -1
  21. package/aws-data-api/pg/session.cjs +67 -4
  22. package/aws-data-api/pg/session.cjs.map +1 -1
  23. package/aws-data-api/pg/session.d.cts +13 -8
  24. package/aws-data-api/pg/session.d.ts +13 -8
  25. package/aws-data-api/pg/session.js +67 -4
  26. package/aws-data-api/pg/session.js.map +1 -1
  27. package/better-sqlite3/driver.cjs +12 -5
  28. package/better-sqlite3/driver.cjs.map +1 -1
  29. package/better-sqlite3/driver.d.cts +7 -6
  30. package/better-sqlite3/driver.d.ts +7 -6
  31. package/better-sqlite3/driver.js +12 -8
  32. package/better-sqlite3/driver.js.map +1 -1
  33. package/better-sqlite3/migrator.cjs.map +1 -1
  34. package/better-sqlite3/migrator.d.cts +2 -1
  35. package/better-sqlite3/migrator.d.ts +2 -1
  36. package/better-sqlite3/migrator.js.map +1 -1
  37. package/better-sqlite3/session.cjs +49 -4
  38. package/better-sqlite3/session.cjs.map +1 -1
  39. package/better-sqlite3/session.d.cts +14 -8
  40. package/better-sqlite3/session.d.ts +14 -8
  41. package/better-sqlite3/session.js +49 -4
  42. package/better-sqlite3/session.js.map +1 -1
  43. package/bun-sql/driver.cjs +16 -5
  44. package/bun-sql/driver.cjs.map +1 -1
  45. package/bun-sql/driver.d.cts +7 -6
  46. package/bun-sql/driver.d.ts +7 -6
  47. package/bun-sql/driver.js +6 -8
  48. package/bun-sql/driver.js.map +1 -1
  49. package/bun-sql/migrator.cjs.map +1 -1
  50. package/bun-sql/migrator.d.cts +2 -1
  51. package/bun-sql/migrator.d.ts +2 -1
  52. package/bun-sql/migrator.js.map +1 -1
  53. package/bun-sql/session.cjs +50 -6
  54. package/bun-sql/session.cjs.map +1 -1
  55. package/bun-sql/session.d.cts +14 -9
  56. package/bun-sql/session.d.ts +14 -9
  57. package/bun-sql/session.js +50 -6
  58. package/bun-sql/session.js.map +1 -1
  59. package/bun-sqlite/driver.cjs +22 -5
  60. package/bun-sqlite/driver.cjs.map +1 -1
  61. package/bun-sqlite/driver.d.cts +7 -6
  62. package/bun-sqlite/driver.d.ts +7 -6
  63. package/bun-sqlite/driver.js +12 -8
  64. package/bun-sqlite/driver.js.map +1 -1
  65. package/bun-sqlite/migrator.cjs.map +1 -1
  66. package/bun-sqlite/migrator.d.cts +2 -1
  67. package/bun-sqlite/migrator.d.ts +2 -1
  68. package/bun-sqlite/migrator.js.map +1 -1
  69. package/bun-sqlite/session.cjs +49 -4
  70. package/bun-sqlite/session.cjs.map +1 -1
  71. package/bun-sqlite/session.d.cts +14 -8
  72. package/bun-sqlite/session.d.ts +14 -8
  73. package/bun-sqlite/session.js +49 -4
  74. package/bun-sqlite/session.js.map +1 -1
  75. package/column-builder.cjs.map +1 -1
  76. package/column-builder.d.cts +5 -6
  77. package/column-builder.d.ts +5 -6
  78. package/column-builder.js.map +1 -1
  79. package/d1/driver.cjs +22 -5
  80. package/d1/driver.cjs.map +1 -1
  81. package/d1/driver.d.cts +3 -2
  82. package/d1/driver.d.ts +3 -2
  83. package/d1/driver.js +12 -8
  84. package/d1/driver.js.map +1 -1
  85. package/d1/migrator.cjs.map +1 -1
  86. package/d1/migrator.d.cts +2 -1
  87. package/d1/migrator.d.ts +2 -1
  88. package/d1/migrator.js.map +1 -1
  89. package/d1/session.cjs +50 -8
  90. package/d1/session.cjs.map +1 -1
  91. package/d1/session.d.cts +15 -8
  92. package/d1/session.d.ts +15 -8
  93. package/d1/session.js +50 -8
  94. package/d1/session.js.map +1 -1
  95. package/durable-sqlite/driver.cjs +16 -5
  96. package/durable-sqlite/driver.cjs.map +1 -1
  97. package/durable-sqlite/driver.d.cts +3 -2
  98. package/durable-sqlite/driver.d.ts +3 -2
  99. package/durable-sqlite/driver.js +6 -8
  100. package/durable-sqlite/driver.js.map +1 -1
  101. package/durable-sqlite/migrator.cjs.map +1 -1
  102. package/durable-sqlite/migrator.d.cts +2 -1
  103. package/durable-sqlite/migrator.d.ts +2 -1
  104. package/durable-sqlite/migrator.js.map +1 -1
  105. package/durable-sqlite/session.cjs +46 -4
  106. package/durable-sqlite/session.cjs.map +1 -1
  107. package/durable-sqlite/session.d.cts +14 -8
  108. package/durable-sqlite/session.d.ts +14 -8
  109. package/durable-sqlite/session.js +46 -4
  110. package/durable-sqlite/session.js.map +1 -1
  111. package/expo-sqlite/driver.cjs +22 -5
  112. package/expo-sqlite/driver.cjs.map +1 -1
  113. package/expo-sqlite/driver.d.cts +3 -2
  114. package/expo-sqlite/driver.d.ts +3 -2
  115. package/expo-sqlite/driver.js +12 -8
  116. package/expo-sqlite/driver.js.map +1 -1
  117. package/expo-sqlite/migrator.cjs.map +1 -1
  118. package/expo-sqlite/migrator.d.cts +3 -2
  119. package/expo-sqlite/migrator.d.ts +3 -2
  120. package/expo-sqlite/migrator.js.map +1 -1
  121. package/expo-sqlite/query.cjs +13 -2
  122. package/expo-sqlite/query.cjs.map +1 -1
  123. package/expo-sqlite/query.d.cts +2 -1
  124. package/expo-sqlite/query.d.ts +2 -1
  125. package/expo-sqlite/query.js +3 -2
  126. package/expo-sqlite/query.js.map +1 -1
  127. package/expo-sqlite/session.cjs +47 -4
  128. package/expo-sqlite/session.cjs.map +1 -1
  129. package/expo-sqlite/session.d.cts +14 -8
  130. package/expo-sqlite/session.d.ts +14 -8
  131. package/expo-sqlite/session.js +47 -4
  132. package/expo-sqlite/session.js.map +1 -1
  133. package/libsql/driver-core.cjs +22 -5
  134. package/libsql/driver-core.cjs.map +1 -1
  135. package/libsql/driver-core.d.cts +2 -1
  136. package/libsql/driver-core.d.ts +2 -1
  137. package/libsql/driver-core.js +12 -8
  138. package/libsql/driver-core.js.map +1 -1
  139. package/libsql/driver.cjs.map +1 -1
  140. package/libsql/driver.d.cts +6 -5
  141. package/libsql/driver.d.ts +6 -5
  142. package/libsql/driver.js.map +1 -1
  143. package/libsql/http/index.cjs.map +1 -1
  144. package/libsql/http/index.d.cts +6 -5
  145. package/libsql/http/index.d.ts +6 -5
  146. package/libsql/http/index.js.map +1 -1
  147. package/libsql/migrator.cjs.map +1 -1
  148. package/libsql/migrator.d.cts +2 -1
  149. package/libsql/migrator.d.ts +2 -1
  150. package/libsql/migrator.js.map +1 -1
  151. package/libsql/node/index.cjs.map +1 -1
  152. package/libsql/node/index.d.cts +6 -5
  153. package/libsql/node/index.d.ts +6 -5
  154. package/libsql/node/index.js.map +1 -1
  155. package/libsql/session.cjs +56 -4
  156. package/libsql/session.cjs.map +1 -1
  157. package/libsql/session.d.cts +15 -9
  158. package/libsql/session.d.ts +15 -9
  159. package/libsql/session.js +56 -4
  160. package/libsql/session.js.map +1 -1
  161. package/libsql/sqlite3/index.cjs.map +1 -1
  162. package/libsql/sqlite3/index.d.cts +6 -5
  163. package/libsql/sqlite3/index.d.ts +6 -5
  164. package/libsql/sqlite3/index.js.map +1 -1
  165. package/libsql/wasm/index.cjs.map +1 -1
  166. package/libsql/wasm/index.d.cts +6 -5
  167. package/libsql/wasm/index.d.ts +6 -5
  168. package/libsql/wasm/index.js.map +1 -1
  169. package/libsql/web/index.cjs.map +1 -1
  170. package/libsql/web/index.d.cts +6 -5
  171. package/libsql/web/index.d.ts +6 -5
  172. package/libsql/web/index.js.map +1 -1
  173. package/libsql/ws/index.cjs.map +1 -1
  174. package/libsql/ws/index.d.cts +6 -5
  175. package/libsql/ws/index.d.ts +6 -5
  176. package/libsql/ws/index.js.map +1 -1
  177. package/mysql-core/db.cjs +30 -6
  178. package/mysql-core/db.cjs.map +1 -1
  179. package/mysql-core/db.d.cts +15 -8
  180. package/mysql-core/db.d.ts +15 -8
  181. package/mysql-core/db.js +29 -5
  182. package/mysql-core/db.js.map +1 -1
  183. package/mysql-core/dialect.cjs +197 -15
  184. package/mysql-core/dialect.cjs.map +1 -1
  185. package/mysql-core/dialect.d.cts +36 -13
  186. package/mysql-core/dialect.d.ts +36 -13
  187. package/mysql-core/dialect.js +196 -22
  188. package/mysql-core/dialect.js.map +1 -1
  189. package/mysql-core/query-builders/_query.cjs +149 -0
  190. package/mysql-core/query-builders/_query.cjs.map +1 -0
  191. package/mysql-core/query-builders/_query.d.cts +44 -0
  192. package/mysql-core/query-builders/_query.d.ts +44 -0
  193. package/mysql-core/query-builders/_query.js +114 -0
  194. package/mysql-core/query-builders/_query.js.map +1 -0
  195. package/mysql-core/query-builders/count.cjs.map +1 -1
  196. package/mysql-core/query-builders/count.d.cts +1 -1
  197. package/mysql-core/query-builders/count.d.ts +1 -1
  198. package/mysql-core/query-builders/count.js.map +1 -1
  199. package/mysql-core/query-builders/query.cjs +18 -31
  200. package/mysql-core/query-builders/query.cjs.map +1 -1
  201. package/mysql-core/query-builders/query.d.cts +8 -10
  202. package/mysql-core/query-builders/query.d.ts +8 -10
  203. package/mysql-core/query-builders/query.js +18 -31
  204. package/mysql-core/query-builders/query.js.map +1 -1
  205. package/mysql-core/session.cjs +3 -2
  206. package/mysql-core/session.cjs.map +1 -1
  207. package/mysql-core/session.d.cts +10 -7
  208. package/mysql-core/session.d.ts +10 -7
  209. package/mysql-core/session.js +3 -2
  210. package/mysql-core/session.js.map +1 -1
  211. package/mysql-proxy/driver.cjs +22 -5
  212. package/mysql-proxy/driver.cjs.map +1 -1
  213. package/mysql-proxy/driver.d.cts +3 -2
  214. package/mysql-proxy/driver.d.ts +3 -2
  215. package/mysql-proxy/driver.js +12 -8
  216. package/mysql-proxy/driver.js.map +1 -1
  217. package/mysql-proxy/migrator.cjs.map +1 -1
  218. package/mysql-proxy/migrator.d.cts +2 -1
  219. package/mysql-proxy/migrator.d.ts +2 -1
  220. package/mysql-proxy/migrator.js.map +1 -1
  221. package/mysql-proxy/session.cjs +27 -2
  222. package/mysql-proxy/session.cjs.map +1 -1
  223. package/mysql-proxy/session.d.cts +13 -8
  224. package/mysql-proxy/session.d.ts +13 -8
  225. package/mysql-proxy/session.js +27 -2
  226. package/mysql-proxy/session.js.map +1 -1
  227. package/mysql2/driver.cjs +24 -7
  228. package/mysql2/driver.cjs.map +1 -1
  229. package/mysql2/driver.d.cts +10 -9
  230. package/mysql2/driver.d.ts +10 -9
  231. package/mysql2/driver.js +14 -10
  232. package/mysql2/driver.js.map +1 -1
  233. package/mysql2/migrator.cjs.map +1 -1
  234. package/mysql2/migrator.d.cts +2 -1
  235. package/mysql2/migrator.d.ts +2 -1
  236. package/mysql2/migrator.js.map +1 -1
  237. package/mysql2/session.cjs +30 -2
  238. package/mysql2/session.cjs.map +1 -1
  239. package/mysql2/session.d.cts +13 -8
  240. package/mysql2/session.d.ts +13 -8
  241. package/mysql2/session.js +30 -2
  242. package/mysql2/session.js.map +1 -1
  243. package/neon-http/driver.cjs +21 -7
  244. package/neon-http/driver.cjs.map +1 -1
  245. package/neon-http/driver.d.cts +10 -9
  246. package/neon-http/driver.d.ts +10 -9
  247. package/neon-http/driver.js +11 -7
  248. package/neon-http/driver.js.map +1 -1
  249. package/neon-http/migrator.cjs.map +1 -1
  250. package/neon-http/migrator.d.cts +2 -1
  251. package/neon-http/migrator.d.ts +2 -1
  252. package/neon-http/migrator.js.map +1 -1
  253. package/neon-http/session.cjs +32 -2
  254. package/neon-http/session.cjs.map +1 -1
  255. package/neon-http/session.d.cts +13 -8
  256. package/neon-http/session.d.ts +13 -8
  257. package/neon-http/session.js +32 -2
  258. package/neon-http/session.js.map +1 -1
  259. package/neon-serverless/driver.cjs +18 -7
  260. package/neon-serverless/driver.cjs.map +1 -1
  261. package/neon-serverless/driver.d.cts +9 -8
  262. package/neon-serverless/driver.d.ts +9 -8
  263. package/neon-serverless/driver.js +8 -10
  264. package/neon-serverless/driver.js.map +1 -1
  265. package/neon-serverless/migrator.cjs.map +1 -1
  266. package/neon-serverless/migrator.d.cts +2 -1
  267. package/neon-serverless/migrator.d.ts +2 -1
  268. package/neon-serverless/migrator.js.map +1 -1
  269. package/neon-serverless/session.cjs +40 -5
  270. package/neon-serverless/session.cjs.map +1 -1
  271. package/neon-serverless/session.d.cts +13 -8
  272. package/neon-serverless/session.d.ts +13 -8
  273. package/neon-serverless/session.js +40 -5
  274. package/neon-serverless/session.js.map +1 -1
  275. package/node-postgres/driver.cjs +13 -7
  276. package/node-postgres/driver.cjs.map +1 -1
  277. package/node-postgres/driver.d.cts +9 -8
  278. package/node-postgres/driver.d.ts +9 -8
  279. package/node-postgres/driver.js +13 -10
  280. package/node-postgres/driver.js.map +1 -1
  281. package/node-postgres/migrator.cjs.map +1 -1
  282. package/node-postgres/migrator.d.cts +2 -1
  283. package/node-postgres/migrator.d.ts +2 -1
  284. package/node-postgres/migrator.js.map +1 -1
  285. package/node-postgres/session.cjs +45 -4
  286. package/node-postgres/session.cjs.map +1 -1
  287. package/node-postgres/session.d.cts +13 -8
  288. package/node-postgres/session.d.ts +13 -8
  289. package/node-postgres/session.js +45 -4
  290. package/node-postgres/session.js.map +1 -1
  291. package/op-sqlite/driver.cjs +22 -5
  292. package/op-sqlite/driver.cjs.map +1 -1
  293. package/op-sqlite/driver.d.cts +3 -2
  294. package/op-sqlite/driver.d.ts +3 -2
  295. package/op-sqlite/driver.js +12 -8
  296. package/op-sqlite/driver.js.map +1 -1
  297. package/op-sqlite/migrator.cjs.map +1 -1
  298. package/op-sqlite/migrator.d.cts +3 -2
  299. package/op-sqlite/migrator.d.ts +3 -2
  300. package/op-sqlite/migrator.js.map +1 -1
  301. package/op-sqlite/session.cjs +47 -4
  302. package/op-sqlite/session.cjs.map +1 -1
  303. package/op-sqlite/session.d.cts +14 -8
  304. package/op-sqlite/session.d.ts +14 -8
  305. package/op-sqlite/session.js +47 -4
  306. package/op-sqlite/session.js.map +1 -1
  307. package/package.json +260 -945
  308. package/pg-core/db.cjs +32 -5
  309. package/pg-core/db.cjs.map +1 -1
  310. package/pg-core/db.d.cts +16 -9
  311. package/pg-core/db.d.ts +16 -9
  312. package/pg-core/db.js +31 -4
  313. package/pg-core/db.js.map +1 -1
  314. package/pg-core/dialect.cjs +173 -488
  315. package/pg-core/dialect.cjs.map +1 -1
  316. package/pg-core/dialect.d.cts +27 -8
  317. package/pg-core/dialect.d.ts +27 -8
  318. package/pg-core/dialect.js +172 -495
  319. package/pg-core/dialect.js.map +1 -1
  320. package/{gel-core/query-builders/query.cjs → pg-core/query-builders/_query.cjs} +31 -15
  321. package/pg-core/query-builders/_query.cjs.map +1 -0
  322. package/pg-core/query-builders/_query.d.cts +47 -0
  323. package/pg-core/query-builders/_query.d.ts +47 -0
  324. package/{gel-core/query-builders/query.js → pg-core/query-builders/_query.js} +19 -15
  325. package/pg-core/query-builders/_query.js.map +1 -0
  326. package/pg-core/query-builders/count.cjs.map +1 -1
  327. package/pg-core/query-builders/count.d.cts +1 -1
  328. package/pg-core/query-builders/count.d.ts +1 -1
  329. package/pg-core/query-builders/count.js.map +1 -1
  330. package/pg-core/query-builders/query.cjs +15 -18
  331. package/pg-core/query-builders/query.cjs.map +1 -1
  332. package/pg-core/query-builders/query.d.cts +6 -6
  333. package/pg-core/query-builders/query.d.ts +6 -6
  334. package/pg-core/query-builders/query.js +15 -18
  335. package/pg-core/query-builders/query.js.map +1 -1
  336. package/pg-core/session.cjs +3 -2
  337. package/pg-core/session.cjs.map +1 -1
  338. package/pg-core/session.d.cts +9 -6
  339. package/pg-core/session.d.ts +9 -6
  340. package/pg-core/session.js +3 -2
  341. package/pg-core/session.js.map +1 -1
  342. package/pg-core/table.cjs +0 -2
  343. package/pg-core/table.cjs.map +1 -1
  344. package/pg-core/table.js +0 -2
  345. package/pg-core/table.js.map +1 -1
  346. package/pg-proxy/driver.cjs +21 -5
  347. package/pg-proxy/driver.cjs.map +1 -1
  348. package/pg-proxy/driver.d.cts +3 -2
  349. package/pg-proxy/driver.d.ts +3 -2
  350. package/pg-proxy/driver.js +11 -8
  351. package/pg-proxy/driver.js.map +1 -1
  352. package/pg-proxy/migrator.cjs.map +1 -1
  353. package/pg-proxy/migrator.d.cts +2 -1
  354. package/pg-proxy/migrator.d.ts +2 -1
  355. package/pg-proxy/migrator.js.map +1 -1
  356. package/pg-proxy/session.cjs +37 -2
  357. package/pg-proxy/session.cjs.map +1 -1
  358. package/pg-proxy/session.d.cts +13 -8
  359. package/pg-proxy/session.d.ts +13 -8
  360. package/pg-proxy/session.js +37 -2
  361. package/pg-proxy/session.js.map +1 -1
  362. package/pglite/driver.cjs +23 -7
  363. package/pglite/driver.cjs.map +1 -1
  364. package/pglite/driver.d.cts +9 -8
  365. package/pglite/driver.d.ts +9 -8
  366. package/pglite/driver.js +13 -10
  367. package/pglite/driver.js.map +1 -1
  368. package/pglite/migrator.cjs.map +1 -1
  369. package/pglite/migrator.d.cts +2 -1
  370. package/pglite/migrator.d.ts +2 -1
  371. package/pglite/migrator.js.map +1 -1
  372. package/pglite/session.cjs +34 -3
  373. package/pglite/session.cjs.map +1 -1
  374. package/pglite/session.d.cts +13 -8
  375. package/pglite/session.d.ts +13 -8
  376. package/pglite/session.js +34 -3
  377. package/pglite/session.js.map +1 -1
  378. package/planetscale-serverless/driver.cjs +22 -5
  379. package/planetscale-serverless/driver.cjs.map +1 -1
  380. package/planetscale-serverless/driver.d.cts +7 -6
  381. package/planetscale-serverless/driver.d.ts +7 -6
  382. package/planetscale-serverless/driver.js +12 -8
  383. package/planetscale-serverless/driver.js.map +1 -1
  384. package/planetscale-serverless/migrator.cjs.map +1 -1
  385. package/planetscale-serverless/migrator.d.cts +2 -1
  386. package/planetscale-serverless/migrator.d.ts +2 -1
  387. package/planetscale-serverless/migrator.js.map +1 -1
  388. package/planetscale-serverless/session.cjs +45 -5
  389. package/planetscale-serverless/session.cjs.map +1 -1
  390. package/planetscale-serverless/session.d.cts +14 -9
  391. package/planetscale-serverless/session.d.ts +14 -9
  392. package/planetscale-serverless/session.js +45 -5
  393. package/planetscale-serverless/session.js.map +1 -1
  394. package/postgres-js/driver.cjs +6 -5
  395. package/postgres-js/driver.cjs.map +1 -1
  396. package/postgres-js/driver.d.cts +7 -6
  397. package/postgres-js/driver.d.ts +7 -6
  398. package/postgres-js/driver.js +6 -8
  399. package/postgres-js/driver.js.map +1 -1
  400. package/postgres-js/migrator.cjs.map +1 -1
  401. package/postgres-js/migrator.d.cts +2 -1
  402. package/postgres-js/migrator.d.ts +2 -1
  403. package/postgres-js/migrator.js.map +1 -1
  404. package/postgres-js/session.cjs +51 -6
  405. package/postgres-js/session.cjs.map +1 -1
  406. package/postgres-js/session.d.cts +15 -9
  407. package/postgres-js/session.d.ts +15 -9
  408. package/postgres-js/session.js +51 -6
  409. package/postgres-js/session.js.map +1 -1
  410. package/prisma/mysql/driver.cjs +1 -1
  411. package/prisma/mysql/driver.cjs.map +1 -1
  412. package/prisma/mysql/driver.js +1 -1
  413. package/prisma/mysql/driver.js.map +1 -1
  414. package/prisma/mysql/session.cjs +3 -0
  415. package/prisma/mysql/session.cjs.map +1 -1
  416. package/prisma/mysql/session.d.cts +3 -1
  417. package/prisma/mysql/session.d.ts +3 -1
  418. package/prisma/mysql/session.js +3 -0
  419. package/prisma/mysql/session.js.map +1 -1
  420. package/prisma/pg/driver.cjs +1 -1
  421. package/prisma/pg/driver.cjs.map +1 -1
  422. package/prisma/pg/driver.js +1 -1
  423. package/prisma/pg/driver.js.map +1 -1
  424. package/prisma/pg/session.cjs +3 -0
  425. package/prisma/pg/session.cjs.map +1 -1
  426. package/prisma/pg/session.d.cts +3 -1
  427. package/prisma/pg/session.d.ts +3 -1
  428. package/prisma/pg/session.js +3 -0
  429. package/prisma/pg/session.js.map +1 -1
  430. package/prisma/sqlite/driver.cjs +1 -1
  431. package/prisma/sqlite/driver.cjs.map +1 -1
  432. package/prisma/sqlite/driver.js +1 -1
  433. package/prisma/sqlite/driver.js.map +1 -1
  434. package/prisma/sqlite/session.cjs +3 -0
  435. package/prisma/sqlite/session.cjs.map +1 -1
  436. package/prisma/sqlite/session.d.cts +4 -2
  437. package/prisma/sqlite/session.d.ts +4 -2
  438. package/prisma/sqlite/session.js +3 -0
  439. package/prisma/sqlite/session.js.map +1 -1
  440. package/relations.cjs +596 -245
  441. package/relations.cjs.map +1 -1
  442. package/relations.d.cts +292 -140
  443. package/relations.d.ts +292 -140
  444. package/relations.js +589 -240
  445. package/relations.js.map +1 -1
  446. package/singlestore/driver.cjs +1 -1
  447. package/singlestore/driver.cjs.map +1 -1
  448. package/singlestore/driver.d.cts +1 -1
  449. package/singlestore/driver.d.ts +1 -1
  450. package/singlestore/driver.js +3 -3
  451. package/singlestore/driver.js.map +1 -1
  452. package/singlestore/session.cjs.map +1 -1
  453. package/singlestore/session.d.cts +4 -4
  454. package/singlestore/session.d.ts +4 -4
  455. package/singlestore/session.js.map +1 -1
  456. package/singlestore-core/db.cjs.map +1 -1
  457. package/singlestore-core/db.d.cts +3 -3
  458. package/singlestore-core/db.d.ts +3 -3
  459. package/singlestore-core/db.js.map +1 -1
  460. package/singlestore-core/dialect.cjs +16 -6
  461. package/singlestore-core/dialect.cjs.map +1 -1
  462. package/singlestore-core/dialect.d.cts +6 -6
  463. package/singlestore-core/dialect.d.ts +6 -6
  464. package/singlestore-core/dialect.js +6 -12
  465. package/singlestore-core/dialect.js.map +1 -1
  466. package/singlestore-core/query-builders/query.cjs +12 -2
  467. package/singlestore-core/query-builders/query.cjs.map +1 -1
  468. package/singlestore-core/query-builders/query.d.cts +6 -6
  469. package/singlestore-core/query-builders/query.d.ts +6 -6
  470. package/singlestore-core/query-builders/query.js +2 -4
  471. package/singlestore-core/query-builders/query.js.map +1 -1
  472. package/singlestore-core/session.cjs.map +1 -1
  473. package/singlestore-core/session.d.cts +5 -5
  474. package/singlestore-core/session.d.ts +5 -5
  475. package/singlestore-core/session.js.map +1 -1
  476. package/singlestore-proxy/driver.cjs +1 -1
  477. package/singlestore-proxy/driver.cjs.map +1 -1
  478. package/singlestore-proxy/driver.js +3 -3
  479. package/singlestore-proxy/driver.js.map +1 -1
  480. package/singlestore-proxy/session.cjs.map +1 -1
  481. package/singlestore-proxy/session.d.cts +4 -4
  482. package/singlestore-proxy/session.d.ts +4 -4
  483. package/singlestore-proxy/session.js.map +1 -1
  484. package/sql/expressions/conditions.cjs.map +1 -1
  485. package/sql/expressions/conditions.d.cts +4 -4
  486. package/sql/expressions/conditions.d.ts +4 -4
  487. package/sql/expressions/conditions.js.map +1 -1
  488. package/sql/sql.cjs +21 -0
  489. package/sql/sql.cjs.map +1 -1
  490. package/sql/sql.d.cts +8 -8
  491. package/sql/sql.d.ts +8 -8
  492. package/sql/sql.js +22 -1
  493. package/sql/sql.js.map +1 -1
  494. package/sql-js/driver.cjs +16 -5
  495. package/sql-js/driver.cjs.map +1 -1
  496. package/sql-js/driver.d.cts +3 -2
  497. package/sql-js/driver.d.ts +3 -2
  498. package/sql-js/driver.js +6 -8
  499. package/sql-js/driver.js.map +1 -1
  500. package/sql-js/migrator.cjs.map +1 -1
  501. package/sql-js/migrator.d.cts +2 -1
  502. package/sql-js/migrator.d.ts +2 -1
  503. package/sql-js/migrator.js.map +1 -1
  504. package/sql-js/session.cjs +71 -36
  505. package/sql-js/session.cjs.map +1 -1
  506. package/sql-js/session.d.cts +16 -13
  507. package/sql-js/session.d.ts +16 -13
  508. package/sql-js/session.js +71 -36
  509. package/sql-js/session.js.map +1 -1
  510. package/sqlite-core/db.cjs +39 -12
  511. package/sqlite-core/db.cjs.map +1 -1
  512. package/sqlite-core/db.d.cts +16 -8
  513. package/sqlite-core/db.d.ts +16 -8
  514. package/sqlite-core/db.js +38 -11
  515. package/sqlite-core/db.js.map +1 -1
  516. package/sqlite-core/dialect.cjs +186 -7
  517. package/sqlite-core/dialect.cjs.map +1 -1
  518. package/sqlite-core/dialect.d.cts +31 -9
  519. package/sqlite-core/dialect.d.ts +31 -9
  520. package/sqlite-core/dialect.js +185 -14
  521. package/sqlite-core/dialect.js.map +1 -1
  522. package/sqlite-core/query-builders/_query.cjs +187 -0
  523. package/sqlite-core/query-builders/_query.cjs.map +1 -0
  524. package/sqlite-core/query-builders/_query.d.cts +55 -0
  525. package/sqlite-core/query-builders/_query.d.ts +55 -0
  526. package/sqlite-core/query-builders/_query.js +151 -0
  527. package/sqlite-core/query-builders/_query.js.map +1 -0
  528. package/sqlite-core/query-builders/count.cjs.map +1 -1
  529. package/sqlite-core/query-builders/count.d.cts +1 -1
  530. package/sqlite-core/query-builders/count.d.ts +1 -1
  531. package/sqlite-core/query-builders/count.js.map +1 -1
  532. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  533. package/sqlite-core/query-builders/delete.d.cts +1 -1
  534. package/sqlite-core/query-builders/delete.d.ts +1 -1
  535. package/sqlite-core/query-builders/delete.js.map +1 -1
  536. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  537. package/sqlite-core/query-builders/insert.d.cts +3 -3
  538. package/sqlite-core/query-builders/insert.d.ts +3 -3
  539. package/sqlite-core/query-builders/insert.js.map +1 -1
  540. package/sqlite-core/query-builders/query.cjs +56 -35
  541. package/sqlite-core/query-builders/query.cjs.map +1 -1
  542. package/sqlite-core/query-builders/query.d.cts +18 -17
  543. package/sqlite-core/query-builders/query.d.ts +18 -17
  544. package/sqlite-core/query-builders/query.js +56 -35
  545. package/sqlite-core/query-builders/query.js.map +1 -1
  546. package/sqlite-core/query-builders/select.cjs.map +1 -1
  547. package/sqlite-core/query-builders/select.d.cts +3 -3
  548. package/sqlite-core/query-builders/select.d.ts +3 -3
  549. package/sqlite-core/query-builders/select.js.map +1 -1
  550. package/sqlite-core/query-builders/update.cjs.map +1 -1
  551. package/sqlite-core/query-builders/update.d.cts +3 -3
  552. package/sqlite-core/query-builders/update.d.ts +3 -3
  553. package/sqlite-core/query-builders/update.js.map +1 -1
  554. package/sqlite-core/session.cjs +6 -2
  555. package/sqlite-core/session.cjs.map +1 -1
  556. package/sqlite-core/session.d.cts +15 -7
  557. package/sqlite-core/session.d.ts +15 -7
  558. package/sqlite-core/session.js +6 -2
  559. package/sqlite-core/session.js.map +1 -1
  560. package/sqlite-proxy/driver.cjs +23 -5
  561. package/sqlite-proxy/driver.cjs.map +1 -1
  562. package/sqlite-proxy/driver.d.cts +4 -3
  563. package/sqlite-proxy/driver.d.ts +4 -3
  564. package/sqlite-proxy/driver.js +13 -5
  565. package/sqlite-proxy/driver.js.map +1 -1
  566. package/sqlite-proxy/migrator.cjs.map +1 -1
  567. package/sqlite-proxy/migrator.d.cts +2 -1
  568. package/sqlite-proxy/migrator.d.ts +2 -1
  569. package/sqlite-proxy/migrator.js.map +1 -1
  570. package/sqlite-proxy/session.cjs +50 -6
  571. package/sqlite-proxy/session.cjs.map +1 -1
  572. package/sqlite-proxy/session.d.cts +14 -8
  573. package/sqlite-proxy/session.d.ts +14 -8
  574. package/sqlite-proxy/session.js +50 -6
  575. package/sqlite-proxy/session.js.map +1 -1
  576. package/table.cjs.map +1 -1
  577. package/table.d.cts +2 -2
  578. package/table.d.ts +2 -2
  579. package/table.js.map +1 -1
  580. package/tidb-serverless/driver.cjs +22 -5
  581. package/tidb-serverless/driver.cjs.map +1 -1
  582. package/tidb-serverless/driver.d.cts +7 -6
  583. package/tidb-serverless/driver.d.ts +7 -6
  584. package/tidb-serverless/driver.js +12 -8
  585. package/tidb-serverless/driver.js.map +1 -1
  586. package/tidb-serverless/migrator.cjs.map +1 -1
  587. package/tidb-serverless/migrator.d.cts +2 -1
  588. package/tidb-serverless/migrator.d.ts +2 -1
  589. package/tidb-serverless/migrator.js.map +1 -1
  590. package/tidb-serverless/session.cjs +62 -5
  591. package/tidb-serverless/session.cjs.map +1 -1
  592. package/tidb-serverless/session.d.cts +14 -9
  593. package/tidb-serverless/session.d.ts +14 -9
  594. package/tidb-serverless/session.js +62 -5
  595. package/tidb-serverless/session.js.map +1 -1
  596. package/utils.cjs +2 -2
  597. package/utils.cjs.map +1 -1
  598. package/utils.d.cts +3 -1
  599. package/utils.d.ts +3 -1
  600. package/utils.js +2 -2
  601. package/utils.js.map +1 -1
  602. package/vercel-postgres/driver.cjs +23 -7
  603. package/vercel-postgres/driver.cjs.map +1 -1
  604. package/vercel-postgres/driver.d.cts +9 -8
  605. package/vercel-postgres/driver.d.ts +9 -8
  606. package/vercel-postgres/driver.js +13 -10
  607. package/vercel-postgres/driver.js.map +1 -1
  608. package/vercel-postgres/migrator.cjs.map +1 -1
  609. package/vercel-postgres/migrator.d.cts +2 -1
  610. package/vercel-postgres/migrator.d.ts +2 -1
  611. package/vercel-postgres/migrator.js.map +1 -1
  612. package/vercel-postgres/session.cjs +34 -4
  613. package/vercel-postgres/session.cjs.map +1 -1
  614. package/vercel-postgres/session.d.cts +13 -8
  615. package/vercel-postgres/session.d.ts +13 -8
  616. package/vercel-postgres/session.js +34 -4
  617. package/vercel-postgres/session.js.map +1 -1
  618. package/version.cjs +1 -1
  619. package/version.d.cts +1 -1
  620. package/version.d.ts +1 -1
  621. package/version.js +1 -1
  622. package/xata-http/driver.cjs +17 -5
  623. package/xata-http/driver.cjs.map +1 -1
  624. package/xata-http/driver.d.cts +5 -4
  625. package/xata-http/driver.d.ts +5 -4
  626. package/xata-http/driver.js +7 -5
  627. package/xata-http/driver.js.map +1 -1
  628. package/xata-http/migrator.cjs.map +1 -1
  629. package/xata-http/migrator.d.cts +2 -1
  630. package/xata-http/migrator.d.ts +2 -1
  631. package/xata-http/migrator.js.map +1 -1
  632. package/xata-http/session.cjs +30 -2
  633. package/xata-http/session.cjs.map +1 -1
  634. package/xata-http/session.d.cts +13 -8
  635. package/xata-http/session.d.ts +13 -8
  636. package/xata-http/session.js +30 -2
  637. package/xata-http/session.js.map +1 -1
  638. package/gel/driver.cjs +0 -97
  639. package/gel/driver.cjs.map +0 -1
  640. package/gel/driver.d.cts +0 -38
  641. package/gel/driver.d.ts +0 -38
  642. package/gel/driver.js +0 -74
  643. package/gel/driver.js.map +0 -1
  644. package/gel/index.cjs +0 -25
  645. package/gel/index.cjs.map +0 -1
  646. package/gel/index.d.cts +0 -2
  647. package/gel/index.d.ts +0 -2
  648. package/gel/index.js +0 -3
  649. package/gel/index.js.map +0 -1
  650. package/gel/migrator.cjs +0 -5
  651. package/gel/migrator.cjs.map +0 -1
  652. package/gel/migrator.d.cts +0 -1
  653. package/gel/migrator.d.ts +0 -1
  654. package/gel/migrator.js +0 -4
  655. package/gel/migrator.js.map +0 -1
  656. package/gel/session.cjs +0 -139
  657. package/gel/session.cjs.map +0 -1
  658. package/gel/session.d.cts +0 -47
  659. package/gel/session.d.ts +0 -47
  660. package/gel/session.js +0 -113
  661. package/gel/session.js.map +0 -1
  662. package/gel-core/alias.cjs +0 -32
  663. package/gel-core/alias.cjs.map +0 -1
  664. package/gel-core/alias.d.cts +0 -4
  665. package/gel-core/alias.d.ts +0 -4
  666. package/gel-core/alias.js +0 -8
  667. package/gel-core/alias.js.map +0 -1
  668. package/gel-core/checks.cjs +0 -58
  669. package/gel-core/checks.cjs.map +0 -1
  670. package/gel-core/checks.d.cts +0 -18
  671. package/gel-core/checks.d.ts +0 -18
  672. package/gel-core/checks.js +0 -32
  673. package/gel-core/checks.js.map +0 -1
  674. package/gel-core/columns/all.cjs +0 -72
  675. package/gel-core/columns/all.cjs.map +0 -1
  676. package/gel-core/columns/all.d.cts +0 -43
  677. package/gel-core/columns/all.d.ts +0 -43
  678. package/gel-core/columns/all.js +0 -48
  679. package/gel-core/columns/all.js.map +0 -1
  680. package/gel-core/columns/bigint.cjs +0 -54
  681. package/gel-core/columns/bigint.cjs.map +0 -1
  682. package/gel-core/columns/bigint.d.cts +0 -23
  683. package/gel-core/columns/bigint.d.ts +0 -23
  684. package/gel-core/columns/bigint.js +0 -28
  685. package/gel-core/columns/bigint.js.map +0 -1
  686. package/gel-core/columns/bigintT.cjs +0 -60
  687. package/gel-core/columns/bigintT.cjs.map +0 -1
  688. package/gel-core/columns/bigintT.d.cts +0 -24
  689. package/gel-core/columns/bigintT.d.ts +0 -24
  690. package/gel-core/columns/bigintT.js +0 -34
  691. package/gel-core/columns/bigintT.js.map +0 -1
  692. package/gel-core/columns/boolean.cjs +0 -53
  693. package/gel-core/columns/boolean.cjs.map +0 -1
  694. package/gel-core/columns/boolean.d.cts +0 -22
  695. package/gel-core/columns/boolean.d.ts +0 -22
  696. package/gel-core/columns/boolean.js +0 -27
  697. package/gel-core/columns/boolean.js.map +0 -1
  698. package/gel-core/columns/bytes.cjs +0 -56
  699. package/gel-core/columns/bytes.cjs.map +0 -1
  700. package/gel-core/columns/bytes.d.cts +0 -22
  701. package/gel-core/columns/bytes.d.ts +0 -22
  702. package/gel-core/columns/bytes.js +0 -30
  703. package/gel-core/columns/bytes.js.map +0 -1
  704. package/gel-core/columns/common.cjs +0 -213
  705. package/gel-core/columns/common.cjs.map +0 -1
  706. package/gel-core/columns/common.d.cts +0 -147
  707. package/gel-core/columns/common.d.ts +0 -147
  708. package/gel-core/columns/common.js +0 -184
  709. package/gel-core/columns/common.js.map +0 -1
  710. package/gel-core/columns/custom.cjs +0 -77
  711. package/gel-core/columns/custom.cjs.map +0 -1
  712. package/gel-core/columns/custom.d.cts +0 -155
  713. package/gel-core/columns/custom.d.ts +0 -155
  714. package/gel-core/columns/custom.js +0 -51
  715. package/gel-core/columns/custom.js.map +0 -1
  716. package/gel-core/columns/date-duration.cjs +0 -56
  717. package/gel-core/columns/date-duration.cjs.map +0 -1
  718. package/gel-core/columns/date-duration.d.cts +0 -23
  719. package/gel-core/columns/date-duration.d.ts +0 -23
  720. package/gel-core/columns/date-duration.js +0 -30
  721. package/gel-core/columns/date-duration.js.map +0 -1
  722. package/gel-core/columns/date.common.cjs +0 -37
  723. package/gel-core/columns/date.common.cjs.map +0 -1
  724. package/gel-core/columns/date.common.d.cts +0 -7
  725. package/gel-core/columns/date.common.d.ts +0 -7
  726. package/gel-core/columns/date.common.js +0 -13
  727. package/gel-core/columns/date.common.js.map +0 -1
  728. package/gel-core/columns/decimal.cjs +0 -56
  729. package/gel-core/columns/decimal.cjs.map +0 -1
  730. package/gel-core/columns/decimal.d.cts +0 -26
  731. package/gel-core/columns/decimal.d.ts +0 -26
  732. package/gel-core/columns/decimal.js +0 -30
  733. package/gel-core/columns/decimal.js.map +0 -1
  734. package/gel-core/columns/double-precision.cjs +0 -62
  735. package/gel-core/columns/double-precision.cjs.map +0 -1
  736. package/gel-core/columns/double-precision.d.cts +0 -23
  737. package/gel-core/columns/double-precision.d.ts +0 -23
  738. package/gel-core/columns/double-precision.js +0 -36
  739. package/gel-core/columns/double-precision.js.map +0 -1
  740. package/gel-core/columns/duration.cjs +0 -53
  741. package/gel-core/columns/duration.cjs.map +0 -1
  742. package/gel-core/columns/duration.d.cts +0 -23
  743. package/gel-core/columns/duration.d.ts +0 -23
  744. package/gel-core/columns/duration.js +0 -27
  745. package/gel-core/columns/duration.js.map +0 -1
  746. package/gel-core/columns/index.cjs +0 -65
  747. package/gel-core/columns/index.cjs.map +0 -1
  748. package/gel-core/columns/index.d.cts +0 -22
  749. package/gel-core/columns/index.d.ts +0 -22
  750. package/gel-core/columns/index.js +0 -23
  751. package/gel-core/columns/index.js.map +0 -1
  752. package/gel-core/columns/int.common.cjs +0 -67
  753. package/gel-core/columns/int.common.cjs.map +0 -1
  754. package/gel-core/columns/int.common.d.cts +0 -15
  755. package/gel-core/columns/int.common.d.ts +0 -15
  756. package/gel-core/columns/int.common.js +0 -43
  757. package/gel-core/columns/int.common.js.map +0 -1
  758. package/gel-core/columns/integer.cjs +0 -54
  759. package/gel-core/columns/integer.cjs.map +0 -1
  760. package/gel-core/columns/integer.d.cts +0 -23
  761. package/gel-core/columns/integer.d.ts +0 -23
  762. package/gel-core/columns/integer.js +0 -28
  763. package/gel-core/columns/integer.js.map +0 -1
  764. package/gel-core/columns/json.cjs +0 -56
  765. package/gel-core/columns/json.cjs.map +0 -1
  766. package/gel-core/columns/json.d.cts +0 -26
  767. package/gel-core/columns/json.d.ts +0 -26
  768. package/gel-core/columns/json.js +0 -30
  769. package/gel-core/columns/json.js.map +0 -1
  770. package/gel-core/columns/localdate.cjs +0 -57
  771. package/gel-core/columns/localdate.cjs.map +0 -1
  772. package/gel-core/columns/localdate.d.cts +0 -24
  773. package/gel-core/columns/localdate.d.ts +0 -24
  774. package/gel-core/columns/localdate.js +0 -31
  775. package/gel-core/columns/localdate.js.map +0 -1
  776. package/gel-core/columns/localtime.cjs +0 -57
  777. package/gel-core/columns/localtime.cjs.map +0 -1
  778. package/gel-core/columns/localtime.d.cts +0 -24
  779. package/gel-core/columns/localtime.d.ts +0 -24
  780. package/gel-core/columns/localtime.js +0 -31
  781. package/gel-core/columns/localtime.js.map +0 -1
  782. package/gel-core/columns/real.cjs +0 -57
  783. package/gel-core/columns/real.cjs.map +0 -1
  784. package/gel-core/columns/real.d.cts +0 -28
  785. package/gel-core/columns/real.d.ts +0 -28
  786. package/gel-core/columns/real.js +0 -31
  787. package/gel-core/columns/real.js.map +0 -1
  788. package/gel-core/columns/relative-duration.cjs +0 -56
  789. package/gel-core/columns/relative-duration.cjs.map +0 -1
  790. package/gel-core/columns/relative-duration.d.cts +0 -23
  791. package/gel-core/columns/relative-duration.d.ts +0 -23
  792. package/gel-core/columns/relative-duration.js +0 -30
  793. package/gel-core/columns/relative-duration.js.map +0 -1
  794. package/gel-core/columns/smallint.cjs +0 -54
  795. package/gel-core/columns/smallint.cjs.map +0 -1
  796. package/gel-core/columns/smallint.d.cts +0 -23
  797. package/gel-core/columns/smallint.d.ts +0 -23
  798. package/gel-core/columns/smallint.js +0 -28
  799. package/gel-core/columns/smallint.js.map +0 -1
  800. package/gel-core/columns/text.cjs +0 -54
  801. package/gel-core/columns/text.cjs.map +0 -1
  802. package/gel-core/columns/text.d.cts +0 -26
  803. package/gel-core/columns/text.d.ts +0 -26
  804. package/gel-core/columns/text.js +0 -28
  805. package/gel-core/columns/text.js.map +0 -1
  806. package/gel-core/columns/timestamp.cjs +0 -60
  807. package/gel-core/columns/timestamp.cjs.map +0 -1
  808. package/gel-core/columns/timestamp.d.cts +0 -28
  809. package/gel-core/columns/timestamp.d.ts +0 -28
  810. package/gel-core/columns/timestamp.js +0 -34
  811. package/gel-core/columns/timestamp.js.map +0 -1
  812. package/gel-core/columns/timestamptz.cjs +0 -60
  813. package/gel-core/columns/timestamptz.cjs.map +0 -1
  814. package/gel-core/columns/timestamptz.d.cts +0 -27
  815. package/gel-core/columns/timestamptz.d.ts +0 -27
  816. package/gel-core/columns/timestamptz.js +0 -34
  817. package/gel-core/columns/timestamptz.js.map +0 -1
  818. package/gel-core/columns/uuid.cjs +0 -53
  819. package/gel-core/columns/uuid.cjs.map +0 -1
  820. package/gel-core/columns/uuid.d.cts +0 -22
  821. package/gel-core/columns/uuid.d.ts +0 -22
  822. package/gel-core/columns/uuid.js +0 -27
  823. package/gel-core/columns/uuid.js.map +0 -1
  824. package/gel-core/db.cjs +0 -338
  825. package/gel-core/db.cjs.map +0 -1
  826. package/gel-core/db.d.cts +0 -281
  827. package/gel-core/db.d.ts +0 -281
  828. package/gel-core/db.js +0 -319
  829. package/gel-core/db.js.map +0 -1
  830. package/gel-core/dialect.cjs +0 -1142
  831. package/gel-core/dialect.cjs.map +0 -1
  832. package/gel-core/dialect.d.cts +0 -62
  833. package/gel-core/dialect.d.ts +0 -62
  834. package/gel-core/dialect.js +0 -1128
  835. package/gel-core/dialect.js.map +0 -1
  836. package/gel-core/expressions.cjs +0 -49
  837. package/gel-core/expressions.cjs.map +0 -1
  838. package/gel-core/expressions.d.cts +0 -8
  839. package/gel-core/expressions.d.ts +0 -8
  840. package/gel-core/expressions.js +0 -22
  841. package/gel-core/expressions.js.map +0 -1
  842. package/gel-core/foreign-keys.cjs +0 -100
  843. package/gel-core/foreign-keys.cjs.map +0 -1
  844. package/gel-core/foreign-keys.d.cts +0 -48
  845. package/gel-core/foreign-keys.d.ts +0 -48
  846. package/gel-core/foreign-keys.js +0 -74
  847. package/gel-core/foreign-keys.js.map +0 -1
  848. package/gel-core/index.cjs +0 -61
  849. package/gel-core/index.cjs.map +0 -1
  850. package/gel-core/index.d.cts +0 -20
  851. package/gel-core/index.d.ts +0 -20
  852. package/gel-core/index.js +0 -21
  853. package/gel-core/index.js.map +0 -1
  854. package/gel-core/indexes.cjs +0 -149
  855. package/gel-core/indexes.cjs.map +0 -1
  856. package/gel-core/indexes.d.cts +0 -79
  857. package/gel-core/indexes.d.ts +0 -79
  858. package/gel-core/indexes.js +0 -121
  859. package/gel-core/indexes.js.map +0 -1
  860. package/gel-core/policies.cjs +0 -58
  861. package/gel-core/policies.cjs.map +0 -1
  862. package/gel-core/policies.d.cts +0 -24
  863. package/gel-core/policies.d.ts +0 -24
  864. package/gel-core/policies.js +0 -33
  865. package/gel-core/policies.js.map +0 -1
  866. package/gel-core/primary-keys.cjs +0 -68
  867. package/gel-core/primary-keys.cjs.map +0 -1
  868. package/gel-core/primary-keys.d.cts +0 -30
  869. package/gel-core/primary-keys.d.ts +0 -30
  870. package/gel-core/primary-keys.js +0 -42
  871. package/gel-core/primary-keys.js.map +0 -1
  872. package/gel-core/query-builders/count.cjs +0 -73
  873. package/gel-core/query-builders/count.cjs.map +0 -1
  874. package/gel-core/query-builders/count.d.cts +0 -25
  875. package/gel-core/query-builders/count.d.ts +0 -25
  876. package/gel-core/query-builders/count.js +0 -49
  877. package/gel-core/query-builders/count.js.map +0 -1
  878. package/gel-core/query-builders/delete.cjs +0 -105
  879. package/gel-core/query-builders/delete.cjs.map +0 -1
  880. package/gel-core/query-builders/delete.d.cts +0 -99
  881. package/gel-core/query-builders/delete.d.ts +0 -99
  882. package/gel-core/query-builders/delete.js +0 -81
  883. package/gel-core/query-builders/delete.js.map +0 -1
  884. package/gel-core/query-builders/index.cjs +0 -35
  885. package/gel-core/query-builders/index.cjs.map +0 -1
  886. package/gel-core/query-builders/index.d.cts +0 -7
  887. package/gel-core/query-builders/index.d.ts +0 -7
  888. package/gel-core/query-builders/index.js +0 -8
  889. package/gel-core/query-builders/index.js.map +0 -1
  890. package/gel-core/query-builders/insert.cjs +0 -218
  891. package/gel-core/query-builders/insert.cjs.map +0 -1
  892. package/gel-core/query-builders/insert.d.cts +0 -116
  893. package/gel-core/query-builders/insert.d.ts +0 -116
  894. package/gel-core/query-builders/insert.js +0 -193
  895. package/gel-core/query-builders/insert.js.map +0 -1
  896. package/gel-core/query-builders/query-builder.cjs +0 -114
  897. package/gel-core/query-builders/query-builder.cjs.map +0 -1
  898. package/gel-core/query-builders/query-builder.d.cts +0 -40
  899. package/gel-core/query-builders/query-builder.d.ts +0 -40
  900. package/gel-core/query-builders/query-builder.js +0 -90
  901. package/gel-core/query-builders/query-builder.js.map +0 -1
  902. package/gel-core/query-builders/query.cjs.map +0 -1
  903. package/gel-core/query-builders/query.d.cts +0 -46
  904. package/gel-core/query-builders/query.d.ts +0 -46
  905. package/gel-core/query-builders/query.js.map +0 -1
  906. package/gel-core/query-builders/raw.cjs +0 -57
  907. package/gel-core/query-builders/raw.cjs.map +0 -1
  908. package/gel-core/query-builders/raw.d.cts +0 -22
  909. package/gel-core/query-builders/raw.d.ts +0 -22
  910. package/gel-core/query-builders/raw.js +0 -33
  911. package/gel-core/query-builders/raw.js.map +0 -1
  912. package/gel-core/query-builders/refresh-materialized-view.cjs +0 -77
  913. package/gel-core/query-builders/refresh-materialized-view.cjs.map +0 -1
  914. package/gel-core/query-builders/refresh-materialized-view.d.cts +0 -27
  915. package/gel-core/query-builders/refresh-materialized-view.d.ts +0 -27
  916. package/gel-core/query-builders/refresh-materialized-view.js +0 -53
  917. package/gel-core/query-builders/refresh-materialized-view.js.map +0 -1
  918. package/gel-core/query-builders/select.cjs +0 -775
  919. package/gel-core/query-builders/select.cjs.map +0 -1
  920. package/gel-core/query-builders/select.d.cts +0 -721
  921. package/gel-core/query-builders/select.d.ts +0 -721
  922. package/gel-core/query-builders/select.js +0 -748
  923. package/gel-core/query-builders/select.js.map +0 -1
  924. package/gel-core/query-builders/select.types.cjs +0 -17
  925. package/gel-core/query-builders/select.types.cjs.map +0 -1
  926. package/gel-core/query-builders/select.types.d.cts +0 -138
  927. package/gel-core/query-builders/select.types.d.ts +0 -138
  928. package/gel-core/query-builders/select.types.js +0 -1
  929. package/gel-core/query-builders/select.types.js.map +0 -1
  930. package/gel-core/query-builders/update.cjs +0 -226
  931. package/gel-core/query-builders/update.cjs.map +0 -1
  932. package/gel-core/query-builders/update.d.cts +0 -166
  933. package/gel-core/query-builders/update.d.ts +0 -166
  934. package/gel-core/query-builders/update.js +0 -205
  935. package/gel-core/query-builders/update.js.map +0 -1
  936. package/gel-core/roles.cjs +0 -57
  937. package/gel-core/roles.cjs.map +0 -1
  938. package/gel-core/roles.d.cts +0 -13
  939. package/gel-core/roles.d.ts +0 -13
  940. package/gel-core/roles.js +0 -32
  941. package/gel-core/roles.js.map +0 -1
  942. package/gel-core/schema.cjs +0 -74
  943. package/gel-core/schema.cjs.map +0 -1
  944. package/gel-core/schema.d.cts +0 -15
  945. package/gel-core/schema.d.ts +0 -15
  946. package/gel-core/schema.js +0 -48
  947. package/gel-core/schema.js.map +0 -1
  948. package/gel-core/sequence.cjs +0 -52
  949. package/gel-core/sequence.cjs.map +0 -1
  950. package/gel-core/sequence.d.cts +0 -18
  951. package/gel-core/sequence.d.ts +0 -18
  952. package/gel-core/sequence.js +0 -25
  953. package/gel-core/sequence.js.map +0 -1
  954. package/gel-core/session.cjs +0 -94
  955. package/gel-core/session.cjs.map +0 -1
  956. package/gel-core/session.d.cts +0 -56
  957. package/gel-core/session.d.ts +0 -56
  958. package/gel-core/session.js +0 -68
  959. package/gel-core/session.js.map +0 -1
  960. package/gel-core/subquery.cjs +0 -17
  961. package/gel-core/subquery.cjs.map +0 -1
  962. package/gel-core/subquery.d.cts +0 -5
  963. package/gel-core/subquery.d.ts +0 -5
  964. package/gel-core/subquery.js +0 -1
  965. package/gel-core/subquery.js.map +0 -1
  966. package/gel-core/table.cjs +0 -100
  967. package/gel-core/table.cjs.map +0 -1
  968. package/gel-core/table.d.cts +0 -95
  969. package/gel-core/table.d.ts +0 -95
  970. package/gel-core/table.js +0 -71
  971. package/gel-core/table.js.map +0 -1
  972. package/gel-core/unique-constraint.cjs +0 -89
  973. package/gel-core/unique-constraint.cjs.map +0 -1
  974. package/gel-core/unique-constraint.d.cts +0 -25
  975. package/gel-core/unique-constraint.d.ts +0 -25
  976. package/gel-core/unique-constraint.js +0 -61
  977. package/gel-core/unique-constraint.js.map +0 -1
  978. package/gel-core/utils.cjs +0 -100
  979. package/gel-core/utils.cjs.map +0 -1
  980. package/gel-core/utils.d.cts +0 -51
  981. package/gel-core/utils.d.ts +0 -51
  982. package/gel-core/utils.js +0 -74
  983. package/gel-core/utils.js.map +0 -1
  984. package/gel-core/view-base.cjs +0 -33
  985. package/gel-core/view-base.cjs.map +0 -1
  986. package/gel-core/view-base.d.cts +0 -8
  987. package/gel-core/view-base.d.ts +0 -8
  988. package/gel-core/view-base.js +0 -9
  989. package/gel-core/view-base.js.map +0 -1
  990. package/gel-core/view-common.cjs +0 -29
  991. package/gel-core/view-common.cjs.map +0 -1
  992. package/gel-core/view-common.d.cts +0 -1
  993. package/gel-core/view-common.d.ts +0 -1
  994. package/gel-core/view-common.js +0 -5
  995. package/gel-core/view-common.js.map +0 -1
  996. package/gel-core/view.cjs +0 -302
  997. package/gel-core/view.cjs.map +0 -1
  998. package/gel-core/view.d.cts +0 -150
  999. package/gel-core/view.d.ts +0 -150
  1000. package/gel-core/view.js +0 -268
  1001. package/gel-core/view.js.map +0 -1
@@ -1,1128 +0,0 @@
1
- import { aliasedTable, aliasedTableColumn, mapColumnsInAliasedSQLToAlias, mapColumnsInSQLToAlias } from "../alias.js";
2
- import { CasingCache } from "../casing.js";
3
- import { Column } from "../column.js";
4
- import { entityKind, is } from "../entity.js";
5
- import { DrizzleError } from "../errors.js";
6
- import { GelColumn, GelDecimal, GelJson, GelUUID } from "./columns/index.js";
7
- import { GelTable } from "./table.js";
8
- import {
9
- getOperators,
10
- getOrderByOperators,
11
- Many,
12
- normalizeRelation,
13
- One
14
- } from "../relations.js";
15
- import { and, eq, View } from "../sql/index.js";
16
- import {
17
- Param,
18
- SQL,
19
- sql
20
- } from "../sql/sql.js";
21
- import { Subquery } from "../subquery.js";
22
- import { getTableName, getTableUniqueName, Table } from "../table.js";
23
- import { orderSelectedFields } from "../utils.js";
24
- import { ViewBaseConfig } from "../view-common.js";
25
- import { GelTimestamp } from "./columns/timestamp.js";
26
- import { GelViewBase } from "./view-base.js";
27
- class GelDialect {
28
- static [entityKind] = "GelDialect";
29
- /** @internal */
30
- casing;
31
- constructor(config) {
32
- this.casing = new CasingCache(config?.casing);
33
- }
34
- // TODO can not migrate gel with drizzle
35
- // async migrate(migrations: MigrationMeta[], session: GelSession, config: string | MigrationConfig): Promise<void> {
36
- // const migrationsTable = typeof config === 'string'
37
- // ? '__drizzle_migrations'
38
- // : config.migrationsTable ?? '__drizzle_migrations';
39
- // const migrationsSchema = typeof config === 'string' ? 'drizzle' : config.migrationsSchema ?? 'drizzle';
40
- // const migrationTableCreate = sql`
41
- // CREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsSchema)}.${sql.identifier(migrationsTable)} (
42
- // id SERIAL PRIMARY KEY,
43
- // hash text NOT NULL,
44
- // created_at bigint
45
- // )
46
- // `;
47
- // await session.execute(sql`CREATE SCHEMA IF NOT EXISTS ${sql.identifier(migrationsSchema)}`);
48
- // await session.execute(migrationTableCreate);
49
- // const dbMigrations = await session.all<{ id: number; hash: string; created_at: string }>(
50
- // sql`select id, hash, created_at from ${sql.identifier(migrationsSchema)}.${
51
- // sql.identifier(migrationsTable)
52
- // } order by created_at desc limit 1`,
53
- // );
54
- // const lastDbMigration = dbMigrations[0];
55
- // await session.transaction(async (tx) => {
56
- // for await (const migration of migrations) {
57
- // if (
58
- // !lastDbMigration
59
- // || Number(lastDbMigration.created_at) < migration.folderMillis
60
- // ) {
61
- // for (const stmt of migration.sql) {
62
- // await tx.execute(sql.raw(stmt));
63
- // }
64
- // await tx.execute(
65
- // sql`insert into ${sql.identifier(migrationsSchema)}.${
66
- // sql.identifier(migrationsTable)
67
- // } ("hash", "created_at") values(${migration.hash}, ${migration.folderMillis})`,
68
- // );
69
- // }
70
- // }
71
- // });
72
- // }
73
- escapeName(name) {
74
- return `"${name}"`;
75
- }
76
- escapeParam(num) {
77
- return `$${num + 1}`;
78
- }
79
- escapeString(str) {
80
- return `'${str.replace(/'/g, "''")}'`;
81
- }
82
- buildWithCTE(queries) {
83
- if (!queries?.length)
84
- return void 0;
85
- const withSqlChunks = [sql`with `];
86
- for (const [i, w] of queries.entries()) {
87
- withSqlChunks.push(sql`${sql.identifier(w._.alias)} as (${w._.sql})`);
88
- if (i < queries.length - 1) {
89
- withSqlChunks.push(sql`, `);
90
- }
91
- }
92
- withSqlChunks.push(sql` `);
93
- return sql.join(withSqlChunks);
94
- }
95
- buildDeleteQuery({ table, where, returning, withList }) {
96
- const withSql = this.buildWithCTE(withList);
97
- const returningSql = returning ? sql` returning ${this.buildSelection(returning, { isSingleTable: true })}` : void 0;
98
- const whereSql = where ? sql` where ${where}` : void 0;
99
- return sql`${withSql}delete from ${table}${whereSql}${returningSql}`;
100
- }
101
- buildUpdateSet(table, set) {
102
- const tableColumns = table[Table.Symbol.Columns];
103
- const columnNames = Object.keys(tableColumns).filter(
104
- (colName) => set[colName] !== void 0 || tableColumns[colName]?.onUpdateFn !== void 0
105
- );
106
- const setSize = columnNames.length;
107
- return sql.join(columnNames.flatMap((colName, i) => {
108
- const col = tableColumns[colName];
109
- const value = set[colName] ?? sql.param(col.onUpdateFn(), col);
110
- const res = sql`${sql.identifier(this.casing.getColumnCasing(col))} = ${value}`;
111
- if (i < setSize - 1) {
112
- return [res, sql.raw(", ")];
113
- }
114
- return [res];
115
- }));
116
- }
117
- buildUpdateQuery({ table, set, where, returning, withList, from, joins }) {
118
- const withSql = this.buildWithCTE(withList);
119
- const tableName = table[GelTable.Symbol.Name];
120
- const tableSchema = table[GelTable.Symbol.Schema];
121
- const origTableName = table[GelTable.Symbol.OriginalName];
122
- const alias = tableName === origTableName ? void 0 : tableName;
123
- const tableSql = sql`${tableSchema ? sql`${sql.identifier(tableSchema)}.` : void 0}${sql.identifier(origTableName)}${alias && sql` ${sql.identifier(alias)}`}`;
124
- const setSql = this.buildUpdateSet(table, set);
125
- const fromSql = from && sql.join([sql.raw(" from "), this.buildFromTable(from)]);
126
- const joinsSql = this.buildJoins(joins);
127
- const returningSql = returning ? sql` returning ${this.buildSelection(returning, { isSingleTable: !from })}` : void 0;
128
- const whereSql = where ? sql` where ${where}` : void 0;
129
- return sql`${withSql}update ${tableSql} set ${setSql}${fromSql}${joinsSql}${whereSql}${returningSql}`;
130
- }
131
- /**
132
- * Builds selection SQL with provided fields/expressions
133
- *
134
- * Examples:
135
- *
136
- * `select <selection> from`
137
- *
138
- * `insert ... returning <selection>`
139
- *
140
- * If `isSingleTable` is true, then columns won't be prefixed with table name
141
- */
142
- buildSelection(fields, { isSingleTable = false } = {}) {
143
- const columnsLen = fields.length;
144
- const chunks = fields.flatMap(({ field }, i) => {
145
- const chunk = [];
146
- if (is(field, SQL.Aliased) && field.isSelectionField) {
147
- chunk.push(sql.identifier(field.fieldAlias));
148
- } else if (is(field, SQL.Aliased) || is(field, SQL)) {
149
- const query = is(field, SQL.Aliased) ? field.sql : field;
150
- if (isSingleTable) {
151
- chunk.push(
152
- new SQL(
153
- query.queryChunks.map((c) => {
154
- if (is(c, GelColumn)) {
155
- return sql.identifier(this.casing.getColumnCasing(c));
156
- }
157
- return c;
158
- })
159
- )
160
- );
161
- } else {
162
- chunk.push(query);
163
- }
164
- if (is(field, SQL.Aliased)) {
165
- chunk.push(sql` as ${sql.identifier(field.fieldAlias)}`);
166
- }
167
- } else if (is(field, Column)) {
168
- if (isSingleTable) {
169
- chunk.push(sql.identifier(this.casing.getColumnCasing(field)));
170
- } else {
171
- chunk.push(field);
172
- }
173
- }
174
- if (i < columnsLen - 1) {
175
- chunk.push(sql`, `);
176
- }
177
- return chunk;
178
- });
179
- return sql.join(chunks);
180
- }
181
- buildJoins(joins) {
182
- if (!joins || joins.length === 0) {
183
- return void 0;
184
- }
185
- const joinsArray = [];
186
- for (const [index, joinMeta] of joins.entries()) {
187
- if (index === 0) {
188
- joinsArray.push(sql` `);
189
- }
190
- const table = joinMeta.table;
191
- const lateralSql = joinMeta.lateral ? sql` lateral` : void 0;
192
- if (is(table, GelTable)) {
193
- const tableName = table[GelTable.Symbol.Name];
194
- const tableSchema = table[GelTable.Symbol.Schema];
195
- const origTableName = table[GelTable.Symbol.OriginalName];
196
- const alias = tableName === origTableName ? void 0 : joinMeta.alias;
197
- joinsArray.push(
198
- sql`${sql.raw(joinMeta.joinType)} join${lateralSql} ${tableSchema ? sql`${sql.identifier(tableSchema)}.` : void 0}${sql.identifier(origTableName)}${alias && sql` ${sql.identifier(alias)}`} on ${joinMeta.on}`
199
- );
200
- } else if (is(table, View)) {
201
- const viewName = table[ViewBaseConfig].name;
202
- const viewSchema = table[ViewBaseConfig].schema;
203
- const origViewName = table[ViewBaseConfig].originalName;
204
- const alias = viewName === origViewName ? void 0 : joinMeta.alias;
205
- joinsArray.push(
206
- sql`${sql.raw(joinMeta.joinType)} join${lateralSql} ${viewSchema ? sql`${sql.identifier(viewSchema)}.` : void 0}${sql.identifier(origViewName)}${alias && sql` ${sql.identifier(alias)}`} on ${joinMeta.on}`
207
- );
208
- } else {
209
- joinsArray.push(
210
- sql`${sql.raw(joinMeta.joinType)} join${lateralSql} ${table} on ${joinMeta.on}`
211
- );
212
- }
213
- if (index < joins.length - 1) {
214
- joinsArray.push(sql` `);
215
- }
216
- }
217
- return sql.join(joinsArray);
218
- }
219
- buildFromTable(table) {
220
- if (is(table, Table) && table[Table.Symbol.OriginalName] !== table[Table.Symbol.Name]) {
221
- let fullName = sql`${sql.identifier(table[Table.Symbol.OriginalName])}`;
222
- if (table[Table.Symbol.Schema]) {
223
- fullName = sql`${sql.identifier(table[Table.Symbol.Schema])}.${fullName}`;
224
- }
225
- return sql`${fullName} ${sql.identifier(table[Table.Symbol.Name])}`;
226
- }
227
- return table;
228
- }
229
- buildSelectQuery({
230
- withList,
231
- fields,
232
- fieldsFlat,
233
- where,
234
- having,
235
- table,
236
- joins,
237
- orderBy,
238
- groupBy,
239
- limit,
240
- offset,
241
- lockingClause,
242
- distinct,
243
- setOperators
244
- }) {
245
- const fieldsList = fieldsFlat ?? orderSelectedFields(fields);
246
- for (const f of fieldsList) {
247
- if (is(f.field, Column) && getTableName(f.field.table) !== (is(table, Subquery) ? table._.alias : is(table, GelViewBase) ? table[ViewBaseConfig].name : is(table, SQL) ? void 0 : getTableName(table)) && !((table2) => joins?.some(
248
- ({ alias }) => alias === (table2[Table.Symbol.IsAlias] ? getTableName(table2) : table2[Table.Symbol.BaseName])
249
- ))(f.field.table)) {
250
- const tableName = getTableName(f.field.table);
251
- throw new Error(
252
- `Your "${f.path.join("->")}" field references a column "${tableName}"."${f.field.name}", but the table "${tableName}" is not part of the query! Did you forget to join it?`
253
- );
254
- }
255
- }
256
- const isSingleTable = !joins || joins.length === 0;
257
- const withSql = this.buildWithCTE(withList);
258
- let distinctSql;
259
- if (distinct) {
260
- distinctSql = distinct === true ? sql` distinct` : sql` distinct on (${sql.join(distinct.on, sql`, `)})`;
261
- }
262
- const selection = this.buildSelection(fieldsList, { isSingleTable });
263
- const tableSql = this.buildFromTable(table);
264
- const joinsSql = this.buildJoins(joins);
265
- const whereSql = where ? sql` where ${where}` : void 0;
266
- const havingSql = having ? sql` having ${having}` : void 0;
267
- let orderBySql;
268
- if (orderBy && orderBy.length > 0) {
269
- orderBySql = sql` order by ${sql.join(orderBy, sql`, `)}`;
270
- }
271
- let groupBySql;
272
- if (groupBy && groupBy.length > 0) {
273
- groupBySql = sql` group by ${sql.join(groupBy, sql`, `)}`;
274
- }
275
- const limitSql = typeof limit === "object" || typeof limit === "number" && limit >= 0 ? sql` limit ${limit}` : void 0;
276
- const offsetSql = offset ? sql` offset ${offset}` : void 0;
277
- const lockingClauseSql = sql.empty();
278
- if (lockingClause) {
279
- const clauseSql = sql` for ${sql.raw(lockingClause.strength)}`;
280
- if (lockingClause.config.of) {
281
- clauseSql.append(
282
- sql` of ${sql.join(
283
- Array.isArray(lockingClause.config.of) ? lockingClause.config.of : [lockingClause.config.of],
284
- sql`, `
285
- )}`
286
- );
287
- }
288
- if (lockingClause.config.noWait) {
289
- clauseSql.append(sql` no wait`);
290
- } else if (lockingClause.config.skipLocked) {
291
- clauseSql.append(sql` skip locked`);
292
- }
293
- lockingClauseSql.append(clauseSql);
294
- }
295
- const finalQuery = sql`${withSql}select${distinctSql} ${selection} from ${tableSql}${joinsSql}${whereSql}${groupBySql}${havingSql}${orderBySql}${limitSql}${offsetSql}${lockingClauseSql}`;
296
- if (setOperators.length > 0) {
297
- return this.buildSetOperations(finalQuery, setOperators);
298
- }
299
- return finalQuery;
300
- }
301
- buildSetOperations(leftSelect, setOperators) {
302
- const [setOperator, ...rest] = setOperators;
303
- if (!setOperator) {
304
- throw new Error("Cannot pass undefined values to any set operator");
305
- }
306
- if (rest.length === 0) {
307
- return this.buildSetOperationQuery({ leftSelect, setOperator });
308
- }
309
- return this.buildSetOperations(
310
- this.buildSetOperationQuery({ leftSelect, setOperator }),
311
- rest
312
- );
313
- }
314
- buildSetOperationQuery({
315
- leftSelect,
316
- setOperator: { type, isAll, rightSelect, limit, orderBy, offset }
317
- }) {
318
- const leftChunk = sql`(${leftSelect.getSQL()}) `;
319
- const rightChunk = sql`(${rightSelect.getSQL()})`;
320
- let orderBySql;
321
- if (orderBy && orderBy.length > 0) {
322
- const orderByValues = [];
323
- for (const singleOrderBy of orderBy) {
324
- if (is(singleOrderBy, GelColumn)) {
325
- orderByValues.push(sql.identifier(singleOrderBy.name));
326
- } else if (is(singleOrderBy, SQL)) {
327
- for (let i = 0; i < singleOrderBy.queryChunks.length; i++) {
328
- const chunk = singleOrderBy.queryChunks[i];
329
- if (is(chunk, GelColumn)) {
330
- singleOrderBy.queryChunks[i] = sql.identifier(chunk.name);
331
- }
332
- }
333
- orderByValues.push(sql`${singleOrderBy}`);
334
- } else {
335
- orderByValues.push(sql`${singleOrderBy}`);
336
- }
337
- }
338
- orderBySql = sql` order by ${sql.join(orderByValues, sql`, `)} `;
339
- }
340
- const limitSql = typeof limit === "object" || typeof limit === "number" && limit >= 0 ? sql` limit ${limit}` : void 0;
341
- const operatorChunk = sql.raw(`${type} ${isAll ? "all " : ""}`);
342
- const offsetSql = offset ? sql` offset ${offset}` : void 0;
343
- return sql`${leftChunk}${operatorChunk}${rightChunk}${orderBySql}${limitSql}${offsetSql}`;
344
- }
345
- buildInsertQuery({ table, values: valuesOrSelect, onConflict, returning, withList, select, overridingSystemValue_ }) {
346
- const valuesSqlList = [];
347
- const columns = table[Table.Symbol.Columns];
348
- const colEntries = Object.entries(columns).filter(([_, col]) => !col.shouldDisableInsert());
349
- const insertOrder = colEntries.map(
350
- ([, column]) => sql.identifier(this.casing.getColumnCasing(column))
351
- );
352
- if (select) {
353
- const select2 = valuesOrSelect;
354
- if (is(select2, SQL)) {
355
- valuesSqlList.push(select2);
356
- } else {
357
- valuesSqlList.push(select2.getSQL());
358
- }
359
- } else {
360
- const values = valuesOrSelect;
361
- valuesSqlList.push(sql.raw("values "));
362
- for (const [valueIndex, value] of values.entries()) {
363
- const valueList = [];
364
- for (const [fieldName, col] of colEntries) {
365
- const colValue = value[fieldName];
366
- if (colValue === void 0 || is(colValue, Param) && colValue.value === void 0) {
367
- if (col.defaultFn !== void 0) {
368
- const defaultFnResult = col.defaultFn();
369
- const defaultValue = is(defaultFnResult, SQL) ? defaultFnResult : sql.param(defaultFnResult, col);
370
- valueList.push(defaultValue);
371
- } else if (!col.default && col.onUpdateFn !== void 0) {
372
- const onUpdateFnResult = col.onUpdateFn();
373
- const newValue = is(onUpdateFnResult, SQL) ? onUpdateFnResult : sql.param(onUpdateFnResult, col);
374
- valueList.push(newValue);
375
- } else {
376
- valueList.push(sql`default`);
377
- }
378
- } else {
379
- valueList.push(colValue);
380
- }
381
- }
382
- valuesSqlList.push(valueList);
383
- if (valueIndex < values.length - 1) {
384
- valuesSqlList.push(sql`, `);
385
- }
386
- }
387
- }
388
- const withSql = this.buildWithCTE(withList);
389
- const valuesSql = sql.join(valuesSqlList);
390
- const returningSql = returning ? sql` returning ${this.buildSelection(returning, { isSingleTable: true })}` : void 0;
391
- const onConflictSql = onConflict ? sql` on conflict ${onConflict}` : void 0;
392
- const overridingSql = overridingSystemValue_ === true ? sql`overriding system value ` : void 0;
393
- return sql`${withSql}insert into ${table} ${insertOrder} ${overridingSql}${valuesSql}${onConflictSql}${returningSql}`;
394
- }
395
- buildRefreshMaterializedViewQuery({ view, concurrently, withNoData }) {
396
- const concurrentlySql = concurrently ? sql` concurrently` : void 0;
397
- const withNoDataSql = withNoData ? sql` with no data` : void 0;
398
- return sql`refresh materialized view${concurrentlySql} ${view}${withNoDataSql}`;
399
- }
400
- prepareTyping(encoder) {
401
- if (is(encoder, GelJson)) {
402
- return "json";
403
- } else if (is(encoder, GelDecimal)) {
404
- return "decimal";
405
- } else if (is(encoder, GelTimestamp)) {
406
- return "timestamp";
407
- } else if (is(encoder, GelUUID)) {
408
- return "uuid";
409
- } else {
410
- return "none";
411
- }
412
- }
413
- sqlToQuery(sql2, invokeSource) {
414
- return sql2.toQuery({
415
- casing: this.casing,
416
- escapeName: this.escapeName,
417
- escapeParam: this.escapeParam,
418
- escapeString: this.escapeString,
419
- prepareTyping: this.prepareTyping,
420
- invokeSource
421
- });
422
- }
423
- // buildRelationalQueryWithPK({
424
- // fullSchema,
425
- // schema,
426
- // tableNamesMap,
427
- // table,
428
- // tableConfig,
429
- // queryConfig: config,
430
- // tableAlias,
431
- // isRoot = false,
432
- // joinOn,
433
- // }: {
434
- // fullSchema: Record<string, unknown>;
435
- // schema: TablesRelationalConfig;
436
- // tableNamesMap: Record<string, string>;
437
- // table: GelTable;
438
- // tableConfig: TableRelationalConfig;
439
- // queryConfig: true | DBQueryConfig<'many', true>;
440
- // tableAlias: string;
441
- // isRoot?: boolean;
442
- // joinOn?: SQL;
443
- // }): BuildRelationalQueryResult<GelTable, GelColumn> {
444
- // // For { "<relation>": true }, return a table with selection of all columns
445
- // if (config === true) {
446
- // const selectionEntries = Object.entries(tableConfig.columns);
447
- // const selection: BuildRelationalQueryResult<GelTable, GelColumn>['selection'] = selectionEntries.map((
448
- // [key, value],
449
- // ) => ({
450
- // dbKey: value.name,
451
- // tsKey: key,
452
- // field: value as GelColumn,
453
- // relationTableTsKey: undefined,
454
- // isJson: false,
455
- // selection: [],
456
- // }));
457
- // return {
458
- // tableTsKey: tableConfig.tsName,
459
- // sql: table,
460
- // selection,
461
- // };
462
- // }
463
- // // let selection: BuildRelationalQueryResult<GelTable, GelColumn>['selection'] = [];
464
- // // let selectionForBuild = selection;
465
- // const aliasedColumns = Object.fromEntries(
466
- // Object.entries(tableConfig.columns).map(([key, value]) => [key, aliasedTableColumn(value, tableAlias)]),
467
- // );
468
- // const aliasedRelations = Object.fromEntries(
469
- // Object.entries(tableConfig.relations).map(([key, value]) => [key, aliasedRelation(value, tableAlias)]),
470
- // );
471
- // const aliasedFields = Object.assign({}, aliasedColumns, aliasedRelations);
472
- // let where, hasUserDefinedWhere;
473
- // if (config.where) {
474
- // const whereSql = typeof config.where === 'function' ? config.where(aliasedFields, operators) : config.where;
475
- // where = whereSql && mapColumnsInSQLToAlias(whereSql, tableAlias);
476
- // hasUserDefinedWhere = !!where;
477
- // }
478
- // where = and(joinOn, where);
479
- // // const fieldsSelection: { tsKey: string; value: GelColumn | SQL.Aliased; isExtra?: boolean }[] = [];
480
- // let joins: Join[] = [];
481
- // let selectedColumns: string[] = [];
482
- // // Figure out which columns to select
483
- // if (config.columns) {
484
- // let isIncludeMode = false;
485
- // for (const [field, value] of Object.entries(config.columns)) {
486
- // if (value === undefined) {
487
- // continue;
488
- // }
489
- // if (field in tableConfig.columns) {
490
- // if (!isIncludeMode && value === true) {
491
- // isIncludeMode = true;
492
- // }
493
- // selectedColumns.push(field);
494
- // }
495
- // }
496
- // if (selectedColumns.length > 0) {
497
- // selectedColumns = isIncludeMode
498
- // ? selectedColumns.filter((c) => config.columns?.[c] === true)
499
- // : Object.keys(tableConfig.columns).filter((key) => !selectedColumns.includes(key));
500
- // }
501
- // } else {
502
- // // Select all columns if selection is not specified
503
- // selectedColumns = Object.keys(tableConfig.columns);
504
- // }
505
- // // for (const field of selectedColumns) {
506
- // // const column = tableConfig.columns[field]! as GelColumn;
507
- // // fieldsSelection.push({ tsKey: field, value: column });
508
- // // }
509
- // let initiallySelectedRelations: {
510
- // tsKey: string;
511
- // queryConfig: true | DBQueryConfig<'many', false>;
512
- // relation: Relation;
513
- // }[] = [];
514
- // // let selectedRelations: BuildRelationalQueryResult<GelTable, GelColumn>['selection'] = [];
515
- // // Figure out which relations to select
516
- // if (config.with) {
517
- // initiallySelectedRelations = Object.entries(config.with)
518
- // .filter((entry): entry is [typeof entry[0], NonNullable<typeof entry[1]>] => !!entry[1])
519
- // .map(([tsKey, queryConfig]) => ({ tsKey, queryConfig, relation: tableConfig.relations[tsKey]! }));
520
- // }
521
- // const manyRelations = initiallySelectedRelations.filter((r) =>
522
- // is(r.relation, Many)
523
- // && (schema[tableNamesMap[r.relation.referencedTable[Table.Symbol.Name]]!]?.primaryKey.length ?? 0) > 0
524
- // );
525
- // // If this is the last Many relation (or there are no Many relations), we are on the innermost subquery level
526
- // const isInnermostQuery = manyRelations.length < 2;
527
- // const selectedExtras: {
528
- // tsKey: string;
529
- // value: SQL.Aliased;
530
- // }[] = [];
531
- // // Figure out which extras to select
532
- // if (isInnermostQuery && config.extras) {
533
- // const extras = typeof config.extras === 'function'
534
- // ? config.extras(aliasedFields, { sql })
535
- // : config.extras;
536
- // for (const [tsKey, value] of Object.entries(extras)) {
537
- // selectedExtras.push({
538
- // tsKey,
539
- // value: mapColumnsInAliasedSQLToAlias(value, tableAlias),
540
- // });
541
- // }
542
- // }
543
- // // Transform `fieldsSelection` into `selection`
544
- // // `fieldsSelection` shouldn't be used after this point
545
- // // for (const { tsKey, value, isExtra } of fieldsSelection) {
546
- // // selection.push({
547
- // // dbKey: is(value, SQL.Aliased) ? value.fieldAlias : tableConfig.columns[tsKey]!.name,
548
- // // tsKey,
549
- // // field: is(value, Column) ? aliasedTableColumn(value, tableAlias) : value,
550
- // // relationTableTsKey: undefined,
551
- // // isJson: false,
552
- // // isExtra,
553
- // // selection: [],
554
- // // });
555
- // // }
556
- // let orderByOrig = typeof config.orderBy === 'function'
557
- // ? config.orderBy(aliasedFields, orderByOperators)
558
- // : config.orderBy ?? [];
559
- // if (!Array.isArray(orderByOrig)) {
560
- // orderByOrig = [orderByOrig];
561
- // }
562
- // const orderBy = orderByOrig.map((orderByValue) => {
563
- // if (is(orderByValue, Column)) {
564
- // return aliasedTableColumn(orderByValue, tableAlias) as GelColumn;
565
- // }
566
- // return mapColumnsInSQLToAlias(orderByValue, tableAlias);
567
- // });
568
- // const limit = isInnermostQuery ? config.limit : undefined;
569
- // const offset = isInnermostQuery ? config.offset : undefined;
570
- // // For non-root queries without additional config except columns, return a table with selection
571
- // if (
572
- // !isRoot
573
- // && initiallySelectedRelations.length === 0
574
- // && selectedExtras.length === 0
575
- // && !where
576
- // && orderBy.length === 0
577
- // && limit === undefined
578
- // && offset === undefined
579
- // ) {
580
- // return {
581
- // tableTsKey: tableConfig.tsName,
582
- // sql: table,
583
- // selection: selectedColumns.map((key) => ({
584
- // dbKey: tableConfig.columns[key]!.name,
585
- // tsKey: key,
586
- // field: tableConfig.columns[key] as GelColumn,
587
- // relationTableTsKey: undefined,
588
- // isJson: false,
589
- // selection: [],
590
- // })),
591
- // };
592
- // }
593
- // const selectedRelationsWithoutPK:
594
- // // Process all relations without primary keys, because they need to be joined differently and will all be on the same query level
595
- // for (
596
- // const {
597
- // tsKey: selectedRelationTsKey,
598
- // queryConfig: selectedRelationConfigValue,
599
- // relation,
600
- // } of initiallySelectedRelations
601
- // ) {
602
- // const normalizedRelation = normalizeRelation(schema, tableNamesMap, relation);
603
- // const relationTableName = relation.referencedTable[Table.Symbol.Name];
604
- // const relationTableTsName = tableNamesMap[relationTableName]!;
605
- // const relationTable = schema[relationTableTsName]!;
606
- // if (relationTable.primaryKey.length > 0) {
607
- // continue;
608
- // }
609
- // const relationTableAlias = `${tableAlias}_${selectedRelationTsKey}`;
610
- // const joinOn = and(
611
- // ...normalizedRelation.fields.map((field, i) =>
612
- // eq(
613
- // aliasedTableColumn(normalizedRelation.references[i]!, relationTableAlias),
614
- // aliasedTableColumn(field, tableAlias),
615
- // )
616
- // ),
617
- // );
618
- // const builtRelation = this.buildRelationalQueryWithoutPK({
619
- // fullSchema,
620
- // schema,
621
- // tableNamesMap,
622
- // table: fullSchema[relationTableTsName] as GelTable,
623
- // tableConfig: schema[relationTableTsName]!,
624
- // queryConfig: selectedRelationConfigValue,
625
- // tableAlias: relationTableAlias,
626
- // joinOn,
627
- // nestedQueryRelation: relation,
628
- // });
629
- // const field = sql`${sql.identifier(relationTableAlias)}.${sql.identifier('data')}`.as(selectedRelationTsKey);
630
- // joins.push({
631
- // on: sql`true`,
632
- // table: new Subquery(builtRelation.sql as SQL, {}, relationTableAlias),
633
- // alias: relationTableAlias,
634
- // joinType: 'left',
635
- // lateral: true,
636
- // });
637
- // selectedRelations.push({
638
- // dbKey: selectedRelationTsKey,
639
- // tsKey: selectedRelationTsKey,
640
- // field,
641
- // relationTableTsKey: relationTableTsName,
642
- // isJson: true,
643
- // selection: builtRelation.selection,
644
- // });
645
- // }
646
- // const oneRelations = initiallySelectedRelations.filter((r): r is typeof r & { relation: One } =>
647
- // is(r.relation, One)
648
- // );
649
- // // Process all One relations with PKs, because they can all be joined on the same level
650
- // for (
651
- // const {
652
- // tsKey: selectedRelationTsKey,
653
- // queryConfig: selectedRelationConfigValue,
654
- // relation,
655
- // } of oneRelations
656
- // ) {
657
- // const normalizedRelation = normalizeRelation(schema, tableNamesMap, relation);
658
- // const relationTableName = relation.referencedTable[Table.Symbol.Name];
659
- // const relationTableTsName = tableNamesMap[relationTableName]!;
660
- // const relationTableAlias = `${tableAlias}_${selectedRelationTsKey}`;
661
- // const relationTable = schema[relationTableTsName]!;
662
- // if (relationTable.primaryKey.length === 0) {
663
- // continue;
664
- // }
665
- // const joinOn = and(
666
- // ...normalizedRelation.fields.map((field, i) =>
667
- // eq(
668
- // aliasedTableColumn(normalizedRelation.references[i]!, relationTableAlias),
669
- // aliasedTableColumn(field, tableAlias),
670
- // )
671
- // ),
672
- // );
673
- // const builtRelation = this.buildRelationalQueryWithPK({
674
- // fullSchema,
675
- // schema,
676
- // tableNamesMap,
677
- // table: fullSchema[relationTableTsName] as GelTable,
678
- // tableConfig: schema[relationTableTsName]!,
679
- // queryConfig: selectedRelationConfigValue,
680
- // tableAlias: relationTableAlias,
681
- // joinOn,
682
- // });
683
- // const field = sql`case when ${sql.identifier(relationTableAlias)} is null then null else json_build_array(${
684
- // sql.join(
685
- // builtRelation.selection.map(({ field }) =>
686
- // is(field, SQL.Aliased)
687
- // ? sql`${sql.identifier(relationTableAlias)}.${sql.identifier(field.fieldAlias)}`
688
- // : is(field, Column)
689
- // ? aliasedTableColumn(field, relationTableAlias)
690
- // : field
691
- // ),
692
- // sql`, `,
693
- // )
694
- // }) end`.as(selectedRelationTsKey);
695
- // const isLateralJoin = is(builtRelation.sql, SQL);
696
- // joins.push({
697
- // on: isLateralJoin ? sql`true` : joinOn,
698
- // table: is(builtRelation.sql, SQL)
699
- // ? new Subquery(builtRelation.sql, {}, relationTableAlias)
700
- // : aliasedTable(builtRelation.sql, relationTableAlias),
701
- // alias: relationTableAlias,
702
- // joinType: 'left',
703
- // lateral: is(builtRelation.sql, SQL),
704
- // });
705
- // selectedRelations.push({
706
- // dbKey: selectedRelationTsKey,
707
- // tsKey: selectedRelationTsKey,
708
- // field,
709
- // relationTableTsKey: relationTableTsName,
710
- // isJson: true,
711
- // selection: builtRelation.selection,
712
- // });
713
- // }
714
- // let distinct: GelSelectConfig['distinct'];
715
- // let tableFrom: GelTable | Subquery = table;
716
- // // Process first Many relation - each one requires a nested subquery
717
- // const manyRelation = manyRelations[0];
718
- // if (manyRelation) {
719
- // const {
720
- // tsKey: selectedRelationTsKey,
721
- // queryConfig: selectedRelationQueryConfig,
722
- // relation,
723
- // } = manyRelation;
724
- // distinct = {
725
- // on: tableConfig.primaryKey.map((c) => aliasedTableColumn(c as GelColumn, tableAlias)),
726
- // };
727
- // const normalizedRelation = normalizeRelation(schema, tableNamesMap, relation);
728
- // const relationTableName = relation.referencedTable[Table.Symbol.Name];
729
- // const relationTableTsName = tableNamesMap[relationTableName]!;
730
- // const relationTableAlias = `${tableAlias}_${selectedRelationTsKey}`;
731
- // const joinOn = and(
732
- // ...normalizedRelation.fields.map((field, i) =>
733
- // eq(
734
- // aliasedTableColumn(normalizedRelation.references[i]!, relationTableAlias),
735
- // aliasedTableColumn(field, tableAlias),
736
- // )
737
- // ),
738
- // );
739
- // const builtRelationJoin = this.buildRelationalQueryWithPK({
740
- // fullSchema,
741
- // schema,
742
- // tableNamesMap,
743
- // table: fullSchema[relationTableTsName] as GelTable,
744
- // tableConfig: schema[relationTableTsName]!,
745
- // queryConfig: selectedRelationQueryConfig,
746
- // tableAlias: relationTableAlias,
747
- // joinOn,
748
- // });
749
- // const builtRelationSelectionField = sql`case when ${
750
- // sql.identifier(relationTableAlias)
751
- // } is null then '[]' else json_agg(json_build_array(${
752
- // sql.join(
753
- // builtRelationJoin.selection.map(({ field }) =>
754
- // is(field, SQL.Aliased)
755
- // ? sql`${sql.identifier(relationTableAlias)}.${sql.identifier(field.fieldAlias)}`
756
- // : is(field, Column)
757
- // ? aliasedTableColumn(field, relationTableAlias)
758
- // : field
759
- // ),
760
- // sql`, `,
761
- // )
762
- // })) over (partition by ${sql.join(distinct.on, sql`, `)}) end`.as(selectedRelationTsKey);
763
- // const isLateralJoin = is(builtRelationJoin.sql, SQL);
764
- // joins.push({
765
- // on: isLateralJoin ? sql`true` : joinOn,
766
- // table: isLateralJoin
767
- // ? new Subquery(builtRelationJoin.sql as SQL, {}, relationTableAlias)
768
- // : aliasedTable(builtRelationJoin.sql as GelTable, relationTableAlias),
769
- // alias: relationTableAlias,
770
- // joinType: 'left',
771
- // lateral: isLateralJoin,
772
- // });
773
- // // Build the "from" subquery with the remaining Many relations
774
- // const builtTableFrom = this.buildRelationalQueryWithPK({
775
- // fullSchema,
776
- // schema,
777
- // tableNamesMap,
778
- // table,
779
- // tableConfig,
780
- // queryConfig: {
781
- // ...config,
782
- // where: undefined,
783
- // orderBy: undefined,
784
- // limit: undefined,
785
- // offset: undefined,
786
- // with: manyRelations.slice(1).reduce<NonNullable<typeof config['with']>>(
787
- // (result, { tsKey, queryConfig: configValue }) => {
788
- // result[tsKey] = configValue;
789
- // return result;
790
- // },
791
- // {},
792
- // ),
793
- // },
794
- // tableAlias,
795
- // });
796
- // selectedRelations.push({
797
- // dbKey: selectedRelationTsKey,
798
- // tsKey: selectedRelationTsKey,
799
- // field: builtRelationSelectionField,
800
- // relationTableTsKey: relationTableTsName,
801
- // isJson: true,
802
- // selection: builtRelationJoin.selection,
803
- // });
804
- // // selection = builtTableFrom.selection.map((item) =>
805
- // // is(item.field, SQL.Aliased)
806
- // // ? { ...item, field: sql`${sql.identifier(tableAlias)}.${sql.identifier(item.field.fieldAlias)}` }
807
- // // : item
808
- // // );
809
- // // selectionForBuild = [{
810
- // // dbKey: '*',
811
- // // tsKey: '*',
812
- // // field: sql`${sql.identifier(tableAlias)}.*`,
813
- // // selection: [],
814
- // // isJson: false,
815
- // // relationTableTsKey: undefined,
816
- // // }];
817
- // // const newSelectionItem: (typeof selection)[number] = {
818
- // // dbKey: selectedRelationTsKey,
819
- // // tsKey: selectedRelationTsKey,
820
- // // field,
821
- // // relationTableTsKey: relationTableTsName,
822
- // // isJson: true,
823
- // // selection: builtRelationJoin.selection,
824
- // // };
825
- // // selection.push(newSelectionItem);
826
- // // selectionForBuild.push(newSelectionItem);
827
- // tableFrom = is(builtTableFrom.sql, GelTable)
828
- // ? builtTableFrom.sql
829
- // : new Subquery(builtTableFrom.sql, {}, tableAlias);
830
- // }
831
- // if (selectedColumns.length === 0 && selectedRelations.length === 0 && selectedExtras.length === 0) {
832
- // throw new DrizzleError(`No fields selected for table "${tableConfig.tsName}" ("${tableAlias}")`);
833
- // }
834
- // let selection: BuildRelationalQueryResult<GelTable, GelColumn>['selection'];
835
- // function prepareSelectedColumns() {
836
- // return selectedColumns.map((key) => ({
837
- // dbKey: tableConfig.columns[key]!.name,
838
- // tsKey: key,
839
- // field: tableConfig.columns[key] as GelColumn,
840
- // relationTableTsKey: undefined,
841
- // isJson: false,
842
- // selection: [],
843
- // }));
844
- // }
845
- // function prepareSelectedExtras() {
846
- // return selectedExtras.map((item) => ({
847
- // dbKey: item.value.fieldAlias,
848
- // tsKey: item.tsKey,
849
- // field: item.value,
850
- // relationTableTsKey: undefined,
851
- // isJson: false,
852
- // selection: [],
853
- // }));
854
- // }
855
- // if (isRoot) {
856
- // selection = [
857
- // ...prepareSelectedColumns(),
858
- // ...prepareSelectedExtras(),
859
- // ];
860
- // }
861
- // if (hasUserDefinedWhere || orderBy.length > 0) {
862
- // tableFrom = new Subquery(
863
- // this.buildSelectQuery({
864
- // table: is(tableFrom, GelTable) ? aliasedTable(tableFrom, tableAlias) : tableFrom,
865
- // fields: {},
866
- // fieldsFlat: selectionForBuild.map(({ field }) => ({
867
- // path: [],
868
- // field: is(field, Column) ? aliasedTableColumn(field, tableAlias) : field,
869
- // })),
870
- // joins,
871
- // distinct,
872
- // }),
873
- // {},
874
- // tableAlias,
875
- // );
876
- // selectionForBuild = selection.map((item) =>
877
- // is(item.field, SQL.Aliased)
878
- // ? { ...item, field: sql`${sql.identifier(tableAlias)}.${sql.identifier(item.field.fieldAlias)}` }
879
- // : item
880
- // );
881
- // joins = [];
882
- // distinct = undefined;
883
- // }
884
- // const result = this.buildSelectQuery({
885
- // table: is(tableFrom, GelTable) ? aliasedTable(tableFrom, tableAlias) : tableFrom,
886
- // fields: {},
887
- // fieldsFlat: selectionForBuild.map(({ field }) => ({
888
- // path: [],
889
- // field: is(field, Column) ? aliasedTableColumn(field, tableAlias) : field,
890
- // })),
891
- // where,
892
- // limit,
893
- // offset,
894
- // joins,
895
- // orderBy,
896
- // distinct,
897
- // });
898
- // return {
899
- // tableTsKey: tableConfig.tsName,
900
- // sql: result,
901
- // selection,
902
- // };
903
- // }
904
- buildRelationalQueryWithoutPK({
905
- fullSchema,
906
- schema,
907
- tableNamesMap,
908
- table,
909
- tableConfig,
910
- queryConfig: config,
911
- tableAlias,
912
- nestedQueryRelation,
913
- joinOn
914
- }) {
915
- let selection = [];
916
- let limit, offset, orderBy = [], where;
917
- const joins = [];
918
- if (config === true) {
919
- const selectionEntries = Object.entries(tableConfig.columns);
920
- selection = selectionEntries.map(([key, value]) => ({
921
- dbKey: value.name,
922
- tsKey: key,
923
- field: aliasedTableColumn(value, tableAlias),
924
- relationTableTsKey: void 0,
925
- isJson: false,
926
- selection: []
927
- }));
928
- } else {
929
- const aliasedColumns = Object.fromEntries(
930
- Object.entries(tableConfig.columns).map(([key, value]) => [key, aliasedTableColumn(value, tableAlias)])
931
- );
932
- if (config.where) {
933
- const whereSql = typeof config.where === "function" ? config.where(aliasedColumns, getOperators()) : config.where;
934
- where = whereSql && mapColumnsInSQLToAlias(whereSql, tableAlias);
935
- }
936
- const fieldsSelection = [];
937
- let selectedColumns = [];
938
- if (config.columns) {
939
- let isIncludeMode = false;
940
- for (const [field, value] of Object.entries(config.columns)) {
941
- if (value === void 0) {
942
- continue;
943
- }
944
- if (field in tableConfig.columns) {
945
- if (!isIncludeMode && value === true) {
946
- isIncludeMode = true;
947
- }
948
- selectedColumns.push(field);
949
- }
950
- }
951
- if (selectedColumns.length > 0) {
952
- selectedColumns = isIncludeMode ? selectedColumns.filter((c) => config.columns?.[c] === true) : Object.keys(tableConfig.columns).filter((key) => !selectedColumns.includes(key));
953
- }
954
- } else {
955
- selectedColumns = Object.keys(tableConfig.columns);
956
- }
957
- for (const field of selectedColumns) {
958
- const column = tableConfig.columns[field];
959
- fieldsSelection.push({ tsKey: field, value: column });
960
- }
961
- let selectedRelations = [];
962
- if (config.with) {
963
- selectedRelations = Object.entries(config.with).filter((entry) => !!entry[1]).map(([tsKey, queryConfig]) => ({ tsKey, queryConfig, relation: tableConfig.relations[tsKey] }));
964
- }
965
- let extras;
966
- if (config.extras) {
967
- extras = typeof config.extras === "function" ? config.extras(aliasedColumns, { sql }) : config.extras;
968
- for (const [tsKey, value] of Object.entries(extras)) {
969
- fieldsSelection.push({
970
- tsKey,
971
- value: mapColumnsInAliasedSQLToAlias(value, tableAlias)
972
- });
973
- }
974
- }
975
- for (const { tsKey, value } of fieldsSelection) {
976
- selection.push({
977
- dbKey: is(value, SQL.Aliased) ? value.fieldAlias : tableConfig.columns[tsKey].name,
978
- tsKey,
979
- field: is(value, Column) ? aliasedTableColumn(value, tableAlias) : value,
980
- relationTableTsKey: void 0,
981
- isJson: false,
982
- selection: []
983
- });
984
- }
985
- let orderByOrig = typeof config.orderBy === "function" ? config.orderBy(aliasedColumns, getOrderByOperators()) : config.orderBy ?? [];
986
- if (!Array.isArray(orderByOrig)) {
987
- orderByOrig = [orderByOrig];
988
- }
989
- orderBy = orderByOrig.map((orderByValue) => {
990
- if (is(orderByValue, Column)) {
991
- return aliasedTableColumn(orderByValue, tableAlias);
992
- }
993
- return mapColumnsInSQLToAlias(orderByValue, tableAlias);
994
- });
995
- limit = config.limit;
996
- offset = config.offset;
997
- for (const {
998
- tsKey: selectedRelationTsKey,
999
- queryConfig: selectedRelationConfigValue,
1000
- relation
1001
- } of selectedRelations) {
1002
- const normalizedRelation = normalizeRelation(schema, tableNamesMap, relation);
1003
- const relationTableName = getTableUniqueName(relation.referencedTable);
1004
- const relationTableTsName = tableNamesMap[relationTableName];
1005
- const relationTableAlias = `${tableAlias}_${selectedRelationTsKey}`;
1006
- const joinOn2 = and(
1007
- ...normalizedRelation.fields.map(
1008
- (field2, i) => eq(
1009
- aliasedTableColumn(normalizedRelation.references[i], relationTableAlias),
1010
- aliasedTableColumn(field2, tableAlias)
1011
- )
1012
- )
1013
- );
1014
- const builtRelation = this.buildRelationalQueryWithoutPK({
1015
- fullSchema,
1016
- schema,
1017
- tableNamesMap,
1018
- table: fullSchema[relationTableTsName],
1019
- tableConfig: schema[relationTableTsName],
1020
- queryConfig: is(relation, One) ? selectedRelationConfigValue === true ? { limit: 1 } : { ...selectedRelationConfigValue, limit: 1 } : selectedRelationConfigValue,
1021
- tableAlias: relationTableAlias,
1022
- joinOn: joinOn2,
1023
- nestedQueryRelation: relation
1024
- });
1025
- const field = sql`${sql.identifier(relationTableAlias)}.${sql.identifier("data")}`.as(selectedRelationTsKey);
1026
- joins.push({
1027
- on: sql`true`,
1028
- table: new Subquery(builtRelation.sql, {}, relationTableAlias),
1029
- alias: relationTableAlias,
1030
- joinType: "left",
1031
- lateral: true
1032
- });
1033
- selection.push({
1034
- dbKey: selectedRelationTsKey,
1035
- tsKey: selectedRelationTsKey,
1036
- field,
1037
- relationTableTsKey: relationTableTsName,
1038
- isJson: true,
1039
- selection: builtRelation.selection
1040
- });
1041
- }
1042
- }
1043
- if (selection.length === 0) {
1044
- throw new DrizzleError({ message: `No fields selected for table "${tableConfig.tsName}" ("${tableAlias}")` });
1045
- }
1046
- let result;
1047
- where = and(joinOn, where);
1048
- if (nestedQueryRelation) {
1049
- let field = sql`json_build_array(${sql.join(
1050
- selection.map(
1051
- ({ field: field2, tsKey, isJson }) => isJson ? sql`${sql.identifier(`${tableAlias}_${tsKey}`)}.${sql.identifier("data")}` : is(field2, SQL.Aliased) ? field2.sql : field2
1052
- ),
1053
- sql`, `
1054
- )})`;
1055
- if (is(nestedQueryRelation, Many)) {
1056
- field = sql`coalesce(json_agg(${field}${orderBy.length > 0 ? sql` order by ${sql.join(orderBy, sql`, `)}` : void 0}), '[]'::json)`;
1057
- }
1058
- const nestedSelection = [{
1059
- dbKey: "data",
1060
- tsKey: "data",
1061
- field: field.as("data"),
1062
- isJson: true,
1063
- relationTableTsKey: tableConfig.tsName,
1064
- selection
1065
- }];
1066
- const needsSubquery = limit !== void 0 || offset !== void 0 || orderBy.length > 0;
1067
- if (needsSubquery) {
1068
- result = this.buildSelectQuery({
1069
- table: aliasedTable(table, tableAlias),
1070
- fields: {},
1071
- fieldsFlat: [{
1072
- path: [],
1073
- field: sql.raw("*")
1074
- }],
1075
- where,
1076
- limit,
1077
- offset,
1078
- orderBy,
1079
- setOperators: []
1080
- });
1081
- where = void 0;
1082
- limit = void 0;
1083
- offset = void 0;
1084
- orderBy = [];
1085
- } else {
1086
- result = aliasedTable(table, tableAlias);
1087
- }
1088
- result = this.buildSelectQuery({
1089
- table: is(result, GelTable) ? result : new Subquery(result, {}, tableAlias),
1090
- fields: {},
1091
- fieldsFlat: nestedSelection.map(({ field: field2 }) => ({
1092
- path: [],
1093
- field: is(field2, Column) ? aliasedTableColumn(field2, tableAlias) : field2
1094
- })),
1095
- joins,
1096
- where,
1097
- limit,
1098
- offset,
1099
- orderBy,
1100
- setOperators: []
1101
- });
1102
- } else {
1103
- result = this.buildSelectQuery({
1104
- table: aliasedTable(table, tableAlias),
1105
- fields: {},
1106
- fieldsFlat: selection.map(({ field }) => ({
1107
- path: [],
1108
- field: is(field, Column) ? aliasedTableColumn(field, tableAlias) : field
1109
- })),
1110
- joins,
1111
- where,
1112
- limit,
1113
- offset,
1114
- orderBy,
1115
- setOperators: []
1116
- });
1117
- }
1118
- return {
1119
- tableTsKey: tableConfig.tsName,
1120
- sql: result,
1121
- selection
1122
- };
1123
- }
1124
- }
1125
- export {
1126
- GelDialect
1127
- };
1128
- //# sourceMappingURL=dialect.js.map