drizzle-orm 0.39.0-19ccabb → 0.39.0-6b6aca7

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 (726) hide show
  1. package/alias.cjs.map +1 -1
  2. package/alias.d.cts +9 -4
  3. package/alias.d.ts +9 -4
  4. package/alias.js.map +1 -1
  5. package/aws-data-api/pg/driver.cjs +5 -19
  6. package/aws-data-api/pg/driver.cjs.map +1 -1
  7. package/aws-data-api/pg/driver.d.cts +8 -9
  8. package/aws-data-api/pg/driver.d.ts +8 -9
  9. package/aws-data-api/pg/driver.js +8 -9
  10. package/aws-data-api/pg/driver.js.map +1 -1
  11. package/aws-data-api/pg/migrator.cjs.map +1 -1
  12. package/aws-data-api/pg/migrator.d.cts +1 -2
  13. package/aws-data-api/pg/migrator.d.ts +1 -2
  14. package/aws-data-api/pg/migrator.js.map +1 -1
  15. package/aws-data-api/pg/session.cjs +4 -67
  16. package/aws-data-api/pg/session.cjs.map +1 -1
  17. package/aws-data-api/pg/session.d.cts +8 -13
  18. package/aws-data-api/pg/session.d.ts +8 -13
  19. package/aws-data-api/pg/session.js +4 -67
  20. package/aws-data-api/pg/session.js.map +1 -1
  21. package/better-sqlite3/driver.cjs +5 -12
  22. package/better-sqlite3/driver.cjs.map +1 -1
  23. package/better-sqlite3/driver.d.cts +6 -7
  24. package/better-sqlite3/driver.d.ts +6 -7
  25. package/better-sqlite3/driver.js +8 -12
  26. package/better-sqlite3/driver.js.map +1 -1
  27. package/better-sqlite3/migrator.cjs.map +1 -1
  28. package/better-sqlite3/migrator.d.cts +1 -2
  29. package/better-sqlite3/migrator.d.ts +1 -2
  30. package/better-sqlite3/migrator.js.map +1 -1
  31. package/better-sqlite3/session.cjs +4 -49
  32. package/better-sqlite3/session.cjs.map +1 -1
  33. package/better-sqlite3/session.d.cts +8 -14
  34. package/better-sqlite3/session.d.ts +8 -14
  35. package/better-sqlite3/session.js +4 -49
  36. package/better-sqlite3/session.js.map +1 -1
  37. package/bun-sql/driver.cjs +96 -0
  38. package/bun-sql/driver.cjs.map +1 -0
  39. package/bun-sql/driver.d.cts +30 -0
  40. package/bun-sql/driver.d.ts +30 -0
  41. package/bun-sql/driver.js +74 -0
  42. package/bun-sql/driver.js.map +1 -0
  43. package/bun-sql/index.cjs +25 -0
  44. package/bun-sql/index.cjs.map +1 -0
  45. package/bun-sql/index.d.cts +2 -0
  46. package/bun-sql/index.d.ts +2 -0
  47. package/bun-sql/index.js +3 -0
  48. package/bun-sql/index.js.map +1 -0
  49. package/bun-sql/migrator.cjs +33 -0
  50. package/bun-sql/migrator.cjs.map +1 -0
  51. package/bun-sql/migrator.d.cts +3 -0
  52. package/bun-sql/migrator.d.ts +3 -0
  53. package/bun-sql/migrator.js +9 -0
  54. package/bun-sql/migrator.js.map +1 -0
  55. package/bun-sql/session.cjs +162 -0
  56. package/bun-sql/session.cjs.map +1 -0
  57. package/bun-sql/session.d.cts +50 -0
  58. package/bun-sql/session.d.ts +50 -0
  59. package/bun-sql/session.js +136 -0
  60. package/bun-sql/session.js.map +1 -0
  61. package/bun-sqlite/driver.cjs +5 -22
  62. package/bun-sqlite/driver.cjs.map +1 -1
  63. package/bun-sqlite/driver.d.cts +6 -7
  64. package/bun-sqlite/driver.d.ts +6 -7
  65. package/bun-sqlite/driver.js +8 -12
  66. package/bun-sqlite/driver.js.map +1 -1
  67. package/bun-sqlite/migrator.cjs.map +1 -1
  68. package/bun-sqlite/migrator.d.cts +1 -2
  69. package/bun-sqlite/migrator.d.ts +1 -2
  70. package/bun-sqlite/migrator.js.map +1 -1
  71. package/bun-sqlite/session.cjs +4 -49
  72. package/bun-sqlite/session.cjs.map +1 -1
  73. package/bun-sqlite/session.d.cts +9 -15
  74. package/bun-sqlite/session.d.ts +9 -15
  75. package/bun-sqlite/session.js +4 -49
  76. package/bun-sqlite/session.js.map +1 -1
  77. package/d1/driver.cjs +5 -22
  78. package/d1/driver.cjs.map +1 -1
  79. package/d1/driver.d.cts +2 -3
  80. package/d1/driver.d.ts +2 -3
  81. package/d1/driver.js +8 -12
  82. package/d1/driver.js.map +1 -1
  83. package/d1/migrator.cjs.map +1 -1
  84. package/d1/migrator.d.cts +1 -2
  85. package/d1/migrator.d.ts +1 -2
  86. package/d1/migrator.js.map +1 -1
  87. package/d1/session.cjs +6 -48
  88. package/d1/session.cjs.map +1 -1
  89. package/d1/session.d.cts +8 -15
  90. package/d1/session.d.ts +8 -15
  91. package/d1/session.js +6 -48
  92. package/d1/session.js.map +1 -1
  93. package/durable-sqlite/driver.cjs +5 -16
  94. package/durable-sqlite/driver.cjs.map +1 -1
  95. package/durable-sqlite/driver.d.cts +2 -3
  96. package/durable-sqlite/driver.d.ts +2 -3
  97. package/durable-sqlite/driver.js +8 -6
  98. package/durable-sqlite/driver.js.map +1 -1
  99. package/durable-sqlite/migrator.cjs.map +1 -1
  100. package/durable-sqlite/migrator.d.cts +1 -2
  101. package/durable-sqlite/migrator.d.ts +1 -2
  102. package/durable-sqlite/migrator.js.map +1 -1
  103. package/durable-sqlite/session.cjs +4 -46
  104. package/durable-sqlite/session.cjs.map +1 -1
  105. package/durable-sqlite/session.d.cts +8 -14
  106. package/durable-sqlite/session.d.ts +8 -14
  107. package/durable-sqlite/session.js +4 -46
  108. package/durable-sqlite/session.js.map +1 -1
  109. package/expo-sqlite/driver.cjs +5 -22
  110. package/expo-sqlite/driver.cjs.map +1 -1
  111. package/expo-sqlite/driver.d.cts +2 -3
  112. package/expo-sqlite/driver.d.ts +2 -3
  113. package/expo-sqlite/driver.js +8 -12
  114. package/expo-sqlite/driver.js.map +1 -1
  115. package/expo-sqlite/migrator.cjs.map +1 -1
  116. package/expo-sqlite/migrator.d.cts +2 -3
  117. package/expo-sqlite/migrator.d.ts +2 -3
  118. package/expo-sqlite/migrator.js.map +1 -1
  119. package/expo-sqlite/query.cjs +2 -13
  120. package/expo-sqlite/query.cjs.map +1 -1
  121. package/expo-sqlite/query.d.cts +1 -2
  122. package/expo-sqlite/query.d.ts +1 -2
  123. package/expo-sqlite/query.js +2 -3
  124. package/expo-sqlite/query.js.map +1 -1
  125. package/expo-sqlite/session.cjs +4 -47
  126. package/expo-sqlite/session.cjs.map +1 -1
  127. package/expo-sqlite/session.d.cts +8 -14
  128. package/expo-sqlite/session.d.ts +8 -14
  129. package/expo-sqlite/session.js +4 -47
  130. package/expo-sqlite/session.js.map +1 -1
  131. package/libsql/driver-core.cjs +5 -22
  132. package/libsql/driver-core.cjs.map +1 -1
  133. package/libsql/driver-core.d.cts +1 -2
  134. package/libsql/driver-core.d.ts +1 -2
  135. package/libsql/driver-core.js +8 -12
  136. package/libsql/driver-core.js.map +1 -1
  137. package/libsql/driver.cjs.map +1 -1
  138. package/libsql/driver.d.cts +5 -6
  139. package/libsql/driver.d.ts +5 -6
  140. package/libsql/driver.js.map +1 -1
  141. package/libsql/http/index.cjs.map +1 -1
  142. package/libsql/http/index.d.cts +5 -6
  143. package/libsql/http/index.d.ts +5 -6
  144. package/libsql/http/index.js.map +1 -1
  145. package/libsql/migrator.cjs.map +1 -1
  146. package/libsql/migrator.d.cts +1 -2
  147. package/libsql/migrator.d.ts +1 -2
  148. package/libsql/migrator.js.map +1 -1
  149. package/libsql/node/index.cjs.map +1 -1
  150. package/libsql/node/index.d.cts +5 -6
  151. package/libsql/node/index.d.ts +5 -6
  152. package/libsql/node/index.js.map +1 -1
  153. package/libsql/session.cjs +4 -56
  154. package/libsql/session.cjs.map +1 -1
  155. package/libsql/session.d.cts +9 -15
  156. package/libsql/session.d.ts +9 -15
  157. package/libsql/session.js +4 -56
  158. package/libsql/session.js.map +1 -1
  159. package/libsql/sqlite3/index.cjs.map +1 -1
  160. package/libsql/sqlite3/index.d.cts +5 -6
  161. package/libsql/sqlite3/index.d.ts +5 -6
  162. package/libsql/sqlite3/index.js.map +1 -1
  163. package/libsql/wasm/index.cjs.map +1 -1
  164. package/libsql/wasm/index.d.cts +5 -6
  165. package/libsql/wasm/index.d.ts +5 -6
  166. package/libsql/wasm/index.js.map +1 -1
  167. package/libsql/web/index.cjs.map +1 -1
  168. package/libsql/web/index.d.cts +5 -6
  169. package/libsql/web/index.d.ts +5 -6
  170. package/libsql/web/index.js.map +1 -1
  171. package/libsql/ws/index.cjs.map +1 -1
  172. package/libsql/ws/index.d.cts +5 -6
  173. package/libsql/ws/index.d.ts +5 -6
  174. package/libsql/ws/index.js.map +1 -1
  175. package/mysql-core/db.cjs +25 -40
  176. package/mysql-core/db.cjs.map +1 -1
  177. package/mysql-core/db.d.cts +12 -22
  178. package/mysql-core/db.d.ts +12 -22
  179. package/mysql-core/db.js +24 -39
  180. package/mysql-core/db.js.map +1 -1
  181. package/mysql-core/dialect.cjs +15 -194
  182. package/mysql-core/dialect.cjs.map +1 -1
  183. package/mysql-core/dialect.d.cts +13 -33
  184. package/mysql-core/dialect.d.ts +13 -33
  185. package/mysql-core/dialect.js +21 -191
  186. package/mysql-core/dialect.js.map +1 -1
  187. package/mysql-core/query-builders/count.cjs.map +1 -1
  188. package/mysql-core/query-builders/count.d.cts +1 -1
  189. package/mysql-core/query-builders/count.d.ts +1 -1
  190. package/mysql-core/query-builders/count.js.map +1 -1
  191. package/mysql-core/query-builders/query-builder.cjs +15 -11
  192. package/mysql-core/query-builders/query-builder.cjs.map +1 -1
  193. package/mysql-core/query-builders/query-builder.d.cts +2 -6
  194. package/mysql-core/query-builders/query-builder.d.ts +2 -6
  195. package/mysql-core/query-builders/query-builder.js +15 -11
  196. package/mysql-core/query-builders/query-builder.js.map +1 -1
  197. package/mysql-core/query-builders/query.cjs +31 -18
  198. package/mysql-core/query-builders/query.cjs.map +1 -1
  199. package/mysql-core/query-builders/query.d.cts +10 -8
  200. package/mysql-core/query-builders/query.d.ts +10 -8
  201. package/mysql-core/query-builders/query.js +31 -18
  202. package/mysql-core/query-builders/query.js.map +1 -1
  203. package/mysql-core/query-builders/select.types.cjs.map +1 -1
  204. package/mysql-core/query-builders/select.types.d.cts +1 -1
  205. package/mysql-core/query-builders/select.types.d.ts +1 -1
  206. package/mysql-core/session.cjs +2 -3
  207. package/mysql-core/session.cjs.map +1 -1
  208. package/mysql-core/session.d.cts +7 -10
  209. package/mysql-core/session.d.ts +7 -10
  210. package/mysql-core/session.js +2 -3
  211. package/mysql-core/session.js.map +1 -1
  212. package/mysql-core/subquery.cjs.map +1 -1
  213. package/mysql-core/subquery.d.cts +15 -2
  214. package/mysql-core/subquery.d.ts +15 -2
  215. package/mysql-proxy/driver.cjs +5 -22
  216. package/mysql-proxy/driver.cjs.map +1 -1
  217. package/mysql-proxy/driver.d.cts +2 -3
  218. package/mysql-proxy/driver.d.ts +2 -3
  219. package/mysql-proxy/driver.js +8 -12
  220. package/mysql-proxy/driver.js.map +1 -1
  221. package/mysql-proxy/migrator.cjs.map +1 -1
  222. package/mysql-proxy/migrator.d.cts +1 -2
  223. package/mysql-proxy/migrator.d.ts +1 -2
  224. package/mysql-proxy/migrator.js.map +1 -1
  225. package/mysql-proxy/session.cjs +2 -27
  226. package/mysql-proxy/session.cjs.map +1 -1
  227. package/mysql-proxy/session.d.cts +8 -13
  228. package/mysql-proxy/session.d.ts +8 -13
  229. package/mysql-proxy/session.js +2 -27
  230. package/mysql-proxy/session.js.map +1 -1
  231. package/mysql2/driver.cjs +7 -24
  232. package/mysql2/driver.cjs.map +1 -1
  233. package/mysql2/driver.d.cts +9 -10
  234. package/mysql2/driver.d.ts +9 -10
  235. package/mysql2/driver.js +10 -14
  236. package/mysql2/driver.js.map +1 -1
  237. package/mysql2/migrator.cjs.map +1 -1
  238. package/mysql2/migrator.d.cts +1 -2
  239. package/mysql2/migrator.d.ts +1 -2
  240. package/mysql2/migrator.js.map +1 -1
  241. package/mysql2/session.cjs +2 -30
  242. package/mysql2/session.cjs.map +1 -1
  243. package/mysql2/session.d.cts +8 -13
  244. package/mysql2/session.d.ts +8 -13
  245. package/mysql2/session.js +2 -30
  246. package/mysql2/session.js.map +1 -1
  247. package/neon/index.cjs +2 -0
  248. package/neon/index.cjs.map +1 -1
  249. package/neon/index.d.cts +1 -0
  250. package/neon/index.d.ts +1 -0
  251. package/neon/index.js +1 -0
  252. package/neon/index.js.map +1 -1
  253. package/neon/neon-identity.cjs +38 -0
  254. package/neon/neon-identity.cjs.map +1 -0
  255. package/neon/neon-identity.d.cts +116 -0
  256. package/neon/neon-identity.d.ts +116 -0
  257. package/neon/neon-identity.js +14 -0
  258. package/neon/neon-identity.js.map +1 -0
  259. package/neon-http/driver.cjs +7 -21
  260. package/neon-http/driver.cjs.map +1 -1
  261. package/neon-http/driver.d.cts +9 -10
  262. package/neon-http/driver.d.ts +9 -10
  263. package/neon-http/driver.js +7 -11
  264. package/neon-http/driver.js.map +1 -1
  265. package/neon-http/migrator.cjs.map +1 -1
  266. package/neon-http/migrator.d.cts +1 -2
  267. package/neon-http/migrator.d.ts +1 -2
  268. package/neon-http/migrator.js.map +1 -1
  269. package/neon-http/session.cjs +2 -32
  270. package/neon-http/session.cjs.map +1 -1
  271. package/neon-http/session.d.cts +8 -13
  272. package/neon-http/session.d.ts +8 -13
  273. package/neon-http/session.js +2 -32
  274. package/neon-http/session.js.map +1 -1
  275. package/neon-serverless/driver.cjs +7 -18
  276. package/neon-serverless/driver.cjs.map +1 -1
  277. package/neon-serverless/driver.d.cts +8 -9
  278. package/neon-serverless/driver.d.ts +8 -9
  279. package/neon-serverless/driver.js +10 -8
  280. package/neon-serverless/driver.js.map +1 -1
  281. package/neon-serverless/migrator.cjs.map +1 -1
  282. package/neon-serverless/migrator.d.cts +1 -2
  283. package/neon-serverless/migrator.d.ts +1 -2
  284. package/neon-serverless/migrator.js.map +1 -1
  285. package/neon-serverless/session.cjs +5 -40
  286. package/neon-serverless/session.cjs.map +1 -1
  287. package/neon-serverless/session.d.cts +8 -13
  288. package/neon-serverless/session.d.ts +8 -13
  289. package/neon-serverless/session.js +5 -40
  290. package/neon-serverless/session.js.map +1 -1
  291. package/node-postgres/driver.cjs +7 -13
  292. package/node-postgres/driver.cjs.map +1 -1
  293. package/node-postgres/driver.d.cts +8 -9
  294. package/node-postgres/driver.d.ts +8 -9
  295. package/node-postgres/driver.js +10 -13
  296. package/node-postgres/driver.js.map +1 -1
  297. package/node-postgres/migrator.cjs.map +1 -1
  298. package/node-postgres/migrator.d.cts +1 -2
  299. package/node-postgres/migrator.d.ts +1 -2
  300. package/node-postgres/migrator.js.map +1 -1
  301. package/node-postgres/session.cjs +4 -45
  302. package/node-postgres/session.cjs.map +1 -1
  303. package/node-postgres/session.d.cts +8 -13
  304. package/node-postgres/session.d.ts +8 -13
  305. package/node-postgres/session.js +4 -45
  306. package/node-postgres/session.js.map +1 -1
  307. package/op-sqlite/driver.cjs +5 -22
  308. package/op-sqlite/driver.cjs.map +1 -1
  309. package/op-sqlite/driver.d.cts +2 -3
  310. package/op-sqlite/driver.d.ts +2 -3
  311. package/op-sqlite/driver.js +8 -12
  312. package/op-sqlite/driver.js.map +1 -1
  313. package/op-sqlite/migrator.cjs.map +1 -1
  314. package/op-sqlite/migrator.d.cts +2 -3
  315. package/op-sqlite/migrator.d.ts +2 -3
  316. package/op-sqlite/migrator.js.map +1 -1
  317. package/op-sqlite/session.cjs +4 -47
  318. package/op-sqlite/session.cjs.map +1 -1
  319. package/op-sqlite/session.d.cts +8 -14
  320. package/op-sqlite/session.d.ts +8 -14
  321. package/op-sqlite/session.js +4 -47
  322. package/op-sqlite/session.js.map +1 -1
  323. package/package.json +64 -52
  324. package/pg-core/db.cjs +24 -42
  325. package/pg-core/db.cjs.map +1 -1
  326. package/pg-core/db.d.cts +13 -23
  327. package/pg-core/db.d.ts +13 -23
  328. package/pg-core/db.js +23 -41
  329. package/pg-core/db.js.map +1 -1
  330. package/pg-core/dialect.cjs +488 -161
  331. package/pg-core/dialect.cjs.map +1 -1
  332. package/pg-core/dialect.d.cts +7 -24
  333. package/pg-core/dialect.d.ts +7 -24
  334. package/pg-core/dialect.js +494 -158
  335. package/pg-core/dialect.js.map +1 -1
  336. package/pg-core/query-builders/count.cjs.map +1 -1
  337. package/pg-core/query-builders/count.d.cts +1 -1
  338. package/pg-core/query-builders/count.d.ts +1 -1
  339. package/pg-core/query-builders/count.js.map +1 -1
  340. package/pg-core/query-builders/delete.cjs +13 -0
  341. package/pg-core/query-builders/delete.cjs.map +1 -1
  342. package/pg-core/query-builders/delete.d.cts +13 -10
  343. package/pg-core/query-builders/delete.d.ts +13 -10
  344. package/pg-core/query-builders/delete.js +14 -1
  345. package/pg-core/query-builders/delete.js.map +1 -1
  346. package/pg-core/query-builders/insert.cjs +13 -0
  347. package/pg-core/query-builders/insert.cjs.map +1 -1
  348. package/pg-core/query-builders/insert.d.cts +10 -8
  349. package/pg-core/query-builders/insert.d.ts +10 -8
  350. package/pg-core/query-builders/insert.js +14 -1
  351. package/pg-core/query-builders/insert.js.map +1 -1
  352. package/pg-core/query-builders/query-builder.cjs +15 -11
  353. package/pg-core/query-builders/query-builder.cjs.map +1 -1
  354. package/pg-core/query-builders/query-builder.d.cts +3 -6
  355. package/pg-core/query-builders/query-builder.d.ts +3 -6
  356. package/pg-core/query-builders/query-builder.js +15 -11
  357. package/pg-core/query-builders/query-builder.js.map +1 -1
  358. package/pg-core/query-builders/query.cjs +18 -15
  359. package/pg-core/query-builders/query.cjs.map +1 -1
  360. package/pg-core/query-builders/query.d.cts +6 -6
  361. package/pg-core/query-builders/query.d.ts +6 -6
  362. package/pg-core/query-builders/query.js +18 -15
  363. package/pg-core/query-builders/query.js.map +1 -1
  364. package/pg-core/query-builders/select.cjs +8 -7
  365. package/pg-core/query-builders/select.cjs.map +1 -1
  366. package/pg-core/query-builders/select.d.cts +3 -3
  367. package/pg-core/query-builders/select.d.ts +3 -3
  368. package/pg-core/query-builders/select.js +8 -7
  369. package/pg-core/query-builders/select.js.map +1 -1
  370. package/pg-core/query-builders/select.types.cjs.map +1 -1
  371. package/pg-core/query-builders/select.types.d.cts +4 -3
  372. package/pg-core/query-builders/select.types.d.ts +4 -3
  373. package/pg-core/query-builders/update.cjs +15 -2
  374. package/pg-core/query-builders/update.cjs.map +1 -1
  375. package/pg-core/query-builders/update.d.cts +18 -13
  376. package/pg-core/query-builders/update.d.ts +18 -13
  377. package/pg-core/query-builders/update.js +16 -3
  378. package/pg-core/query-builders/update.js.map +1 -1
  379. package/pg-core/session.cjs +2 -3
  380. package/pg-core/session.cjs.map +1 -1
  381. package/pg-core/session.d.cts +6 -9
  382. package/pg-core/session.d.ts +6 -9
  383. package/pg-core/session.js +2 -3
  384. package/pg-core/session.js.map +1 -1
  385. package/pg-core/subquery.cjs.map +1 -1
  386. package/pg-core/subquery.d.cts +15 -2
  387. package/pg-core/subquery.d.ts +15 -2
  388. package/pg-proxy/driver.cjs +5 -21
  389. package/pg-proxy/driver.cjs.map +1 -1
  390. package/pg-proxy/driver.d.cts +2 -3
  391. package/pg-proxy/driver.d.ts +2 -3
  392. package/pg-proxy/driver.js +8 -11
  393. package/pg-proxy/driver.js.map +1 -1
  394. package/pg-proxy/migrator.cjs.map +1 -1
  395. package/pg-proxy/migrator.d.cts +1 -2
  396. package/pg-proxy/migrator.d.ts +1 -2
  397. package/pg-proxy/migrator.js.map +1 -1
  398. package/pg-proxy/session.cjs +2 -37
  399. package/pg-proxy/session.cjs.map +1 -1
  400. package/pg-proxy/session.d.cts +8 -13
  401. package/pg-proxy/session.d.ts +8 -13
  402. package/pg-proxy/session.js +2 -37
  403. package/pg-proxy/session.js.map +1 -1
  404. package/pglite/driver.cjs +7 -23
  405. package/pglite/driver.cjs.map +1 -1
  406. package/pglite/driver.d.cts +8 -9
  407. package/pglite/driver.d.ts +8 -9
  408. package/pglite/driver.js +10 -13
  409. package/pglite/driver.js.map +1 -1
  410. package/pglite/migrator.cjs.map +1 -1
  411. package/pglite/migrator.d.cts +1 -2
  412. package/pglite/migrator.d.ts +1 -2
  413. package/pglite/migrator.js.map +1 -1
  414. package/pglite/session.cjs +3 -34
  415. package/pglite/session.cjs.map +1 -1
  416. package/pglite/session.d.cts +8 -13
  417. package/pglite/session.d.ts +8 -13
  418. package/pglite/session.js +3 -34
  419. package/pglite/session.js.map +1 -1
  420. package/planetscale-serverless/driver.cjs +5 -22
  421. package/planetscale-serverless/driver.cjs.map +1 -1
  422. package/planetscale-serverless/driver.d.cts +6 -7
  423. package/planetscale-serverless/driver.d.ts +6 -7
  424. package/planetscale-serverless/driver.js +8 -12
  425. package/planetscale-serverless/driver.js.map +1 -1
  426. package/planetscale-serverless/migrator.cjs.map +1 -1
  427. package/planetscale-serverless/migrator.d.cts +1 -2
  428. package/planetscale-serverless/migrator.d.ts +1 -2
  429. package/planetscale-serverless/migrator.js.map +1 -1
  430. package/planetscale-serverless/session.cjs +5 -45
  431. package/planetscale-serverless/session.cjs.map +1 -1
  432. package/planetscale-serverless/session.d.cts +9 -14
  433. package/planetscale-serverless/session.d.ts +9 -14
  434. package/planetscale-serverless/session.js +5 -45
  435. package/planetscale-serverless/session.js.map +1 -1
  436. package/postgres-js/driver.cjs +5 -6
  437. package/postgres-js/driver.cjs.map +1 -1
  438. package/postgres-js/driver.d.cts +6 -7
  439. package/postgres-js/driver.d.ts +6 -7
  440. package/postgres-js/driver.js +8 -6
  441. package/postgres-js/driver.js.map +1 -1
  442. package/postgres-js/migrator.cjs.map +1 -1
  443. package/postgres-js/migrator.d.cts +1 -2
  444. package/postgres-js/migrator.d.ts +1 -2
  445. package/postgres-js/migrator.js.map +1 -1
  446. package/postgres-js/session.cjs +6 -51
  447. package/postgres-js/session.cjs.map +1 -1
  448. package/postgres-js/session.d.cts +9 -15
  449. package/postgres-js/session.d.ts +9 -15
  450. package/postgres-js/session.js +6 -51
  451. package/postgres-js/session.js.map +1 -1
  452. package/prisma/mysql/driver.cjs +1 -1
  453. package/prisma/mysql/driver.cjs.map +1 -1
  454. package/prisma/mysql/driver.js +1 -1
  455. package/prisma/mysql/driver.js.map +1 -1
  456. package/prisma/mysql/session.cjs +0 -3
  457. package/prisma/mysql/session.cjs.map +1 -1
  458. package/prisma/mysql/session.d.cts +1 -3
  459. package/prisma/mysql/session.d.ts +1 -3
  460. package/prisma/mysql/session.js +0 -3
  461. package/prisma/mysql/session.js.map +1 -1
  462. package/prisma/pg/driver.cjs +1 -1
  463. package/prisma/pg/driver.cjs.map +1 -1
  464. package/prisma/pg/driver.js +1 -1
  465. package/prisma/pg/driver.js.map +1 -1
  466. package/prisma/pg/session.cjs +0 -3
  467. package/prisma/pg/session.cjs.map +1 -1
  468. package/prisma/pg/session.d.cts +1 -3
  469. package/prisma/pg/session.d.ts +1 -3
  470. package/prisma/pg/session.js +0 -3
  471. package/prisma/pg/session.js.map +1 -1
  472. package/prisma/sqlite/driver.cjs +1 -1
  473. package/prisma/sqlite/driver.cjs.map +1 -1
  474. package/prisma/sqlite/driver.js +1 -1
  475. package/prisma/sqlite/driver.js.map +1 -1
  476. package/prisma/sqlite/session.cjs +0 -3
  477. package/prisma/sqlite/session.cjs.map +1 -1
  478. package/prisma/sqlite/session.d.cts +2 -4
  479. package/prisma/sqlite/session.d.ts +2 -4
  480. package/prisma/sqlite/session.js +0 -3
  481. package/prisma/sqlite/session.js.map +1 -1
  482. package/query-builders/select.types.cjs.map +1 -1
  483. package/query-builders/select.types.d.cts +1 -1
  484. package/query-builders/select.types.d.ts +1 -1
  485. package/relations.cjs +245 -595
  486. package/relations.cjs.map +1 -1
  487. package/relations.d.cts +131 -276
  488. package/relations.d.ts +131 -276
  489. package/relations.js +239 -589
  490. package/relations.js.map +1 -1
  491. package/singlestore/driver.cjs +1 -1
  492. package/singlestore/driver.cjs.map +1 -1
  493. package/singlestore/driver.d.cts +1 -1
  494. package/singlestore/driver.d.ts +1 -1
  495. package/singlestore/driver.js +3 -3
  496. package/singlestore/driver.js.map +1 -1
  497. package/singlestore/session.cjs.map +1 -1
  498. package/singlestore/session.d.cts +4 -4
  499. package/singlestore/session.d.ts +4 -4
  500. package/singlestore/session.js.map +1 -1
  501. package/singlestore-core/db.cjs +17 -11
  502. package/singlestore-core/db.cjs.map +1 -1
  503. package/singlestore-core/db.d.cts +7 -10
  504. package/singlestore-core/db.d.ts +7 -10
  505. package/singlestore-core/db.js +17 -11
  506. package/singlestore-core/db.js.map +1 -1
  507. package/singlestore-core/dialect.cjs +6 -16
  508. package/singlestore-core/dialect.cjs.map +1 -1
  509. package/singlestore-core/dialect.d.cts +6 -6
  510. package/singlestore-core/dialect.d.ts +6 -6
  511. package/singlestore-core/dialect.js +12 -6
  512. package/singlestore-core/dialect.js.map +1 -1
  513. package/singlestore-core/query-builders/query-builder.cjs +15 -11
  514. package/singlestore-core/query-builders/query-builder.cjs.map +1 -1
  515. package/singlestore-core/query-builders/query-builder.d.cts +2 -6
  516. package/singlestore-core/query-builders/query-builder.d.ts +2 -6
  517. package/singlestore-core/query-builders/query-builder.js +15 -11
  518. package/singlestore-core/query-builders/query-builder.js.map +1 -1
  519. package/singlestore-core/query-builders/query.cjs +2 -12
  520. package/singlestore-core/query-builders/query.cjs.map +1 -1
  521. package/singlestore-core/query-builders/query.d.cts +6 -6
  522. package/singlestore-core/query-builders/query.d.ts +6 -6
  523. package/singlestore-core/query-builders/query.js +4 -2
  524. package/singlestore-core/query-builders/query.js.map +1 -1
  525. package/singlestore-core/session.cjs.map +1 -1
  526. package/singlestore-core/session.d.cts +5 -5
  527. package/singlestore-core/session.d.ts +5 -5
  528. package/singlestore-core/session.js.map +1 -1
  529. package/singlestore-core/subquery.cjs.map +1 -1
  530. package/singlestore-core/subquery.d.cts +15 -2
  531. package/singlestore-core/subquery.d.ts +15 -2
  532. package/singlestore-core/table.cjs.map +1 -1
  533. package/singlestore-core/table.d.cts +12 -12
  534. package/singlestore-core/table.d.ts +12 -12
  535. package/singlestore-core/table.js.map +1 -1
  536. package/singlestore-proxy/driver.cjs +1 -1
  537. package/singlestore-proxy/driver.cjs.map +1 -1
  538. package/singlestore-proxy/driver.js +3 -3
  539. package/singlestore-proxy/driver.js.map +1 -1
  540. package/singlestore-proxy/session.cjs.map +1 -1
  541. package/singlestore-proxy/session.d.cts +4 -4
  542. package/singlestore-proxy/session.d.ts +4 -4
  543. package/singlestore-proxy/session.js.map +1 -1
  544. package/sql/sql.cjs +7 -2
  545. package/sql/sql.cjs.map +1 -1
  546. package/sql/sql.d.cts +9 -8
  547. package/sql/sql.d.ts +9 -8
  548. package/sql/sql.js +6 -2
  549. package/sql/sql.js.map +1 -1
  550. package/sql-js/driver.cjs +5 -16
  551. package/sql-js/driver.cjs.map +1 -1
  552. package/sql-js/driver.d.cts +2 -3
  553. package/sql-js/driver.d.ts +2 -3
  554. package/sql-js/driver.js +8 -6
  555. package/sql-js/driver.js.map +1 -1
  556. package/sql-js/migrator.cjs.map +1 -1
  557. package/sql-js/migrator.d.cts +1 -2
  558. package/sql-js/migrator.d.ts +1 -2
  559. package/sql-js/migrator.js.map +1 -1
  560. package/sql-js/session.cjs +36 -71
  561. package/sql-js/session.cjs.map +1 -1
  562. package/sql-js/session.d.cts +13 -16
  563. package/sql-js/session.d.ts +13 -16
  564. package/sql-js/session.js +36 -71
  565. package/sql-js/session.js.map +1 -1
  566. package/sqlite-core/db.cjs +31 -49
  567. package/sqlite-core/db.cjs.map +1 -1
  568. package/sqlite-core/db.d.cts +12 -23
  569. package/sqlite-core/db.d.ts +12 -23
  570. package/sqlite-core/db.js +30 -48
  571. package/sqlite-core/db.js.map +1 -1
  572. package/sqlite-core/dialect.cjs +8 -184
  573. package/sqlite-core/dialect.cjs.map +1 -1
  574. package/sqlite-core/dialect.d.cts +9 -28
  575. package/sqlite-core/dialect.d.ts +9 -28
  576. package/sqlite-core/dialect.js +14 -181
  577. package/sqlite-core/dialect.js.map +1 -1
  578. package/sqlite-core/query-builders/count.cjs.map +1 -1
  579. package/sqlite-core/query-builders/count.d.cts +1 -1
  580. package/sqlite-core/query-builders/count.d.ts +1 -1
  581. package/sqlite-core/query-builders/count.js.map +1 -1
  582. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  583. package/sqlite-core/query-builders/delete.d.cts +1 -1
  584. package/sqlite-core/query-builders/delete.d.ts +1 -1
  585. package/sqlite-core/query-builders/delete.js.map +1 -1
  586. package/sqlite-core/query-builders/insert.cjs +9 -3
  587. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  588. package/sqlite-core/query-builders/insert.d.cts +4 -4
  589. package/sqlite-core/query-builders/insert.d.ts +4 -4
  590. package/sqlite-core/query-builders/insert.js +9 -3
  591. package/sqlite-core/query-builders/insert.js.map +1 -1
  592. package/sqlite-core/query-builders/query-builder.cjs +15 -11
  593. package/sqlite-core/query-builders/query-builder.cjs.map +1 -1
  594. package/sqlite-core/query-builders/query-builder.d.cts +2 -6
  595. package/sqlite-core/query-builders/query-builder.d.ts +2 -6
  596. package/sqlite-core/query-builders/query-builder.js +15 -11
  597. package/sqlite-core/query-builders/query-builder.js.map +1 -1
  598. package/sqlite-core/query-builders/query.cjs +35 -56
  599. package/sqlite-core/query-builders/query.cjs.map +1 -1
  600. package/sqlite-core/query-builders/query.d.cts +17 -18
  601. package/sqlite-core/query-builders/query.d.ts +17 -18
  602. package/sqlite-core/query-builders/query.js +35 -56
  603. package/sqlite-core/query-builders/query.js.map +1 -1
  604. package/sqlite-core/query-builders/select.cjs.map +1 -1
  605. package/sqlite-core/query-builders/select.d.cts +3 -3
  606. package/sqlite-core/query-builders/select.d.ts +3 -3
  607. package/sqlite-core/query-builders/select.js.map +1 -1
  608. package/sqlite-core/query-builders/update.cjs.map +1 -1
  609. package/sqlite-core/query-builders/update.d.cts +3 -3
  610. package/sqlite-core/query-builders/update.d.ts +3 -3
  611. package/sqlite-core/query-builders/update.js.map +1 -1
  612. package/sqlite-core/session.cjs +2 -6
  613. package/sqlite-core/session.cjs.map +1 -1
  614. package/sqlite-core/session.d.cts +7 -15
  615. package/sqlite-core/session.d.ts +7 -15
  616. package/sqlite-core/session.js +2 -6
  617. package/sqlite-core/session.js.map +1 -1
  618. package/sqlite-core/subquery.cjs.map +1 -1
  619. package/sqlite-core/subquery.d.cts +15 -2
  620. package/sqlite-core/subquery.d.ts +15 -2
  621. package/sqlite-proxy/driver.cjs +5 -23
  622. package/sqlite-proxy/driver.cjs.map +1 -1
  623. package/sqlite-proxy/driver.d.cts +3 -4
  624. package/sqlite-proxy/driver.d.ts +3 -4
  625. package/sqlite-proxy/driver.js +5 -13
  626. package/sqlite-proxy/driver.js.map +1 -1
  627. package/sqlite-proxy/migrator.cjs.map +1 -1
  628. package/sqlite-proxy/migrator.d.cts +1 -2
  629. package/sqlite-proxy/migrator.d.ts +1 -2
  630. package/sqlite-proxy/migrator.js.map +1 -1
  631. package/sqlite-proxy/session.cjs +6 -50
  632. package/sqlite-proxy/session.cjs.map +1 -1
  633. package/sqlite-proxy/session.d.cts +8 -14
  634. package/sqlite-proxy/session.d.ts +8 -14
  635. package/sqlite-proxy/session.js +6 -50
  636. package/sqlite-proxy/session.js.map +1 -1
  637. package/subquery.cjs.map +1 -1
  638. package/subquery.d.cts +1 -0
  639. package/subquery.d.ts +1 -0
  640. package/subquery.js.map +1 -1
  641. package/table.cjs.map +1 -1
  642. package/table.d.cts +1 -1
  643. package/table.d.ts +1 -1
  644. package/table.js.map +1 -1
  645. package/tidb-serverless/driver.cjs +5 -22
  646. package/tidb-serverless/driver.cjs.map +1 -1
  647. package/tidb-serverless/driver.d.cts +6 -7
  648. package/tidb-serverless/driver.d.ts +6 -7
  649. package/tidb-serverless/driver.js +8 -12
  650. package/tidb-serverless/driver.js.map +1 -1
  651. package/tidb-serverless/migrator.cjs.map +1 -1
  652. package/tidb-serverless/migrator.d.cts +1 -2
  653. package/tidb-serverless/migrator.d.ts +1 -2
  654. package/tidb-serverless/migrator.js.map +1 -1
  655. package/tidb-serverless/session.cjs +5 -62
  656. package/tidb-serverless/session.cjs.map +1 -1
  657. package/tidb-serverless/session.d.cts +9 -14
  658. package/tidb-serverless/session.d.ts +9 -14
  659. package/tidb-serverless/session.js +5 -62
  660. package/tidb-serverless/session.js.map +1 -1
  661. package/utils.cjs +2 -2
  662. package/utils.cjs.map +1 -1
  663. package/utils.d.cts +1 -3
  664. package/utils.d.ts +1 -3
  665. package/utils.js +2 -2
  666. package/utils.js.map +1 -1
  667. package/vercel-postgres/driver.cjs +7 -23
  668. package/vercel-postgres/driver.cjs.map +1 -1
  669. package/vercel-postgres/driver.d.cts +8 -9
  670. package/vercel-postgres/driver.d.ts +8 -9
  671. package/vercel-postgres/driver.js +10 -13
  672. package/vercel-postgres/driver.js.map +1 -1
  673. package/vercel-postgres/migrator.cjs.map +1 -1
  674. package/vercel-postgres/migrator.d.cts +1 -2
  675. package/vercel-postgres/migrator.d.ts +1 -2
  676. package/vercel-postgres/migrator.js.map +1 -1
  677. package/vercel-postgres/session.cjs +8 -34
  678. package/vercel-postgres/session.cjs.map +1 -1
  679. package/vercel-postgres/session.d.cts +10 -14
  680. package/vercel-postgres/session.d.ts +10 -14
  681. package/vercel-postgres/session.js +8 -34
  682. package/vercel-postgres/session.js.map +1 -1
  683. package/version.cjs +1 -1
  684. package/version.d.cts +1 -1
  685. package/version.d.ts +1 -1
  686. package/version.js +1 -1
  687. package/xata-http/driver.cjs +5 -17
  688. package/xata-http/driver.cjs.map +1 -1
  689. package/xata-http/driver.d.cts +4 -5
  690. package/xata-http/driver.d.ts +4 -5
  691. package/xata-http/driver.js +5 -7
  692. package/xata-http/driver.js.map +1 -1
  693. package/xata-http/migrator.cjs.map +1 -1
  694. package/xata-http/migrator.d.cts +1 -2
  695. package/xata-http/migrator.d.ts +1 -2
  696. package/xata-http/migrator.js.map +1 -1
  697. package/xata-http/session.cjs +2 -30
  698. package/xata-http/session.cjs.map +1 -1
  699. package/xata-http/session.d.cts +8 -13
  700. package/xata-http/session.d.ts +8 -13
  701. package/xata-http/session.js +2 -30
  702. package/xata-http/session.js.map +1 -1
  703. package/_relations.cjs +0 -328
  704. package/_relations.cjs.map +0 -1
  705. package/_relations.d.cts +0 -215
  706. package/_relations.d.ts +0 -215
  707. package/_relations.js +0 -316
  708. package/_relations.js.map +0 -1
  709. package/mysql-core/query-builders/_query.cjs +0 -149
  710. package/mysql-core/query-builders/_query.cjs.map +0 -1
  711. package/mysql-core/query-builders/_query.d.cts +0 -44
  712. package/mysql-core/query-builders/_query.d.ts +0 -44
  713. package/mysql-core/query-builders/_query.js +0 -114
  714. package/mysql-core/query-builders/_query.js.map +0 -1
  715. package/pg-core/query-builders/_query.cjs +0 -155
  716. package/pg-core/query-builders/_query.cjs.map +0 -1
  717. package/pg-core/query-builders/_query.d.cts +0 -47
  718. package/pg-core/query-builders/_query.d.ts +0 -47
  719. package/pg-core/query-builders/_query.js +0 -120
  720. package/pg-core/query-builders/_query.js.map +0 -1
  721. package/sqlite-core/query-builders/_query.cjs +0 -187
  722. package/sqlite-core/query-builders/_query.cjs.map +0 -1
  723. package/sqlite-core/query-builders/_query.d.cts +0 -55
  724. package/sqlite-core/query-builders/_query.d.ts +0 -55
  725. package/sqlite-core/query-builders/_query.js +0 -151
  726. package/sqlite-core/query-builders/_query.js.map +0 -1
@@ -26,47 +26,50 @@ var import_entity = require("../../entity.cjs");
26
26
  var import_query_promise = require("../../query-promise.cjs");
27
27
  var import_relations = require("../../relations.cjs");
28
28
  class RelationalQueryBuilder {
29
- constructor(tables, schema, tableNamesMap, table, tableConfig, dialect, session) {
30
- this.tables = tables;
29
+ constructor(fullSchema, schema, tableNamesMap, table, tableConfig, dialect, session, mode) {
30
+ this.fullSchema = fullSchema;
31
31
  this.schema = schema;
32
32
  this.tableNamesMap = tableNamesMap;
33
33
  this.table = table;
34
34
  this.tableConfig = tableConfig;
35
35
  this.dialect = dialect;
36
36
  this.session = session;
37
+ this.mode = mode;
37
38
  }
38
- static [import_entity.entityKind] = "MySqlRelationalQueryBuilderV2";
39
+ static [import_entity.entityKind] = "MySqlRelationalQueryBuilder";
39
40
  findMany(config) {
40
41
  return new MySqlRelationalQuery(
41
- this.tables,
42
+ this.fullSchema,
42
43
  this.schema,
43
44
  this.tableNamesMap,
44
45
  this.table,
45
46
  this.tableConfig,
46
47
  this.dialect,
47
48
  this.session,
48
- config ?? true,
49
- "many"
49
+ config ? config : {},
50
+ "many",
51
+ this.mode
50
52
  );
51
53
  }
52
54
  findFirst(config) {
53
55
  return new MySqlRelationalQuery(
54
- this.tables,
56
+ this.fullSchema,
55
57
  this.schema,
56
58
  this.tableNamesMap,
57
59
  this.table,
58
60
  this.tableConfig,
59
61
  this.dialect,
60
62
  this.session,
61
- config ?? true,
62
- "first"
63
+ config ? { ...config, limit: 1 } : { limit: 1 },
64
+ "first",
65
+ this.mode
63
66
  );
64
67
  }
65
68
  }
66
69
  class MySqlRelationalQuery extends import_query_promise.QueryPromise {
67
- constructor(tables, schema, tableNamesMap, table, tableConfig, dialect, session, config, mode) {
70
+ constructor(fullSchema, schema, tableNamesMap, table, tableConfig, dialect, session, config, queryMode, mode) {
68
71
  super();
69
- this.tables = tables;
72
+ this.fullSchema = fullSchema;
70
73
  this.schema = schema;
71
74
  this.tableNamesMap = tableNamesMap;
72
75
  this.table = table;
@@ -74,17 +77,18 @@ class MySqlRelationalQuery extends import_query_promise.QueryPromise {
74
77
  this.dialect = dialect;
75
78
  this.session = session;
76
79
  this.config = config;
80
+ this.queryMode = queryMode;
77
81
  this.mode = mode;
78
82
  }
79
- static [import_entity.entityKind] = "MySqlRelationalQueryV2";
83
+ static [import_entity.entityKind] = "MySqlRelationalQuery";
80
84
  prepare() {
81
85
  const { query, builtQuery } = this._toSQL();
82
- return this.session.prepareRelationalQuery(
86
+ return this.session.prepareQuery(
83
87
  builtQuery,
84
88
  void 0,
85
89
  (rawRows) => {
86
- const rows = rawRows.map((row) => (0, import_relations.mapRelationalRow)(row, query.selection));
87
- if (this.mode === "first") {
90
+ const rows = rawRows.map((row) => (0, import_relations.mapRelationalRow)(this.schema, this.tableConfig, row, query.selection));
91
+ if (this.queryMode === "first") {
88
92
  return rows[0];
89
93
  }
90
94
  return rows;
@@ -92,15 +96,24 @@ class MySqlRelationalQuery extends import_query_promise.QueryPromise {
92
96
  );
93
97
  }
94
98
  _getQuery() {
95
- return this.dialect.buildRelationalQuery({
99
+ const query = this.mode === "planetscale" ? this.dialect.buildRelationalQueryWithoutLateralSubqueries({
100
+ fullSchema: this.fullSchema,
101
+ schema: this.schema,
102
+ tableNamesMap: this.tableNamesMap,
103
+ table: this.table,
104
+ tableConfig: this.tableConfig,
105
+ queryConfig: this.config,
106
+ tableAlias: this.tableConfig.tsName
107
+ }) : this.dialect.buildRelationalQuery({
108
+ fullSchema: this.fullSchema,
96
109
  schema: this.schema,
97
110
  tableNamesMap: this.tableNamesMap,
98
111
  table: this.table,
99
112
  tableConfig: this.tableConfig,
100
113
  queryConfig: this.config,
101
- tables: this.tables,
102
- mode: this.mode
114
+ tableAlias: this.tableConfig.tsName
103
115
  });
116
+ return query;
104
117
  }
105
118
  _toSQL() {
106
119
  const query = this._getQuery();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/query-builders/query.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport {\n\ttype BuildQueryResult,\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tmapRelationalRow,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { Query, QueryWithTypings, SQL } from '~/sql/sql.ts';\nimport type { KnownKeysOnly } from '~/utils.ts';\nimport type { MySqlDialect } from '../dialect.ts';\nimport type { MySqlPreparedQueryConfig, MySqlSession, PreparedQueryHKTBase, PreparedQueryKind } from '../session.ts';\nimport type { MySqlTable } from '../table.ts';\n\nexport class RelationalQueryBuilder<\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTSchema extends TablesRelationalConfig,\n\tTFields extends TableRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'MySqlRelationalQueryBuilderV2';\n\n\tconstructor(\n\t\tprivate tables: Record<string, MySqlTable>,\n\t\tprivate schema: TSchema,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: MySqlTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: MySqlDialect,\n\t\tprivate session: MySqlSession,\n\t) {}\n\n\tfindMany<TConfig extends DBQueryConfig<'many', TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'many', TSchema, TFields>>,\n\t): MySqlRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TConfig>[]> {\n\t\treturn new MySqlRelationalQuery(\n\t\t\tthis.tables,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig as DBQueryConfig<'many'> | undefined ?? true,\n\t\t\t'many',\n\t\t);\n\t}\n\n\tfindFirst<TSelection extends DBQueryConfig<'one', TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TSelection, DBQueryConfig<'one', TSchema, TFields>>,\n\t): MySqlRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TSelection> | undefined> {\n\t\treturn new MySqlRelationalQuery(\n\t\t\tthis.tables,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig as DBQueryConfig<'one'> | undefined ?? true,\n\t\t\t'first',\n\t\t);\n\t}\n}\n\nexport class MySqlRelationalQuery<\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTResult,\n> extends QueryPromise<TResult> {\n\tstatic override readonly [entityKind]: string = 'MySqlRelationalQueryV2';\n\n\tdeclare protected $brand: 'MySqlRelationalQuery';\n\n\tconstructor(\n\t\tprivate tables: Record<string, MySqlTable>,\n\t\tprivate schema: TablesRelationalConfig,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: MySqlTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: MySqlDialect,\n\t\tprivate session: MySqlSession,\n\t\tprivate config: DBQueryConfig<'many' | 'one'> | true,\n\t\tprivate mode: 'many' | 'first',\n\t) {\n\t\tsuper();\n\t}\n\n\tprepare() {\n\t\tconst { query, builtQuery } = this._toSQL();\n\t\treturn this.session.prepareRelationalQuery(\n\t\t\tbuiltQuery,\n\t\t\tundefined,\n\t\t\t(rawRows) => {\n\t\t\t\tconst rows = rawRows.map((row) => mapRelationalRow(row, query.selection));\n\t\t\t\tif (this.mode === 'first') {\n\t\t\t\t\treturn rows[0] as TResult;\n\t\t\t\t}\n\t\t\t\treturn rows as TResult;\n\t\t\t},\n\t\t) as PreparedQueryKind<TPreparedQueryHKT, MySqlPreparedQueryConfig & { execute: TResult }, true>;\n\t}\n\n\tprivate _getQuery() {\n\t\treturn this.dialect.buildRelationalQuery({\n\t\t\tschema: this.schema,\n\t\t\ttableNamesMap: this.tableNamesMap,\n\t\t\ttable: this.table,\n\t\t\ttableConfig: this.tableConfig,\n\t\t\tqueryConfig: this.config,\n\t\t\ttables: this.tables,\n\t\t\tmode: this.mode,\n\t\t});\n\t}\n\n\tprivate _toSQL(): { query: BuildRelationalQueryResult; builtQuery: QueryWithTypings } {\n\t\tconst query = this._getQuery();\n\n\t\tconst builtQuery = this.dialect.sqlToQuery(query.sql);\n\n\t\treturn { builtQuery, query };\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this._getQuery().sql;\n\t}\n\n\ttoSQL(): Query {\n\t\treturn this._toSQL().builtQuery;\n\t}\n\n\toverride execute(): Promise<TResult> {\n\t\treturn this.prepare().execute();\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,2BAA6B;AAC7B,uBAOO;AAOA,MAAM,uBAIX;AAAA,EAGD,YACS,QACA,QACA,eACA,OACA,aACA,SACA,SACP;AAPO;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EACN;AAAA,EAVH,QAAiB,wBAAU,IAAY;AAAA,EAYvC,SACC,QACyF;AACzF,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,UAA+C;AAAA,MAC/C;AAAA,IACD;AAAA,EACD;AAAA,EAEA,UACC,QACsG;AACtG,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,UAA8C;AAAA,MAC9C;AAAA,IACD;AAAA,EACD;AACD;AAEO,MAAM,6BAGH,kCAAsB;AAAA,EAK/B,YACS,QACA,QACA,eACA,OACA,aACA,SACA,SACA,QACA,MACP;AACD,UAAM;AAVE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EAGT;AAAA,EAhBA,QAA0B,wBAAU,IAAY;AAAA,EAkBhD,UAAU;AACT,UAAM,EAAE,OAAO,WAAW,IAAI,KAAK,OAAO;AAC1C,WAAO,KAAK,QAAQ;AAAA,MACnB;AAAA,MACA;AAAA,MACA,CAAC,YAAY;AACZ,cAAM,OAAO,QAAQ,IAAI,CAAC,YAAQ,mCAAiB,KAAK,MAAM,SAAS,CAAC;AACxE,YAAI,KAAK,SAAS,SAAS;AAC1B,iBAAO,KAAK,CAAC;AAAA,QACd;AACA,eAAO;AAAA,MACR;AAAA,IACD;AAAA,EACD;AAAA,EAEQ,YAAY;AACnB,WAAO,KAAK,QAAQ,qBAAqB;AAAA,MACxC,QAAQ,KAAK;AAAA,MACb,eAAe,KAAK;AAAA,MACpB,OAAO,KAAK;AAAA,MACZ,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,QAAQ,KAAK;AAAA,MACb,MAAM,KAAK;AAAA,IACZ,CAAC;AAAA,EACF;AAAA,EAEQ,SAA8E;AACrF,UAAM,QAAQ,KAAK,UAAU;AAE7B,UAAM,aAAa,KAAK,QAAQ,WAAW,MAAM,GAAG;AAEpD,WAAO,EAAE,YAAY,MAAM;AAAA,EAC5B;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,UAAU,EAAE;AAAA,EACzB;AAAA,EAEA,QAAe;AACd,WAAO,KAAK,OAAO,EAAE;AAAA,EACtB;AAAA,EAES,UAA4B;AACpC,WAAO,KAAK,QAAQ,EAAE,QAAQ;AAAA,EAC/B;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/mysql-core/query-builders/query.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport {\n\ttype BuildQueryResult,\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tmapRelationalRow,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { Query, QueryWithTypings, SQL } from '~/sql/sql.ts';\nimport type { KnownKeysOnly } from '~/utils.ts';\nimport type { MySqlDialect } from '../dialect.ts';\nimport type {\n\tMode,\n\tMySqlPreparedQueryConfig,\n\tMySqlSession,\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n} from '../session.ts';\nimport type { MySqlTable } from '../table.ts';\n\nexport class RelationalQueryBuilder<\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTSchema extends TablesRelationalConfig,\n\tTFields extends TableRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'MySqlRelationalQueryBuilder';\n\n\tconstructor(\n\t\tprivate fullSchema: Record<string, unknown>,\n\t\tprivate schema: TSchema,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: MySqlTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: MySqlDialect,\n\t\tprivate session: MySqlSession,\n\t\tprivate mode: Mode,\n\t) {}\n\n\tfindMany<TConfig extends DBQueryConfig<'many', true, TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'many', true, TSchema, TFields>>,\n\t): MySqlRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TConfig>[]> {\n\t\treturn new MySqlRelationalQuery(\n\t\t\tthis.fullSchema,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig ? (config as DBQueryConfig<'many', true>) : {},\n\t\t\t'many',\n\t\t\tthis.mode,\n\t\t);\n\t}\n\n\tfindFirst<TSelection extends Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>(\n\t\tconfig?: KnownKeysOnly<TSelection, Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>,\n\t): MySqlRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TSelection> | undefined> {\n\t\treturn new MySqlRelationalQuery(\n\t\t\tthis.fullSchema,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig ? { ...(config as DBQueryConfig<'many', true> | undefined), limit: 1 } : { limit: 1 },\n\t\t\t'first',\n\t\t\tthis.mode,\n\t\t);\n\t}\n}\n\nexport class MySqlRelationalQuery<\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTResult,\n> extends QueryPromise<TResult> {\n\tstatic override readonly [entityKind]: string = 'MySqlRelationalQuery';\n\n\tdeclare protected $brand: 'MySqlRelationalQuery';\n\n\tconstructor(\n\t\tprivate fullSchema: Record<string, unknown>,\n\t\tprivate schema: TablesRelationalConfig,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: MySqlTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: MySqlDialect,\n\t\tprivate session: MySqlSession,\n\t\tprivate config: DBQueryConfig<'many', true> | true,\n\t\tprivate queryMode: 'many' | 'first',\n\t\tprivate mode?: Mode,\n\t) {\n\t\tsuper();\n\t}\n\n\tprepare() {\n\t\tconst { query, builtQuery } = this._toSQL();\n\t\treturn this.session.prepareQuery(\n\t\t\tbuiltQuery,\n\t\t\tundefined,\n\t\t\t(rawRows) => {\n\t\t\t\tconst rows = rawRows.map((row) => mapRelationalRow(this.schema, this.tableConfig, row, query.selection));\n\t\t\t\tif (this.queryMode === 'first') {\n\t\t\t\t\treturn rows[0] as TResult;\n\t\t\t\t}\n\t\t\t\treturn rows as TResult;\n\t\t\t},\n\t\t) as PreparedQueryKind<TPreparedQueryHKT, MySqlPreparedQueryConfig & { execute: TResult }, true>;\n\t}\n\n\tprivate _getQuery() {\n\t\tconst query = this.mode === 'planetscale'\n\t\t\t? this.dialect.buildRelationalQueryWithoutLateralSubqueries({\n\t\t\t\tfullSchema: this.fullSchema,\n\t\t\t\tschema: this.schema,\n\t\t\t\ttableNamesMap: this.tableNamesMap,\n\t\t\t\ttable: this.table,\n\t\t\t\ttableConfig: this.tableConfig,\n\t\t\t\tqueryConfig: this.config,\n\t\t\t\ttableAlias: this.tableConfig.tsName,\n\t\t\t})\n\t\t\t: this.dialect.buildRelationalQuery({\n\t\t\t\tfullSchema: this.fullSchema,\n\t\t\t\tschema: this.schema,\n\t\t\t\ttableNamesMap: this.tableNamesMap,\n\t\t\t\ttable: this.table,\n\t\t\t\ttableConfig: this.tableConfig,\n\t\t\t\tqueryConfig: this.config,\n\t\t\t\ttableAlias: this.tableConfig.tsName,\n\t\t\t});\n\t\treturn query;\n\t}\n\n\tprivate _toSQL(): { query: BuildRelationalQueryResult; builtQuery: QueryWithTypings } {\n\t\tconst query = this._getQuery();\n\n\t\tconst builtQuery = this.dialect.sqlToQuery(query.sql as SQL);\n\n\t\treturn { builtQuery, query };\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this._getQuery().sql as SQL;\n\t}\n\n\ttoSQL(): Query {\n\t\treturn this._toSQL().builtQuery;\n\t}\n\n\toverride execute(): Promise<TResult> {\n\t\treturn this.prepare().execute();\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,2BAA6B;AAC7B,uBAOO;AAaA,MAAM,uBAIX;AAAA,EAGD,YACS,YACA,QACA,eACA,OACA,aACA,SACA,SACA,MACP;AARO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EACN;AAAA,EAXH,QAAiB,wBAAU,IAAY;AAAA,EAavC,SACC,QACyF;AACzF,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAU,SAAyC,CAAC;AAAA,MACpD;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AAAA,EAEA,UACC,QACsG;AACtG,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAS,EAAE,GAAI,QAAoD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;AAAA,MAC3F;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,6BAGH,kCAAsB;AAAA,EAK/B,YACS,YACA,QACA,eACA,OACA,aACA,SACA,SACA,QACA,WACA,MACP;AACD,UAAM;AAXE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EAGT;AAAA,EAjBA,QAA0B,wBAAU,IAAY;AAAA,EAmBhD,UAAU;AACT,UAAM,EAAE,OAAO,WAAW,IAAI,KAAK,OAAO;AAC1C,WAAO,KAAK,QAAQ;AAAA,MACnB;AAAA,MACA;AAAA,MACA,CAAC,YAAY;AACZ,cAAM,OAAO,QAAQ,IAAI,CAAC,YAAQ,mCAAiB,KAAK,QAAQ,KAAK,aAAa,KAAK,MAAM,SAAS,CAAC;AACvG,YAAI,KAAK,cAAc,SAAS;AAC/B,iBAAO,KAAK,CAAC;AAAA,QACd;AACA,eAAO;AAAA,MACR;AAAA,IACD;AAAA,EACD;AAAA,EAEQ,YAAY;AACnB,UAAM,QAAQ,KAAK,SAAS,gBACzB,KAAK,QAAQ,6CAA6C;AAAA,MAC3D,YAAY,KAAK;AAAA,MACjB,QAAQ,KAAK;AAAA,MACb,eAAe,KAAK;AAAA,MACpB,OAAO,KAAK;AAAA,MACZ,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,YAAY,KAAK,YAAY;AAAA,IAC9B,CAAC,IACC,KAAK,QAAQ,qBAAqB;AAAA,MACnC,YAAY,KAAK;AAAA,MACjB,QAAQ,KAAK;AAAA,MACb,eAAe,KAAK;AAAA,MACpB,OAAO,KAAK;AAAA,MACZ,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,YAAY,KAAK,YAAY;AAAA,IAC9B,CAAC;AACF,WAAO;AAAA,EACR;AAAA,EAEQ,SAA8E;AACrF,UAAM,QAAQ,KAAK,UAAU;AAE7B,UAAM,aAAa,KAAK,QAAQ,WAAW,MAAM,GAAU;AAE3D,WAAO,EAAE,YAAY,MAAM;AAAA,EAC5B;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,UAAU,EAAE;AAAA,EACzB;AAAA,EAEA,QAAe;AACd,WAAO,KAAK,OAAO,EAAE;AAAA,EACtB;AAAA,EAES,UAA4B;AACpC,WAAO,KAAK,QAAQ,EAAE,QAAQ;AAAA,EAC/B;AACD;","names":[]}
@@ -4,23 +4,24 @@ import { type BuildQueryResult, type DBQueryConfig, type TableRelationalConfig,
4
4
  import type { Query } from "../../sql/sql.cjs";
5
5
  import type { KnownKeysOnly } from "../../utils.cjs";
6
6
  import type { MySqlDialect } from "../dialect.cjs";
7
- import type { MySqlPreparedQueryConfig, MySqlSession, PreparedQueryHKTBase, PreparedQueryKind } from "../session.cjs";
7
+ import type { Mode, MySqlPreparedQueryConfig, MySqlSession, PreparedQueryHKTBase, PreparedQueryKind } from "../session.cjs";
8
8
  import type { MySqlTable } from "../table.cjs";
9
9
  export declare class RelationalQueryBuilder<TPreparedQueryHKT extends PreparedQueryHKTBase, TSchema extends TablesRelationalConfig, TFields extends TableRelationalConfig> {
10
- private tables;
10
+ private fullSchema;
11
11
  private schema;
12
12
  private tableNamesMap;
13
13
  private table;
14
14
  private tableConfig;
15
15
  private dialect;
16
16
  private session;
17
+ private mode;
17
18
  static readonly [entityKind]: string;
18
- constructor(tables: Record<string, MySqlTable>, schema: TSchema, tableNamesMap: Record<string, string>, table: MySqlTable, tableConfig: TableRelationalConfig, dialect: MySqlDialect, session: MySqlSession);
19
- findMany<TConfig extends DBQueryConfig<'many', TSchema, TFields>>(config?: KnownKeysOnly<TConfig, DBQueryConfig<'many', TSchema, TFields>>): MySqlRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TConfig>[]>;
20
- findFirst<TSelection extends DBQueryConfig<'one', TSchema, TFields>>(config?: KnownKeysOnly<TSelection, DBQueryConfig<'one', TSchema, TFields>>): MySqlRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TSelection> | undefined>;
19
+ constructor(fullSchema: Record<string, unknown>, schema: TSchema, tableNamesMap: Record<string, string>, table: MySqlTable, tableConfig: TableRelationalConfig, dialect: MySqlDialect, session: MySqlSession, mode: Mode);
20
+ findMany<TConfig extends DBQueryConfig<'many', true, TSchema, TFields>>(config?: KnownKeysOnly<TConfig, DBQueryConfig<'many', true, TSchema, TFields>>): MySqlRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TConfig>[]>;
21
+ findFirst<TSelection extends Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>(config?: KnownKeysOnly<TSelection, Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>): MySqlRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TSelection> | undefined>;
21
22
  }
22
23
  export declare class MySqlRelationalQuery<TPreparedQueryHKT extends PreparedQueryHKTBase, TResult> extends QueryPromise<TResult> {
23
- private tables;
24
+ private fullSchema;
24
25
  private schema;
25
26
  private tableNamesMap;
26
27
  private table;
@@ -28,10 +29,11 @@ export declare class MySqlRelationalQuery<TPreparedQueryHKT extends PreparedQuer
28
29
  private dialect;
29
30
  private session;
30
31
  private config;
31
- private mode;
32
+ private queryMode;
33
+ private mode?;
32
34
  static readonly [entityKind]: string;
33
35
  protected $brand: 'MySqlRelationalQuery';
34
- constructor(tables: Record<string, MySqlTable>, schema: TablesRelationalConfig, tableNamesMap: Record<string, string>, table: MySqlTable, tableConfig: TableRelationalConfig, dialect: MySqlDialect, session: MySqlSession, config: DBQueryConfig<'many' | 'one'> | true, mode: 'many' | 'first');
36
+ constructor(fullSchema: Record<string, unknown>, schema: TablesRelationalConfig, tableNamesMap: Record<string, string>, table: MySqlTable, tableConfig: TableRelationalConfig, dialect: MySqlDialect, session: MySqlSession, config: DBQueryConfig<'many', true> | true, queryMode: 'many' | 'first', mode?: Mode | undefined);
35
37
  prepare(): PreparedQueryKind<TPreparedQueryHKT, MySqlPreparedQueryConfig & {
36
38
  execute: TResult;
37
39
  }, true>;
@@ -4,23 +4,24 @@ import { type BuildQueryResult, type DBQueryConfig, type TableRelationalConfig,
4
4
  import type { Query } from "../../sql/sql.js";
5
5
  import type { KnownKeysOnly } from "../../utils.js";
6
6
  import type { MySqlDialect } from "../dialect.js";
7
- import type { MySqlPreparedQueryConfig, MySqlSession, PreparedQueryHKTBase, PreparedQueryKind } from "../session.js";
7
+ import type { Mode, MySqlPreparedQueryConfig, MySqlSession, PreparedQueryHKTBase, PreparedQueryKind } from "../session.js";
8
8
  import type { MySqlTable } from "../table.js";
9
9
  export declare class RelationalQueryBuilder<TPreparedQueryHKT extends PreparedQueryHKTBase, TSchema extends TablesRelationalConfig, TFields extends TableRelationalConfig> {
10
- private tables;
10
+ private fullSchema;
11
11
  private schema;
12
12
  private tableNamesMap;
13
13
  private table;
14
14
  private tableConfig;
15
15
  private dialect;
16
16
  private session;
17
+ private mode;
17
18
  static readonly [entityKind]: string;
18
- constructor(tables: Record<string, MySqlTable>, schema: TSchema, tableNamesMap: Record<string, string>, table: MySqlTable, tableConfig: TableRelationalConfig, dialect: MySqlDialect, session: MySqlSession);
19
- findMany<TConfig extends DBQueryConfig<'many', TSchema, TFields>>(config?: KnownKeysOnly<TConfig, DBQueryConfig<'many', TSchema, TFields>>): MySqlRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TConfig>[]>;
20
- findFirst<TSelection extends DBQueryConfig<'one', TSchema, TFields>>(config?: KnownKeysOnly<TSelection, DBQueryConfig<'one', TSchema, TFields>>): MySqlRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TSelection> | undefined>;
19
+ constructor(fullSchema: Record<string, unknown>, schema: TSchema, tableNamesMap: Record<string, string>, table: MySqlTable, tableConfig: TableRelationalConfig, dialect: MySqlDialect, session: MySqlSession, mode: Mode);
20
+ findMany<TConfig extends DBQueryConfig<'many', true, TSchema, TFields>>(config?: KnownKeysOnly<TConfig, DBQueryConfig<'many', true, TSchema, TFields>>): MySqlRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TConfig>[]>;
21
+ findFirst<TSelection extends Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>(config?: KnownKeysOnly<TSelection, Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>): MySqlRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TSelection> | undefined>;
21
22
  }
22
23
  export declare class MySqlRelationalQuery<TPreparedQueryHKT extends PreparedQueryHKTBase, TResult> extends QueryPromise<TResult> {
23
- private tables;
24
+ private fullSchema;
24
25
  private schema;
25
26
  private tableNamesMap;
26
27
  private table;
@@ -28,10 +29,11 @@ export declare class MySqlRelationalQuery<TPreparedQueryHKT extends PreparedQuer
28
29
  private dialect;
29
30
  private session;
30
31
  private config;
31
- private mode;
32
+ private queryMode;
33
+ private mode?;
32
34
  static readonly [entityKind]: string;
33
35
  protected $brand: 'MySqlRelationalQuery';
34
- constructor(tables: Record<string, MySqlTable>, schema: TablesRelationalConfig, tableNamesMap: Record<string, string>, table: MySqlTable, tableConfig: TableRelationalConfig, dialect: MySqlDialect, session: MySqlSession, config: DBQueryConfig<'many' | 'one'> | true, mode: 'many' | 'first');
36
+ constructor(fullSchema: Record<string, unknown>, schema: TablesRelationalConfig, tableNamesMap: Record<string, string>, table: MySqlTable, tableConfig: TableRelationalConfig, dialect: MySqlDialect, session: MySqlSession, config: DBQueryConfig<'many', true> | true, queryMode: 'many' | 'first', mode?: Mode | undefined);
35
37
  prepare(): PreparedQueryKind<TPreparedQueryHKT, MySqlPreparedQueryConfig & {
36
38
  execute: TResult;
37
39
  }, true>;
@@ -4,47 +4,50 @@ import {
4
4
  mapRelationalRow
5
5
  } from "../../relations.js";
6
6
  class RelationalQueryBuilder {
7
- constructor(tables, schema, tableNamesMap, table, tableConfig, dialect, session) {
8
- this.tables = tables;
7
+ constructor(fullSchema, schema, tableNamesMap, table, tableConfig, dialect, session, mode) {
8
+ this.fullSchema = fullSchema;
9
9
  this.schema = schema;
10
10
  this.tableNamesMap = tableNamesMap;
11
11
  this.table = table;
12
12
  this.tableConfig = tableConfig;
13
13
  this.dialect = dialect;
14
14
  this.session = session;
15
+ this.mode = mode;
15
16
  }
16
- static [entityKind] = "MySqlRelationalQueryBuilderV2";
17
+ static [entityKind] = "MySqlRelationalQueryBuilder";
17
18
  findMany(config) {
18
19
  return new MySqlRelationalQuery(
19
- this.tables,
20
+ this.fullSchema,
20
21
  this.schema,
21
22
  this.tableNamesMap,
22
23
  this.table,
23
24
  this.tableConfig,
24
25
  this.dialect,
25
26
  this.session,
26
- config ?? true,
27
- "many"
27
+ config ? config : {},
28
+ "many",
29
+ this.mode
28
30
  );
29
31
  }
30
32
  findFirst(config) {
31
33
  return new MySqlRelationalQuery(
32
- this.tables,
34
+ this.fullSchema,
33
35
  this.schema,
34
36
  this.tableNamesMap,
35
37
  this.table,
36
38
  this.tableConfig,
37
39
  this.dialect,
38
40
  this.session,
39
- config ?? true,
40
- "first"
41
+ config ? { ...config, limit: 1 } : { limit: 1 },
42
+ "first",
43
+ this.mode
41
44
  );
42
45
  }
43
46
  }
44
47
  class MySqlRelationalQuery extends QueryPromise {
45
- constructor(tables, schema, tableNamesMap, table, tableConfig, dialect, session, config, mode) {
48
+ constructor(fullSchema, schema, tableNamesMap, table, tableConfig, dialect, session, config, queryMode, mode) {
46
49
  super();
47
- this.tables = tables;
50
+ this.fullSchema = fullSchema;
48
51
  this.schema = schema;
49
52
  this.tableNamesMap = tableNamesMap;
50
53
  this.table = table;
@@ -52,17 +55,18 @@ class MySqlRelationalQuery extends QueryPromise {
52
55
  this.dialect = dialect;
53
56
  this.session = session;
54
57
  this.config = config;
58
+ this.queryMode = queryMode;
55
59
  this.mode = mode;
56
60
  }
57
- static [entityKind] = "MySqlRelationalQueryV2";
61
+ static [entityKind] = "MySqlRelationalQuery";
58
62
  prepare() {
59
63
  const { query, builtQuery } = this._toSQL();
60
- return this.session.prepareRelationalQuery(
64
+ return this.session.prepareQuery(
61
65
  builtQuery,
62
66
  void 0,
63
67
  (rawRows) => {
64
- const rows = rawRows.map((row) => mapRelationalRow(row, query.selection));
65
- if (this.mode === "first") {
68
+ const rows = rawRows.map((row) => mapRelationalRow(this.schema, this.tableConfig, row, query.selection));
69
+ if (this.queryMode === "first") {
66
70
  return rows[0];
67
71
  }
68
72
  return rows;
@@ -70,15 +74,24 @@ class MySqlRelationalQuery extends QueryPromise {
70
74
  );
71
75
  }
72
76
  _getQuery() {
73
- return this.dialect.buildRelationalQuery({
77
+ const query = this.mode === "planetscale" ? this.dialect.buildRelationalQueryWithoutLateralSubqueries({
78
+ fullSchema: this.fullSchema,
79
+ schema: this.schema,
80
+ tableNamesMap: this.tableNamesMap,
81
+ table: this.table,
82
+ tableConfig: this.tableConfig,
83
+ queryConfig: this.config,
84
+ tableAlias: this.tableConfig.tsName
85
+ }) : this.dialect.buildRelationalQuery({
86
+ fullSchema: this.fullSchema,
74
87
  schema: this.schema,
75
88
  tableNamesMap: this.tableNamesMap,
76
89
  table: this.table,
77
90
  tableConfig: this.tableConfig,
78
91
  queryConfig: this.config,
79
- tables: this.tables,
80
- mode: this.mode
92
+ tableAlias: this.tableConfig.tsName
81
93
  });
94
+ return query;
82
95
  }
83
96
  _toSQL() {
84
97
  const query = this._getQuery();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/query-builders/query.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport {\n\ttype BuildQueryResult,\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tmapRelationalRow,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { Query, QueryWithTypings, SQL } from '~/sql/sql.ts';\nimport type { KnownKeysOnly } from '~/utils.ts';\nimport type { MySqlDialect } from '../dialect.ts';\nimport type { MySqlPreparedQueryConfig, MySqlSession, PreparedQueryHKTBase, PreparedQueryKind } from '../session.ts';\nimport type { MySqlTable } from '../table.ts';\n\nexport class RelationalQueryBuilder<\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTSchema extends TablesRelationalConfig,\n\tTFields extends TableRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'MySqlRelationalQueryBuilderV2';\n\n\tconstructor(\n\t\tprivate tables: Record<string, MySqlTable>,\n\t\tprivate schema: TSchema,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: MySqlTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: MySqlDialect,\n\t\tprivate session: MySqlSession,\n\t) {}\n\n\tfindMany<TConfig extends DBQueryConfig<'many', TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'many', TSchema, TFields>>,\n\t): MySqlRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TConfig>[]> {\n\t\treturn new MySqlRelationalQuery(\n\t\t\tthis.tables,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig as DBQueryConfig<'many'> | undefined ?? true,\n\t\t\t'many',\n\t\t);\n\t}\n\n\tfindFirst<TSelection extends DBQueryConfig<'one', TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TSelection, DBQueryConfig<'one', TSchema, TFields>>,\n\t): MySqlRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TSelection> | undefined> {\n\t\treturn new MySqlRelationalQuery(\n\t\t\tthis.tables,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig as DBQueryConfig<'one'> | undefined ?? true,\n\t\t\t'first',\n\t\t);\n\t}\n}\n\nexport class MySqlRelationalQuery<\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTResult,\n> extends QueryPromise<TResult> {\n\tstatic override readonly [entityKind]: string = 'MySqlRelationalQueryV2';\n\n\tdeclare protected $brand: 'MySqlRelationalQuery';\n\n\tconstructor(\n\t\tprivate tables: Record<string, MySqlTable>,\n\t\tprivate schema: TablesRelationalConfig,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: MySqlTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: MySqlDialect,\n\t\tprivate session: MySqlSession,\n\t\tprivate config: DBQueryConfig<'many' | 'one'> | true,\n\t\tprivate mode: 'many' | 'first',\n\t) {\n\t\tsuper();\n\t}\n\n\tprepare() {\n\t\tconst { query, builtQuery } = this._toSQL();\n\t\treturn this.session.prepareRelationalQuery(\n\t\t\tbuiltQuery,\n\t\t\tundefined,\n\t\t\t(rawRows) => {\n\t\t\t\tconst rows = rawRows.map((row) => mapRelationalRow(row, query.selection));\n\t\t\t\tif (this.mode === 'first') {\n\t\t\t\t\treturn rows[0] as TResult;\n\t\t\t\t}\n\t\t\t\treturn rows as TResult;\n\t\t\t},\n\t\t) as PreparedQueryKind<TPreparedQueryHKT, MySqlPreparedQueryConfig & { execute: TResult }, true>;\n\t}\n\n\tprivate _getQuery() {\n\t\treturn this.dialect.buildRelationalQuery({\n\t\t\tschema: this.schema,\n\t\t\ttableNamesMap: this.tableNamesMap,\n\t\t\ttable: this.table,\n\t\t\ttableConfig: this.tableConfig,\n\t\t\tqueryConfig: this.config,\n\t\t\ttables: this.tables,\n\t\t\tmode: this.mode,\n\t\t});\n\t}\n\n\tprivate _toSQL(): { query: BuildRelationalQueryResult; builtQuery: QueryWithTypings } {\n\t\tconst query = this._getQuery();\n\n\t\tconst builtQuery = this.dialect.sqlToQuery(query.sql);\n\n\t\treturn { builtQuery, query };\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this._getQuery().sql;\n\t}\n\n\ttoSQL(): Query {\n\t\treturn this._toSQL().builtQuery;\n\t}\n\n\toverride execute(): Promise<TResult> {\n\t\treturn this.prepare().execute();\n\t}\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB;AAC7B;AAAA,EAIC;AAAA,OAGM;AAOA,MAAM,uBAIX;AAAA,EAGD,YACS,QACA,QACA,eACA,OACA,aACA,SACA,SACP;AAPO;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EACN;AAAA,EAVH,QAAiB,UAAU,IAAY;AAAA,EAYvC,SACC,QACyF;AACzF,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,UAA+C;AAAA,MAC/C;AAAA,IACD;AAAA,EACD;AAAA,EAEA,UACC,QACsG;AACtG,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,UAA8C;AAAA,MAC9C;AAAA,IACD;AAAA,EACD;AACD;AAEO,MAAM,6BAGH,aAAsB;AAAA,EAK/B,YACS,QACA,QACA,eACA,OACA,aACA,SACA,SACA,QACA,MACP;AACD,UAAM;AAVE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EAGT;AAAA,EAhBA,QAA0B,UAAU,IAAY;AAAA,EAkBhD,UAAU;AACT,UAAM,EAAE,OAAO,WAAW,IAAI,KAAK,OAAO;AAC1C,WAAO,KAAK,QAAQ;AAAA,MACnB;AAAA,MACA;AAAA,MACA,CAAC,YAAY;AACZ,cAAM,OAAO,QAAQ,IAAI,CAAC,QAAQ,iBAAiB,KAAK,MAAM,SAAS,CAAC;AACxE,YAAI,KAAK,SAAS,SAAS;AAC1B,iBAAO,KAAK,CAAC;AAAA,QACd;AACA,eAAO;AAAA,MACR;AAAA,IACD;AAAA,EACD;AAAA,EAEQ,YAAY;AACnB,WAAO,KAAK,QAAQ,qBAAqB;AAAA,MACxC,QAAQ,KAAK;AAAA,MACb,eAAe,KAAK;AAAA,MACpB,OAAO,KAAK;AAAA,MACZ,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,QAAQ,KAAK;AAAA,MACb,MAAM,KAAK;AAAA,IACZ,CAAC;AAAA,EACF;AAAA,EAEQ,SAA8E;AACrF,UAAM,QAAQ,KAAK,UAAU;AAE7B,UAAM,aAAa,KAAK,QAAQ,WAAW,MAAM,GAAG;AAEpD,WAAO,EAAE,YAAY,MAAM;AAAA,EAC5B;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,UAAU,EAAE;AAAA,EACzB;AAAA,EAEA,QAAe;AACd,WAAO,KAAK,OAAO,EAAE;AAAA,EACtB;AAAA,EAES,UAA4B;AACpC,WAAO,KAAK,QAAQ,EAAE,QAAQ;AAAA,EAC/B;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/mysql-core/query-builders/query.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport {\n\ttype BuildQueryResult,\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tmapRelationalRow,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { Query, QueryWithTypings, SQL } from '~/sql/sql.ts';\nimport type { KnownKeysOnly } from '~/utils.ts';\nimport type { MySqlDialect } from '../dialect.ts';\nimport type {\n\tMode,\n\tMySqlPreparedQueryConfig,\n\tMySqlSession,\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n} from '../session.ts';\nimport type { MySqlTable } from '../table.ts';\n\nexport class RelationalQueryBuilder<\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTSchema extends TablesRelationalConfig,\n\tTFields extends TableRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'MySqlRelationalQueryBuilder';\n\n\tconstructor(\n\t\tprivate fullSchema: Record<string, unknown>,\n\t\tprivate schema: TSchema,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: MySqlTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: MySqlDialect,\n\t\tprivate session: MySqlSession,\n\t\tprivate mode: Mode,\n\t) {}\n\n\tfindMany<TConfig extends DBQueryConfig<'many', true, TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'many', true, TSchema, TFields>>,\n\t): MySqlRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TConfig>[]> {\n\t\treturn new MySqlRelationalQuery(\n\t\t\tthis.fullSchema,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig ? (config as DBQueryConfig<'many', true>) : {},\n\t\t\t'many',\n\t\t\tthis.mode,\n\t\t);\n\t}\n\n\tfindFirst<TSelection extends Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>(\n\t\tconfig?: KnownKeysOnly<TSelection, Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>,\n\t): MySqlRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TSelection> | undefined> {\n\t\treturn new MySqlRelationalQuery(\n\t\t\tthis.fullSchema,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig ? { ...(config as DBQueryConfig<'many', true> | undefined), limit: 1 } : { limit: 1 },\n\t\t\t'first',\n\t\t\tthis.mode,\n\t\t);\n\t}\n}\n\nexport class MySqlRelationalQuery<\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTResult,\n> extends QueryPromise<TResult> {\n\tstatic override readonly [entityKind]: string = 'MySqlRelationalQuery';\n\n\tdeclare protected $brand: 'MySqlRelationalQuery';\n\n\tconstructor(\n\t\tprivate fullSchema: Record<string, unknown>,\n\t\tprivate schema: TablesRelationalConfig,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: MySqlTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: MySqlDialect,\n\t\tprivate session: MySqlSession,\n\t\tprivate config: DBQueryConfig<'many', true> | true,\n\t\tprivate queryMode: 'many' | 'first',\n\t\tprivate mode?: Mode,\n\t) {\n\t\tsuper();\n\t}\n\n\tprepare() {\n\t\tconst { query, builtQuery } = this._toSQL();\n\t\treturn this.session.prepareQuery(\n\t\t\tbuiltQuery,\n\t\t\tundefined,\n\t\t\t(rawRows) => {\n\t\t\t\tconst rows = rawRows.map((row) => mapRelationalRow(this.schema, this.tableConfig, row, query.selection));\n\t\t\t\tif (this.queryMode === 'first') {\n\t\t\t\t\treturn rows[0] as TResult;\n\t\t\t\t}\n\t\t\t\treturn rows as TResult;\n\t\t\t},\n\t\t) as PreparedQueryKind<TPreparedQueryHKT, MySqlPreparedQueryConfig & { execute: TResult }, true>;\n\t}\n\n\tprivate _getQuery() {\n\t\tconst query = this.mode === 'planetscale'\n\t\t\t? this.dialect.buildRelationalQueryWithoutLateralSubqueries({\n\t\t\t\tfullSchema: this.fullSchema,\n\t\t\t\tschema: this.schema,\n\t\t\t\ttableNamesMap: this.tableNamesMap,\n\t\t\t\ttable: this.table,\n\t\t\t\ttableConfig: this.tableConfig,\n\t\t\t\tqueryConfig: this.config,\n\t\t\t\ttableAlias: this.tableConfig.tsName,\n\t\t\t})\n\t\t\t: this.dialect.buildRelationalQuery({\n\t\t\t\tfullSchema: this.fullSchema,\n\t\t\t\tschema: this.schema,\n\t\t\t\ttableNamesMap: this.tableNamesMap,\n\t\t\t\ttable: this.table,\n\t\t\t\ttableConfig: this.tableConfig,\n\t\t\t\tqueryConfig: this.config,\n\t\t\t\ttableAlias: this.tableConfig.tsName,\n\t\t\t});\n\t\treturn query;\n\t}\n\n\tprivate _toSQL(): { query: BuildRelationalQueryResult; builtQuery: QueryWithTypings } {\n\t\tconst query = this._getQuery();\n\n\t\tconst builtQuery = this.dialect.sqlToQuery(query.sql as SQL);\n\n\t\treturn { builtQuery, query };\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this._getQuery().sql as SQL;\n\t}\n\n\ttoSQL(): Query {\n\t\treturn this._toSQL().builtQuery;\n\t}\n\n\toverride execute(): Promise<TResult> {\n\t\treturn this.prepare().execute();\n\t}\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB;AAC7B;AAAA,EAIC;AAAA,OAGM;AAaA,MAAM,uBAIX;AAAA,EAGD,YACS,YACA,QACA,eACA,OACA,aACA,SACA,SACA,MACP;AARO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EACN;AAAA,EAXH,QAAiB,UAAU,IAAY;AAAA,EAavC,SACC,QACyF;AACzF,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAU,SAAyC,CAAC;AAAA,MACpD;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AAAA,EAEA,UACC,QACsG;AACtG,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAS,EAAE,GAAI,QAAoD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;AAAA,MAC3F;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,6BAGH,aAAsB;AAAA,EAK/B,YACS,YACA,QACA,eACA,OACA,aACA,SACA,SACA,QACA,WACA,MACP;AACD,UAAM;AAXE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EAGT;AAAA,EAjBA,QAA0B,UAAU,IAAY;AAAA,EAmBhD,UAAU;AACT,UAAM,EAAE,OAAO,WAAW,IAAI,KAAK,OAAO;AAC1C,WAAO,KAAK,QAAQ;AAAA,MACnB;AAAA,MACA;AAAA,MACA,CAAC,YAAY;AACZ,cAAM,OAAO,QAAQ,IAAI,CAAC,QAAQ,iBAAiB,KAAK,QAAQ,KAAK,aAAa,KAAK,MAAM,SAAS,CAAC;AACvG,YAAI,KAAK,cAAc,SAAS;AAC/B,iBAAO,KAAK,CAAC;AAAA,QACd;AACA,eAAO;AAAA,MACR;AAAA,IACD;AAAA,EACD;AAAA,EAEQ,YAAY;AACnB,UAAM,QAAQ,KAAK,SAAS,gBACzB,KAAK,QAAQ,6CAA6C;AAAA,MAC3D,YAAY,KAAK;AAAA,MACjB,QAAQ,KAAK;AAAA,MACb,eAAe,KAAK;AAAA,MACpB,OAAO,KAAK;AAAA,MACZ,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,YAAY,KAAK,YAAY;AAAA,IAC9B,CAAC,IACC,KAAK,QAAQ,qBAAqB;AAAA,MACnC,YAAY,KAAK;AAAA,MACjB,QAAQ,KAAK;AAAA,MACb,eAAe,KAAK;AAAA,MACpB,OAAO,KAAK;AAAA,MACZ,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,YAAY,KAAK,YAAY;AAAA,IAC9B,CAAC;AACF,WAAO;AAAA,EACR;AAAA,EAEQ,SAA8E;AACrF,UAAM,QAAQ,KAAK,UAAU;AAE7B,UAAM,aAAa,KAAK,QAAQ,WAAW,MAAM,GAAU;AAE3D,WAAO,EAAE,YAAY,MAAM;AAAA,EAC5B;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,UAAU,EAAE;AAAA,EACzB;AAAA,EAEA,QAAe;AACd,WAAO,KAAK,OAAO,EAAE;AAAA,EACtB;AAAA,EAES,UAA4B;AACpC,WAAO,KAAK,QAAQ,EAAE,QAAQ;AAAA,EAC/B;AACD;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mysql-core/query-builders/select.types.ts"],"sourcesContent":["import type { MySqlColumn } from '~/mysql-core/columns/index.ts';\nimport type { MySqlTable, MySqlTableWithColumns } from '~/mysql-core/table.ts';\nimport type {\n\tSelectedFields as SelectedFieldsBase,\n\tSelectedFieldsFlat as SelectedFieldsFlatBase,\n\tSelectedFieldsOrdered as SelectedFieldsOrderedBase,\n} from '~/operations.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type {\n\tAppendToNullabilityMap,\n\tAppendToResult,\n\tBuildSubquerySelection,\n\tGetSelectTableName,\n\tJoinNullability,\n\tJoinType,\n\tMapColumnsToTableAlias,\n\tSelectMode,\n\tSelectResult,\n\tSetOperator,\n} from '~/query-builders/select.types.ts';\nimport type { ColumnsSelection, Placeholder, SQL, View } from '~/sql/sql.ts';\nimport type { Subquery } from '~/subquery.ts';\nimport type { Table, UpdateTableConfig } from '~/table.ts';\nimport type { Assume, ValidateShape } from '~/utils.ts';\nimport type { MySqlPreparedQueryConfig, PreparedQueryHKTBase, PreparedQueryKind } from '../session.ts';\nimport type { MySqlViewBase } from '../view-base.ts';\nimport type { MySqlViewWithSelection } from '../view.ts';\nimport type { IndexConfig, MySqlSelectBase, MySqlSelectQueryBuilderBase } from './select.ts';\n\nexport interface MySqlSelectJoinConfig {\n\ton: SQL | undefined;\n\ttable: MySqlTable | Subquery | MySqlViewBase | SQL;\n\talias: string | undefined;\n\tjoinType: JoinType;\n\tlateral?: boolean;\n\tuseIndex?: string[];\n\tforceIndex?: string[];\n\tignoreIndex?: string[];\n}\n\nexport type BuildAliasTable<TTable extends MySqlTable | View, TAlias extends string> = TTable extends Table\n\t? MySqlTableWithColumns<\n\t\tUpdateTableConfig<TTable['_']['config'], {\n\t\t\tname: TAlias;\n\t\t\tcolumns: MapColumnsToTableAlias<TTable['_']['columns'], TAlias, 'mysql'>;\n\t\t}>\n\t>\n\t: TTable extends View ? MySqlViewWithSelection<\n\t\t\tTAlias,\n\t\t\tTTable['_']['existing'],\n\t\t\tMapColumnsToTableAlias<TTable['_']['selectedFields'], TAlias, 'mysql'>\n\t\t>\n\t: never;\n\nexport interface MySqlSelectConfig {\n\twithList?: Subquery[];\n\tfields: Record<string, unknown>;\n\tfieldsFlat?: SelectedFieldsOrdered;\n\twhere?: SQL;\n\thaving?: SQL;\n\ttable: MySqlTable | Subquery | MySqlViewBase | SQL;\n\tlimit?: number | Placeholder;\n\toffset?: number | Placeholder;\n\tjoins?: MySqlSelectJoinConfig[];\n\torderBy?: (MySqlColumn | SQL | SQL.Aliased)[];\n\tgroupBy?: (MySqlColumn | SQL | SQL.Aliased)[];\n\tlockingClause?: {\n\t\tstrength: LockStrength;\n\t\tconfig: LockConfig;\n\t};\n\tdistinct?: boolean;\n\tsetOperators: {\n\t\trightSelect: TypedQueryBuilder<any, any>;\n\t\ttype: SetOperator;\n\t\tisAll: boolean;\n\t\torderBy?: (MySqlColumn | SQL | SQL.Aliased)[];\n\t\tlimit?: number | Placeholder;\n\t\toffset?: number | Placeholder;\n\t}[];\n\tuseIndex?: string[];\n\tforceIndex?: string[];\n\tignoreIndex?: string[];\n}\n\nexport type MySqlJoin<\n\tT extends AnyMySqlSelectQueryBuilder,\n\tTDynamic extends boolean,\n\tTJoinType extends JoinType,\n\tTJoinedTable extends MySqlTable | Subquery | MySqlViewBase | SQL,\n\tTJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>,\n> = T extends any ? MySqlSelectWithout<\n\t\tMySqlSelectKind<\n\t\t\tT['_']['hkt'],\n\t\t\tT['_']['tableName'],\n\t\t\tAppendToResult<\n\t\t\t\tT['_']['tableName'],\n\t\t\t\tT['_']['selection'],\n\t\t\t\tTJoinedName,\n\t\t\t\tTJoinedTable extends MySqlTable ? TJoinedTable['_']['columns']\n\t\t\t\t\t: TJoinedTable extends Subquery ? Assume<TJoinedTable['_']['selectedFields'], SelectedFields>\n\t\t\t\t\t: never,\n\t\t\t\tT['_']['selectMode']\n\t\t\t>,\n\t\t\tT['_']['selectMode'] extends 'partial' ? T['_']['selectMode'] : 'multiple',\n\t\t\tT['_']['preparedQueryHKT'],\n\t\t\tAppendToNullabilityMap<T['_']['nullabilityMap'], TJoinedName, TJoinType>,\n\t\t\tTDynamic,\n\t\t\tT['_']['excludedMethods']\n\t\t>,\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>\n\t: never;\n\nexport type MySqlJoinFn<\n\tT extends AnyMySqlSelectQueryBuilder,\n\tTDynamic extends boolean,\n\tTJoinType extends JoinType,\n> = <\n\tTJoinedTable extends MySqlTable | Subquery | MySqlViewBase | SQL,\n\tTJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>,\n>(\n\ttable: TJoinedTable,\n\ton: ((aliases: T['_']['selection']) => SQL | undefined) | SQL | undefined,\n\tonIndex?: TJoinedTable extends MySqlTable ? IndexConfig\n\t\t: 'Index hint configuration is allowed only for MySqlTable and not for subqueries or views',\n) => MySqlJoin<T, TDynamic, TJoinType, TJoinedTable, TJoinedName>;\n\nexport type SelectedFieldsFlat = SelectedFieldsFlatBase<MySqlColumn>;\n\nexport type SelectedFields = SelectedFieldsBase<MySqlColumn, MySqlTable>;\n\nexport type SelectedFieldsOrdered = SelectedFieldsOrderedBase<MySqlColumn>;\n\nexport type LockStrength = 'update' | 'share';\n\nexport type LockConfig = {\n\tnoWait: true;\n\tskipLocked?: undefined;\n} | {\n\tnoWait?: undefined;\n\tskipLocked: true;\n} | {\n\tnoWait?: undefined;\n\tskipLocked?: undefined;\n};\n\nexport interface MySqlSelectHKTBase {\n\ttableName: string | undefined;\n\tselection: unknown;\n\tselectMode: SelectMode;\n\tpreparedQueryHKT: unknown;\n\tnullabilityMap: unknown;\n\tdynamic: boolean;\n\texcludedMethods: string;\n\tresult: unknown;\n\tselectedFields: unknown;\n\t_type: unknown;\n}\n\nexport type MySqlSelectKind<\n\tT extends MySqlSelectHKTBase,\n\tTTableName extends string | undefined,\n\tTSelection extends ColumnsSelection,\n\tTSelectMode extends SelectMode,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTNullabilityMap extends Record<string, JoinNullability>,\n\tTDynamic extends boolean,\n\tTExcludedMethods extends string,\n\tTResult = SelectResult<TSelection, TSelectMode, TNullabilityMap>[],\n\tTSelectedFields = BuildSubquerySelection<TSelection, TNullabilityMap>,\n> = (T & {\n\ttableName: TTableName;\n\tselection: TSelection;\n\tselectMode: TSelectMode;\n\tpreparedQueryHKT: TPreparedQueryHKT;\n\tnullabilityMap: TNullabilityMap;\n\tdynamic: TDynamic;\n\texcludedMethods: TExcludedMethods;\n\tresult: TResult;\n\tselectedFields: TSelectedFields;\n})['_type'];\n\nexport interface MySqlSelectQueryBuilderHKT extends MySqlSelectHKTBase {\n\t_type: MySqlSelectQueryBuilderBase<\n\t\tMySqlSelectQueryBuilderHKT,\n\t\tthis['tableName'],\n\t\tAssume<this['selection'], ColumnsSelection>,\n\t\tthis['selectMode'],\n\t\tAssume<this['preparedQueryHKT'], PreparedQueryHKTBase>,\n\t\tAssume<this['nullabilityMap'], Record<string, JoinNullability>>,\n\t\tthis['dynamic'],\n\t\tthis['excludedMethods'],\n\t\tAssume<this['result'], any[]>,\n\t\tAssume<this['selectedFields'], ColumnsSelection>\n\t>;\n}\n\nexport interface MySqlSelectHKT extends MySqlSelectHKTBase {\n\t_type: MySqlSelectBase<\n\t\tthis['tableName'],\n\t\tAssume<this['selection'], ColumnsSelection>,\n\t\tthis['selectMode'],\n\t\tAssume<this['preparedQueryHKT'], PreparedQueryHKTBase>,\n\t\tAssume<this['nullabilityMap'], Record<string, JoinNullability>>,\n\t\tthis['dynamic'],\n\t\tthis['excludedMethods'],\n\t\tAssume<this['result'], any[]>,\n\t\tAssume<this['selectedFields'], ColumnsSelection>\n\t>;\n}\n\nexport type MySqlSetOperatorExcludedMethods =\n\t| 'where'\n\t| 'having'\n\t| 'groupBy'\n\t| 'session'\n\t| 'leftJoin'\n\t| 'rightJoin'\n\t| 'innerJoin'\n\t| 'fullJoin'\n\t| 'for';\n\nexport type MySqlSelectWithout<\n\tT extends AnyMySqlSelectQueryBuilder,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n\tTResetExcluded extends boolean = false,\n> = TDynamic extends true ? T : Omit<\n\tMySqlSelectKind<\n\t\tT['_']['hkt'],\n\t\tT['_']['tableName'],\n\t\tT['_']['selection'],\n\t\tT['_']['selectMode'],\n\t\tT['_']['preparedQueryHKT'],\n\t\tT['_']['nullabilityMap'],\n\t\tTDynamic,\n\t\tTResetExcluded extends true ? K : T['_']['excludedMethods'] | K,\n\t\tT['_']['result'],\n\t\tT['_']['selectedFields']\n\t>,\n\tTResetExcluded extends true ? K : T['_']['excludedMethods'] | K\n>;\n\nexport type MySqlSelectPrepare<T extends AnyMySqlSelect> = PreparedQueryKind<\n\tT['_']['preparedQueryHKT'],\n\tMySqlPreparedQueryConfig & {\n\t\texecute: T['_']['result'];\n\t\titerator: T['_']['result'][number];\n\t},\n\ttrue\n>;\n\nexport type MySqlSelectDynamic<T extends AnyMySqlSelectQueryBuilder> = MySqlSelectKind<\n\tT['_']['hkt'],\n\tT['_']['tableName'],\n\tT['_']['selection'],\n\tT['_']['selectMode'],\n\tT['_']['preparedQueryHKT'],\n\tT['_']['nullabilityMap'],\n\ttrue,\n\tnever,\n\tT['_']['result'],\n\tT['_']['selectedFields']\n>;\n\nexport type CreateMySqlSelectFromBuilderMode<\n\tTBuilderMode extends 'db' | 'qb',\n\tTTableName extends string | undefined,\n\tTSelection extends ColumnsSelection,\n\tTSelectMode extends SelectMode,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n> = TBuilderMode extends 'db' ? MySqlSelectBase<TTableName, TSelection, TSelectMode, TPreparedQueryHKT>\n\t: MySqlSelectQueryBuilderBase<MySqlSelectQueryBuilderHKT, TTableName, TSelection, TSelectMode, TPreparedQueryHKT>;\n\nexport type MySqlSelectQueryBuilder<\n\tTHKT extends MySqlSelectHKTBase = MySqlSelectQueryBuilderHKT,\n\tTTableName extends string | undefined = string | undefined,\n\tTSelection extends ColumnsSelection = ColumnsSelection,\n\tTSelectMode extends SelectMode = SelectMode,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n\tTNullabilityMap extends Record<string, JoinNullability> = Record<string, JoinNullability>,\n\tTResult extends any[] = unknown[],\n\tTSelectedFields extends ColumnsSelection = ColumnsSelection,\n> = MySqlSelectQueryBuilderBase<\n\tTHKT,\n\tTTableName,\n\tTSelection,\n\tTSelectMode,\n\tTPreparedQueryHKT,\n\tTNullabilityMap,\n\ttrue,\n\tnever,\n\tTResult,\n\tTSelectedFields\n>;\n\nexport type AnyMySqlSelectQueryBuilder = MySqlSelectQueryBuilderBase<any, any, any, any, any, any, any, any, any>;\n\nexport type AnyMySqlSetOperatorInterface = MySqlSetOperatorInterface<any, any, any, any, any, any, any, any, any>;\n\nexport interface MySqlSetOperatorInterface<\n\tTTableName extends string | undefined,\n\tTSelection extends ColumnsSelection,\n\tTSelectMode extends SelectMode,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n\tTNullabilityMap extends Record<string, JoinNullability> = TTableName extends string ? Record<TTableName, 'not-null'>\n\t\t: {},\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n\tTResult extends any[] = SelectResult<TSelection, TSelectMode, TNullabilityMap>[],\n\tTSelectedFields extends ColumnsSelection = BuildSubquerySelection<TSelection, TNullabilityMap>,\n> {\n\t_: {\n\t\treadonly hkt: MySqlSelectHKT;\n\t\treadonly tableName: TTableName;\n\t\treadonly selection: TSelection;\n\t\treadonly selectMode: TSelectMode;\n\t\treadonly preparedQueryHKT: TPreparedQueryHKT;\n\t\treadonly nullabilityMap: TNullabilityMap;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t\treadonly result: TResult;\n\t\treadonly selectedFields: TSelectedFields;\n\t};\n}\n\nexport type MySqlSetOperatorWithResult<TResult extends any[]> = MySqlSetOperatorInterface<\n\tany,\n\tany,\n\tany,\n\tany,\n\tany,\n\tany,\n\tany,\n\tTResult,\n\tany\n>;\n\nexport type MySqlSelect<\n\tTTableName extends string | undefined = string | undefined,\n\tTSelection extends ColumnsSelection = Record<string, any>,\n\tTSelectMode extends SelectMode = SelectMode,\n\tTNullabilityMap extends Record<string, JoinNullability> = Record<string, JoinNullability>,\n> = MySqlSelectBase<TTableName, TSelection, TSelectMode, PreparedQueryHKTBase, TNullabilityMap, true, never>;\n\nexport type AnyMySqlSelect = MySqlSelectBase<any, any, any, any, any, any, any, any>;\n\nexport type MySqlSetOperator<\n\tTTableName extends string | undefined = string | undefined,\n\tTSelection extends ColumnsSelection = Record<string, any>,\n\tTSelectMode extends SelectMode = SelectMode,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n\tTNullabilityMap extends Record<string, JoinNullability> = Record<string, JoinNullability>,\n> = MySqlSelectBase<\n\tTTableName,\n\tTSelection,\n\tTSelectMode,\n\tTPreparedQueryHKT,\n\tTNullabilityMap,\n\ttrue,\n\tMySqlSetOperatorExcludedMethods\n>;\n\nexport type SetOperatorRightSelect<\n\tTValue extends MySqlSetOperatorWithResult<TResult>,\n\tTResult extends any[],\n> = TValue extends MySqlSetOperatorInterface<any, any, any, any, any, any, any, infer TValueResult, any>\n\t? ValidateShape<\n\t\tTValueResult[number],\n\t\tTResult[number],\n\t\tTypedQueryBuilder<any, TValueResult>\n\t>\n\t: TValue;\n\nexport type SetOperatorRestSelect<\n\tTValue extends readonly MySqlSetOperatorWithResult<TResult>[],\n\tTResult extends any[],\n> = TValue extends [infer First, ...infer Rest]\n\t? First extends MySqlSetOperatorInterface<any, any, any, any, any, any, any, infer TValueResult, any>\n\t\t? Rest extends AnyMySqlSetOperatorInterface[] ? [\n\t\t\t\tValidateShape<TValueResult[number], TResult[number], TypedQueryBuilder<any, TValueResult>>,\n\t\t\t\t...SetOperatorRestSelect<Rest, TResult>,\n\t\t\t]\n\t\t: ValidateShape<TValueResult[number], TResult[number], TypedQueryBuilder<any, TValueResult>[]>\n\t: never\n\t: TValue;\n\nexport type MySqlCreateSetOperatorFn = <\n\tTTableName extends string | undefined,\n\tTSelection extends ColumnsSelection,\n\tTSelectMode extends SelectMode,\n\tTValue extends MySqlSetOperatorWithResult<TResult>,\n\tTRest extends MySqlSetOperatorWithResult<TResult>[],\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n\tTNullabilityMap extends Record<string, JoinNullability> = TTableName extends string ? Record<TTableName, 'not-null'>\n\t\t: {},\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n\tTResult extends any[] = SelectResult<TSelection, TSelectMode, TNullabilityMap>[],\n\tTSelectedFields extends ColumnsSelection = BuildSubquerySelection<TSelection, TNullabilityMap>,\n>(\n\tleftSelect: MySqlSetOperatorInterface<\n\t\tTTableName,\n\t\tTSelection,\n\t\tTSelectMode,\n\t\tTPreparedQueryHKT,\n\t\tTNullabilityMap,\n\t\tTDynamic,\n\t\tTExcludedMethods,\n\t\tTResult,\n\t\tTSelectedFields\n\t>,\n\trightSelect: SetOperatorRightSelect<TValue, TResult>,\n\t...restSelects: SetOperatorRestSelect<TRest, TResult>\n) => MySqlSelectWithout<\n\tMySqlSelectBase<\n\t\tTTableName,\n\t\tTSelection,\n\t\tTSelectMode,\n\t\tTPreparedQueryHKT,\n\t\tTNullabilityMap,\n\t\tTDynamic,\n\t\tTExcludedMethods,\n\t\tTResult,\n\t\tTSelectedFields\n\t>,\n\tfalse,\n\tMySqlSetOperatorExcludedMethods,\n\ttrue\n>;\n\nexport type GetMySqlSetOperators = {\n\tunion: MySqlCreateSetOperatorFn;\n\tintersect: MySqlCreateSetOperatorFn;\n\texcept: MySqlCreateSetOperatorFn;\n\tunionAll: MySqlCreateSetOperatorFn;\n\tintersectAll: MySqlCreateSetOperatorFn;\n\texceptAll: MySqlCreateSetOperatorFn;\n};\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../../src/mysql-core/query-builders/select.types.ts"],"sourcesContent":["import type { MySqlColumn } from '~/mysql-core/columns/index.ts';\nimport type { MySqlTable, MySqlTableWithColumns } from '~/mysql-core/table.ts';\nimport type {\n\tSelectedFields as SelectedFieldsBase,\n\tSelectedFieldsFlat as SelectedFieldsFlatBase,\n\tSelectedFieldsOrdered as SelectedFieldsOrderedBase,\n} from '~/operations.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type {\n\tAppendToNullabilityMap,\n\tAppendToResult,\n\tBuildSubquerySelection,\n\tGetSelectTableName,\n\tJoinNullability,\n\tJoinType,\n\tMapColumnsToTableAlias,\n\tSelectMode,\n\tSelectResult,\n\tSetOperator,\n} from '~/query-builders/select.types.ts';\nimport type { ColumnsSelection, Placeholder, SQL, View } from '~/sql/sql.ts';\nimport type { Subquery } from '~/subquery.ts';\nimport type { Table, UpdateTableConfig } from '~/table.ts';\nimport type { Assume, ValidateShape } from '~/utils.ts';\nimport type { MySqlPreparedQueryConfig, PreparedQueryHKTBase, PreparedQueryKind } from '../session.ts';\nimport type { MySqlViewBase } from '../view-base.ts';\nimport type { MySqlViewWithSelection } from '../view.ts';\nimport type { IndexConfig, MySqlSelectBase, MySqlSelectQueryBuilderBase } from './select.ts';\n\nexport interface MySqlSelectJoinConfig {\n\ton: SQL | undefined;\n\ttable: MySqlTable | Subquery | MySqlViewBase | SQL;\n\talias: string | undefined;\n\tjoinType: JoinType;\n\tlateral?: boolean;\n\tuseIndex?: string[];\n\tforceIndex?: string[];\n\tignoreIndex?: string[];\n}\n\nexport type BuildAliasTable<TTable extends MySqlTable | View, TAlias extends string> = TTable extends Table\n\t? MySqlTableWithColumns<\n\t\tUpdateTableConfig<TTable['_']['config'], {\n\t\t\tname: TAlias;\n\t\t\tcolumns: MapColumnsToTableAlias<TTable['_']['columns'], TAlias, 'mysql'>;\n\t\t}>\n\t>\n\t: TTable extends View ? MySqlViewWithSelection<\n\t\t\tTAlias,\n\t\t\tTTable['_']['existing'],\n\t\t\tMapColumnsToTableAlias<TTable['_']['selectedFields'], TAlias, 'mysql'>\n\t\t>\n\t: never;\n\nexport interface MySqlSelectConfig {\n\twithList?: Subquery[];\n\tfields: Record<string, unknown>;\n\tfieldsFlat?: SelectedFieldsOrdered;\n\twhere?: SQL;\n\thaving?: SQL;\n\ttable: MySqlTable | Subquery | MySqlViewBase | SQL;\n\tlimit?: number | Placeholder;\n\toffset?: number | Placeholder;\n\tjoins?: MySqlSelectJoinConfig[];\n\torderBy?: (MySqlColumn | SQL | SQL.Aliased)[];\n\tgroupBy?: (MySqlColumn | SQL | SQL.Aliased)[];\n\tlockingClause?: {\n\t\tstrength: LockStrength;\n\t\tconfig: LockConfig;\n\t};\n\tdistinct?: boolean;\n\tsetOperators: {\n\t\trightSelect: TypedQueryBuilder<any, any>;\n\t\ttype: SetOperator;\n\t\tisAll: boolean;\n\t\torderBy?: (MySqlColumn | SQL | SQL.Aliased)[];\n\t\tlimit?: number | Placeholder;\n\t\toffset?: number | Placeholder;\n\t}[];\n\tuseIndex?: string[];\n\tforceIndex?: string[];\n\tignoreIndex?: string[];\n}\n\nexport type MySqlJoin<\n\tT extends AnyMySqlSelectQueryBuilder,\n\tTDynamic extends boolean,\n\tTJoinType extends JoinType,\n\tTJoinedTable extends MySqlTable | Subquery | MySqlViewBase | SQL,\n\tTJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>,\n> = T extends any ? MySqlSelectWithout<\n\t\tMySqlSelectKind<\n\t\t\tT['_']['hkt'],\n\t\t\tT['_']['tableName'],\n\t\t\tAppendToResult<\n\t\t\t\tT['_']['tableName'],\n\t\t\t\tT['_']['selection'],\n\t\t\t\tTJoinedName,\n\t\t\t\tTJoinedTable extends MySqlTable ? TJoinedTable['_']['columns']\n\t\t\t\t\t: TJoinedTable extends Subquery | View ? Assume<TJoinedTable['_']['selectedFields'], SelectedFields>\n\t\t\t\t\t: never,\n\t\t\t\tT['_']['selectMode']\n\t\t\t>,\n\t\t\tT['_']['selectMode'] extends 'partial' ? T['_']['selectMode'] : 'multiple',\n\t\t\tT['_']['preparedQueryHKT'],\n\t\t\tAppendToNullabilityMap<T['_']['nullabilityMap'], TJoinedName, TJoinType>,\n\t\t\tTDynamic,\n\t\t\tT['_']['excludedMethods']\n\t\t>,\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>\n\t: never;\n\nexport type MySqlJoinFn<\n\tT extends AnyMySqlSelectQueryBuilder,\n\tTDynamic extends boolean,\n\tTJoinType extends JoinType,\n> = <\n\tTJoinedTable extends MySqlTable | Subquery | MySqlViewBase | SQL,\n\tTJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>,\n>(\n\ttable: TJoinedTable,\n\ton: ((aliases: T['_']['selection']) => SQL | undefined) | SQL | undefined,\n\tonIndex?: TJoinedTable extends MySqlTable ? IndexConfig\n\t\t: 'Index hint configuration is allowed only for MySqlTable and not for subqueries or views',\n) => MySqlJoin<T, TDynamic, TJoinType, TJoinedTable, TJoinedName>;\n\nexport type SelectedFieldsFlat = SelectedFieldsFlatBase<MySqlColumn>;\n\nexport type SelectedFields = SelectedFieldsBase<MySqlColumn, MySqlTable>;\n\nexport type SelectedFieldsOrdered = SelectedFieldsOrderedBase<MySqlColumn>;\n\nexport type LockStrength = 'update' | 'share';\n\nexport type LockConfig = {\n\tnoWait: true;\n\tskipLocked?: undefined;\n} | {\n\tnoWait?: undefined;\n\tskipLocked: true;\n} | {\n\tnoWait?: undefined;\n\tskipLocked?: undefined;\n};\n\nexport interface MySqlSelectHKTBase {\n\ttableName: string | undefined;\n\tselection: unknown;\n\tselectMode: SelectMode;\n\tpreparedQueryHKT: unknown;\n\tnullabilityMap: unknown;\n\tdynamic: boolean;\n\texcludedMethods: string;\n\tresult: unknown;\n\tselectedFields: unknown;\n\t_type: unknown;\n}\n\nexport type MySqlSelectKind<\n\tT extends MySqlSelectHKTBase,\n\tTTableName extends string | undefined,\n\tTSelection extends ColumnsSelection,\n\tTSelectMode extends SelectMode,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTNullabilityMap extends Record<string, JoinNullability>,\n\tTDynamic extends boolean,\n\tTExcludedMethods extends string,\n\tTResult = SelectResult<TSelection, TSelectMode, TNullabilityMap>[],\n\tTSelectedFields = BuildSubquerySelection<TSelection, TNullabilityMap>,\n> = (T & {\n\ttableName: TTableName;\n\tselection: TSelection;\n\tselectMode: TSelectMode;\n\tpreparedQueryHKT: TPreparedQueryHKT;\n\tnullabilityMap: TNullabilityMap;\n\tdynamic: TDynamic;\n\texcludedMethods: TExcludedMethods;\n\tresult: TResult;\n\tselectedFields: TSelectedFields;\n})['_type'];\n\nexport interface MySqlSelectQueryBuilderHKT extends MySqlSelectHKTBase {\n\t_type: MySqlSelectQueryBuilderBase<\n\t\tMySqlSelectQueryBuilderHKT,\n\t\tthis['tableName'],\n\t\tAssume<this['selection'], ColumnsSelection>,\n\t\tthis['selectMode'],\n\t\tAssume<this['preparedQueryHKT'], PreparedQueryHKTBase>,\n\t\tAssume<this['nullabilityMap'], Record<string, JoinNullability>>,\n\t\tthis['dynamic'],\n\t\tthis['excludedMethods'],\n\t\tAssume<this['result'], any[]>,\n\t\tAssume<this['selectedFields'], ColumnsSelection>\n\t>;\n}\n\nexport interface MySqlSelectHKT extends MySqlSelectHKTBase {\n\t_type: MySqlSelectBase<\n\t\tthis['tableName'],\n\t\tAssume<this['selection'], ColumnsSelection>,\n\t\tthis['selectMode'],\n\t\tAssume<this['preparedQueryHKT'], PreparedQueryHKTBase>,\n\t\tAssume<this['nullabilityMap'], Record<string, JoinNullability>>,\n\t\tthis['dynamic'],\n\t\tthis['excludedMethods'],\n\t\tAssume<this['result'], any[]>,\n\t\tAssume<this['selectedFields'], ColumnsSelection>\n\t>;\n}\n\nexport type MySqlSetOperatorExcludedMethods =\n\t| 'where'\n\t| 'having'\n\t| 'groupBy'\n\t| 'session'\n\t| 'leftJoin'\n\t| 'rightJoin'\n\t| 'innerJoin'\n\t| 'fullJoin'\n\t| 'for';\n\nexport type MySqlSelectWithout<\n\tT extends AnyMySqlSelectQueryBuilder,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n\tTResetExcluded extends boolean = false,\n> = TDynamic extends true ? T : Omit<\n\tMySqlSelectKind<\n\t\tT['_']['hkt'],\n\t\tT['_']['tableName'],\n\t\tT['_']['selection'],\n\t\tT['_']['selectMode'],\n\t\tT['_']['preparedQueryHKT'],\n\t\tT['_']['nullabilityMap'],\n\t\tTDynamic,\n\t\tTResetExcluded extends true ? K : T['_']['excludedMethods'] | K,\n\t\tT['_']['result'],\n\t\tT['_']['selectedFields']\n\t>,\n\tTResetExcluded extends true ? K : T['_']['excludedMethods'] | K\n>;\n\nexport type MySqlSelectPrepare<T extends AnyMySqlSelect> = PreparedQueryKind<\n\tT['_']['preparedQueryHKT'],\n\tMySqlPreparedQueryConfig & {\n\t\texecute: T['_']['result'];\n\t\titerator: T['_']['result'][number];\n\t},\n\ttrue\n>;\n\nexport type MySqlSelectDynamic<T extends AnyMySqlSelectQueryBuilder> = MySqlSelectKind<\n\tT['_']['hkt'],\n\tT['_']['tableName'],\n\tT['_']['selection'],\n\tT['_']['selectMode'],\n\tT['_']['preparedQueryHKT'],\n\tT['_']['nullabilityMap'],\n\ttrue,\n\tnever,\n\tT['_']['result'],\n\tT['_']['selectedFields']\n>;\n\nexport type CreateMySqlSelectFromBuilderMode<\n\tTBuilderMode extends 'db' | 'qb',\n\tTTableName extends string | undefined,\n\tTSelection extends ColumnsSelection,\n\tTSelectMode extends SelectMode,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n> = TBuilderMode extends 'db' ? MySqlSelectBase<TTableName, TSelection, TSelectMode, TPreparedQueryHKT>\n\t: MySqlSelectQueryBuilderBase<MySqlSelectQueryBuilderHKT, TTableName, TSelection, TSelectMode, TPreparedQueryHKT>;\n\nexport type MySqlSelectQueryBuilder<\n\tTHKT extends MySqlSelectHKTBase = MySqlSelectQueryBuilderHKT,\n\tTTableName extends string | undefined = string | undefined,\n\tTSelection extends ColumnsSelection = ColumnsSelection,\n\tTSelectMode extends SelectMode = SelectMode,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n\tTNullabilityMap extends Record<string, JoinNullability> = Record<string, JoinNullability>,\n\tTResult extends any[] = unknown[],\n\tTSelectedFields extends ColumnsSelection = ColumnsSelection,\n> = MySqlSelectQueryBuilderBase<\n\tTHKT,\n\tTTableName,\n\tTSelection,\n\tTSelectMode,\n\tTPreparedQueryHKT,\n\tTNullabilityMap,\n\ttrue,\n\tnever,\n\tTResult,\n\tTSelectedFields\n>;\n\nexport type AnyMySqlSelectQueryBuilder = MySqlSelectQueryBuilderBase<any, any, any, any, any, any, any, any, any>;\n\nexport type AnyMySqlSetOperatorInterface = MySqlSetOperatorInterface<any, any, any, any, any, any, any, any, any>;\n\nexport interface MySqlSetOperatorInterface<\n\tTTableName extends string | undefined,\n\tTSelection extends ColumnsSelection,\n\tTSelectMode extends SelectMode,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n\tTNullabilityMap extends Record<string, JoinNullability> = TTableName extends string ? Record<TTableName, 'not-null'>\n\t\t: {},\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n\tTResult extends any[] = SelectResult<TSelection, TSelectMode, TNullabilityMap>[],\n\tTSelectedFields extends ColumnsSelection = BuildSubquerySelection<TSelection, TNullabilityMap>,\n> {\n\t_: {\n\t\treadonly hkt: MySqlSelectHKT;\n\t\treadonly tableName: TTableName;\n\t\treadonly selection: TSelection;\n\t\treadonly selectMode: TSelectMode;\n\t\treadonly preparedQueryHKT: TPreparedQueryHKT;\n\t\treadonly nullabilityMap: TNullabilityMap;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t\treadonly result: TResult;\n\t\treadonly selectedFields: TSelectedFields;\n\t};\n}\n\nexport type MySqlSetOperatorWithResult<TResult extends any[]> = MySqlSetOperatorInterface<\n\tany,\n\tany,\n\tany,\n\tany,\n\tany,\n\tany,\n\tany,\n\tTResult,\n\tany\n>;\n\nexport type MySqlSelect<\n\tTTableName extends string | undefined = string | undefined,\n\tTSelection extends ColumnsSelection = Record<string, any>,\n\tTSelectMode extends SelectMode = SelectMode,\n\tTNullabilityMap extends Record<string, JoinNullability> = Record<string, JoinNullability>,\n> = MySqlSelectBase<TTableName, TSelection, TSelectMode, PreparedQueryHKTBase, TNullabilityMap, true, never>;\n\nexport type AnyMySqlSelect = MySqlSelectBase<any, any, any, any, any, any, any, any>;\n\nexport type MySqlSetOperator<\n\tTTableName extends string | undefined = string | undefined,\n\tTSelection extends ColumnsSelection = Record<string, any>,\n\tTSelectMode extends SelectMode = SelectMode,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n\tTNullabilityMap extends Record<string, JoinNullability> = Record<string, JoinNullability>,\n> = MySqlSelectBase<\n\tTTableName,\n\tTSelection,\n\tTSelectMode,\n\tTPreparedQueryHKT,\n\tTNullabilityMap,\n\ttrue,\n\tMySqlSetOperatorExcludedMethods\n>;\n\nexport type SetOperatorRightSelect<\n\tTValue extends MySqlSetOperatorWithResult<TResult>,\n\tTResult extends any[],\n> = TValue extends MySqlSetOperatorInterface<any, any, any, any, any, any, any, infer TValueResult, any>\n\t? ValidateShape<\n\t\tTValueResult[number],\n\t\tTResult[number],\n\t\tTypedQueryBuilder<any, TValueResult>\n\t>\n\t: TValue;\n\nexport type SetOperatorRestSelect<\n\tTValue extends readonly MySqlSetOperatorWithResult<TResult>[],\n\tTResult extends any[],\n> = TValue extends [infer First, ...infer Rest]\n\t? First extends MySqlSetOperatorInterface<any, any, any, any, any, any, any, infer TValueResult, any>\n\t\t? Rest extends AnyMySqlSetOperatorInterface[] ? [\n\t\t\t\tValidateShape<TValueResult[number], TResult[number], TypedQueryBuilder<any, TValueResult>>,\n\t\t\t\t...SetOperatorRestSelect<Rest, TResult>,\n\t\t\t]\n\t\t: ValidateShape<TValueResult[number], TResult[number], TypedQueryBuilder<any, TValueResult>[]>\n\t: never\n\t: TValue;\n\nexport type MySqlCreateSetOperatorFn = <\n\tTTableName extends string | undefined,\n\tTSelection extends ColumnsSelection,\n\tTSelectMode extends SelectMode,\n\tTValue extends MySqlSetOperatorWithResult<TResult>,\n\tTRest extends MySqlSetOperatorWithResult<TResult>[],\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n\tTNullabilityMap extends Record<string, JoinNullability> = TTableName extends string ? Record<TTableName, 'not-null'>\n\t\t: {},\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n\tTResult extends any[] = SelectResult<TSelection, TSelectMode, TNullabilityMap>[],\n\tTSelectedFields extends ColumnsSelection = BuildSubquerySelection<TSelection, TNullabilityMap>,\n>(\n\tleftSelect: MySqlSetOperatorInterface<\n\t\tTTableName,\n\t\tTSelection,\n\t\tTSelectMode,\n\t\tTPreparedQueryHKT,\n\t\tTNullabilityMap,\n\t\tTDynamic,\n\t\tTExcludedMethods,\n\t\tTResult,\n\t\tTSelectedFields\n\t>,\n\trightSelect: SetOperatorRightSelect<TValue, TResult>,\n\t...restSelects: SetOperatorRestSelect<TRest, TResult>\n) => MySqlSelectWithout<\n\tMySqlSelectBase<\n\t\tTTableName,\n\t\tTSelection,\n\t\tTSelectMode,\n\t\tTPreparedQueryHKT,\n\t\tTNullabilityMap,\n\t\tTDynamic,\n\t\tTExcludedMethods,\n\t\tTResult,\n\t\tTSelectedFields\n\t>,\n\tfalse,\n\tMySqlSetOperatorExcludedMethods,\n\ttrue\n>;\n\nexport type GetMySqlSetOperators = {\n\tunion: MySqlCreateSetOperatorFn;\n\tintersect: MySqlCreateSetOperatorFn;\n\texcept: MySqlCreateSetOperatorFn;\n\tunionAll: MySqlCreateSetOperatorFn;\n\tintersectAll: MySqlCreateSetOperatorFn;\n\texceptAll: MySqlCreateSetOperatorFn;\n};\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -54,7 +54,7 @@ export interface MySqlSelectConfig {
54
54
  forceIndex?: string[];
55
55
  ignoreIndex?: string[];
56
56
  }
57
- export type MySqlJoin<T extends AnyMySqlSelectQueryBuilder, TDynamic extends boolean, TJoinType extends JoinType, TJoinedTable extends MySqlTable | Subquery | MySqlViewBase | SQL, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>> = T extends any ? MySqlSelectWithout<MySqlSelectKind<T['_']['hkt'], T['_']['tableName'], AppendToResult<T['_']['tableName'], T['_']['selection'], TJoinedName, TJoinedTable extends MySqlTable ? TJoinedTable['_']['columns'] : TJoinedTable extends Subquery ? Assume<TJoinedTable['_']['selectedFields'], SelectedFields> : never, T['_']['selectMode']>, T['_']['selectMode'] extends 'partial' ? T['_']['selectMode'] : 'multiple', T['_']['preparedQueryHKT'], AppendToNullabilityMap<T['_']['nullabilityMap'], TJoinedName, TJoinType>, TDynamic, T['_']['excludedMethods']>, TDynamic, T['_']['excludedMethods']> : never;
57
+ export type MySqlJoin<T extends AnyMySqlSelectQueryBuilder, TDynamic extends boolean, TJoinType extends JoinType, TJoinedTable extends MySqlTable | Subquery | MySqlViewBase | SQL, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>> = T extends any ? MySqlSelectWithout<MySqlSelectKind<T['_']['hkt'], T['_']['tableName'], AppendToResult<T['_']['tableName'], T['_']['selection'], TJoinedName, TJoinedTable extends MySqlTable ? TJoinedTable['_']['columns'] : TJoinedTable extends Subquery | View ? Assume<TJoinedTable['_']['selectedFields'], SelectedFields> : never, T['_']['selectMode']>, T['_']['selectMode'] extends 'partial' ? T['_']['selectMode'] : 'multiple', T['_']['preparedQueryHKT'], AppendToNullabilityMap<T['_']['nullabilityMap'], TJoinedName, TJoinType>, TDynamic, T['_']['excludedMethods']>, TDynamic, T['_']['excludedMethods']> : never;
58
58
  export type MySqlJoinFn<T extends AnyMySqlSelectQueryBuilder, TDynamic extends boolean, TJoinType extends JoinType> = <TJoinedTable extends MySqlTable | Subquery | MySqlViewBase | SQL, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable, on: ((aliases: T['_']['selection']) => SQL | undefined) | SQL | undefined, onIndex?: TJoinedTable extends MySqlTable ? IndexConfig : 'Index hint configuration is allowed only for MySqlTable and not for subqueries or views') => MySqlJoin<T, TDynamic, TJoinType, TJoinedTable, TJoinedName>;
59
59
  export type SelectedFieldsFlat = SelectedFieldsFlatBase<MySqlColumn>;
60
60
  export type SelectedFields = SelectedFieldsBase<MySqlColumn, MySqlTable>;
@@ -54,7 +54,7 @@ export interface MySqlSelectConfig {
54
54
  forceIndex?: string[];
55
55
  ignoreIndex?: string[];
56
56
  }
57
- export type MySqlJoin<T extends AnyMySqlSelectQueryBuilder, TDynamic extends boolean, TJoinType extends JoinType, TJoinedTable extends MySqlTable | Subquery | MySqlViewBase | SQL, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>> = T extends any ? MySqlSelectWithout<MySqlSelectKind<T['_']['hkt'], T['_']['tableName'], AppendToResult<T['_']['tableName'], T['_']['selection'], TJoinedName, TJoinedTable extends MySqlTable ? TJoinedTable['_']['columns'] : TJoinedTable extends Subquery ? Assume<TJoinedTable['_']['selectedFields'], SelectedFields> : never, T['_']['selectMode']>, T['_']['selectMode'] extends 'partial' ? T['_']['selectMode'] : 'multiple', T['_']['preparedQueryHKT'], AppendToNullabilityMap<T['_']['nullabilityMap'], TJoinedName, TJoinType>, TDynamic, T['_']['excludedMethods']>, TDynamic, T['_']['excludedMethods']> : never;
57
+ export type MySqlJoin<T extends AnyMySqlSelectQueryBuilder, TDynamic extends boolean, TJoinType extends JoinType, TJoinedTable extends MySqlTable | Subquery | MySqlViewBase | SQL, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>> = T extends any ? MySqlSelectWithout<MySqlSelectKind<T['_']['hkt'], T['_']['tableName'], AppendToResult<T['_']['tableName'], T['_']['selection'], TJoinedName, TJoinedTable extends MySqlTable ? TJoinedTable['_']['columns'] : TJoinedTable extends Subquery | View ? Assume<TJoinedTable['_']['selectedFields'], SelectedFields> : never, T['_']['selectMode']>, T['_']['selectMode'] extends 'partial' ? T['_']['selectMode'] : 'multiple', T['_']['preparedQueryHKT'], AppendToNullabilityMap<T['_']['nullabilityMap'], TJoinedName, TJoinType>, TDynamic, T['_']['excludedMethods']>, TDynamic, T['_']['excludedMethods']> : never;
58
58
  export type MySqlJoinFn<T extends AnyMySqlSelectQueryBuilder, TDynamic extends boolean, TJoinType extends JoinType> = <TJoinedTable extends MySqlTable | Subquery | MySqlViewBase | SQL, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable, on: ((aliases: T['_']['selection']) => SQL | undefined) | SQL | undefined, onIndex?: TJoinedTable extends MySqlTable ? IndexConfig : 'Index hint configuration is allowed only for MySqlTable and not for subqueries or views') => MySqlJoin<T, TDynamic, TJoinType, TJoinedTable, TJoinedName>;
59
59
  export type SelectedFieldsFlat = SelectedFieldsFlatBase<MySqlColumn>;
60
60
  export type SelectedFields = SelectedFieldsBase<MySqlColumn, MySqlTable>;
@@ -68,9 +68,8 @@ class MySqlSession {
68
68
  }
69
69
  }
70
70
  class MySqlTransaction extends import_db.MySqlDatabase {
71
- constructor(dialect, session, relations, schema, nestedIndex, mode) {
72
- super(dialect, session, relations, schema, mode);
73
- this.relations = relations;
71
+ constructor(dialect, session, schema, nestedIndex, mode) {
72
+ super(dialect, session, schema, mode);
74
73
  this.schema = schema;
75
74
  this.nestedIndex = nestedIndex;
76
75
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mysql-core/session.ts"],"sourcesContent":["import type * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { TransactionRollbackError } from '~/errors.ts';\nimport type { AnyRelations, EmptyRelations, ExtractTablesWithRelations, TablesRelationalConfig } from '~/relations.ts';\nimport { type Query, type SQL, sql } from '~/sql/sql.ts';\nimport type { Assume, Equal } from '~/utils.ts';\nimport { MySqlDatabase } from './db.ts';\nimport type { MySqlDialect } from './dialect.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport type Mode = 'default' | 'planetscale';\n\nexport interface MySqlQueryResultHKT {\n\treadonly $brand: 'MySqlQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n\nexport interface AnyMySqlQueryResultHKT extends MySqlQueryResultHKT {\n\treadonly type: any;\n}\n\nexport type MySqlQueryResultKind<TKind extends MySqlQueryResultHKT, TRow> = (TKind & {\n\treadonly row: TRow;\n})['type'];\n\nexport interface MySqlPreparedQueryConfig {\n\texecute: unknown;\n\titerator: unknown;\n}\n\nexport interface MySqlPreparedQueryHKT {\n\treadonly $brand: 'MySqlPreparedQueryHKT';\n\treadonly config: unknown;\n\treadonly type: unknown;\n}\n\nexport type PreparedQueryKind<\n\tTKind extends MySqlPreparedQueryHKT,\n\tTConfig extends MySqlPreparedQueryConfig,\n\tTAssume extends boolean = false,\n> = Equal<TAssume, true> extends true\n\t? Assume<(TKind & { readonly config: TConfig })['type'], MySqlPreparedQuery<TConfig>>\n\t: (TKind & { readonly config: TConfig })['type'];\n\nexport abstract class MySqlPreparedQuery<T extends MySqlPreparedQueryConfig> {\n\tstatic readonly [entityKind]: string = 'MySqlPreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tabstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;\n\n\tabstract iterator(placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']>;\n}\n\nexport interface MySqlTransactionConfig {\n\twithConsistentSnapshot?: boolean;\n\taccessMode?: 'read only' | 'read write';\n\tisolationLevel: 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable';\n}\n\nexport abstract class MySqlSession<\n\tTQueryResult extends MySqlQueryResultHKT = MySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTTablesConfig extends TablesRelationalConfig = ExtractTablesWithRelations<TRelations>,\n\tTSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>,\n> {\n\tstatic readonly [entityKind]: string = 'MySqlSession';\n\n\tconstructor(protected dialect: MySqlDialect) {}\n\n\tabstract prepareQuery<T extends MySqlPreparedQueryConfig, TPreparedQueryHKT extends MySqlPreparedQueryHKT>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): PreparedQueryKind<TPreparedQueryHKT, T>;\n\n\tabstract prepareRelationalQuery<T extends MySqlPreparedQueryConfig, TPreparedQueryHKT extends MySqlPreparedQueryHKT>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): PreparedQueryKind<TPreparedQueryHKT, T>;\n\n\texecute<T>(query: SQL): Promise<T> {\n\t\treturn this.prepareQuery<MySqlPreparedQueryConfig & { execute: T }, PreparedQueryHKTBase>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t).execute();\n\t}\n\n\tabstract all<T = unknown>(query: SQL): Promise<T[]>;\n\n\tasync count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<[[{ count: string }]]>(sql);\n\n\t\treturn Number(\n\t\t\tres[0][0]['count'],\n\t\t);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (\n\t\t\ttx: MySqlTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TRelations, TTablesConfig, TSchema>,\n\t\t) => Promise<T>,\n\t\tconfig?: MySqlTransactionConfig,\n\t): Promise<T>;\n\n\tprotected getSetTransactionSQL(config: MySqlTransactionConfig): SQL | undefined {\n\t\tconst parts: string[] = [];\n\n\t\tif (config.isolationLevel) {\n\t\t\tparts.push(`isolation level ${config.isolationLevel}`);\n\t\t}\n\n\t\treturn parts.length ? sql`set transaction ${sql.raw(parts.join(' '))}` : undefined;\n\t}\n\n\tprotected getStartTransactionSQL(config: MySqlTransactionConfig): SQL | undefined {\n\t\tconst parts: string[] = [];\n\n\t\tif (config.withConsistentSnapshot) {\n\t\t\tparts.push('with consistent snapshot');\n\t\t}\n\n\t\tif (config.accessMode) {\n\t\t\tparts.push(config.accessMode);\n\t\t}\n\n\t\treturn parts.length ? sql`start transaction ${sql.raw(parts.join(' '))}` : undefined;\n\t}\n}\n\nexport abstract class MySqlTransaction<\n\tTQueryResult extends MySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTTablesConfig extends TablesRelationalConfig = ExtractTablesWithRelations<TRelations>,\n\tTSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>,\n> extends MySqlDatabase<TQueryResult, TPreparedQueryHKT, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'MySqlTransaction';\n\n\tconstructor(\n\t\tdialect: MySqlDialect,\n\t\tsession: MySqlSession,\n\t\tprotected relations: AnyRelations | undefined,\n\t\tprotected schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprotected readonly nestedIndex: number,\n\t\tmode: Mode,\n\t) {\n\t\tsuper(dialect, session, relations, schema, mode);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n\n\t/** Nested transactions (aka savepoints) only work with InnoDB engine. */\n\tabstract override transaction<T>(\n\t\ttransaction: (\n\t\t\ttx: MySqlTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TRelations, TTablesConfig, TSchema>,\n\t\t) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport interface PreparedQueryHKTBase extends MySqlPreparedQueryHKT {\n\ttype: MySqlPreparedQuery<Assume<this['config'], MySqlPreparedQueryConfig>>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAC3B,oBAAyC;AAEzC,iBAA0C;AAE1C,gBAA8B;AAuCvB,MAAe,mBAAuD;AAAA,EAC5E,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAGvC;AAKD;AAQO,MAAe,aAOpB;AAAA,EAGD,YAAsB,SAAuB;AAAvB;AAAA,EAAwB;AAAA,EAF9C,QAAiB,wBAAU,IAAY;AAAA,EAoBvC,QAAW,OAAwB;AAClC,WAAO,KAAK;AAAA,MACX,KAAK,QAAQ,WAAW,KAAK;AAAA,MAC7B;AAAA,IACD,EAAE,QAAQ;AAAA,EACX;AAAA,EAIA,MAAM,MAAMA,MAA2B;AACtC,UAAM,MAAM,MAAM,KAAK,QAA+BA,IAAG;AAEzD,WAAO;AAAA,MACN,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO;AAAA,IAClB;AAAA,EACD;AAAA,EASU,qBAAqB,QAAiD;AAC/E,UAAM,QAAkB,CAAC;AAEzB,QAAI,OAAO,gBAAgB;AAC1B,YAAM,KAAK,mBAAmB,OAAO,cAAc,EAAE;AAAA,IACtD;AAEA,WAAO,MAAM,SAAS,iCAAsB,eAAI,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK;AAAA,EAC1E;AAAA,EAEU,uBAAuB,QAAiD;AACjF,UAAM,QAAkB,CAAC;AAEzB,QAAI,OAAO,wBAAwB;AAClC,YAAM,KAAK,0BAA0B;AAAA,IACtC;AAEA,QAAI,OAAO,YAAY;AACtB,YAAM,KAAK,OAAO,UAAU;AAAA,IAC7B;AAEA,WAAO,MAAM,SAAS,mCAAwB,eAAI,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK;AAAA,EAC5E;AACD;AAEO,MAAe,yBAOZ,wBAAgG;AAAA,EAGzG,YACC,SACA,SACU,WACA,QACS,aACnB,MACC;AACD,UAAM,SAAS,SAAS,WAAW,QAAQ,IAAI;AALrC;AACA;AACS;AAAA,EAIpB;AAAA,EAXA,QAA0B,wBAAU,IAAY;AAAA,EAahD,WAAkB;AACjB,UAAM,IAAI,uCAAyB;AAAA,EACpC;AAQD;","names":["sql"]}
1
+ {"version":3,"sources":["../../src/mysql-core/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { TransactionRollbackError } from '~/errors.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { type Query, type SQL, sql } from '~/sql/sql.ts';\nimport type { Assume, Equal } from '~/utils.ts';\nimport { MySqlDatabase } from './db.ts';\nimport type { MySqlDialect } from './dialect.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport type Mode = 'default' | 'planetscale';\n\nexport interface MySqlQueryResultHKT {\n\treadonly $brand: 'MySqlQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n\nexport interface AnyMySqlQueryResultHKT extends MySqlQueryResultHKT {\n\treadonly type: any;\n}\n\nexport type MySqlQueryResultKind<TKind extends MySqlQueryResultHKT, TRow> = (TKind & {\n\treadonly row: TRow;\n})['type'];\n\nexport interface MySqlPreparedQueryConfig {\n\texecute: unknown;\n\titerator: unknown;\n}\n\nexport interface MySqlPreparedQueryHKT {\n\treadonly $brand: 'MySqlPreparedQueryHKT';\n\treadonly config: unknown;\n\treadonly type: unknown;\n}\n\nexport type PreparedQueryKind<\n\tTKind extends MySqlPreparedQueryHKT,\n\tTConfig extends MySqlPreparedQueryConfig,\n\tTAssume extends boolean = false,\n> = Equal<TAssume, true> extends true\n\t? Assume<(TKind & { readonly config: TConfig })['type'], MySqlPreparedQuery<TConfig>>\n\t: (TKind & { readonly config: TConfig })['type'];\n\nexport abstract class MySqlPreparedQuery<T extends MySqlPreparedQueryConfig> {\n\tstatic readonly [entityKind]: string = 'MySqlPreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tabstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;\n\n\tabstract iterator(placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']>;\n}\n\nexport interface MySqlTransactionConfig {\n\twithConsistentSnapshot?: boolean;\n\taccessMode?: 'read only' | 'read write';\n\tisolationLevel: 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable';\n}\n\nexport abstract class MySqlSession<\n\tTQueryResult extends MySqlQueryResultHKT = MySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> {\n\tstatic readonly [entityKind]: string = 'MySqlSession';\n\n\tconstructor(protected dialect: MySqlDialect) {}\n\n\tabstract prepareQuery<T extends MySqlPreparedQueryConfig, TPreparedQueryHKT extends MySqlPreparedQueryHKT>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): PreparedQueryKind<TPreparedQueryHKT, T>;\n\n\texecute<T>(query: SQL): Promise<T> {\n\t\treturn this.prepareQuery<MySqlPreparedQueryConfig & { execute: T }, PreparedQueryHKTBase>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t).execute();\n\t}\n\n\tabstract all<T = unknown>(query: SQL): Promise<T[]>;\n\n\tasync count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<[[{ count: string }]]>(sql);\n\n\t\treturn Number(\n\t\t\tres[0][0]['count'],\n\t\t);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: MySqlTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: MySqlTransactionConfig,\n\t): Promise<T>;\n\n\tprotected getSetTransactionSQL(config: MySqlTransactionConfig): SQL | undefined {\n\t\tconst parts: string[] = [];\n\n\t\tif (config.isolationLevel) {\n\t\t\tparts.push(`isolation level ${config.isolationLevel}`);\n\t\t}\n\n\t\treturn parts.length ? sql`set transaction ${sql.raw(parts.join(' '))}` : undefined;\n\t}\n\n\tprotected getStartTransactionSQL(config: MySqlTransactionConfig): SQL | undefined {\n\t\tconst parts: string[] = [];\n\n\t\tif (config.withConsistentSnapshot) {\n\t\t\tparts.push('with consistent snapshot');\n\t\t}\n\n\t\tif (config.accessMode) {\n\t\t\tparts.push(config.accessMode);\n\t\t}\n\n\t\treturn parts.length ? sql`start transaction ${sql.raw(parts.join(' '))}` : undefined;\n\t}\n}\n\nexport abstract class MySqlTransaction<\n\tTQueryResult extends MySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> extends MySqlDatabase<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'MySqlTransaction';\n\n\tconstructor(\n\t\tdialect: MySqlDialect,\n\t\tsession: MySqlSession,\n\t\tprotected schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprotected readonly nestedIndex: number,\n\t\tmode: Mode,\n\t) {\n\t\tsuper(dialect, session, schema, mode);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n\n\t/** Nested transactions (aka savepoints) only work with InnoDB engine. */\n\tabstract override transaction<T>(\n\t\ttransaction: (tx: MySqlTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport interface PreparedQueryHKTBase extends MySqlPreparedQueryHKT {\n\ttype: MySqlPreparedQuery<Assume<this['config'], MySqlPreparedQueryConfig>>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,oBAAyC;AAEzC,iBAA0C;AAE1C,gBAA8B;AAuCvB,MAAe,mBAAuD;AAAA,EAC5E,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAGvC;AAKD;AAQO,MAAe,aAKpB;AAAA,EAGD,YAAsB,SAAuB;AAAvB;AAAA,EAAwB;AAAA,EAF9C,QAAiB,wBAAU,IAAY;AAAA,EAYvC,QAAW,OAAwB;AAClC,WAAO,KAAK;AAAA,MACX,KAAK,QAAQ,WAAW,KAAK;AAAA,MAC7B;AAAA,IACD,EAAE,QAAQ;AAAA,EACX;AAAA,EAIA,MAAM,MAAMA,MAA2B;AACtC,UAAM,MAAM,MAAM,KAAK,QAA+BA,IAAG;AAEzD,WAAO;AAAA,MACN,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO;AAAA,IAClB;AAAA,EACD;AAAA,EAOU,qBAAqB,QAAiD;AAC/E,UAAM,QAAkB,CAAC;AAEzB,QAAI,OAAO,gBAAgB;AAC1B,YAAM,KAAK,mBAAmB,OAAO,cAAc,EAAE;AAAA,IACtD;AAEA,WAAO,MAAM,SAAS,iCAAsB,eAAI,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK;AAAA,EAC1E;AAAA,EAEU,uBAAuB,QAAiD;AACjF,UAAM,QAAkB,CAAC;AAEzB,QAAI,OAAO,wBAAwB;AAClC,YAAM,KAAK,0BAA0B;AAAA,IACtC;AAEA,QAAI,OAAO,YAAY;AACtB,YAAM,KAAK,OAAO,UAAU;AAAA,IAC7B;AAEA,WAAO,MAAM,SAAS,mCAAwB,eAAI,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK;AAAA,EAC5E;AACD;AAEO,MAAe,yBAKZ,wBAAqE;AAAA,EAG9E,YACC,SACA,SACU,QACS,aACnB,MACC;AACD,UAAM,SAAS,SAAS,QAAQ,IAAI;AAJ1B;AACS;AAAA,EAIpB;AAAA,EAVA,QAA0B,wBAAU,IAAY;AAAA,EAYhD,WAAkB;AACjB,UAAM,IAAI,uCAAyB;AAAA,EACpC;AAMD;","names":["sql"]}
@@ -1,6 +1,5 @@
1
- import type * as V1 from "../_relations.cjs";
2
1
  import { entityKind } from "../entity.cjs";
3
- import type { AnyRelations, EmptyRelations, ExtractTablesWithRelations, TablesRelationalConfig } from "../relations.cjs";
2
+ import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.cjs";
4
3
  import { type Query, type SQL } from "../sql/sql.cjs";
5
4
  import type { Assume, Equal } from "../utils.cjs";
6
5
  import { MySqlDatabase } from "./db.cjs";
@@ -42,28 +41,26 @@ export interface MySqlTransactionConfig {
42
41
  accessMode?: 'read only' | 'read write';
43
42
  isolationLevel: 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable';
44
43
  }
45
- export declare abstract class MySqlSession<TQueryResult extends MySqlQueryResultHKT = MySqlQueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase, TFullSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations, TTablesConfig extends TablesRelationalConfig = ExtractTablesWithRelations<TRelations>, TSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>> {
44
+ export declare abstract class MySqlSession<TQueryResult extends MySqlQueryResultHKT = MySqlQueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends TablesRelationalConfig = Record<string, never>> {
46
45
  protected dialect: MySqlDialect;
47
46
  static readonly [entityKind]: string;
48
47
  constructor(dialect: MySqlDialect);
49
48
  abstract prepareQuery<T extends MySqlPreparedQueryConfig, TPreparedQueryHKT extends MySqlPreparedQueryHKT>(query: Query, fields: SelectedFieldsOrdered | undefined, customResultMapper?: (rows: unknown[][]) => T['execute'], generatedIds?: Record<string, unknown>[], returningIds?: SelectedFieldsOrdered): PreparedQueryKind<TPreparedQueryHKT, T>;
50
- abstract prepareRelationalQuery<T extends MySqlPreparedQueryConfig, TPreparedQueryHKT extends MySqlPreparedQueryHKT>(query: Query, fields: SelectedFieldsOrdered | undefined, customResultMapper: (rows: Record<string, unknown>[]) => T['execute'], generatedIds?: Record<string, unknown>[], returningIds?: SelectedFieldsOrdered): PreparedQueryKind<TPreparedQueryHKT, T>;
51
49
  execute<T>(query: SQL): Promise<T>;
52
50
  abstract all<T = unknown>(query: SQL): Promise<T[]>;
53
51
  count(sql: SQL): Promise<number>;
54
- abstract transaction<T>(transaction: (tx: MySqlTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>, config?: MySqlTransactionConfig): Promise<T>;
52
+ abstract transaction<T>(transaction: (tx: MySqlTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>) => Promise<T>, config?: MySqlTransactionConfig): Promise<T>;
55
53
  protected getSetTransactionSQL(config: MySqlTransactionConfig): SQL | undefined;
56
54
  protected getStartTransactionSQL(config: MySqlTransactionConfig): SQL | undefined;
57
55
  }
58
- export declare abstract class MySqlTransaction<TQueryResult extends MySqlQueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase, TFullSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations, TTablesConfig extends TablesRelationalConfig = ExtractTablesWithRelations<TRelations>, TSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>> extends MySqlDatabase<TQueryResult, TPreparedQueryHKT, TFullSchema, TRelations, TTablesConfig, TSchema> {
59
- protected relations: AnyRelations | undefined;
60
- protected schema: V1.RelationalSchemaConfig<TSchema> | undefined;
56
+ export declare abstract class MySqlTransaction<TQueryResult extends MySqlQueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends TablesRelationalConfig = Record<string, never>> extends MySqlDatabase<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema> {
57
+ protected schema: RelationalSchemaConfig<TSchema> | undefined;
61
58
  protected readonly nestedIndex: number;
62
59
  static readonly [entityKind]: string;
63
- constructor(dialect: MySqlDialect, session: MySqlSession, relations: AnyRelations | undefined, schema: V1.RelationalSchemaConfig<TSchema> | undefined, nestedIndex: number, mode: Mode);
60
+ constructor(dialect: MySqlDialect, session: MySqlSession, schema: RelationalSchemaConfig<TSchema> | undefined, nestedIndex: number, mode: Mode);
64
61
  rollback(): never;
65
62
  /** Nested transactions (aka savepoints) only work with InnoDB engine. */
66
- abstract transaction<T>(transaction: (tx: MySqlTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>): Promise<T>;
63
+ abstract transaction<T>(transaction: (tx: MySqlTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>) => Promise<T>): Promise<T>;
67
64
  }
68
65
  export interface PreparedQueryHKTBase extends MySqlPreparedQueryHKT {
69
66
  type: MySqlPreparedQuery<Assume<this['config'], MySqlPreparedQueryConfig>>;