drizzle-orm 0.42.0-da9af74 → 0.43.0-62ea5c4

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 (532) hide show
  1. package/aws-data-api/pg/driver.cjs +1 -5
  2. package/aws-data-api/pg/driver.cjs.map +1 -1
  3. package/aws-data-api/pg/driver.d.cts +0 -1
  4. package/aws-data-api/pg/driver.d.ts +0 -1
  5. package/aws-data-api/pg/driver.js +1 -5
  6. package/aws-data-api/pg/driver.js.map +1 -1
  7. package/aws-data-api/pg/session.cjs +4 -15
  8. package/aws-data-api/pg/session.cjs.map +1 -1
  9. package/aws-data-api/pg/session.d.cts +2 -13
  10. package/aws-data-api/pg/session.d.ts +2 -13
  11. package/aws-data-api/pg/session.js +4 -15
  12. package/aws-data-api/pg/session.js.map +1 -1
  13. package/better-sqlite3/driver.cjs.map +1 -1
  14. package/better-sqlite3/driver.js.map +1 -1
  15. package/better-sqlite3/session.cjs +3 -9
  16. package/better-sqlite3/session.cjs.map +1 -1
  17. package/better-sqlite3/session.d.cts +2 -12
  18. package/better-sqlite3/session.d.ts +2 -12
  19. package/better-sqlite3/session.js +3 -9
  20. package/better-sqlite3/session.js.map +1 -1
  21. package/bun-sql/driver.cjs +1 -5
  22. package/bun-sql/driver.cjs.map +1 -1
  23. package/bun-sql/driver.js +1 -5
  24. package/bun-sql/driver.js.map +1 -1
  25. package/bun-sql/session.cjs +9 -21
  26. package/bun-sql/session.cjs.map +1 -1
  27. package/bun-sql/session.d.cts +2 -12
  28. package/bun-sql/session.d.ts +2 -12
  29. package/bun-sql/session.js +9 -21
  30. package/bun-sql/session.js.map +1 -1
  31. package/d1/driver.cjs +1 -5
  32. package/d1/driver.cjs.map +1 -1
  33. package/d1/driver.js +1 -5
  34. package/d1/driver.js.map +1 -1
  35. package/d1/session.cjs +9 -23
  36. package/d1/session.cjs.map +1 -1
  37. package/d1/session.d.cts +2 -12
  38. package/d1/session.d.ts +2 -12
  39. package/d1/session.js +9 -23
  40. package/d1/session.js.map +1 -1
  41. package/durable-sqlite/session.cjs +1 -1
  42. package/durable-sqlite/session.cjs.map +1 -1
  43. package/durable-sqlite/session.js +1 -1
  44. package/durable-sqlite/session.js.map +1 -1
  45. package/gel/driver.cjs +2 -9
  46. package/gel/driver.cjs.map +1 -1
  47. package/gel/driver.d.cts +0 -2
  48. package/gel/driver.d.ts +0 -2
  49. package/gel/driver.js +2 -9
  50. package/gel/driver.js.map +1 -1
  51. package/gel/session.cjs +10 -25
  52. package/gel/session.cjs.map +1 -1
  53. package/gel/session.d.cts +2 -12
  54. package/gel/session.d.ts +2 -12
  55. package/gel/session.js +10 -25
  56. package/gel/session.js.map +1 -1
  57. package/gel-core/db.cjs +0 -1
  58. package/gel-core/db.cjs.map +1 -1
  59. package/gel-core/db.d.cts +0 -4
  60. package/gel-core/db.d.ts +0 -4
  61. package/gel-core/db.js +0 -1
  62. package/gel-core/db.js.map +1 -1
  63. package/gel-core/dialect.cjs +8 -23
  64. package/gel-core/dialect.cjs.map +1 -1
  65. package/gel-core/dialect.d.cts +1 -0
  66. package/gel-core/dialect.d.ts +1 -0
  67. package/gel-core/dialect.js +8 -23
  68. package/gel-core/dialect.js.map +1 -1
  69. package/gel-core/query-builders/delete.cjs +1 -5
  70. package/gel-core/query-builders/delete.cjs.map +1 -1
  71. package/gel-core/query-builders/delete.js +1 -5
  72. package/gel-core/query-builders/delete.js.map +1 -1
  73. package/gel-core/query-builders/insert.cjs +1 -5
  74. package/gel-core/query-builders/insert.cjs.map +1 -1
  75. package/gel-core/query-builders/insert.js +1 -5
  76. package/gel-core/query-builders/insert.js.map +1 -1
  77. package/gel-core/query-builders/select.cjs +84 -43
  78. package/gel-core/query-builders/select.cjs.map +1 -1
  79. package/gel-core/query-builders/select.d.cts +78 -22
  80. package/gel-core/query-builders/select.d.ts +78 -22
  81. package/gel-core/query-builders/select.js +84 -43
  82. package/gel-core/query-builders/select.js.map +1 -1
  83. package/gel-core/query-builders/select.types.cjs.map +1 -1
  84. package/gel-core/query-builders/select.types.d.cts +1 -1
  85. package/gel-core/query-builders/select.types.d.ts +1 -1
  86. package/gel-core/query-builders/update.cjs +1 -5
  87. package/gel-core/query-builders/update.cjs.map +1 -1
  88. package/gel-core/query-builders/update.js +1 -5
  89. package/gel-core/query-builders/update.js.map +1 -1
  90. package/gel-core/session.cjs +1 -52
  91. package/gel-core/session.cjs.map +1 -1
  92. package/gel-core/session.d.cts +3 -14
  93. package/gel-core/session.d.ts +3 -14
  94. package/gel-core/session.js +2 -53
  95. package/gel-core/session.js.map +1 -1
  96. package/gel-core/utils.cjs +0 -16
  97. package/gel-core/utils.cjs.map +1 -1
  98. package/gel-core/utils.d.cts +4 -8
  99. package/gel-core/utils.d.ts +4 -8
  100. package/gel-core/utils.js +0 -15
  101. package/gel-core/utils.js.map +1 -1
  102. package/libsql/driver-core.cjs +1 -5
  103. package/libsql/driver-core.cjs.map +1 -1
  104. package/libsql/driver-core.js +1 -5
  105. package/libsql/driver-core.js.map +1 -1
  106. package/libsql/session.cjs +13 -27
  107. package/libsql/session.cjs.map +1 -1
  108. package/libsql/session.d.cts +2 -12
  109. package/libsql/session.d.ts +2 -12
  110. package/libsql/session.js +13 -27
  111. package/libsql/session.js.map +1 -1
  112. package/mysql-core/db.cjs +0 -1
  113. package/mysql-core/db.cjs.map +1 -1
  114. package/mysql-core/db.d.cts +0 -4
  115. package/mysql-core/db.d.ts +0 -4
  116. package/mysql-core/db.js +0 -1
  117. package/mysql-core/db.js.map +1 -1
  118. package/mysql-core/dialect.cjs +5 -4
  119. package/mysql-core/dialect.cjs.map +1 -1
  120. package/mysql-core/dialect.js +5 -4
  121. package/mysql-core/dialect.js.map +1 -1
  122. package/mysql-core/query-builders/delete.cjs +1 -9
  123. package/mysql-core/query-builders/delete.cjs.map +1 -1
  124. package/mysql-core/query-builders/delete.js +1 -9
  125. package/mysql-core/query-builders/delete.js.map +1 -1
  126. package/mysql-core/query-builders/insert.cjs +1 -8
  127. package/mysql-core/query-builders/insert.cjs.map +1 -1
  128. package/mysql-core/query-builders/insert.d.cts +0 -2
  129. package/mysql-core/query-builders/insert.d.ts +0 -2
  130. package/mysql-core/query-builders/insert.js +1 -8
  131. package/mysql-core/query-builders/insert.js.map +1 -1
  132. package/mysql-core/query-builders/select.cjs +75 -61
  133. package/mysql-core/query-builders/select.cjs.map +1 -1
  134. package/mysql-core/query-builders/select.d.cts +66 -34
  135. package/mysql-core/query-builders/select.d.ts +66 -34
  136. package/mysql-core/query-builders/select.js +76 -62
  137. package/mysql-core/query-builders/select.js.map +1 -1
  138. package/mysql-core/query-builders/select.types.cjs.map +1 -1
  139. package/mysql-core/query-builders/select.types.d.cts +5 -4
  140. package/mysql-core/query-builders/select.types.d.ts +5 -4
  141. package/mysql-core/query-builders/update.cjs +1 -11
  142. package/mysql-core/query-builders/update.cjs.map +1 -1
  143. package/mysql-core/query-builders/update.d.cts +0 -2
  144. package/mysql-core/query-builders/update.d.ts +0 -2
  145. package/mysql-core/query-builders/update.js +1 -11
  146. package/mysql-core/query-builders/update.js.map +1 -1
  147. package/mysql-core/session.cjs +0 -53
  148. package/mysql-core/session.cjs.map +1 -1
  149. package/mysql-core/session.d.cts +2 -15
  150. package/mysql-core/session.d.ts +2 -15
  151. package/mysql-core/session.js +1 -54
  152. package/mysql-core/session.js.map +1 -1
  153. package/mysql-core/utils.cjs +0 -16
  154. package/mysql-core/utils.cjs.map +1 -1
  155. package/mysql-core/utils.d.cts +2 -6
  156. package/mysql-core/utils.d.ts +2 -6
  157. package/mysql-core/utils.js +0 -15
  158. package/mysql-core/utils.js.map +1 -1
  159. package/mysql-proxy/session.cjs +5 -15
  160. package/mysql-proxy/session.cjs.map +1 -1
  161. package/mysql-proxy/session.d.cts +2 -12
  162. package/mysql-proxy/session.d.ts +2 -12
  163. package/mysql-proxy/session.js +5 -15
  164. package/mysql-proxy/session.js.map +1 -1
  165. package/mysql2/driver.cjs +2 -10
  166. package/mysql2/driver.cjs.map +1 -1
  167. package/mysql2/driver.d.cts +0 -2
  168. package/mysql2/driver.d.ts +0 -2
  169. package/mysql2/driver.js +2 -10
  170. package/mysql2/driver.js.map +1 -1
  171. package/mysql2/session.cjs +5 -15
  172. package/mysql2/session.cjs.map +1 -1
  173. package/mysql2/session.d.cts +2 -12
  174. package/mysql2/session.d.ts +2 -12
  175. package/mysql2/session.js +5 -15
  176. package/mysql2/session.js.map +1 -1
  177. package/neon-http/driver.cjs +2 -9
  178. package/neon-http/driver.cjs.map +1 -1
  179. package/neon-http/driver.d.cts +0 -2
  180. package/neon-http/driver.d.ts +0 -2
  181. package/neon-http/driver.js +2 -9
  182. package/neon-http/driver.js.map +1 -1
  183. package/neon-http/session.cjs +15 -25
  184. package/neon-http/session.cjs.map +1 -1
  185. package/neon-http/session.d.cts +2 -12
  186. package/neon-http/session.d.ts +2 -12
  187. package/neon-http/session.js +15 -25
  188. package/neon-http/session.js.map +1 -1
  189. package/neon-serverless/driver.cjs +2 -9
  190. package/neon-serverless/driver.cjs.map +1 -1
  191. package/neon-serverless/driver.d.cts +0 -2
  192. package/neon-serverless/driver.d.ts +0 -2
  193. package/neon-serverless/driver.js +2 -9
  194. package/neon-serverless/driver.js.map +1 -1
  195. package/neon-serverless/session.cjs +7 -21
  196. package/neon-serverless/session.cjs.map +1 -1
  197. package/neon-serverless/session.d.cts +2 -12
  198. package/neon-serverless/session.d.ts +2 -12
  199. package/neon-serverless/session.js +7 -21
  200. package/neon-serverless/session.js.map +1 -1
  201. package/node-postgres/driver.cjs +2 -9
  202. package/node-postgres/driver.cjs.map +1 -1
  203. package/node-postgres/driver.d.cts +0 -2
  204. package/node-postgres/driver.d.ts +0 -2
  205. package/node-postgres/driver.js +2 -9
  206. package/node-postgres/driver.js.map +1 -1
  207. package/node-postgres/session.cjs +6 -19
  208. package/node-postgres/session.cjs.map +1 -1
  209. package/node-postgres/session.d.cts +2 -13
  210. package/node-postgres/session.d.ts +2 -13
  211. package/node-postgres/session.js +6 -19
  212. package/node-postgres/session.js.map +1 -1
  213. package/op-sqlite/driver.cjs +1 -5
  214. package/op-sqlite/driver.cjs.map +1 -1
  215. package/op-sqlite/driver.js +1 -5
  216. package/op-sqlite/driver.js.map +1 -1
  217. package/op-sqlite/session.cjs +9 -23
  218. package/op-sqlite/session.cjs.map +1 -1
  219. package/op-sqlite/session.d.cts +2 -12
  220. package/op-sqlite/session.d.ts +2 -12
  221. package/op-sqlite/session.js +9 -23
  222. package/op-sqlite/session.js.map +1 -1
  223. package/operations.cjs.map +1 -1
  224. package/operations.d.cts +5 -1
  225. package/operations.d.ts +5 -1
  226. package/package.json +4 -69
  227. package/pg-core/columns/text.cjs.map +1 -1
  228. package/pg-core/columns/text.d.cts +1 -2
  229. package/pg-core/columns/text.d.ts +1 -2
  230. package/pg-core/columns/text.js.map +1 -1
  231. package/pg-core/db.cjs +0 -1
  232. package/pg-core/db.cjs.map +1 -1
  233. package/pg-core/db.d.cts +0 -4
  234. package/pg-core/db.d.ts +0 -4
  235. package/pg-core/db.js +0 -1
  236. package/pg-core/db.js.map +1 -1
  237. package/pg-core/dialect.cjs +5 -4
  238. package/pg-core/dialect.cjs.map +1 -1
  239. package/pg-core/dialect.js +5 -4
  240. package/pg-core/dialect.js.map +1 -1
  241. package/pg-core/query-builders/delete.cjs +1 -6
  242. package/pg-core/query-builders/delete.cjs.map +1 -1
  243. package/pg-core/query-builders/delete.d.cts +1 -3
  244. package/pg-core/query-builders/delete.d.ts +1 -3
  245. package/pg-core/query-builders/delete.js +1 -6
  246. package/pg-core/query-builders/delete.js.map +1 -1
  247. package/pg-core/query-builders/insert.cjs +1 -6
  248. package/pg-core/query-builders/insert.cjs.map +1 -1
  249. package/pg-core/query-builders/insert.d.cts +0 -2
  250. package/pg-core/query-builders/insert.d.ts +0 -2
  251. package/pg-core/query-builders/insert.js +1 -6
  252. package/pg-core/query-builders/insert.js.map +1 -1
  253. package/pg-core/query-builders/select.cjs +85 -45
  254. package/pg-core/query-builders/select.cjs.map +1 -1
  255. package/pg-core/query-builders/select.d.cts +79 -23
  256. package/pg-core/query-builders/select.d.ts +79 -23
  257. package/pg-core/query-builders/select.js +85 -45
  258. package/pg-core/query-builders/select.js.map +1 -1
  259. package/pg-core/query-builders/select.types.cjs.map +1 -1
  260. package/pg-core/query-builders/select.types.d.cts +1 -1
  261. package/pg-core/query-builders/select.types.d.ts +1 -1
  262. package/pg-core/query-builders/update.cjs +1 -6
  263. package/pg-core/query-builders/update.cjs.map +1 -1
  264. package/pg-core/query-builders/update.d.cts +2 -4
  265. package/pg-core/query-builders/update.d.ts +2 -4
  266. package/pg-core/query-builders/update.js +1 -6
  267. package/pg-core/query-builders/update.js.map +1 -1
  268. package/pg-core/session.cjs +1 -52
  269. package/pg-core/session.cjs.map +1 -1
  270. package/pg-core/session.d.cts +3 -14
  271. package/pg-core/session.d.ts +3 -14
  272. package/pg-core/session.js +2 -53
  273. package/pg-core/session.js.map +1 -1
  274. package/pg-core/utils.cjs +0 -16
  275. package/pg-core/utils.cjs.map +1 -1
  276. package/pg-core/utils.d.cts +4 -8
  277. package/pg-core/utils.d.ts +4 -8
  278. package/pg-core/utils.js +1 -16
  279. package/pg-core/utils.js.map +1 -1
  280. package/pg-proxy/driver.cjs +2 -7
  281. package/pg-proxy/driver.cjs.map +1 -1
  282. package/pg-proxy/driver.js +2 -7
  283. package/pg-proxy/driver.js.map +1 -1
  284. package/pg-proxy/session.cjs +5 -15
  285. package/pg-proxy/session.cjs.map +1 -1
  286. package/pg-proxy/session.d.cts +2 -12
  287. package/pg-proxy/session.d.ts +2 -12
  288. package/pg-proxy/session.js +5 -15
  289. package/pg-proxy/session.js.map +1 -1
  290. package/pglite/driver.cjs +2 -9
  291. package/pglite/driver.cjs.map +1 -1
  292. package/pglite/driver.d.cts +0 -2
  293. package/pglite/driver.d.ts +0 -2
  294. package/pglite/driver.js +2 -9
  295. package/pglite/driver.js.map +1 -1
  296. package/pglite/session.cjs +7 -19
  297. package/pglite/session.cjs.map +1 -1
  298. package/pglite/session.d.cts +2 -12
  299. package/pglite/session.d.ts +2 -12
  300. package/pglite/session.js +7 -19
  301. package/pglite/session.js.map +1 -1
  302. package/planetscale-serverless/driver.cjs +1 -5
  303. package/planetscale-serverless/driver.cjs.map +1 -1
  304. package/planetscale-serverless/driver.d.cts +0 -1
  305. package/planetscale-serverless/driver.d.ts +0 -1
  306. package/planetscale-serverless/driver.js +1 -5
  307. package/planetscale-serverless/driver.js.map +1 -1
  308. package/planetscale-serverless/session.cjs +5 -15
  309. package/planetscale-serverless/session.cjs.map +1 -1
  310. package/planetscale-serverless/session.d.cts +2 -12
  311. package/planetscale-serverless/session.d.ts +2 -12
  312. package/planetscale-serverless/session.js +5 -15
  313. package/planetscale-serverless/session.js.map +1 -1
  314. package/postgres-js/driver.cjs +1 -5
  315. package/postgres-js/driver.cjs.map +1 -1
  316. package/postgres-js/driver.js +1 -5
  317. package/postgres-js/driver.js.map +1 -1
  318. package/postgres-js/session.cjs +6 -18
  319. package/postgres-js/session.cjs.map +1 -1
  320. package/postgres-js/session.d.cts +2 -12
  321. package/postgres-js/session.d.ts +2 -12
  322. package/postgres-js/session.js +6 -18
  323. package/postgres-js/session.js.map +1 -1
  324. package/prisma/mysql/session.cjs +1 -1
  325. package/prisma/mysql/session.cjs.map +1 -1
  326. package/prisma/mysql/session.js +1 -1
  327. package/prisma/mysql/session.js.map +1 -1
  328. package/prisma/pg/session.cjs +1 -1
  329. package/prisma/pg/session.cjs.map +1 -1
  330. package/prisma/pg/session.js +1 -1
  331. package/prisma/pg/session.js.map +1 -1
  332. package/query-builders/query-builder.cjs.map +1 -1
  333. package/query-builders/query-builder.d.cts +1 -2
  334. package/query-builders/query-builder.d.ts +1 -2
  335. package/query-builders/query-builder.js.map +1 -1
  336. package/query-builders/select.types.cjs.map +1 -1
  337. package/query-builders/select.types.d.cts +3 -1
  338. package/query-builders/select.types.d.ts +3 -1
  339. package/singlestore/driver.cjs +26 -14
  340. package/singlestore/driver.cjs.map +1 -1
  341. package/singlestore/driver.d.cts +3 -7
  342. package/singlestore/driver.d.ts +3 -7
  343. package/singlestore/driver.js +26 -14
  344. package/singlestore/driver.js.map +1 -1
  345. package/singlestore/session.cjs +5 -15
  346. package/singlestore/session.cjs.map +1 -1
  347. package/singlestore/session.d.cts +2 -12
  348. package/singlestore/session.d.ts +2 -12
  349. package/singlestore/session.js +5 -15
  350. package/singlestore/session.js.map +1 -1
  351. package/singlestore-core/db.cjs +0 -1
  352. package/singlestore-core/db.cjs.map +1 -1
  353. package/singlestore-core/db.d.cts +0 -4
  354. package/singlestore-core/db.d.ts +0 -4
  355. package/singlestore-core/db.js +0 -1
  356. package/singlestore-core/db.js.map +1 -1
  357. package/singlestore-core/dialect.cjs +5 -4
  358. package/singlestore-core/dialect.cjs.map +1 -1
  359. package/singlestore-core/dialect.js +5 -4
  360. package/singlestore-core/dialect.js.map +1 -1
  361. package/singlestore-core/query-builders/delete.cjs +1 -9
  362. package/singlestore-core/query-builders/delete.cjs.map +1 -1
  363. package/singlestore-core/query-builders/delete.js +1 -9
  364. package/singlestore-core/query-builders/delete.js.map +1 -1
  365. package/singlestore-core/query-builders/insert.cjs +1 -6
  366. package/singlestore-core/query-builders/insert.cjs.map +1 -1
  367. package/singlestore-core/query-builders/insert.js +1 -6
  368. package/singlestore-core/query-builders/insert.js.map +1 -1
  369. package/singlestore-core/query-builders/select.cjs +83 -42
  370. package/singlestore-core/query-builders/select.cjs.map +1 -1
  371. package/singlestore-core/query-builders/select.d.cts +78 -22
  372. package/singlestore-core/query-builders/select.d.ts +78 -22
  373. package/singlestore-core/query-builders/select.js +83 -42
  374. package/singlestore-core/query-builders/select.js.map +1 -1
  375. package/singlestore-core/query-builders/select.types.cjs.map +1 -1
  376. package/singlestore-core/query-builders/select.types.d.cts +1 -2
  377. package/singlestore-core/query-builders/select.types.d.ts +1 -2
  378. package/singlestore-core/query-builders/update.cjs +1 -9
  379. package/singlestore-core/query-builders/update.cjs.map +1 -1
  380. package/singlestore-core/query-builders/update.js +1 -9
  381. package/singlestore-core/query-builders/update.js.map +1 -1
  382. package/singlestore-core/session.cjs +0 -53
  383. package/singlestore-core/session.cjs.map +1 -1
  384. package/singlestore-core/session.d.cts +2 -14
  385. package/singlestore-core/session.d.ts +2 -14
  386. package/singlestore-core/session.js +1 -54
  387. package/singlestore-core/session.js.map +1 -1
  388. package/singlestore-core/utils.cjs +0 -16
  389. package/singlestore-core/utils.cjs.map +1 -1
  390. package/singlestore-core/utils.d.cts +0 -3
  391. package/singlestore-core/utils.d.ts +0 -3
  392. package/singlestore-core/utils.js +0 -15
  393. package/singlestore-core/utils.js.map +1 -1
  394. package/sql/sql.cjs +0 -10
  395. package/sql/sql.cjs.map +1 -1
  396. package/sql/sql.js +0 -10
  397. package/sql/sql.js.map +1 -1
  398. package/sqlite-core/db.cjs +0 -1
  399. package/sqlite-core/db.cjs.map +1 -1
  400. package/sqlite-core/db.d.cts +0 -4
  401. package/sqlite-core/db.d.ts +0 -4
  402. package/sqlite-core/db.js +0 -1
  403. package/sqlite-core/db.js.map +1 -1
  404. package/sqlite-core/dialect.cjs +3 -2
  405. package/sqlite-core/dialect.cjs.map +1 -1
  406. package/sqlite-core/dialect.js +3 -2
  407. package/sqlite-core/dialect.js.map +1 -1
  408. package/sqlite-core/query-builders/delete.cjs +1 -7
  409. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  410. package/sqlite-core/query-builders/delete.js +1 -7
  411. package/sqlite-core/query-builders/delete.js.map +1 -1
  412. package/sqlite-core/query-builders/insert.cjs +1 -7
  413. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  414. package/sqlite-core/query-builders/insert.js +1 -7
  415. package/sqlite-core/query-builders/insert.js.map +1 -1
  416. package/sqlite-core/query-builders/select.cjs +39 -39
  417. package/sqlite-core/query-builders/select.cjs.map +1 -1
  418. package/sqlite-core/query-builders/select.d.cts +40 -22
  419. package/sqlite-core/query-builders/select.d.ts +40 -22
  420. package/sqlite-core/query-builders/select.js +39 -39
  421. package/sqlite-core/query-builders/select.js.map +1 -1
  422. package/sqlite-core/query-builders/select.types.cjs.map +1 -1
  423. package/sqlite-core/query-builders/select.types.d.cts +1 -1
  424. package/sqlite-core/query-builders/select.types.d.ts +1 -1
  425. package/sqlite-core/query-builders/update.cjs +1 -7
  426. package/sqlite-core/query-builders/update.cjs.map +1 -1
  427. package/sqlite-core/query-builders/update.js +1 -7
  428. package/sqlite-core/query-builders/update.js.map +1 -1
  429. package/sqlite-core/session.cjs +3 -62
  430. package/sqlite-core/session.cjs.map +1 -1
  431. package/sqlite-core/session.d.cts +4 -18
  432. package/sqlite-core/session.d.ts +4 -18
  433. package/sqlite-core/session.js +4 -63
  434. package/sqlite-core/session.js.map +1 -1
  435. package/sqlite-core/utils.cjs +0 -16
  436. package/sqlite-core/utils.cjs.map +1 -1
  437. package/sqlite-core/utils.d.cts +2 -6
  438. package/sqlite-core/utils.d.ts +2 -6
  439. package/sqlite-core/utils.js +0 -15
  440. package/sqlite-core/utils.js.map +1 -1
  441. package/sqlite-proxy/driver.cjs +2 -9
  442. package/sqlite-proxy/driver.cjs.map +1 -1
  443. package/sqlite-proxy/driver.js +2 -9
  444. package/sqlite-proxy/driver.js.map +1 -1
  445. package/sqlite-proxy/session.cjs +8 -22
  446. package/sqlite-proxy/session.cjs.map +1 -1
  447. package/sqlite-proxy/session.d.cts +2 -12
  448. package/sqlite-proxy/session.d.ts +2 -12
  449. package/sqlite-proxy/session.js +8 -22
  450. package/sqlite-proxy/session.js.map +1 -1
  451. package/subquery.cjs +3 -4
  452. package/subquery.cjs.map +1 -1
  453. package/subquery.d.cts +1 -2
  454. package/subquery.d.ts +1 -2
  455. package/subquery.js +3 -4
  456. package/subquery.js.map +1 -1
  457. package/tidb-serverless/driver.cjs +1 -5
  458. package/tidb-serverless/driver.cjs.map +1 -1
  459. package/tidb-serverless/driver.d.cts +0 -1
  460. package/tidb-serverless/driver.d.ts +0 -1
  461. package/tidb-serverless/driver.js +1 -5
  462. package/tidb-serverless/driver.js.map +1 -1
  463. package/tidb-serverless/session.cjs +5 -15
  464. package/tidb-serverless/session.cjs.map +1 -1
  465. package/tidb-serverless/session.d.cts +2 -12
  466. package/tidb-serverless/session.d.ts +2 -12
  467. package/tidb-serverless/session.js +5 -15
  468. package/tidb-serverless/session.js.map +1 -1
  469. package/utils.cjs +0 -22
  470. package/utils.cjs.map +1 -1
  471. package/utils.d.cts +0 -3
  472. package/utils.d.ts +0 -3
  473. package/utils.js +0 -11
  474. package/utils.js.map +1 -1
  475. package/vercel-postgres/driver.cjs +2 -9
  476. package/vercel-postgres/driver.cjs.map +1 -1
  477. package/vercel-postgres/driver.d.cts +0 -2
  478. package/vercel-postgres/driver.d.ts +0 -2
  479. package/vercel-postgres/driver.js +2 -9
  480. package/vercel-postgres/driver.js.map +1 -1
  481. package/vercel-postgres/session.cjs +7 -21
  482. package/vercel-postgres/session.cjs.map +1 -1
  483. package/vercel-postgres/session.d.cts +2 -12
  484. package/vercel-postgres/session.d.ts +2 -12
  485. package/vercel-postgres/session.js +7 -21
  486. package/vercel-postgres/session.js.map +1 -1
  487. package/version.cjs +1 -1
  488. package/version.d.cts +1 -1
  489. package/version.d.ts +1 -1
  490. package/version.js +1 -1
  491. package/xata-http/driver.cjs +2 -7
  492. package/xata-http/driver.cjs.map +1 -1
  493. package/xata-http/driver.d.cts +0 -2
  494. package/xata-http/driver.d.ts +0 -2
  495. package/xata-http/driver.js +2 -7
  496. package/xata-http/driver.js.map +1 -1
  497. package/xata-http/session.cjs +7 -21
  498. package/xata-http/session.cjs.map +1 -1
  499. package/xata-http/session.d.cts +2 -12
  500. package/xata-http/session.d.ts +2 -12
  501. package/xata-http/session.js +7 -21
  502. package/xata-http/session.js.map +1 -1
  503. package/cache/core/cache.cjs +0 -47
  504. package/cache/core/cache.cjs.map +0 -1
  505. package/cache/core/cache.d.cts +0 -35
  506. package/cache/core/cache.d.ts +0 -35
  507. package/cache/core/cache.js +0 -22
  508. package/cache/core/cache.js.map +0 -1
  509. package/cache/core/index.cjs +0 -23
  510. package/cache/core/index.cjs.map +0 -1
  511. package/cache/core/index.d.cts +0 -1
  512. package/cache/core/index.d.ts +0 -1
  513. package/cache/core/index.js +0 -2
  514. package/cache/core/index.js.map +0 -1
  515. package/cache/core/types.cjs +0 -17
  516. package/cache/core/types.cjs.map +0 -1
  517. package/cache/core/types.d.cts +0 -33
  518. package/cache/core/types.d.ts +0 -33
  519. package/cache/core/types.js +0 -1
  520. package/cache/core/types.js.map +0 -1
  521. package/cache/upstash/cache.cjs +0 -148
  522. package/cache/upstash/cache.cjs.map +0 -1
  523. package/cache/upstash/cache.d.cts +0 -29
  524. package/cache/upstash/cache.d.ts +0 -29
  525. package/cache/upstash/cache.js +0 -123
  526. package/cache/upstash/cache.js.map +0 -1
  527. package/cache/upstash/index.cjs +0 -23
  528. package/cache/upstash/index.cjs.map +0 -1
  529. package/cache/upstash/index.d.cts +0 -1
  530. package/cache/upstash/index.d.ts +0 -1
  531. package/cache/upstash/index.js +0 -2
  532. package/cache/upstash/index.js.map +0 -1
@@ -1,4 +1,3 @@
1
- import type { CacheConfig, WithCacheConfig } from "../../cache/core/types.js";
2
1
  import { entityKind } from "../../entity.js";
3
2
  import type { PgColumn } from "../columns/index.js";
4
3
  import type { PgDialect } from "../dialect.js";
@@ -14,7 +13,7 @@ import { SQL } from "../../sql/sql.js";
14
13
  import type { ColumnsSelection, Placeholder, Query, SQLWrapper } from "../../sql/sql.js";
15
14
  import { Subquery } from "../../subquery.js";
16
15
  import { type DrizzleTypeError, type ValueOrArray } from "../../utils.js";
17
- import type { CreatePgSelectFromBuilderMode, GetPgSetOperators, LockConfig, LockStrength, PgCreateSetOperatorFn, PgSelectConfig, PgSelectDynamic, PgSelectHKT, PgSelectHKTBase, PgSelectJoinFn, PgSelectPrepare, PgSelectWithout, PgSetOperatorExcludedMethods, PgSetOperatorWithResult, SelectedFields, SetOperatorRightSelect, TableLikeHasEmptySelection } from "./select.types.js";
16
+ import type { CreatePgSelectFromBuilderMode, GetPgSetOperators, LockConfig, LockStrength, PgCreateSetOperatorFn, PgSelectConfig, PgSelectDynamic, PgSelectHKT, PgSelectHKTBase, PgSelectPrepare, PgSelectWithout, PgSetOperatorExcludedMethods, PgSetOperatorWithResult, SelectedFields, SetOperatorRightSelect, TableLikeHasEmptySelection } from "./select.types.js";
18
17
  export declare class PgSelectBuilder<TSelection extends SelectedFields | undefined, TBuilderMode extends 'db' | 'qb' = 'db'> {
19
18
  static readonly [entityKind]: string;
20
19
  private fields;
@@ -53,16 +52,13 @@ export declare abstract class PgSelectQueryBuilderBase<THKT extends PgSelectHKTB
53
52
  readonly excludedMethods: TExcludedMethods;
54
53
  readonly result: TResult;
55
54
  readonly selectedFields: TSelectedFields;
56
- readonly config: PgSelectConfig;
57
55
  };
58
56
  protected config: PgSelectConfig;
59
57
  protected joinsNotNullableMap: Record<string, boolean>;
60
- protected tableName: string | undefined;
58
+ private tableName;
61
59
  private isPartialSelect;
62
60
  protected session: PgSession | undefined;
63
61
  protected dialect: PgDialect;
64
- protected cacheConfig?: WithCacheConfig;
65
- protected usedTables: Set<string>;
66
62
  constructor({ table, fields, isPartialSelect, session, dialect, withList, distinct }: {
67
63
  table: PgSelectConfig['table'];
68
64
  fields: PgSelectConfig['fields'];
@@ -89,12 +85,12 @@ export declare abstract class PgSelectQueryBuilderBase<THKT extends PgSelectHKTB
89
85
  *
90
86
  * ```ts
91
87
  * // Select all users and their pets
92
- * const usersWithPets: { user: User; pets: Pet | null }[] = await db.select()
88
+ * const usersWithPets: { user: User; pets: Pet | null; }[] = await db.select()
93
89
  * .from(users)
94
90
  * .leftJoin(pets, eq(users.id, pets.ownerId))
95
91
  *
96
92
  * // Select userId and petId
97
- * const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
93
+ * const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({
98
94
  * userId: users.id,
99
95
  * petId: pets.id,
100
96
  * })
@@ -102,7 +98,20 @@ export declare abstract class PgSelectQueryBuilderBase<THKT extends PgSelectHKTB
102
98
  * .leftJoin(pets, eq(users.id, pets.ownerId))
103
99
  * ```
104
100
  */
105
- leftJoin: PgSelectJoinFn<this, TDynamic, "left">;
101
+ leftJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | PgTable<import("../table.js").TableConfig> | PgViewBase<string, boolean, ColumnsSelection>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TableLikeHasEmptySelection<TJoinedTable> extends true ? DrizzleTypeError<"Cannot reference a data-modifying statement subquery if it doesn't contain a `returning` clause"> : TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined) => import("./select.types.js").PgSelectJoin<this, TDynamic, "left", TJoinedTable, TJoinedName>;
102
+ /**
103
+ * Executes a `left join lateral` operation by adding subquery to the current query.
104
+ *
105
+ * A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
106
+ *
107
+ * Calling this method associates each row of the table with the corresponding row from the joined table, if a match is found. If no matching row exists, it sets all columns of the joined table to null.
108
+ *
109
+ * See docs: {@link https://orm.drizzle.team/docs/joins#left-join-lateral}
110
+ *
111
+ * @param table the subquery to join.
112
+ * @param on the `on` clause.
113
+ */
114
+ leftJoinLateral: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TableLikeHasEmptySelection<TJoinedTable> extends true ? DrizzleTypeError<"Cannot reference a data-modifying statement subquery if it doesn't contain a `returning` clause"> : TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined) => import("./select.types.js").PgSelectJoin<this, TDynamic, "left", TJoinedTable, TJoinedName>;
106
115
  /**
107
116
  * Executes a `right join` operation by adding another table to the current query.
108
117
  *
@@ -117,12 +126,12 @@ export declare abstract class PgSelectQueryBuilderBase<THKT extends PgSelectHKTB
117
126
  *
118
127
  * ```ts
119
128
  * // Select all users and their pets
120
- * const usersWithPets: { user: User | null; pets: Pet }[] = await db.select()
129
+ * const usersWithPets: { user: User | null; pets: Pet; }[] = await db.select()
121
130
  * .from(users)
122
131
  * .rightJoin(pets, eq(users.id, pets.ownerId))
123
132
  *
124
133
  * // Select userId and petId
125
- * const usersIdsAndPetIds: { userId: number | null; petId: number }[] = await db.select({
134
+ * const usersIdsAndPetIds: { userId: number | null; petId: number; }[] = await db.select({
126
135
  * userId: users.id,
127
136
  * petId: pets.id,
128
137
  * })
@@ -130,7 +139,7 @@ export declare abstract class PgSelectQueryBuilderBase<THKT extends PgSelectHKTB
130
139
  * .rightJoin(pets, eq(users.id, pets.ownerId))
131
140
  * ```
132
141
  */
133
- rightJoin: PgSelectJoinFn<this, TDynamic, "right">;
142
+ rightJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | PgTable<import("../table.js").TableConfig> | PgViewBase<string, boolean, ColumnsSelection>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TableLikeHasEmptySelection<TJoinedTable> extends true ? DrizzleTypeError<"Cannot reference a data-modifying statement subquery if it doesn't contain a `returning` clause"> : TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined) => import("./select.types.js").PgSelectJoin<this, TDynamic, "right", TJoinedTable, TJoinedName>;
134
143
  /**
135
144
  * Executes an `inner join` operation, creating a new table by combining rows from two tables that have matching values.
136
145
  *
@@ -145,12 +154,12 @@ export declare abstract class PgSelectQueryBuilderBase<THKT extends PgSelectHKTB
145
154
  *
146
155
  * ```ts
147
156
  * // Select all users and their pets
148
- * const usersWithPets: { user: User; pets: Pet }[] = await db.select()
157
+ * const usersWithPets: { user: User; pets: Pet; }[] = await db.select()
149
158
  * .from(users)
150
159
  * .innerJoin(pets, eq(users.id, pets.ownerId))
151
160
  *
152
161
  * // Select userId and petId
153
- * const usersIdsAndPetIds: { userId: number; petId: number }[] = await db.select({
162
+ * const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
154
163
  * userId: users.id,
155
164
  * petId: pets.id,
156
165
  * })
@@ -158,7 +167,20 @@ export declare abstract class PgSelectQueryBuilderBase<THKT extends PgSelectHKTB
158
167
  * .innerJoin(pets, eq(users.id, pets.ownerId))
159
168
  * ```
160
169
  */
161
- innerJoin: PgSelectJoinFn<this, TDynamic, "inner">;
170
+ innerJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | PgTable<import("../table.js").TableConfig> | PgViewBase<string, boolean, ColumnsSelection>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TableLikeHasEmptySelection<TJoinedTable> extends true ? DrizzleTypeError<"Cannot reference a data-modifying statement subquery if it doesn't contain a `returning` clause"> : TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined) => import("./select.types.js").PgSelectJoin<this, TDynamic, "inner", TJoinedTable, TJoinedName>;
171
+ /**
172
+ * Executes an `inner join lateral` operation, creating a new table by combining rows from two queries that have matching values.
173
+ *
174
+ * A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
175
+ *
176
+ * Calling this method retrieves rows that have corresponding entries in both joined tables. Rows without matching entries in either table are excluded, resulting in a table that includes only matching pairs.
177
+ *
178
+ * See docs: {@link https://orm.drizzle.team/docs/joins#inner-join-lateral}
179
+ *
180
+ * @param table the subquery to join.
181
+ * @param on the `on` clause.
182
+ */
183
+ innerJoinLateral: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TableLikeHasEmptySelection<TJoinedTable> extends true ? DrizzleTypeError<"Cannot reference a data-modifying statement subquery if it doesn't contain a `returning` clause"> : TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined) => import("./select.types.js").PgSelectJoin<this, TDynamic, "inner", TJoinedTable, TJoinedName>;
162
184
  /**
163
185
  * Executes a `full join` operation by combining rows from two tables into a new table.
164
186
  *
@@ -173,12 +195,12 @@ export declare abstract class PgSelectQueryBuilderBase<THKT extends PgSelectHKTB
173
195
  *
174
196
  * ```ts
175
197
  * // Select all users and their pets
176
- * const usersWithPets: { user: User | null; pets: Pet | null }[] = await db.select()
198
+ * const usersWithPets: { user: User | null; pets: Pet | null; }[] = await db.select()
177
199
  * .from(users)
178
200
  * .fullJoin(pets, eq(users.id, pets.ownerId))
179
201
  *
180
202
  * // Select userId and petId
181
- * const usersIdsAndPetIds: { userId: number | null; petId: number | null }[] = await db.select({
203
+ * const usersIdsAndPetIds: { userId: number | null; petId: number | null; }[] = await db.select({
182
204
  * userId: users.id,
183
205
  * petId: pets.id,
184
206
  * })
@@ -186,7 +208,46 @@ export declare abstract class PgSelectQueryBuilderBase<THKT extends PgSelectHKTB
186
208
  * .fullJoin(pets, eq(users.id, pets.ownerId))
187
209
  * ```
188
210
  */
189
- fullJoin: PgSelectJoinFn<this, TDynamic, "full">;
211
+ fullJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | PgTable<import("../table.js").TableConfig> | PgViewBase<string, boolean, ColumnsSelection>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TableLikeHasEmptySelection<TJoinedTable> extends true ? DrizzleTypeError<"Cannot reference a data-modifying statement subquery if it doesn't contain a `returning` clause"> : TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined) => import("./select.types.js").PgSelectJoin<this, TDynamic, "full", TJoinedTable, TJoinedName>;
212
+ /**
213
+ * Executes a `cross join` operation by combining rows from two tables into a new table.
214
+ *
215
+ * Calling this method retrieves all rows from both main and joined tables, merging all rows from each table.
216
+ *
217
+ * See docs: {@link https://orm.drizzle.team/docs/joins#cross-join}
218
+ *
219
+ * @param table the table to join.
220
+ *
221
+ * @example
222
+ *
223
+ * ```ts
224
+ * // Select all users, each user with every pet
225
+ * const usersWithPets: { user: User; pets: Pet; }[] = await db.select()
226
+ * .from(users)
227
+ * .crossJoin(pets)
228
+ *
229
+ * // Select userId and petId
230
+ * const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
231
+ * userId: users.id,
232
+ * petId: pets.id,
233
+ * })
234
+ * .from(users)
235
+ * .crossJoin(pets)
236
+ * ```
237
+ */
238
+ crossJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | PgTable<import("../table.js").TableConfig> | PgViewBase<string, boolean, ColumnsSelection>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TableLikeHasEmptySelection<TJoinedTable> extends true ? DrizzleTypeError<"Cannot reference a data-modifying statement subquery if it doesn't contain a `returning` clause"> : TJoinedTable) => import("./select.types.js").PgSelectJoin<this, TDynamic, "cross", TJoinedTable, TJoinedName>;
239
+ /**
240
+ * Executes a `cross join lateral` operation by combining rows from two queries into a new table.
241
+ *
242
+ * A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
243
+ *
244
+ * Calling this method retrieves all rows from both main and joined queries, merging all rows from each query.
245
+ *
246
+ * See docs: {@link https://orm.drizzle.team/docs/joins#cross-join-lateral}
247
+ *
248
+ * @param table the query to join.
249
+ */
250
+ crossJoinLateral: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TableLikeHasEmptySelection<TJoinedTable> extends true ? DrizzleTypeError<"Cannot reference a data-modifying statement subquery if it doesn't contain a `returning` clause"> : TJoinedTable) => import("./select.types.js").PgSelectJoin<this, TDynamic, "cross", TJoinedTable, TJoinedName>;
190
251
  private createSetOperator;
191
252
  /**
192
253
  * Adds `union` set operator to the query.
@@ -522,11 +583,6 @@ export declare abstract class PgSelectQueryBuilderBase<THKT extends PgSelectHKTB
522
583
  toSQL(): Query;
523
584
  as<TAlias extends string>(alias: TAlias): SubqueryWithSelection<this['_']['selectedFields'], TAlias>;
524
585
  $dynamic(): PgSelectDynamic<this>;
525
- $withCache(config?: {
526
- config?: CacheConfig;
527
- tag?: string;
528
- autoInvalidate?: boolean;
529
- } | false): this;
530
586
  }
531
587
  export interface PgSelectBase<TTableName extends string | undefined, TSelection extends ColumnsSelection, TSelectMode extends SelectMode, TNullabilityMap extends Record<string, JoinNullability> = TTableName extends string ? Record<TTableName, 'not-null'> : {}, TDynamic extends boolean = false, TExcludedMethods extends string = never, TResult extends any[] = SelectResult<TSelection, TSelectMode, TNullabilityMap>[], TSelectedFields extends ColumnsSelection = BuildSubquerySelection<TSelection, TNullabilityMap>> extends PgSelectQueryBuilderBase<PgSelectHKT, TTableName, TSelection, TSelectMode, TNullabilityMap, TDynamic, TExcludedMethods, TResult, TSelectedFields>, QueryPromise<TResult>, SQLWrapper {
532
588
  }
@@ -15,7 +15,6 @@ import {
15
15
  } from "../../utils.js";
16
16
  import { orderSelectedFields } from "../../utils.js";
17
17
  import { ViewBaseConfig } from "../../view-common.js";
18
- import { extractUsedTable } from "../utils.js";
19
18
  class PgSelectBuilder {
20
19
  static [entityKind] = "PgSelectBuilder";
21
20
  fields;
@@ -81,8 +80,6 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
81
80
  isPartialSelect;
82
81
  session;
83
82
  dialect;
84
- cacheConfig = void 0;
85
- usedTables = /* @__PURE__ */ new Set();
86
83
  constructor({ table, fields, isPartialSelect, session, dialect, withList, distinct }) {
87
84
  super();
88
85
  this.config = {
@@ -96,24 +93,15 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
96
93
  this.session = session;
97
94
  this.dialect = dialect;
98
95
  this._ = {
99
- selectedFields: fields,
100
- config: this.config
96
+ selectedFields: fields
101
97
  };
102
98
  this.tableName = getTableLikeName(table);
103
99
  this.joinsNotNullableMap = typeof this.tableName === "string" ? { [this.tableName]: true } : {};
104
- for (const item of extractUsedTable(table))
105
- this.usedTables.add(item);
106
100
  }
107
- /** @internal */
108
- getUsedTables() {
109
- return [...this.usedTables];
110
- }
111
- createJoin(joinType) {
101
+ createJoin(joinType, lateral) {
112
102
  return (table, on) => {
113
103
  const baseTableName = this.tableName;
114
104
  const tableName = getTableLikeName(table);
115
- for (const item of extractUsedTable(table))
116
- this.usedTables.add(item);
117
105
  if (typeof tableName === "string" && this.config.joins?.some((join) => join.alias === tableName)) {
118
106
  throw new Error(`Alias "${tableName}" is already used in this query`);
119
107
  }
@@ -139,7 +127,7 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
139
127
  if (!this.config.joins) {
140
128
  this.config.joins = [];
141
129
  }
142
- this.config.joins.push({ on, table, joinType, alias: tableName });
130
+ this.config.joins.push({ on, table, joinType, alias: tableName, lateral });
143
131
  if (typeof tableName === "string") {
144
132
  switch (joinType) {
145
133
  case "left": {
@@ -153,6 +141,7 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
153
141
  this.joinsNotNullableMap[tableName] = true;
154
142
  break;
155
143
  }
144
+ case "cross":
156
145
  case "inner": {
157
146
  this.joinsNotNullableMap[tableName] = true;
158
147
  break;
@@ -183,12 +172,12 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
183
172
  *
184
173
  * ```ts
185
174
  * // Select all users and their pets
186
- * const usersWithPets: { user: User; pets: Pet | null }[] = await db.select()
175
+ * const usersWithPets: { user: User; pets: Pet | null; }[] = await db.select()
187
176
  * .from(users)
188
177
  * .leftJoin(pets, eq(users.id, pets.ownerId))
189
178
  *
190
179
  * // Select userId and petId
191
- * const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
180
+ * const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({
192
181
  * userId: users.id,
193
182
  * petId: pets.id,
194
183
  * })
@@ -196,7 +185,20 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
196
185
  * .leftJoin(pets, eq(users.id, pets.ownerId))
197
186
  * ```
198
187
  */
199
- leftJoin = this.createJoin("left");
188
+ leftJoin = this.createJoin("left", false);
189
+ /**
190
+ * Executes a `left join lateral` operation by adding subquery to the current query.
191
+ *
192
+ * A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
193
+ *
194
+ * Calling this method associates each row of the table with the corresponding row from the joined table, if a match is found. If no matching row exists, it sets all columns of the joined table to null.
195
+ *
196
+ * See docs: {@link https://orm.drizzle.team/docs/joins#left-join-lateral}
197
+ *
198
+ * @param table the subquery to join.
199
+ * @param on the `on` clause.
200
+ */
201
+ leftJoinLateral = this.createJoin("left", true);
200
202
  /**
201
203
  * Executes a `right join` operation by adding another table to the current query.
202
204
  *
@@ -211,12 +213,12 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
211
213
  *
212
214
  * ```ts
213
215
  * // Select all users and their pets
214
- * const usersWithPets: { user: User | null; pets: Pet }[] = await db.select()
216
+ * const usersWithPets: { user: User | null; pets: Pet; }[] = await db.select()
215
217
  * .from(users)
216
218
  * .rightJoin(pets, eq(users.id, pets.ownerId))
217
219
  *
218
220
  * // Select userId and petId
219
- * const usersIdsAndPetIds: { userId: number | null; petId: number }[] = await db.select({
221
+ * const usersIdsAndPetIds: { userId: number | null; petId: number; }[] = await db.select({
220
222
  * userId: users.id,
221
223
  * petId: pets.id,
222
224
  * })
@@ -224,7 +226,7 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
224
226
  * .rightJoin(pets, eq(users.id, pets.ownerId))
225
227
  * ```
226
228
  */
227
- rightJoin = this.createJoin("right");
229
+ rightJoin = this.createJoin("right", false);
228
230
  /**
229
231
  * Executes an `inner join` operation, creating a new table by combining rows from two tables that have matching values.
230
232
  *
@@ -239,12 +241,12 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
239
241
  *
240
242
  * ```ts
241
243
  * // Select all users and their pets
242
- * const usersWithPets: { user: User; pets: Pet }[] = await db.select()
244
+ * const usersWithPets: { user: User; pets: Pet; }[] = await db.select()
243
245
  * .from(users)
244
246
  * .innerJoin(pets, eq(users.id, pets.ownerId))
245
247
  *
246
248
  * // Select userId and petId
247
- * const usersIdsAndPetIds: { userId: number; petId: number }[] = await db.select({
249
+ * const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
248
250
  * userId: users.id,
249
251
  * petId: pets.id,
250
252
  * })
@@ -252,7 +254,20 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
252
254
  * .innerJoin(pets, eq(users.id, pets.ownerId))
253
255
  * ```
254
256
  */
255
- innerJoin = this.createJoin("inner");
257
+ innerJoin = this.createJoin("inner", false);
258
+ /**
259
+ * Executes an `inner join lateral` operation, creating a new table by combining rows from two queries that have matching values.
260
+ *
261
+ * A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
262
+ *
263
+ * Calling this method retrieves rows that have corresponding entries in both joined tables. Rows without matching entries in either table are excluded, resulting in a table that includes only matching pairs.
264
+ *
265
+ * See docs: {@link https://orm.drizzle.team/docs/joins#inner-join-lateral}
266
+ *
267
+ * @param table the subquery to join.
268
+ * @param on the `on` clause.
269
+ */
270
+ innerJoinLateral = this.createJoin("inner", true);
256
271
  /**
257
272
  * Executes a `full join` operation by combining rows from two tables into a new table.
258
273
  *
@@ -267,12 +282,12 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
267
282
  *
268
283
  * ```ts
269
284
  * // Select all users and their pets
270
- * const usersWithPets: { user: User | null; pets: Pet | null }[] = await db.select()
285
+ * const usersWithPets: { user: User | null; pets: Pet | null; }[] = await db.select()
271
286
  * .from(users)
272
287
  * .fullJoin(pets, eq(users.id, pets.ownerId))
273
288
  *
274
289
  * // Select userId and petId
275
- * const usersIdsAndPetIds: { userId: number | null; petId: number | null }[] = await db.select({
290
+ * const usersIdsAndPetIds: { userId: number | null; petId: number | null; }[] = await db.select({
276
291
  * userId: users.id,
277
292
  * petId: pets.id,
278
293
  * })
@@ -280,7 +295,46 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
280
295
  * .fullJoin(pets, eq(users.id, pets.ownerId))
281
296
  * ```
282
297
  */
283
- fullJoin = this.createJoin("full");
298
+ fullJoin = this.createJoin("full", false);
299
+ /**
300
+ * Executes a `cross join` operation by combining rows from two tables into a new table.
301
+ *
302
+ * Calling this method retrieves all rows from both main and joined tables, merging all rows from each table.
303
+ *
304
+ * See docs: {@link https://orm.drizzle.team/docs/joins#cross-join}
305
+ *
306
+ * @param table the table to join.
307
+ *
308
+ * @example
309
+ *
310
+ * ```ts
311
+ * // Select all users, each user with every pet
312
+ * const usersWithPets: { user: User; pets: Pet; }[] = await db.select()
313
+ * .from(users)
314
+ * .crossJoin(pets)
315
+ *
316
+ * // Select userId and petId
317
+ * const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
318
+ * userId: users.id,
319
+ * petId: pets.id,
320
+ * })
321
+ * .from(users)
322
+ * .crossJoin(pets)
323
+ * ```
324
+ */
325
+ crossJoin = this.createJoin("cross", false);
326
+ /**
327
+ * Executes a `cross join lateral` operation by combining rows from two queries into a new table.
328
+ *
329
+ * A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
330
+ *
331
+ * Calling this method retrieves all rows from both main and joined queries, merging all rows from each query.
332
+ *
333
+ * See docs: {@link https://orm.drizzle.team/docs/joins#cross-join-lateral}
334
+ *
335
+ * @param table the query to join.
336
+ */
337
+ crossJoinLateral = this.createJoin("cross", true);
284
338
  createSetOperator(type, isAll) {
285
339
  return (rightSelection) => {
286
340
  const rightSelect = typeof rightSelection === "function" ? rightSelection(getPgSetOperators()) : rightSelection;
@@ -668,14 +722,8 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
668
722
  return rest;
669
723
  }
670
724
  as(alias) {
671
- const usedTables = [];
672
- usedTables.push(...extractUsedTable(this.config.table));
673
- if (this.config.joins) {
674
- for (const it of this.config.joins)
675
- usedTables.push(...extractUsedTable(it.table));
676
- }
677
725
  return new Proxy(
678
- new Subquery(this.getSQL(), this.config.fields, alias, false, [...new Set(usedTables)]),
726
+ new Subquery(this.getSQL(), this.config.fields, alias),
679
727
  new SelectionProxyHandler({ alias, sqlAliasedBehavior: "alias", sqlBehavior: "error" })
680
728
  );
681
729
  }
@@ -689,26 +737,18 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
689
737
  $dynamic() {
690
738
  return this;
691
739
  }
692
- $withCache(config) {
693
- this.cacheConfig = config === void 0 ? { config: {}, enable: true, autoInvalidate: true } : config === false ? { enable: false } : { enable: true, autoInvalidate: true, ...config };
694
- return this;
695
- }
696
740
  }
697
741
  class PgSelectBase extends PgSelectQueryBuilderBase {
698
742
  static [entityKind] = "PgSelect";
699
743
  /** @internal */
700
744
  _prepare(name) {
701
- const { session, config, dialect, joinsNotNullableMap, authToken, cacheConfig, usedTables } = this;
745
+ const { session, config, dialect, joinsNotNullableMap, authToken } = this;
702
746
  if (!session) {
703
747
  throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");
704
748
  }
705
- const { fields } = config;
706
749
  return tracer.startActiveSpan("drizzle.prepareQuery", () => {
707
- const fieldsList = orderSelectedFields(fields);
708
- const query = session.prepareQuery(dialect.sqlToQuery(this.getSQL()), fieldsList, name, true, void 0, {
709
- type: "select",
710
- tables: [...usedTables]
711
- }, cacheConfig);
750
+ const fieldsList = orderSelectedFields(config.fields);
751
+ const query = session.prepareQuery(dialect.sqlToQuery(this.getSQL()), fieldsList, name, true);
712
752
  query.joinsNotNullableMap = joinsNotNullableMap;
713
753
  return query.setToken(authToken);
714
754
  });