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 { MySqlColumn } from "../columns/index.js";
4
3
  import type { MySqlDialect } from "../dialect.js";
@@ -14,7 +13,7 @@ import { Subquery } from "../../subquery.js";
14
13
  import type { ValueOrArray } from "../../utils.js";
15
14
  import type { IndexBuilder } from "../indexes.js";
16
15
  import { MySqlViewBase } from "../view-base.js";
17
- import type { CreateMySqlSelectFromBuilderMode, GetMySqlSetOperators, LockConfig, LockStrength, MySqlCreateSetOperatorFn, MySqlJoinFn, MySqlSelectConfig, MySqlSelectDynamic, MySqlSelectHKT, MySqlSelectHKTBase, MySqlSelectPrepare, MySqlSelectWithout, MySqlSetOperatorExcludedMethods, MySqlSetOperatorWithResult, SelectedFields, SetOperatorRightSelect } from "./select.types.js";
16
+ import type { CreateMySqlSelectFromBuilderMode, GetMySqlSetOperators, LockConfig, LockStrength, MySqlCreateSetOperatorFn, MySqlSelectConfig, MySqlSelectDynamic, MySqlSelectHKT, MySqlSelectHKTBase, MySqlSelectPrepare, MySqlSelectWithout, MySqlSetOperatorExcludedMethods, MySqlSetOperatorWithResult, SelectedFields, SetOperatorRightSelect } from "./select.types.js";
18
17
  export type IndexForHint = IndexBuilder | string;
19
18
  export type IndexConfig = {
20
19
  useIndex?: IndexForHint | IndexForHint[];
@@ -50,15 +49,12 @@ export declare abstract class MySqlSelectQueryBuilderBase<THKT extends MySqlSele
50
49
  readonly excludedMethods: TExcludedMethods;
51
50
  readonly result: TResult;
52
51
  readonly selectedFields: TSelectedFields;
53
- readonly config: MySqlSelectConfig;
54
52
  };
55
53
  protected config: MySqlSelectConfig;
56
54
  protected joinsNotNullableMap: Record<string, boolean>;
57
55
  private tableName;
58
56
  private isPartialSelect;
59
57
  protected dialect: MySqlDialect;
60
- protected cacheConfig?: WithCacheConfig;
61
- protected usedTables: Set<string>;
62
58
  constructor({ table, fields, isPartialSelect, session, dialect, withList, distinct, useIndex, forceIndex, ignoreIndex }: {
63
59
  table: MySqlSelectConfig['table'];
64
60
  fields: MySqlSelectConfig['fields'];
@@ -81,17 +77,18 @@ export declare abstract class MySqlSelectQueryBuilderBase<THKT extends MySqlSele
81
77
  *
82
78
  * @param table the table to join.
83
79
  * @param on the `on` clause.
80
+ * @param onIndex index hint.
84
81
  *
85
82
  * @example
86
83
  *
87
84
  * ```ts
88
85
  * // Select all users and their pets
89
- * const usersWithPets: { user: User; pets: Pet | null }[] = await db.select()
86
+ * const usersWithPets: { user: User; pets: Pet | null; }[] = await db.select()
90
87
  * .from(users)
91
88
  * .leftJoin(pets, eq(users.id, pets.ownerId))
92
89
  *
93
90
  * // Select userId and petId
94
- * const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
91
+ * const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({
95
92
  * userId: users.id,
96
93
  * petId: pets.id,
97
94
  * })
@@ -99,7 +96,7 @@ export declare abstract class MySqlSelectQueryBuilderBase<THKT extends MySqlSele
99
96
  * .leftJoin(pets, eq(users.id, pets.ownerId))
100
97
  *
101
98
  * // Select userId and petId with use index hint
102
- * const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
99
+ * const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({
103
100
  * userId: users.id,
104
101
  * petId: pets.id,
105
102
  * })
@@ -109,7 +106,20 @@ export declare abstract class MySqlSelectQueryBuilderBase<THKT extends MySqlSele
109
106
  * })
110
107
  * ```
111
108
  */
112
- leftJoin: MySqlJoinFn<this, TDynamic, "left">;
109
+ leftJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | MySqlTable<import("../table.js").TableConfig> | MySqlViewBase<string, boolean, ColumnsSelection>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined, onIndex?: (TJoinedTable extends MySqlTable<import("../table.js").TableConfig> ? IndexConfig : "Index hint configuration is allowed only for MySqlTable and not for subqueries or views") | undefined) => import("./select.types.js").MySqlJoin<this, TDynamic, "left", TJoinedTable, TJoinedName>;
110
+ /**
111
+ * Executes a `left join lateral` operation by adding subquery to the current query.
112
+ *
113
+ * A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
114
+ *
115
+ * 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.
116
+ *
117
+ * See docs: {@link https://orm.drizzle.team/docs/joins#left-join-lateral}
118
+ *
119
+ * @param table the subquery to join.
120
+ * @param on the `on` clause.
121
+ */
122
+ leftJoinLateral: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined, onIndex?: (TJoinedTable extends MySqlTable<import("../table.js").TableConfig> ? IndexConfig : "Index hint configuration is allowed only for MySqlTable and not for subqueries or views") | undefined) => import("./select.types.js").MySqlJoin<this, TDynamic, "left", TJoinedTable, TJoinedName>;
113
123
  /**
114
124
  * Executes a `right join` operation by adding another table to the current query.
115
125
  *
@@ -119,17 +129,18 @@ export declare abstract class MySqlSelectQueryBuilderBase<THKT extends MySqlSele
119
129
  *
120
130
  * @param table the table to join.
121
131
  * @param on the `on` clause.
132
+ * @param onIndex index hint.
122
133
  *
123
134
  * @example
124
135
  *
125
136
  * ```ts
126
137
  * // Select all users and their pets
127
- * const usersWithPets: { user: User | null; pets: Pet }[] = await db.select()
138
+ * const usersWithPets: { user: User | null; pets: Pet; }[] = await db.select()
128
139
  * .from(users)
129
140
  * .rightJoin(pets, eq(users.id, pets.ownerId))
130
141
  *
131
142
  * // Select userId and petId
132
- * const usersIdsAndPetIds: { userId: number | null; petId: number }[] = await db.select({
143
+ * const usersIdsAndPetIds: { userId: number | null; petId: number; }[] = await db.select({
133
144
  * userId: users.id,
134
145
  * petId: pets.id,
135
146
  * })
@@ -137,7 +148,7 @@ export declare abstract class MySqlSelectQueryBuilderBase<THKT extends MySqlSele
137
148
  * .rightJoin(pets, eq(users.id, pets.ownerId))
138
149
  *
139
150
  * // Select userId and petId with use index hint
140
- * const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
151
+ * const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({
141
152
  * userId: users.id,
142
153
  * petId: pets.id,
143
154
  * })
@@ -147,7 +158,7 @@ export declare abstract class MySqlSelectQueryBuilderBase<THKT extends MySqlSele
147
158
  * })
148
159
  * ```
149
160
  */
150
- rightJoin: MySqlJoinFn<this, TDynamic, "right">;
161
+ rightJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | MySqlTable<import("../table.js").TableConfig> | MySqlViewBase<string, boolean, ColumnsSelection>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined, onIndex?: (TJoinedTable extends MySqlTable<import("../table.js").TableConfig> ? IndexConfig : "Index hint configuration is allowed only for MySqlTable and not for subqueries or views") | undefined) => import("./select.types.js").MySqlJoin<this, TDynamic, "right", TJoinedTable, TJoinedName>;
151
162
  /**
152
163
  * Executes an `inner join` operation, creating a new table by combining rows from two tables that have matching values.
153
164
  *
@@ -157,17 +168,18 @@ export declare abstract class MySqlSelectQueryBuilderBase<THKT extends MySqlSele
157
168
  *
158
169
  * @param table the table to join.
159
170
  * @param on the `on` clause.
171
+ * @param onIndex index hint.
160
172
  *
161
173
  * @example
162
174
  *
163
175
  * ```ts
164
176
  * // Select all users and their pets
165
- * const usersWithPets: { user: User; pets: Pet }[] = await db.select()
177
+ * const usersWithPets: { user: User; pets: Pet; }[] = await db.select()
166
178
  * .from(users)
167
179
  * .innerJoin(pets, eq(users.id, pets.ownerId))
168
180
  *
169
181
  * // Select userId and petId
170
- * const usersIdsAndPetIds: { userId: number; petId: number }[] = await db.select({
182
+ * const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
171
183
  * userId: users.id,
172
184
  * petId: pets.id,
173
185
  * })
@@ -175,7 +187,7 @@ export declare abstract class MySqlSelectQueryBuilderBase<THKT extends MySqlSele
175
187
  * .innerJoin(pets, eq(users.id, pets.ownerId))
176
188
  *
177
189
  * // Select userId and petId with use index hint
178
- * const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
190
+ * const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({
179
191
  * userId: users.id,
180
192
  * petId: pets.id,
181
193
  * })
@@ -185,45 +197,70 @@ export declare abstract class MySqlSelectQueryBuilderBase<THKT extends MySqlSele
185
197
  * })
186
198
  * ```
187
199
  */
188
- innerJoin: MySqlJoinFn<this, TDynamic, "inner">;
200
+ innerJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | MySqlTable<import("../table.js").TableConfig> | MySqlViewBase<string, boolean, ColumnsSelection>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined, onIndex?: (TJoinedTable extends MySqlTable<import("../table.js").TableConfig> ? IndexConfig : "Index hint configuration is allowed only for MySqlTable and not for subqueries or views") | undefined) => import("./select.types.js").MySqlJoin<this, TDynamic, "inner", TJoinedTable, TJoinedName>;
189
201
  /**
190
- * Executes a `full join` operation by combining rows from two tables into a new table.
202
+ * Executes an `inner join lateral` operation, creating a new table by combining rows from two queries that have matching values.
191
203
  *
192
- * Calling this method retrieves all rows from both main and joined tables, merging rows with matching values and filling in `null` for non-matching columns.
204
+ * A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
193
205
  *
194
- * See docs: {@link https://orm.drizzle.team/docs/joins#full-join}
206
+ * 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.
195
207
  *
196
- * @param table the table to join.
208
+ * See docs: {@link https://orm.drizzle.team/docs/joins#inner-join-lateral}
209
+ *
210
+ * @param table the subquery to join.
197
211
  * @param on the `on` clause.
212
+ */
213
+ innerJoinLateral: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined, onIndex?: (TJoinedTable extends MySqlTable<import("../table.js").TableConfig> ? IndexConfig : "Index hint configuration is allowed only for MySqlTable and not for subqueries or views") | undefined) => import("./select.types.js").MySqlJoin<this, TDynamic, "inner", TJoinedTable, TJoinedName>;
214
+ /**
215
+ * Executes a `cross join` operation by combining rows from two tables into a new table.
216
+ *
217
+ * Calling this method retrieves all rows from both main and joined tables, merging all rows from each table.
218
+ *
219
+ * See docs: {@link https://orm.drizzle.team/docs/joins#cross-join}
220
+ *
221
+ * @param table the table to join.
222
+ * @param onIndex index hint.
198
223
  *
199
224
  * @example
200
225
  *
201
226
  * ```ts
202
- * // Select all users and their pets
203
- * const usersWithPets: { user: User | null; pets: Pet | null }[] = await db.select()
227
+ * // Select all users, each user with every pet
228
+ * const usersWithPets: { user: User; pets: Pet; }[] = await db.select()
204
229
  * .from(users)
205
- * .fullJoin(pets, eq(users.id, pets.ownerId))
230
+ * .crossJoin(pets)
206
231
  *
207
232
  * // Select userId and petId
208
- * const usersIdsAndPetIds: { userId: number | null; petId: number | null }[] = await db.select({
233
+ * const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
209
234
  * userId: users.id,
210
235
  * petId: pets.id,
211
236
  * })
212
237
  * .from(users)
213
- * .fullJoin(pets, eq(users.id, pets.ownerId))
238
+ * .crossJoin(pets)
214
239
  *
215
240
  * // Select userId and petId with use index hint
216
- * const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
241
+ * const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
217
242
  * userId: users.id,
218
243
  * petId: pets.id,
219
244
  * })
220
245
  * .from(users)
221
- * .leftJoin(pets, eq(users.id, pets.ownerId), {
246
+ * .crossJoin(pets, {
222
247
  * useIndex: ['pets_owner_id_index']
223
248
  * })
224
249
  * ```
225
250
  */
226
- fullJoin: MySqlJoinFn<this, TDynamic, "full">;
251
+ crossJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | MySqlTable<import("../table.js").TableConfig> | MySqlViewBase<string, boolean, ColumnsSelection>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable, onIndex?: (TJoinedTable extends MySqlTable<import("../table.js").TableConfig> ? IndexConfig : "Index hint configuration is allowed only for MySqlTable and not for subqueries or views") | undefined) => import("./select.types.js").MySqlJoin<this, TDynamic, "cross", TJoinedTable, TJoinedName>;
252
+ /**
253
+ * Executes a `cross join lateral` operation by combining rows from two queries into a new table.
254
+ *
255
+ * A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
256
+ *
257
+ * Calling this method retrieves all rows from both main and joined queries, merging all rows from each query.
258
+ *
259
+ * See docs: {@link https://orm.drizzle.team/docs/joins#cross-join-lateral}
260
+ *
261
+ * @param table the query to join.
262
+ */
263
+ crossJoinLateral: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable, onIndex?: (TJoinedTable extends MySqlTable<import("../table.js").TableConfig> ? IndexConfig : "Index hint configuration is allowed only for MySqlTable and not for subqueries or views") | undefined) => import("./select.types.js").MySqlJoin<this, TDynamic, "cross", TJoinedTable, TJoinedName>;
227
264
  private createSetOperator;
228
265
  /**
229
266
  * Adds `union` set operator to the query.
@@ -559,11 +596,6 @@ export declare abstract class MySqlSelectQueryBuilderBase<THKT extends MySqlSele
559
596
  toSQL(): Query;
560
597
  as<TAlias extends string>(alias: TAlias): SubqueryWithSelection<this['_']['selectedFields'], TAlias>;
561
598
  $dynamic(): MySqlSelectDynamic<this>;
562
- $withCache(config?: {
563
- config?: CacheConfig;
564
- tag?: string;
565
- autoInvalidate?: boolean;
566
- } | false): this;
567
599
  }
568
600
  export interface MySqlSelectBase<TTableName extends string | undefined, TSelection extends ColumnsSelection, TSelectMode extends SelectMode, TPreparedQueryHKT extends PreparedQueryHKTBase, 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 MySqlSelectQueryBuilderBase<MySqlSelectHKT, TTableName, TSelection, TSelectMode, TPreparedQueryHKT, TNullabilityMap, TDynamic, TExcludedMethods, TResult, TSelectedFields>, QueryPromise<TResult> {
569
601
  }
@@ -8,7 +8,7 @@ import { Subquery } from "../../subquery.js";
8
8
  import { Table } from "../../table.js";
9
9
  import { applyMixins, getTableColumns, getTableLikeName, haveSameKeys, orderSelectedFields } from "../../utils.js";
10
10
  import { ViewBaseConfig } from "../../view-common.js";
11
- import { convertIndexToString, extractUsedTable, toArray } from "../utils.js";
11
+ import { convertIndexToString, toArray } from "../utils.js";
12
12
  import { MySqlViewBase } from "../view-base.js";
13
13
  class MySqlSelectBuilder {
14
14
  static [entityKind] = "MySqlSelectBuilder";
@@ -82,8 +82,6 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
82
82
  /** @internal */
83
83
  session;
84
84
  dialect;
85
- cacheConfig = void 0;
86
- usedTables = /* @__PURE__ */ new Set();
87
85
  constructor({ table, fields, isPartialSelect, session, dialect, withList, distinct, useIndex, forceIndex, ignoreIndex }) {
88
86
  super();
89
87
  this.config = {
@@ -100,24 +98,18 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
100
98
  this.session = session;
101
99
  this.dialect = dialect;
102
100
  this._ = {
103
- selectedFields: fields,
104
- config: this.config
101
+ selectedFields: fields
105
102
  };
106
103
  this.tableName = getTableLikeName(table);
107
104
  this.joinsNotNullableMap = typeof this.tableName === "string" ? { [this.tableName]: true } : {};
108
- for (const item of extractUsedTable(table))
109
- this.usedTables.add(item);
110
105
  }
111
- /** @internal */
112
- getUsedTables() {
113
- return [...this.usedTables];
114
- }
115
- createJoin(joinType) {
116
- return (table, on, onIndex) => {
106
+ createJoin(joinType, lateral) {
107
+ return (table, a, b) => {
108
+ const isCrossJoin = joinType === "cross";
109
+ let on = isCrossJoin ? void 0 : a;
110
+ const onIndex = isCrossJoin ? a : b;
117
111
  const baseTableName = this.tableName;
118
112
  const tableName = getTableLikeName(table);
119
- for (const item of extractUsedTable(table))
120
- this.usedTables.add(item);
121
113
  if (typeof tableName === "string" && this.config.joins?.some((join) => join.alias === tableName)) {
122
114
  throw new Error(`Alias "${tableName}" is already used in this query`);
123
115
  }
@@ -157,7 +149,7 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
157
149
  ignoreIndex = convertIndexToString(toArray(onIndex.ignoreIndex));
158
150
  }
159
151
  }
160
- this.config.joins.push({ on, table, joinType, alias: tableName, useIndex, forceIndex, ignoreIndex });
152
+ this.config.joins.push({ on, table, joinType, alias: tableName, useIndex, forceIndex, ignoreIndex, lateral });
161
153
  if (typeof tableName === "string") {
162
154
  switch (joinType) {
163
155
  case "left": {
@@ -171,17 +163,11 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
171
163
  this.joinsNotNullableMap[tableName] = true;
172
164
  break;
173
165
  }
166
+ case "cross":
174
167
  case "inner": {
175
168
  this.joinsNotNullableMap[tableName] = true;
176
169
  break;
177
170
  }
178
- case "full": {
179
- this.joinsNotNullableMap = Object.fromEntries(
180
- Object.entries(this.joinsNotNullableMap).map(([key]) => [key, false])
181
- );
182
- this.joinsNotNullableMap[tableName] = false;
183
- break;
184
- }
185
171
  }
186
172
  }
187
173
  return this;
@@ -196,17 +182,18 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
196
182
  *
197
183
  * @param table the table to join.
198
184
  * @param on the `on` clause.
185
+ * @param onIndex index hint.
199
186
  *
200
187
  * @example
201
188
  *
202
189
  * ```ts
203
190
  * // Select all users and their pets
204
- * const usersWithPets: { user: User; pets: Pet | null }[] = await db.select()
191
+ * const usersWithPets: { user: User; pets: Pet | null; }[] = await db.select()
205
192
  * .from(users)
206
193
  * .leftJoin(pets, eq(users.id, pets.ownerId))
207
194
  *
208
195
  * // Select userId and petId
209
- * const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
196
+ * const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({
210
197
  * userId: users.id,
211
198
  * petId: pets.id,
212
199
  * })
@@ -214,7 +201,7 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
214
201
  * .leftJoin(pets, eq(users.id, pets.ownerId))
215
202
  *
216
203
  * // Select userId and petId with use index hint
217
- * const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
204
+ * const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({
218
205
  * userId: users.id,
219
206
  * petId: pets.id,
220
207
  * })
@@ -224,7 +211,20 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
224
211
  * })
225
212
  * ```
226
213
  */
227
- leftJoin = this.createJoin("left");
214
+ leftJoin = this.createJoin("left", false);
215
+ /**
216
+ * Executes a `left join lateral` operation by adding subquery to the current query.
217
+ *
218
+ * A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
219
+ *
220
+ * 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.
221
+ *
222
+ * See docs: {@link https://orm.drizzle.team/docs/joins#left-join-lateral}
223
+ *
224
+ * @param table the subquery to join.
225
+ * @param on the `on` clause.
226
+ */
227
+ leftJoinLateral = this.createJoin("left", true);
228
228
  /**
229
229
  * Executes a `right join` operation by adding another table to the current query.
230
230
  *
@@ -234,17 +234,18 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
234
234
  *
235
235
  * @param table the table to join.
236
236
  * @param on the `on` clause.
237
+ * @param onIndex index hint.
237
238
  *
238
239
  * @example
239
240
  *
240
241
  * ```ts
241
242
  * // Select all users and their pets
242
- * const usersWithPets: { user: User | null; pets: Pet }[] = await db.select()
243
+ * const usersWithPets: { user: User | null; pets: Pet; }[] = await db.select()
243
244
  * .from(users)
244
245
  * .rightJoin(pets, eq(users.id, pets.ownerId))
245
246
  *
246
247
  * // Select userId and petId
247
- * const usersIdsAndPetIds: { userId: number | null; petId: number }[] = await db.select({
248
+ * const usersIdsAndPetIds: { userId: number | null; petId: number; }[] = await db.select({
248
249
  * userId: users.id,
249
250
  * petId: pets.id,
250
251
  * })
@@ -252,7 +253,7 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
252
253
  * .rightJoin(pets, eq(users.id, pets.ownerId))
253
254
  *
254
255
  * // Select userId and petId with use index hint
255
- * const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
256
+ * const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({
256
257
  * userId: users.id,
257
258
  * petId: pets.id,
258
259
  * })
@@ -262,7 +263,7 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
262
263
  * })
263
264
  * ```
264
265
  */
265
- rightJoin = this.createJoin("right");
266
+ rightJoin = this.createJoin("right", false);
266
267
  /**
267
268
  * Executes an `inner join` operation, creating a new table by combining rows from two tables that have matching values.
268
269
  *
@@ -272,17 +273,18 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
272
273
  *
273
274
  * @param table the table to join.
274
275
  * @param on the `on` clause.
276
+ * @param onIndex index hint.
275
277
  *
276
278
  * @example
277
279
  *
278
280
  * ```ts
279
281
  * // Select all users and their pets
280
- * const usersWithPets: { user: User; pets: Pet }[] = await db.select()
282
+ * const usersWithPets: { user: User; pets: Pet; }[] = await db.select()
281
283
  * .from(users)
282
284
  * .innerJoin(pets, eq(users.id, pets.ownerId))
283
285
  *
284
286
  * // Select userId and petId
285
- * const usersIdsAndPetIds: { userId: number; petId: number }[] = await db.select({
287
+ * const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
286
288
  * userId: users.id,
287
289
  * petId: pets.id,
288
290
  * })
@@ -290,7 +292,7 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
290
292
  * .innerJoin(pets, eq(users.id, pets.ownerId))
291
293
  *
292
294
  * // Select userId and petId with use index hint
293
- * const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
295
+ * const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({
294
296
  * userId: users.id,
295
297
  * petId: pets.id,
296
298
  * })
@@ -300,45 +302,70 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
300
302
  * })
301
303
  * ```
302
304
  */
303
- innerJoin = this.createJoin("inner");
305
+ innerJoin = this.createJoin("inner", false);
304
306
  /**
305
- * Executes a `full join` operation by combining rows from two tables into a new table.
307
+ * Executes an `inner join lateral` operation, creating a new table by combining rows from two queries that have matching values.
306
308
  *
307
- * Calling this method retrieves all rows from both main and joined tables, merging rows with matching values and filling in `null` for non-matching columns.
309
+ * A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
308
310
  *
309
- * See docs: {@link https://orm.drizzle.team/docs/joins#full-join}
311
+ * 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.
310
312
  *
311
- * @param table the table to join.
313
+ * See docs: {@link https://orm.drizzle.team/docs/joins#inner-join-lateral}
314
+ *
315
+ * @param table the subquery to join.
312
316
  * @param on the `on` clause.
317
+ */
318
+ innerJoinLateral = this.createJoin("inner", true);
319
+ /**
320
+ * Executes a `cross join` operation by combining rows from two tables into a new table.
321
+ *
322
+ * Calling this method retrieves all rows from both main and joined tables, merging all rows from each table.
323
+ *
324
+ * See docs: {@link https://orm.drizzle.team/docs/joins#cross-join}
325
+ *
326
+ * @param table the table to join.
327
+ * @param onIndex index hint.
313
328
  *
314
329
  * @example
315
330
  *
316
331
  * ```ts
317
- * // Select all users and their pets
318
- * const usersWithPets: { user: User | null; pets: Pet | null }[] = await db.select()
332
+ * // Select all users, each user with every pet
333
+ * const usersWithPets: { user: User; pets: Pet; }[] = await db.select()
319
334
  * .from(users)
320
- * .fullJoin(pets, eq(users.id, pets.ownerId))
335
+ * .crossJoin(pets)
321
336
  *
322
337
  * // Select userId and petId
323
- * const usersIdsAndPetIds: { userId: number | null; petId: number | null }[] = await db.select({
338
+ * const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
324
339
  * userId: users.id,
325
340
  * petId: pets.id,
326
341
  * })
327
342
  * .from(users)
328
- * .fullJoin(pets, eq(users.id, pets.ownerId))
343
+ * .crossJoin(pets)
329
344
  *
330
345
  * // Select userId and petId with use index hint
331
- * const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
346
+ * const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
332
347
  * userId: users.id,
333
348
  * petId: pets.id,
334
349
  * })
335
350
  * .from(users)
336
- * .leftJoin(pets, eq(users.id, pets.ownerId), {
351
+ * .crossJoin(pets, {
337
352
  * useIndex: ['pets_owner_id_index']
338
353
  * })
339
354
  * ```
340
355
  */
341
- fullJoin = this.createJoin("full");
356
+ crossJoin = this.createJoin("cross", false);
357
+ /**
358
+ * Executes a `cross join lateral` operation by combining rows from two queries into a new table.
359
+ *
360
+ * A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
361
+ *
362
+ * Calling this method retrieves all rows from both main and joined queries, merging all rows from each query.
363
+ *
364
+ * See docs: {@link https://orm.drizzle.team/docs/joins#cross-join-lateral}
365
+ *
366
+ * @param table the query to join.
367
+ */
368
+ crossJoinLateral = this.createJoin("cross", true);
342
369
  createSetOperator(type, isAll) {
343
370
  return (rightSelection) => {
344
371
  const rightSelect = typeof rightSelection === "function" ? rightSelection(getMySqlSetOperators()) : rightSelection;
@@ -726,14 +753,8 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
726
753
  return rest;
727
754
  }
728
755
  as(alias) {
729
- const usedTables = [];
730
- usedTables.push(...extractUsedTable(this.config.table));
731
- if (this.config.joins) {
732
- for (const it of this.config.joins)
733
- usedTables.push(...extractUsedTable(it.table));
734
- }
735
756
  return new Proxy(
736
- new Subquery(this.getSQL(), this.config.fields, alias, false, [...new Set(usedTables)]),
757
+ new Subquery(this.getSQL(), this.config.fields, alias),
737
758
  new SelectionProxyHandler({ alias, sqlAliasedBehavior: "alias", sqlBehavior: "error" })
738
759
  );
739
760
  }
@@ -747,10 +768,6 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
747
768
  $dynamic() {
748
769
  return this;
749
770
  }
750
- $withCache(config) {
751
- this.cacheConfig = config === void 0 ? { config: {}, enable: true, autoInvalidate: true } : config === false ? { enable: false } : { enable: true, autoInvalidate: true, ...config };
752
- return this;
753
- }
754
771
  }
755
772
  class MySqlSelectBase extends MySqlSelectQueryBuilderBase {
756
773
  static [entityKind] = "MySqlSelect";
@@ -759,10 +776,7 @@ class MySqlSelectBase extends MySqlSelectQueryBuilderBase {
759
776
  throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");
760
777
  }
761
778
  const fieldsList = orderSelectedFields(this.config.fields);
762
- const query = this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()), fieldsList, void 0, void 0, void 0, {
763
- type: "select",
764
- tables: [...this.usedTables]
765
- }, this.cacheConfig);
779
+ const query = this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()), fieldsList);
766
780
  query.joinsNotNullableMap = this.joinsNotNullableMap;
767
781
  return query;
768
782
  }