drizzle-orm 0.44.2-512acc4 → 0.44.2-6baabce

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 (775) hide show
  1. package/aws-data-api/pg/driver.cjs +6 -14
  2. package/aws-data-api/pg/driver.cjs.map +1 -1
  3. package/aws-data-api/pg/driver.d.cts +3 -4
  4. package/aws-data-api/pg/driver.d.ts +3 -4
  5. package/aws-data-api/pg/driver.js +6 -14
  6. package/aws-data-api/pg/driver.js.map +1 -1
  7. package/aws-data-api/pg/session.cjs +9 -26
  8. package/aws-data-api/pg/session.cjs.map +1 -1
  9. package/aws-data-api/pg/session.d.cts +4 -5
  10. package/aws-data-api/pg/session.d.ts +4 -5
  11. package/aws-data-api/pg/session.js +9 -26
  12. package/aws-data-api/pg/session.js.map +1 -1
  13. package/better-sqlite3/driver.cjs.map +1 -1
  14. package/better-sqlite3/driver.d.cts +3 -4
  15. package/better-sqlite3/driver.d.ts +3 -4
  16. package/better-sqlite3/driver.js.map +1 -1
  17. package/better-sqlite3/session.cjs +4 -4
  18. package/better-sqlite3/session.cjs.map +1 -1
  19. package/better-sqlite3/session.d.cts +4 -4
  20. package/better-sqlite3/session.d.ts +4 -4
  21. package/better-sqlite3/session.js +4 -4
  22. package/better-sqlite3/session.js.map +1 -1
  23. package/bun-sql/driver.cjs +2 -3
  24. package/bun-sql/driver.cjs.map +1 -1
  25. package/bun-sql/driver.d.cts +3 -4
  26. package/bun-sql/driver.d.ts +3 -4
  27. package/bun-sql/driver.js +2 -3
  28. package/bun-sql/driver.js.map +1 -1
  29. package/bun-sql/session.cjs +11 -20
  30. package/bun-sql/session.cjs.map +1 -1
  31. package/bun-sql/session.d.cts +5 -6
  32. package/bun-sql/session.d.ts +5 -6
  33. package/bun-sql/session.js +11 -20
  34. package/bun-sql/session.js.map +1 -1
  35. package/bun-sqlite/driver.cjs.map +1 -1
  36. package/bun-sqlite/driver.d.cts +3 -4
  37. package/bun-sqlite/driver.d.ts +3 -4
  38. package/bun-sqlite/driver.js.map +1 -1
  39. package/bun-sqlite/session.cjs +4 -4
  40. package/bun-sqlite/session.cjs.map +1 -1
  41. package/bun-sqlite/session.d.cts +4 -4
  42. package/bun-sqlite/session.d.ts +4 -4
  43. package/bun-sqlite/session.js +4 -4
  44. package/bun-sqlite/session.js.map +1 -1
  45. package/column-builder.cjs.map +1 -1
  46. package/column-builder.d.cts +2 -7
  47. package/column-builder.d.ts +2 -7
  48. package/column-builder.js.map +1 -1
  49. package/column.cjs +0 -2
  50. package/column.cjs.map +1 -1
  51. package/column.d.cts +0 -6
  52. package/column.d.ts +0 -6
  53. package/column.js +0 -2
  54. package/column.js.map +1 -1
  55. package/d1/driver.cjs +2 -9
  56. package/d1/driver.cjs.map +1 -1
  57. package/d1/driver.d.cts +1 -2
  58. package/d1/driver.d.ts +1 -2
  59. package/d1/driver.js +2 -9
  60. package/d1/driver.js.map +1 -1
  61. package/d1/session.cjs +11 -20
  62. package/d1/session.cjs.map +1 -1
  63. package/d1/session.d.cts +7 -8
  64. package/d1/session.d.ts +7 -8
  65. package/d1/session.js +11 -20
  66. package/d1/session.js.map +1 -1
  67. package/durable-sqlite/driver.cjs.map +1 -1
  68. package/durable-sqlite/driver.d.cts +1 -2
  69. package/durable-sqlite/driver.d.ts +1 -2
  70. package/durable-sqlite/driver.js.map +1 -1
  71. package/durable-sqlite/session.cjs +4 -4
  72. package/durable-sqlite/session.cjs.map +1 -1
  73. package/durable-sqlite/session.d.cts +4 -4
  74. package/durable-sqlite/session.d.ts +4 -4
  75. package/durable-sqlite/session.js +4 -4
  76. package/durable-sqlite/session.js.map +1 -1
  77. package/expo-sqlite/driver.cjs.map +1 -1
  78. package/expo-sqlite/driver.d.cts +1 -2
  79. package/expo-sqlite/driver.d.ts +1 -2
  80. package/expo-sqlite/driver.js.map +1 -1
  81. package/expo-sqlite/session.cjs +4 -4
  82. package/expo-sqlite/session.cjs.map +1 -1
  83. package/expo-sqlite/session.d.cts +4 -4
  84. package/expo-sqlite/session.d.ts +4 -4
  85. package/expo-sqlite/session.js +4 -4
  86. package/expo-sqlite/session.js.map +1 -1
  87. package/gel/driver.cjs +4 -6
  88. package/gel/driver.cjs.map +1 -1
  89. package/gel/driver.d.cts +4 -6
  90. package/gel/driver.d.ts +4 -6
  91. package/gel/driver.js +4 -6
  92. package/gel/driver.js.map +1 -1
  93. package/gel/session.cjs +9 -12
  94. package/gel/session.cjs.map +1 -1
  95. package/gel/session.d.cts +4 -5
  96. package/gel/session.d.ts +4 -5
  97. package/gel/session.js +9 -12
  98. package/gel/session.js.map +1 -1
  99. package/gel-core/columns/common.cjs +0 -8
  100. package/gel-core/columns/common.cjs.map +1 -1
  101. package/gel-core/columns/common.d.cts +0 -2
  102. package/gel-core/columns/common.d.ts +0 -2
  103. package/gel-core/columns/common.js +0 -8
  104. package/gel-core/columns/common.js.map +1 -1
  105. package/gel-core/db.cjs +3 -5
  106. package/gel-core/db.cjs.map +1 -1
  107. package/gel-core/db.d.cts +1 -3
  108. package/gel-core/db.d.ts +1 -3
  109. package/gel-core/db.js +3 -5
  110. package/gel-core/db.js.map +1 -1
  111. package/gel-core/dialect.cjs +19 -24
  112. package/gel-core/dialect.cjs.map +1 -1
  113. package/gel-core/dialect.d.cts +6 -7
  114. package/gel-core/dialect.d.ts +6 -7
  115. package/gel-core/dialect.js +20 -25
  116. package/gel-core/dialect.js.map +1 -1
  117. package/gel-core/query-builders/delete.cjs +5 -19
  118. package/gel-core/query-builders/delete.cjs.map +1 -1
  119. package/gel-core/query-builders/delete.js +5 -19
  120. package/gel-core/query-builders/delete.js.map +1 -1
  121. package/gel-core/query-builders/insert.cjs +9 -44
  122. package/gel-core/query-builders/insert.cjs.map +1 -1
  123. package/gel-core/query-builders/insert.js +11 -46
  124. package/gel-core/query-builders/insert.js.map +1 -1
  125. package/gel-core/query-builders/query.cjs +2 -15
  126. package/gel-core/query-builders/query.cjs.map +1 -1
  127. package/gel-core/query-builders/query.js +2 -15
  128. package/gel-core/query-builders/query.js.map +1 -1
  129. package/gel-core/query-builders/select.cjs +5 -21
  130. package/gel-core/query-builders/select.cjs.map +1 -1
  131. package/gel-core/query-builders/select.js +5 -21
  132. package/gel-core/query-builders/select.js.map +1 -1
  133. package/gel-core/query-builders/update.cjs +6 -20
  134. package/gel-core/query-builders/update.cjs.map +1 -1
  135. package/gel-core/query-builders/update.js +6 -20
  136. package/gel-core/query-builders/update.js.map +1 -1
  137. package/gel-core/session.cjs +4 -47
  138. package/gel-core/session.cjs.map +1 -1
  139. package/gel-core/session.d.cts +5 -11
  140. package/gel-core/session.d.ts +5 -11
  141. package/gel-core/session.js +4 -47
  142. package/gel-core/session.js.map +1 -1
  143. package/libsql/driver-core.cjs +2 -3
  144. package/libsql/driver-core.cjs.map +1 -1
  145. package/libsql/driver-core.js +2 -3
  146. package/libsql/driver-core.js.map +1 -1
  147. package/libsql/driver.cjs +1 -4
  148. package/libsql/driver.cjs.map +1 -1
  149. package/libsql/driver.d.cts +3 -4
  150. package/libsql/driver.d.ts +3 -4
  151. package/libsql/driver.js +1 -4
  152. package/libsql/driver.js.map +1 -1
  153. package/libsql/http/index.cjs +1 -4
  154. package/libsql/http/index.cjs.map +1 -1
  155. package/libsql/http/index.d.cts +3 -4
  156. package/libsql/http/index.d.ts +3 -4
  157. package/libsql/http/index.js +1 -4
  158. package/libsql/http/index.js.map +1 -1
  159. package/libsql/node/index.cjs +1 -4
  160. package/libsql/node/index.cjs.map +1 -1
  161. package/libsql/node/index.d.cts +3 -4
  162. package/libsql/node/index.d.ts +3 -4
  163. package/libsql/node/index.js +1 -4
  164. package/libsql/node/index.js.map +1 -1
  165. package/libsql/session.cjs +12 -29
  166. package/libsql/session.cjs.map +1 -1
  167. package/libsql/session.d.cts +7 -8
  168. package/libsql/session.d.ts +7 -8
  169. package/libsql/session.js +12 -29
  170. package/libsql/session.js.map +1 -1
  171. package/libsql/sqlite3/index.cjs +1 -4
  172. package/libsql/sqlite3/index.cjs.map +1 -1
  173. package/libsql/sqlite3/index.d.cts +3 -4
  174. package/libsql/sqlite3/index.d.ts +3 -4
  175. package/libsql/sqlite3/index.js +1 -4
  176. package/libsql/sqlite3/index.js.map +1 -1
  177. package/libsql/wasm/index.cjs +1 -4
  178. package/libsql/wasm/index.cjs.map +1 -1
  179. package/libsql/wasm/index.d.cts +3 -4
  180. package/libsql/wasm/index.d.ts +3 -4
  181. package/libsql/wasm/index.js +1 -4
  182. package/libsql/wasm/index.js.map +1 -1
  183. package/libsql/web/index.cjs +1 -4
  184. package/libsql/web/index.cjs.map +1 -1
  185. package/libsql/web/index.d.cts +3 -4
  186. package/libsql/web/index.d.ts +3 -4
  187. package/libsql/web/index.js +1 -4
  188. package/libsql/web/index.js.map +1 -1
  189. package/libsql/ws/index.cjs +1 -4
  190. package/libsql/ws/index.cjs.map +1 -1
  191. package/libsql/ws/index.d.cts +3 -4
  192. package/libsql/ws/index.d.ts +3 -4
  193. package/libsql/ws/index.js +1 -4
  194. package/libsql/ws/index.js.map +1 -1
  195. package/mysql-core/db.cjs +3 -5
  196. package/mysql-core/db.cjs.map +1 -1
  197. package/mysql-core/db.d.cts +1 -3
  198. package/mysql-core/db.d.ts +1 -3
  199. package/mysql-core/db.js +3 -5
  200. package/mysql-core/db.js.map +1 -1
  201. package/mysql-core/dialect.cjs +23 -29
  202. package/mysql-core/dialect.cjs.map +1 -1
  203. package/mysql-core/dialect.d.cts +7 -8
  204. package/mysql-core/dialect.d.ts +7 -8
  205. package/mysql-core/dialect.js +24 -30
  206. package/mysql-core/dialect.js.map +1 -1
  207. package/mysql-core/query-builders/delete.cjs +1 -8
  208. package/mysql-core/query-builders/delete.cjs.map +1 -1
  209. package/mysql-core/query-builders/delete.js +1 -8
  210. package/mysql-core/query-builders/delete.js.map +1 -1
  211. package/mysql-core/query-builders/insert.cjs +6 -30
  212. package/mysql-core/query-builders/insert.cjs.map +1 -1
  213. package/mysql-core/query-builders/insert.js +8 -32
  214. package/mysql-core/query-builders/insert.js.map +1 -1
  215. package/mysql-core/query-builders/query.cjs +3 -19
  216. package/mysql-core/query-builders/query.cjs.map +1 -1
  217. package/mysql-core/query-builders/query.js +3 -19
  218. package/mysql-core/query-builders/query.js.map +1 -1
  219. package/mysql-core/query-builders/select.cjs +6 -23
  220. package/mysql-core/query-builders/select.cjs.map +1 -1
  221. package/mysql-core/query-builders/select.js +6 -23
  222. package/mysql-core/query-builders/select.js.map +1 -1
  223. package/mysql-core/query-builders/update.cjs +3 -15
  224. package/mysql-core/query-builders/update.cjs.map +1 -1
  225. package/mysql-core/query-builders/update.js +3 -15
  226. package/mysql-core/query-builders/update.js.map +1 -1
  227. package/mysql-core/session.cjs +4 -43
  228. package/mysql-core/session.cjs.map +1 -1
  229. package/mysql-core/session.d.cts +7 -14
  230. package/mysql-core/session.d.ts +7 -14
  231. package/mysql-core/session.js +4 -43
  232. package/mysql-core/session.js.map +1 -1
  233. package/mysql-proxy/driver.cjs +2 -3
  234. package/mysql-proxy/driver.cjs.map +1 -1
  235. package/mysql-proxy/driver.d.cts +1 -2
  236. package/mysql-proxy/driver.d.ts +1 -2
  237. package/mysql-proxy/driver.js +2 -3
  238. package/mysql-proxy/driver.js.map +1 -1
  239. package/mysql-proxy/session.cjs +8 -8
  240. package/mysql-proxy/session.cjs.map +1 -1
  241. package/mysql-proxy/session.d.cts +6 -5
  242. package/mysql-proxy/session.d.ts +6 -5
  243. package/mysql-proxy/session.js +8 -8
  244. package/mysql-proxy/session.js.map +1 -1
  245. package/mysql2/driver.cjs +4 -11
  246. package/mysql2/driver.cjs.map +1 -1
  247. package/mysql2/driver.d.cts +2 -4
  248. package/mysql2/driver.d.ts +2 -4
  249. package/mysql2/driver.js +4 -11
  250. package/mysql2/driver.js.map +1 -1
  251. package/mysql2/session.cjs +10 -14
  252. package/mysql2/session.cjs.map +1 -1
  253. package/mysql2/session.d.cts +5 -5
  254. package/mysql2/session.d.ts +5 -5
  255. package/mysql2/session.js +10 -14
  256. package/mysql2/session.js.map +1 -1
  257. package/neon-http/driver.cjs +3 -5
  258. package/neon-http/driver.cjs.map +1 -1
  259. package/neon-http/driver.d.cts +4 -6
  260. package/neon-http/driver.d.ts +4 -6
  261. package/neon-http/driver.js +3 -5
  262. package/neon-http/driver.js.map +1 -1
  263. package/neon-http/session.cjs +6 -8
  264. package/neon-http/session.cjs.map +1 -1
  265. package/neon-http/session.d.cts +4 -5
  266. package/neon-http/session.d.ts +4 -5
  267. package/neon-http/session.js +6 -8
  268. package/neon-http/session.js.map +1 -1
  269. package/neon-serverless/driver.cjs +4 -6
  270. package/neon-serverless/driver.cjs.map +1 -1
  271. package/neon-serverless/driver.d.cts +4 -6
  272. package/neon-serverless/driver.d.ts +4 -6
  273. package/neon-serverless/driver.js +4 -6
  274. package/neon-serverless/driver.js.map +1 -1
  275. package/neon-serverless/session.cjs +9 -23
  276. package/neon-serverless/session.cjs.map +1 -1
  277. package/neon-serverless/session.d.cts +4 -5
  278. package/neon-serverless/session.d.ts +4 -5
  279. package/neon-serverless/session.js +9 -23
  280. package/neon-serverless/session.js.map +1 -1
  281. package/node-postgres/driver.cjs +4 -6
  282. package/node-postgres/driver.cjs.map +1 -1
  283. package/node-postgres/driver.d.cts +4 -6
  284. package/node-postgres/driver.d.ts +4 -6
  285. package/node-postgres/driver.js +4 -6
  286. package/node-postgres/driver.js.map +1 -1
  287. package/node-postgres/session.cjs +9 -18
  288. package/node-postgres/session.cjs.map +1 -1
  289. package/node-postgres/session.d.cts +4 -5
  290. package/node-postgres/session.d.ts +4 -5
  291. package/node-postgres/session.js +9 -18
  292. package/node-postgres/session.js.map +1 -1
  293. package/op-sqlite/driver.cjs +2 -3
  294. package/op-sqlite/driver.cjs.map +1 -1
  295. package/op-sqlite/driver.d.cts +1 -2
  296. package/op-sqlite/driver.d.ts +1 -2
  297. package/op-sqlite/driver.js +2 -3
  298. package/op-sqlite/driver.js.map +1 -1
  299. package/op-sqlite/session.cjs +11 -20
  300. package/op-sqlite/session.cjs.map +1 -1
  301. package/op-sqlite/session.d.cts +7 -8
  302. package/op-sqlite/session.d.ts +7 -8
  303. package/op-sqlite/session.js +11 -20
  304. package/op-sqlite/session.js.map +1 -1
  305. package/package.json +5 -351
  306. package/pg-core/columns/common.cjs +0 -2
  307. package/pg-core/columns/common.cjs.map +1 -1
  308. package/pg-core/columns/common.js +0 -2
  309. package/pg-core/columns/common.js.map +1 -1
  310. package/pg-core/db.cjs +3 -5
  311. package/pg-core/db.cjs.map +1 -1
  312. package/pg-core/db.d.cts +1 -3
  313. package/pg-core/db.d.ts +1 -3
  314. package/pg-core/db.js +3 -5
  315. package/pg-core/db.js.map +1 -1
  316. package/pg-core/dialect.cjs +19 -25
  317. package/pg-core/dialect.cjs.map +1 -1
  318. package/pg-core/dialect.d.cts +6 -7
  319. package/pg-core/dialect.d.ts +6 -7
  320. package/pg-core/dialect.js +20 -26
  321. package/pg-core/dialect.js.map +1 -1
  322. package/pg-core/query-builders/delete.cjs +5 -19
  323. package/pg-core/query-builders/delete.cjs.map +1 -1
  324. package/pg-core/query-builders/delete.js +5 -19
  325. package/pg-core/query-builders/delete.js.map +1 -1
  326. package/pg-core/query-builders/insert.cjs +9 -49
  327. package/pg-core/query-builders/insert.cjs.map +1 -1
  328. package/pg-core/query-builders/insert.js +11 -51
  329. package/pg-core/query-builders/insert.js.map +1 -1
  330. package/pg-core/query-builders/query.cjs +2 -15
  331. package/pg-core/query-builders/query.cjs.map +1 -1
  332. package/pg-core/query-builders/query.js +2 -15
  333. package/pg-core/query-builders/query.js.map +1 -1
  334. package/pg-core/query-builders/select.cjs +7 -23
  335. package/pg-core/query-builders/select.cjs.map +1 -1
  336. package/pg-core/query-builders/select.js +7 -23
  337. package/pg-core/query-builders/select.js.map +1 -1
  338. package/pg-core/query-builders/update.cjs +6 -20
  339. package/pg-core/query-builders/update.cjs.map +1 -1
  340. package/pg-core/query-builders/update.js +6 -20
  341. package/pg-core/query-builders/update.js.map +1 -1
  342. package/pg-core/session.cjs +4 -48
  343. package/pg-core/session.cjs.map +1 -1
  344. package/pg-core/session.d.cts +5 -11
  345. package/pg-core/session.d.ts +5 -11
  346. package/pg-core/session.js +4 -48
  347. package/pg-core/session.js.map +1 -1
  348. package/pg-proxy/driver.cjs +2 -3
  349. package/pg-proxy/driver.cjs.map +1 -1
  350. package/pg-proxy/driver.d.cts +1 -2
  351. package/pg-proxy/driver.d.ts +1 -2
  352. package/pg-proxy/driver.js +2 -3
  353. package/pg-proxy/driver.js.map +1 -1
  354. package/pg-proxy/session.cjs +6 -8
  355. package/pg-proxy/session.cjs.map +1 -1
  356. package/pg-proxy/session.d.cts +4 -5
  357. package/pg-proxy/session.d.ts +4 -5
  358. package/pg-proxy/session.js +6 -8
  359. package/pg-proxy/session.js.map +1 -1
  360. package/pglite/driver.cjs +4 -6
  361. package/pglite/driver.cjs.map +1 -1
  362. package/pglite/driver.d.cts +4 -6
  363. package/pglite/driver.d.ts +4 -6
  364. package/pglite/driver.js +4 -6
  365. package/pglite/driver.js.map +1 -1
  366. package/pglite/session.cjs +9 -19
  367. package/pglite/session.cjs.map +1 -1
  368. package/pglite/session.d.cts +4 -5
  369. package/pglite/session.d.ts +4 -5
  370. package/pglite/session.js +9 -19
  371. package/pglite/session.js.map +1 -1
  372. package/planetscale-serverless/driver.cjs +2 -10
  373. package/planetscale-serverless/driver.cjs.map +1 -1
  374. package/planetscale-serverless/driver.d.cts +3 -4
  375. package/planetscale-serverless/driver.d.ts +3 -4
  376. package/planetscale-serverless/driver.js +2 -10
  377. package/planetscale-serverless/driver.js.map +1 -1
  378. package/planetscale-serverless/session.cjs +13 -23
  379. package/planetscale-serverless/session.cjs.map +1 -1
  380. package/planetscale-serverless/session.d.cts +7 -6
  381. package/planetscale-serverless/session.d.ts +7 -6
  382. package/planetscale-serverless/session.js +13 -23
  383. package/planetscale-serverless/session.js.map +1 -1
  384. package/postgres-js/driver.cjs +2 -3
  385. package/postgres-js/driver.cjs.map +1 -1
  386. package/postgres-js/driver.d.cts +3 -4
  387. package/postgres-js/driver.d.ts +3 -4
  388. package/postgres-js/driver.js +2 -3
  389. package/postgres-js/driver.js.map +1 -1
  390. package/postgres-js/session.cjs +16 -27
  391. package/postgres-js/session.cjs.map +1 -1
  392. package/postgres-js/session.d.cts +5 -6
  393. package/postgres-js/session.d.ts +5 -6
  394. package/postgres-js/session.js +16 -27
  395. package/postgres-js/session.js.map +1 -1
  396. package/prisma/mysql/driver.cjs +3 -3
  397. package/prisma/mysql/driver.cjs.map +1 -1
  398. package/prisma/mysql/driver.d.cts +2 -3
  399. package/prisma/mysql/driver.d.ts +2 -3
  400. package/prisma/mysql/driver.js +3 -3
  401. package/prisma/mysql/driver.js.map +1 -1
  402. package/prisma/mysql/session.cjs +11 -10
  403. package/prisma/mysql/session.cjs.map +1 -1
  404. package/prisma/mysql/session.d.cts +5 -10
  405. package/prisma/mysql/session.d.ts +5 -10
  406. package/prisma/mysql/session.js +11 -10
  407. package/prisma/mysql/session.js.map +1 -1
  408. package/prisma/pg/driver.cjs +3 -3
  409. package/prisma/pg/driver.cjs.map +1 -1
  410. package/prisma/pg/driver.d.cts +1 -2
  411. package/prisma/pg/driver.d.ts +1 -2
  412. package/prisma/pg/driver.js +3 -3
  413. package/prisma/pg/driver.js.map +1 -1
  414. package/prisma/pg/session.cjs +7 -7
  415. package/prisma/pg/session.cjs.map +1 -1
  416. package/prisma/pg/session.d.cts +5 -10
  417. package/prisma/pg/session.d.ts +5 -10
  418. package/prisma/pg/session.js +7 -7
  419. package/prisma/pg/session.js.map +1 -1
  420. package/prisma/sqlite/driver.cjs +1 -7
  421. package/prisma/sqlite/driver.cjs.map +1 -1
  422. package/prisma/sqlite/driver.d.cts +1 -2
  423. package/prisma/sqlite/driver.d.ts +1 -2
  424. package/prisma/sqlite/driver.js +1 -7
  425. package/prisma/sqlite/driver.js.map +1 -1
  426. package/prisma/sqlite/session.cjs +10 -10
  427. package/prisma/sqlite/session.cjs.map +1 -1
  428. package/prisma/sqlite/session.d.cts +7 -12
  429. package/prisma/sqlite/session.d.ts +7 -12
  430. package/prisma/sqlite/session.js +10 -10
  431. package/prisma/sqlite/session.js.map +1 -1
  432. package/singlestore/driver.cjs +25 -34
  433. package/singlestore/driver.cjs.map +1 -1
  434. package/singlestore/driver.d.cts +2 -4
  435. package/singlestore/driver.d.ts +2 -4
  436. package/singlestore/driver.js +25 -34
  437. package/singlestore/driver.js.map +1 -1
  438. package/singlestore/session.cjs +10 -14
  439. package/singlestore/session.cjs.map +1 -1
  440. package/singlestore/session.d.cts +5 -5
  441. package/singlestore/session.d.ts +5 -5
  442. package/singlestore/session.js +10 -14
  443. package/singlestore/session.js.map +1 -1
  444. package/singlestore-core/db.cjs +3 -5
  445. package/singlestore-core/db.cjs.map +1 -1
  446. package/singlestore-core/db.d.cts +1 -3
  447. package/singlestore-core/db.d.ts +1 -3
  448. package/singlestore-core/db.js +3 -5
  449. package/singlestore-core/db.js.map +1 -1
  450. package/singlestore-core/dialect.cjs +18 -24
  451. package/singlestore-core/dialect.cjs.map +1 -1
  452. package/singlestore-core/dialect.d.cts +6 -7
  453. package/singlestore-core/dialect.d.ts +6 -7
  454. package/singlestore-core/dialect.js +19 -25
  455. package/singlestore-core/dialect.js.map +1 -1
  456. package/singlestore-core/query-builders/delete.cjs +1 -8
  457. package/singlestore-core/query-builders/delete.cjs.map +1 -1
  458. package/singlestore-core/query-builders/delete.js +1 -8
  459. package/singlestore-core/query-builders/delete.js.map +1 -1
  460. package/singlestore-core/query-builders/insert.cjs +5 -30
  461. package/singlestore-core/query-builders/insert.cjs.map +1 -1
  462. package/singlestore-core/query-builders/insert.js +7 -32
  463. package/singlestore-core/query-builders/insert.js.map +1 -1
  464. package/singlestore-core/query-builders/query.cjs +2 -17
  465. package/singlestore-core/query-builders/query.cjs.map +1 -1
  466. package/singlestore-core/query-builders/query.js +2 -17
  467. package/singlestore-core/query-builders/query.js.map +1 -1
  468. package/singlestore-core/query-builders/select.cjs +7 -24
  469. package/singlestore-core/query-builders/select.cjs.map +1 -1
  470. package/singlestore-core/query-builders/select.js +7 -24
  471. package/singlestore-core/query-builders/select.js.map +1 -1
  472. package/singlestore-core/query-builders/update.cjs +2 -9
  473. package/singlestore-core/query-builders/update.cjs.map +1 -1
  474. package/singlestore-core/query-builders/update.js +2 -9
  475. package/singlestore-core/query-builders/update.js.map +1 -1
  476. package/singlestore-core/session.cjs +4 -43
  477. package/singlestore-core/session.cjs.map +1 -1
  478. package/singlestore-core/session.d.cts +6 -14
  479. package/singlestore-core/session.d.ts +6 -14
  480. package/singlestore-core/session.js +4 -43
  481. package/singlestore-core/session.js.map +1 -1
  482. package/singlestore-proxy/driver.cjs +2 -3
  483. package/singlestore-proxy/driver.cjs.map +1 -1
  484. package/singlestore-proxy/driver.d.cts +1 -2
  485. package/singlestore-proxy/driver.d.ts +1 -2
  486. package/singlestore-proxy/driver.js +2 -3
  487. package/singlestore-proxy/driver.js.map +1 -1
  488. package/singlestore-proxy/session.cjs +8 -8
  489. package/singlestore-proxy/session.cjs.map +1 -1
  490. package/singlestore-proxy/session.d.cts +6 -9
  491. package/singlestore-proxy/session.d.ts +6 -9
  492. package/singlestore-proxy/session.js +8 -8
  493. package/singlestore-proxy/session.js.map +1 -1
  494. package/sql/sql.cjs +2 -24
  495. package/sql/sql.cjs.map +1 -1
  496. package/sql/sql.d.cts +0 -12
  497. package/sql/sql.d.ts +0 -12
  498. package/sql/sql.js +2 -23
  499. package/sql/sql.js.map +1 -1
  500. package/sql-js/driver.cjs.map +1 -1
  501. package/sql-js/driver.d.cts +1 -2
  502. package/sql-js/driver.d.ts +1 -2
  503. package/sql-js/driver.js.map +1 -1
  504. package/sql-js/session.cjs +4 -4
  505. package/sql-js/session.cjs.map +1 -1
  506. package/sql-js/session.d.cts +4 -4
  507. package/sql-js/session.d.ts +4 -4
  508. package/sql-js/session.js +4 -4
  509. package/sql-js/session.js.map +1 -1
  510. package/sqlite-core/db.cjs +3 -5
  511. package/sqlite-core/db.cjs.map +1 -1
  512. package/sqlite-core/db.d.cts +1 -3
  513. package/sqlite-core/db.d.ts +1 -3
  514. package/sqlite-core/db.js +3 -5
  515. package/sqlite-core/db.js.map +1 -1
  516. package/sqlite-core/dialect.cjs +19 -29
  517. package/sqlite-core/dialect.cjs.map +1 -1
  518. package/sqlite-core/dialect.d.cts +6 -7
  519. package/sqlite-core/dialect.d.ts +6 -7
  520. package/sqlite-core/dialect.js +20 -30
  521. package/sqlite-core/dialect.js.map +1 -1
  522. package/sqlite-core/query-builders/delete.cjs +1 -8
  523. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  524. package/sqlite-core/query-builders/delete.js +1 -8
  525. package/sqlite-core/query-builders/delete.js.map +1 -1
  526. package/sqlite-core/query-builders/insert.cjs +4 -28
  527. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  528. package/sqlite-core/query-builders/insert.js +6 -35
  529. package/sqlite-core/query-builders/insert.js.map +1 -1
  530. package/sqlite-core/query-builders/query.cjs +2 -15
  531. package/sqlite-core/query-builders/query.cjs.map +1 -1
  532. package/sqlite-core/query-builders/query.js +2 -15
  533. package/sqlite-core/query-builders/query.js.map +1 -1
  534. package/sqlite-core/query-builders/select.cjs +6 -15
  535. package/sqlite-core/query-builders/select.cjs.map +1 -1
  536. package/sqlite-core/query-builders/select.js +6 -15
  537. package/sqlite-core/query-builders/select.js.map +1 -1
  538. package/sqlite-core/query-builders/update.cjs +2 -9
  539. package/sqlite-core/query-builders/update.cjs.map +1 -1
  540. package/sqlite-core/query-builders/update.js +2 -9
  541. package/sqlite-core/query-builders/update.js.map +1 -1
  542. package/sqlite-core/session.cjs +6 -81
  543. package/sqlite-core/session.cjs.map +1 -1
  544. package/sqlite-core/session.d.cts +9 -19
  545. package/sqlite-core/session.d.ts +9 -19
  546. package/sqlite-core/session.js +6 -81
  547. package/sqlite-core/session.js.map +1 -1
  548. package/sqlite-proxy/driver.cjs +3 -4
  549. package/sqlite-proxy/driver.cjs.map +1 -1
  550. package/sqlite-proxy/driver.d.cts +2 -3
  551. package/sqlite-proxy/driver.d.ts +2 -3
  552. package/sqlite-proxy/driver.js +3 -4
  553. package/sqlite-proxy/driver.js.map +1 -1
  554. package/sqlite-proxy/session.cjs +11 -20
  555. package/sqlite-proxy/session.cjs.map +1 -1
  556. package/sqlite-proxy/session.d.cts +7 -8
  557. package/sqlite-proxy/session.d.ts +7 -8
  558. package/sqlite-proxy/session.js +11 -20
  559. package/sqlite-proxy/session.js.map +1 -1
  560. package/tidb-serverless/driver.cjs +2 -16
  561. package/tidb-serverless/driver.cjs.map +1 -1
  562. package/tidb-serverless/driver.d.cts +3 -4
  563. package/tidb-serverless/driver.d.ts +3 -4
  564. package/tidb-serverless/driver.js +2 -16
  565. package/tidb-serverless/driver.js.map +1 -1
  566. package/tidb-serverless/session.cjs +13 -23
  567. package/tidb-serverless/session.cjs.map +1 -1
  568. package/tidb-serverless/session.d.cts +7 -6
  569. package/tidb-serverless/session.d.ts +7 -6
  570. package/tidb-serverless/session.js +13 -23
  571. package/tidb-serverless/session.js.map +1 -1
  572. package/tracing.cjs.map +1 -1
  573. package/tracing.js.map +1 -1
  574. package/utils.cjs +2 -38
  575. package/utils.cjs.map +1 -1
  576. package/utils.d.cts +2 -6
  577. package/utils.d.ts +2 -6
  578. package/utils.js +4 -39
  579. package/utils.js.map +1 -1
  580. package/vercel-postgres/driver.cjs +5 -10
  581. package/vercel-postgres/driver.cjs.map +1 -1
  582. package/vercel-postgres/driver.d.cts +4 -6
  583. package/vercel-postgres/driver.d.ts +4 -6
  584. package/vercel-postgres/driver.js +5 -10
  585. package/vercel-postgres/driver.js.map +1 -1
  586. package/vercel-postgres/session.cjs +9 -18
  587. package/vercel-postgres/session.cjs.map +1 -1
  588. package/vercel-postgres/session.d.cts +4 -5
  589. package/vercel-postgres/session.d.ts +4 -5
  590. package/vercel-postgres/session.js +9 -18
  591. package/vercel-postgres/session.js.map +1 -1
  592. package/version.cjs +1 -1
  593. package/version.d.cts +1 -1
  594. package/version.d.ts +1 -1
  595. package/version.js +1 -1
  596. package/xata-http/driver.cjs +4 -7
  597. package/xata-http/driver.cjs.map +1 -1
  598. package/xata-http/driver.d.cts +2 -4
  599. package/xata-http/driver.d.ts +2 -4
  600. package/xata-http/driver.js +4 -7
  601. package/xata-http/driver.js.map +1 -1
  602. package/xata-http/session.cjs +6 -8
  603. package/xata-http/session.cjs.map +1 -1
  604. package/xata-http/session.d.cts +4 -5
  605. package/xata-http/session.d.ts +4 -5
  606. package/xata-http/session.js +6 -8
  607. package/xata-http/session.js.map +1 -1
  608. package/extension-core/gel/index.cjs +0 -33
  609. package/extension-core/gel/index.cjs.map +0 -1
  610. package/extension-core/gel/index.d.cts +0 -67
  611. package/extension-core/gel/index.d.ts +0 -67
  612. package/extension-core/gel/index.js +0 -9
  613. package/extension-core/gel/index.js.map +0 -1
  614. package/extension-core/index.cjs +0 -42
  615. package/extension-core/index.cjs.map +0 -1
  616. package/extension-core/index.d.cts +0 -9
  617. package/extension-core/index.d.ts +0 -9
  618. package/extension-core/index.js +0 -15
  619. package/extension-core/index.js.map +0 -1
  620. package/extension-core/mysql/index.cjs +0 -33
  621. package/extension-core/mysql/index.cjs.map +0 -1
  622. package/extension-core/mysql/index.d.cts +0 -69
  623. package/extension-core/mysql/index.d.ts +0 -69
  624. package/extension-core/mysql/index.js +0 -9
  625. package/extension-core/mysql/index.js.map +0 -1
  626. package/extension-core/pg/index.cjs +0 -33
  627. package/extension-core/pg/index.cjs.map +0 -1
  628. package/extension-core/pg/index.d.cts +0 -67
  629. package/extension-core/pg/index.d.ts +0 -67
  630. package/extension-core/pg/index.js +0 -9
  631. package/extension-core/pg/index.js.map +0 -1
  632. package/extension-core/singlestore/index.cjs +0 -33
  633. package/extension-core/singlestore/index.cjs.map +0 -1
  634. package/extension-core/singlestore/index.d.cts +0 -67
  635. package/extension-core/singlestore/index.d.ts +0 -67
  636. package/extension-core/singlestore/index.js +0 -9
  637. package/extension-core/singlestore/index.js.map +0 -1
  638. package/extension-core/sqlite/index.cjs +0 -33
  639. package/extension-core/sqlite/index.cjs.map +0 -1
  640. package/extension-core/sqlite/index.d.cts +0 -68
  641. package/extension-core/sqlite/index.d.ts +0 -68
  642. package/extension-core/sqlite/index.js +0 -9
  643. package/extension-core/sqlite/index.js.map +0 -1
  644. package/extensions/hook/gel/index.cjs +0 -47
  645. package/extensions/hook/gel/index.cjs.map +0 -1
  646. package/extensions/hook/gel/index.d.cts +0 -11
  647. package/extensions/hook/gel/index.d.ts +0 -11
  648. package/extensions/hook/gel/index.js +0 -22
  649. package/extensions/hook/gel/index.js.map +0 -1
  650. package/extensions/hook/mysql/index.cjs +0 -47
  651. package/extensions/hook/mysql/index.cjs.map +0 -1
  652. package/extensions/hook/mysql/index.d.cts +0 -11
  653. package/extensions/hook/mysql/index.d.ts +0 -11
  654. package/extensions/hook/mysql/index.js +0 -22
  655. package/extensions/hook/mysql/index.js.map +0 -1
  656. package/extensions/hook/pg/index.cjs +0 -47
  657. package/extensions/hook/pg/index.cjs.map +0 -1
  658. package/extensions/hook/pg/index.d.cts +0 -11
  659. package/extensions/hook/pg/index.d.ts +0 -11
  660. package/extensions/hook/pg/index.js +0 -22
  661. package/extensions/hook/pg/index.js.map +0 -1
  662. package/extensions/hook/singlestore/index.cjs +0 -47
  663. package/extensions/hook/singlestore/index.cjs.map +0 -1
  664. package/extensions/hook/singlestore/index.d.cts +0 -11
  665. package/extensions/hook/singlestore/index.d.ts +0 -11
  666. package/extensions/hook/singlestore/index.js +0 -22
  667. package/extensions/hook/singlestore/index.js.map +0 -1
  668. package/extensions/hook/sqlite/index.cjs +0 -47
  669. package/extensions/hook/sqlite/index.cjs.map +0 -1
  670. package/extensions/hook/sqlite/index.d.cts +0 -11
  671. package/extensions/hook/sqlite/index.d.ts +0 -11
  672. package/extensions/hook/sqlite/index.js +0 -22
  673. package/extensions/hook/sqlite/index.js.map +0 -1
  674. package/extensions/s3-file/common.cjs +0 -313
  675. package/extensions/s3-file/common.cjs.map +0 -1
  676. package/extensions/s3-file/common.d.cts +0 -88
  677. package/extensions/s3-file/common.d.ts +0 -88
  678. package/extensions/s3-file/common.js +0 -280
  679. package/extensions/s3-file/common.js.map +0 -1
  680. package/extensions/s3-file/gel/column.cjs +0 -113
  681. package/extensions/s3-file/gel/column.cjs.map +0 -1
  682. package/extensions/s3-file/gel/column.d.cts +0 -105
  683. package/extensions/s3-file/gel/column.d.ts +0 -105
  684. package/extensions/s3-file/gel/column.js +0 -92
  685. package/extensions/s3-file/gel/column.js.map +0 -1
  686. package/extensions/s3-file/gel/extension.cjs +0 -262
  687. package/extensions/s3-file/gel/extension.cjs.map +0 -1
  688. package/extensions/s3-file/gel/extension.d.cts +0 -18
  689. package/extensions/s3-file/gel/extension.d.ts +0 -18
  690. package/extensions/s3-file/gel/extension.js +0 -248
  691. package/extensions/s3-file/gel/extension.js.map +0 -1
  692. package/extensions/s3-file/gel/index.cjs +0 -25
  693. package/extensions/s3-file/gel/index.cjs.map +0 -1
  694. package/extensions/s3-file/gel/index.d.cts +0 -2
  695. package/extensions/s3-file/gel/index.d.ts +0 -2
  696. package/extensions/s3-file/gel/index.js +0 -3
  697. package/extensions/s3-file/gel/index.js.map +0 -1
  698. package/extensions/s3-file/index.cjs +0 -23
  699. package/extensions/s3-file/index.cjs.map +0 -1
  700. package/extensions/s3-file/index.d.cts +0 -1
  701. package/extensions/s3-file/index.d.ts +0 -1
  702. package/extensions/s3-file/index.js +0 -2
  703. package/extensions/s3-file/index.js.map +0 -1
  704. package/extensions/s3-file/mysql/column.cjs +0 -110
  705. package/extensions/s3-file/mysql/column.cjs.map +0 -1
  706. package/extensions/s3-file/mysql/column.d.cts +0 -63
  707. package/extensions/s3-file/mysql/column.d.ts +0 -63
  708. package/extensions/s3-file/mysql/column.js +0 -86
  709. package/extensions/s3-file/mysql/column.js.map +0 -1
  710. package/extensions/s3-file/mysql/extension.cjs +0 -242
  711. package/extensions/s3-file/mysql/extension.cjs.map +0 -1
  712. package/extensions/s3-file/mysql/extension.d.cts +0 -18
  713. package/extensions/s3-file/mysql/extension.d.ts +0 -18
  714. package/extensions/s3-file/mysql/extension.js +0 -228
  715. package/extensions/s3-file/mysql/extension.js.map +0 -1
  716. package/extensions/s3-file/mysql/index.cjs +0 -25
  717. package/extensions/s3-file/mysql/index.cjs.map +0 -1
  718. package/extensions/s3-file/mysql/index.d.cts +0 -2
  719. package/extensions/s3-file/mysql/index.d.ts +0 -2
  720. package/extensions/s3-file/mysql/index.js +0 -3
  721. package/extensions/s3-file/mysql/index.js.map +0 -1
  722. package/extensions/s3-file/pg/column.cjs +0 -113
  723. package/extensions/s3-file/pg/column.cjs.map +0 -1
  724. package/extensions/s3-file/pg/column.d.cts +0 -105
  725. package/extensions/s3-file/pg/column.d.ts +0 -105
  726. package/extensions/s3-file/pg/column.js +0 -92
  727. package/extensions/s3-file/pg/column.js.map +0 -1
  728. package/extensions/s3-file/pg/extension.cjs +0 -264
  729. package/extensions/s3-file/pg/extension.cjs.map +0 -1
  730. package/extensions/s3-file/pg/extension.d.cts +0 -18
  731. package/extensions/s3-file/pg/extension.d.ts +0 -18
  732. package/extensions/s3-file/pg/extension.js +0 -250
  733. package/extensions/s3-file/pg/extension.js.map +0 -1
  734. package/extensions/s3-file/pg/index.cjs +0 -25
  735. package/extensions/s3-file/pg/index.cjs.map +0 -1
  736. package/extensions/s3-file/pg/index.d.cts +0 -2
  737. package/extensions/s3-file/pg/index.d.ts +0 -2
  738. package/extensions/s3-file/pg/index.js +0 -3
  739. package/extensions/s3-file/pg/index.js.map +0 -1
  740. package/extensions/s3-file/singlestore/column.cjs +0 -110
  741. package/extensions/s3-file/singlestore/column.cjs.map +0 -1
  742. package/extensions/s3-file/singlestore/column.d.cts +0 -63
  743. package/extensions/s3-file/singlestore/column.d.ts +0 -63
  744. package/extensions/s3-file/singlestore/column.js +0 -86
  745. package/extensions/s3-file/singlestore/column.js.map +0 -1
  746. package/extensions/s3-file/singlestore/extension.cjs +0 -239
  747. package/extensions/s3-file/singlestore/extension.cjs.map +0 -1
  748. package/extensions/s3-file/singlestore/extension.d.cts +0 -18
  749. package/extensions/s3-file/singlestore/extension.d.ts +0 -18
  750. package/extensions/s3-file/singlestore/extension.js +0 -225
  751. package/extensions/s3-file/singlestore/extension.js.map +0 -1
  752. package/extensions/s3-file/singlestore/index.cjs +0 -25
  753. package/extensions/s3-file/singlestore/index.cjs.map +0 -1
  754. package/extensions/s3-file/singlestore/index.d.cts +0 -2
  755. package/extensions/s3-file/singlestore/index.d.ts +0 -2
  756. package/extensions/s3-file/singlestore/index.js +0 -3
  757. package/extensions/s3-file/singlestore/index.js.map +0 -1
  758. package/extensions/s3-file/sqlite/column.cjs +0 -110
  759. package/extensions/s3-file/sqlite/column.cjs.map +0 -1
  760. package/extensions/s3-file/sqlite/column.d.cts +0 -63
  761. package/extensions/s3-file/sqlite/column.d.ts +0 -63
  762. package/extensions/s3-file/sqlite/column.js +0 -86
  763. package/extensions/s3-file/sqlite/column.js.map +0 -1
  764. package/extensions/s3-file/sqlite/extension.cjs +0 -242
  765. package/extensions/s3-file/sqlite/extension.cjs.map +0 -1
  766. package/extensions/s3-file/sqlite/extension.d.cts +0 -18
  767. package/extensions/s3-file/sqlite/extension.d.ts +0 -18
  768. package/extensions/s3-file/sqlite/extension.js +0 -228
  769. package/extensions/s3-file/sqlite/extension.js.map +0 -1
  770. package/extensions/s3-file/sqlite/index.cjs +0 -25
  771. package/extensions/s3-file/sqlite/index.cjs.map +0 -1
  772. package/extensions/s3-file/sqlite/index.d.cts +0 -2
  773. package/extensions/s3-file/sqlite/index.d.ts +0 -2
  774. package/extensions/s3-file/sqlite/index.js +0 -3
  775. package/extensions/s3-file/sqlite/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sqlite-core/dialect.ts"],"sourcesContent":["import { aliasedTable, aliasedTableColumn, mapColumnsInAliasedSQLToAlias, mapColumnsInSQLToAlias } from '~/alias.ts';\nimport { CasingCache } from '~/casing.ts';\nimport type { AnyColumn } from '~/column.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport { DrizzleError } from '~/errors.ts';\nimport { requiredExtension } from '~/extension-core/index.ts';\nimport type { DrizzleSQLiteExtension } from '~/extension-core/sqlite/index.ts';\nimport type { MigrationConfig, MigrationMeta } from '~/migrator.ts';\nimport {\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tgetOperators,\n\tgetOrderByOperators,\n\tMany,\n\tnormalizeRelation,\n\tOne,\n\ttype Relation,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { Name, Placeholder } from '~/sql/index.ts';\nimport { and, eq } from '~/sql/index.ts';\nimport { Param, type QueryWithTypings, SQL, sql, type SQLChunk } from '~/sql/sql.ts';\nimport { SQLiteColumn } from '~/sqlite-core/columns/index.ts';\nimport type {\n\tAnySQLiteSelectQueryBuilder,\n\tSQLiteDeleteConfig,\n\tSQLiteInsertConfig,\n\tSQLiteUpdateConfig,\n} from '~/sqlite-core/query-builders/index.ts';\nimport { SQLiteTable } from '~/sqlite-core/table.ts';\nimport { Subquery } from '~/subquery.ts';\nimport { getTableName, getTableUniqueName, Table } from '~/table.ts';\nimport { type Casing, columnExtensionsCheck, orderSelectedFields, type UpdateSet } from '~/utils.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type {\n\tSelectedFieldsOrdered,\n\tSQLiteSelectConfig,\n\tSQLiteSelectJoinConfig,\n} from './query-builders/select.types.ts';\nimport type { SQLiteSession } from './session.ts';\nimport { SQLiteViewBase } from './view-base.ts';\n\nexport interface SQLiteDialectConfig {\n\tcasing?: Casing;\n}\n\nexport abstract class SQLiteDialect {\n\tstatic readonly [entityKind]: string = 'SQLiteDialect';\n\n\t/** @internal */\n\treadonly casing: CasingCache;\n\n\tconstructor(config?: SQLiteDialectConfig) {\n\t\tthis.casing = new CasingCache(config?.casing);\n\t}\n\n\tescapeName(name: string): string {\n\t\treturn `\"${name}\"`;\n\t}\n\n\tescapeParam(_num: number): string {\n\t\treturn '?';\n\t}\n\n\tescapeString(str: string): string {\n\t\treturn `'${str.replace(/'/g, \"''\")}'`;\n\t}\n\n\tprivate buildWithCTE(queries: Subquery[] | undefined): SQL | undefined {\n\t\tif (!queries?.length) return undefined;\n\n\t\tconst withSqlChunks = [sql`with `];\n\t\tfor (const [i, w] of queries.entries()) {\n\t\t\twithSqlChunks.push(sql`${sql.identifier(w._.alias)} as (${w._.sql})`);\n\t\t\tif (i < queries.length - 1) {\n\t\t\t\twithSqlChunks.push(sql`, `);\n\t\t\t}\n\t\t}\n\t\twithSqlChunks.push(sql` `);\n\t\treturn sql.join(withSqlChunks);\n\t}\n\n\tbuildDeleteQuery(\n\t\t{ table, where, returning, withList, limit, orderBy }: SQLiteDeleteConfig,\n\t\textensions?: DrizzleSQLiteExtension[],\n\t): SQL {\n\t\tconst withSql = this.buildWithCTE(withList);\n\n\t\tconst returningSql = returning\n\t\t\t? sql` returning ${this.buildSelection(returning, { isSingleTable: true }, extensions)}`\n\t\t\t: undefined;\n\n\t\tconst whereSql = where ? sql` where ${where}` : undefined;\n\n\t\tconst orderBySql = this.buildOrderBy(orderBy);\n\n\t\tconst limitSql = this.buildLimit(limit);\n\n\t\treturn sql`${withSql}delete from ${table}${whereSql}${returningSql}${orderBySql}${limitSql}`;\n\t}\n\n\tbuildUpdateSet(table: SQLiteTable, set: UpdateSet, extensions?: DrizzleSQLiteExtension[]): SQL {\n\t\tconst tableColumns = table[Table.Symbol.Columns];\n\n\t\tconst columnNames = Object.keys(tableColumns).filter((colName) =>\n\t\t\tset[colName] !== undefined || tableColumns[colName]?.onUpdateFn !== undefined\n\t\t);\n\n\t\tconst setSize = columnNames.length;\n\t\treturn sql.join(columnNames.flatMap((colName, i) => {\n\t\t\tconst col = tableColumns[colName]!;\n\t\t\tconst ext = col[requiredExtension];\n\n\t\t\tconst value = set[colName]\n\t\t\t\t?? (ext && columnExtensionsCheck(col, extensions)\n\t\t\t\t\t? sql.extensionParam(ext, col.onUpdateFn!(), col)\n\t\t\t\t\t: sql.param(col.onUpdateFn!(), col));\n\t\t\tconst res = sql`${sql.identifier(this.casing.getColumnCasing(col))} = ${value}`;\n\n\t\t\tif (i < setSize - 1) {\n\t\t\t\treturn [res, sql.raw(', ')];\n\t\t\t}\n\t\t\treturn [res];\n\t\t}));\n\t}\n\n\tbuildUpdateQuery(\n\t\t{ table, set, where, returning, withList, joins, from, limit, orderBy }: SQLiteUpdateConfig,\n\t\textensions?: DrizzleSQLiteExtension[],\n\t): SQL {\n\t\tconst withSql = this.buildWithCTE(withList);\n\n\t\tconst setSql = this.buildUpdateSet(table, set, extensions);\n\n\t\tconst fromSql = from && sql.join([sql.raw(' from '), this.buildFromTable(from)]);\n\n\t\tconst joinsSql = this.buildJoins(joins);\n\n\t\tconst returningSql = returning\n\t\t\t? sql` returning ${this.buildSelection(returning, { isSingleTable: true }, extensions)}`\n\t\t\t: undefined;\n\n\t\tconst whereSql = where ? sql` where ${where}` : undefined;\n\n\t\tconst orderBySql = this.buildOrderBy(orderBy);\n\n\t\tconst limitSql = this.buildLimit(limit);\n\n\t\treturn sql`${withSql}update ${table} set ${setSql}${fromSql}${joinsSql}${whereSql}${returningSql}${orderBySql}${limitSql}`;\n\t}\n\n\t/**\n\t * Builds selection SQL with provided fields/expressions\n\t *\n\t * Examples:\n\t *\n\t * `select <selection> from`\n\t *\n\t * `insert ... returning <selection>`\n\t *\n\t * If `isSingleTable` is true, then columns won't be prefixed with table name\n\t */\n\tprivate buildSelection(\n\t\tfields: SelectedFieldsOrdered,\n\t\t{ isSingleTable = false }: { isSingleTable?: boolean } = {},\n\t\textensions?: DrizzleSQLiteExtension[],\n\t): SQL {\n\t\tconst columnsLen = fields.length;\n\n\t\tconst chunks = fields\n\t\t\t.flatMap(({ field }, i) => {\n\t\t\t\tconst chunk: SQLChunk[] = [];\n\n\t\t\t\tif (is(field, SQL.Aliased) && field.isSelectionField) {\n\t\t\t\t\tchunk.push(sql.identifier(field.fieldAlias));\n\t\t\t\t} else if (is(field, SQL.Aliased) || is(field, SQL)) {\n\t\t\t\t\tconst query = is(field, SQL.Aliased) ? field.sql : field;\n\n\t\t\t\t\tif (isSingleTable) {\n\t\t\t\t\t\tchunk.push(\n\t\t\t\t\t\t\tnew SQL(\n\t\t\t\t\t\t\t\tquery.queryChunks.map((c) => {\n\t\t\t\t\t\t\t\t\tif (is(c, Column)) {\n\t\t\t\t\t\t\t\t\t\tcolumnExtensionsCheck(c, extensions);\n\n\t\t\t\t\t\t\t\t\t\tif (c.columnType === 'SQLiteNumericBigInt') {\n\t\t\t\t\t\t\t\t\t\t\treturn sql`cast(${sql.identifier(this.casing.getColumnCasing(c))} as text)`;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\treturn sql.identifier(this.casing.getColumnCasing(c));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn c;\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchunk.push(query);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (is(field, SQL.Aliased)) {\n\t\t\t\t\t\tchunk.push(sql` as ${sql.identifier(field.fieldAlias)}`);\n\t\t\t\t\t}\n\t\t\t\t} else if (is(field, Column)) {\n\t\t\t\t\tcolumnExtensionsCheck(field, extensions);\n\n\t\t\t\t\tconst tableName = field.table[Table.Symbol.Name];\n\t\t\t\t\tif (field.columnType === 'SQLiteNumericBigInt') {\n\t\t\t\t\t\tif (isSingleTable) {\n\t\t\t\t\t\t\tchunk.push(sql`cast(${sql.identifier(this.casing.getColumnCasing(field))} as text)`);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tchunk.push(\n\t\t\t\t\t\t\t\tsql`cast(${sql.identifier(tableName)}.${sql.identifier(this.casing.getColumnCasing(field))} as text)`,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (isSingleTable) {\n\t\t\t\t\t\t\tchunk.push(sql.identifier(this.casing.getColumnCasing(field)));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tchunk.push(sql`${sql.identifier(tableName)}.${sql.identifier(this.casing.getColumnCasing(field))}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (i < columnsLen - 1) {\n\t\t\t\t\tchunk.push(sql`, `);\n\t\t\t\t}\n\n\t\t\t\treturn chunk;\n\t\t\t});\n\n\t\treturn sql.join(chunks);\n\t}\n\n\tprivate buildJoins(joins: SQLiteSelectJoinConfig[] | undefined): SQL | undefined {\n\t\tif (!joins || joins.length === 0) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst joinsArray: SQL[] = [];\n\n\t\tif (joins) {\n\t\t\tfor (const [index, joinMeta] of joins.entries()) {\n\t\t\t\tif (index === 0) {\n\t\t\t\t\tjoinsArray.push(sql` `);\n\t\t\t\t}\n\t\t\t\tconst table = joinMeta.table;\n\t\t\t\tconst onSql = joinMeta.on ? sql` on ${joinMeta.on}` : undefined;\n\n\t\t\t\tif (is(table, SQLiteTable)) {\n\t\t\t\t\tconst tableName = table[SQLiteTable.Symbol.Name];\n\t\t\t\t\tconst tableSchema = table[SQLiteTable.Symbol.Schema];\n\t\t\t\t\tconst origTableName = table[SQLiteTable.Symbol.OriginalName];\n\t\t\t\t\tconst alias = tableName === origTableName ? undefined : joinMeta.alias;\n\t\t\t\t\tjoinsArray.push(\n\t\t\t\t\t\tsql`${sql.raw(joinMeta.joinType)} join ${tableSchema ? sql`${sql.identifier(tableSchema)}.` : undefined}${\n\t\t\t\t\t\t\tsql.identifier(origTableName)\n\t\t\t\t\t\t}${alias && sql` ${sql.identifier(alias)}`}${onSql}`,\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tjoinsArray.push(\n\t\t\t\t\t\tsql`${sql.raw(joinMeta.joinType)} join ${table}${onSql}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (index < joins.length - 1) {\n\t\t\t\t\tjoinsArray.push(sql` `);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn sql.join(joinsArray);\n\t}\n\n\tprivate buildLimit(limit: number | Placeholder | undefined): SQL | undefined {\n\t\treturn typeof limit === 'object' || (typeof limit === 'number' && limit >= 0)\n\t\t\t? sql` limit ${limit}`\n\t\t\t: undefined;\n\t}\n\n\tprivate buildOrderBy(orderBy: (SQLiteColumn | SQL | SQL.Aliased)[] | undefined): SQL | undefined {\n\t\tconst orderByList: (SQLiteColumn | SQL | SQL.Aliased)[] = [];\n\n\t\tif (orderBy) {\n\t\t\tfor (const [index, orderByValue] of orderBy.entries()) {\n\t\t\t\torderByList.push(orderByValue);\n\n\t\t\t\tif (index < orderBy.length - 1) {\n\t\t\t\t\torderByList.push(sql`, `);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn orderByList.length > 0 ? sql` order by ${sql.join(orderByList)}` : undefined;\n\t}\n\n\tprivate buildFromTable(\n\t\ttable: SQL | Subquery | SQLiteViewBase | SQLiteTable | undefined,\n\t): SQL | Subquery | SQLiteViewBase | SQLiteTable | undefined {\n\t\tif (is(table, Table) && table[Table.Symbol.IsAlias]) {\n\t\t\treturn sql`${sql`${sql.identifier(table[Table.Symbol.Schema] ?? '')}.`.if(table[Table.Symbol.Schema])}${\n\t\t\t\tsql.identifier(table[Table.Symbol.OriginalName])\n\t\t\t} ${sql.identifier(table[Table.Symbol.Name])}`;\n\t\t}\n\n\t\treturn table;\n\t}\n\n\tbuildSelectQuery(\n\t\t{\n\t\t\twithList,\n\t\t\tfields,\n\t\t\tfieldsFlat,\n\t\t\twhere,\n\t\t\thaving,\n\t\t\ttable,\n\t\t\tjoins,\n\t\t\torderBy,\n\t\t\tgroupBy,\n\t\t\tlimit,\n\t\t\toffset,\n\t\t\tdistinct,\n\t\t\tsetOperators,\n\t\t}: SQLiteSelectConfig,\n\t\textensions?: DrizzleSQLiteExtension[],\n\t): SQL {\n\t\tconst fieldsList = fieldsFlat ?? orderSelectedFields<SQLiteColumn>(fields);\n\t\tfor (const f of fieldsList) {\n\t\t\tif (\n\t\t\t\tis(f.field, Column)\n\t\t\t\t&& getTableName(f.field.table)\n\t\t\t\t\t!== (is(table, Subquery)\n\t\t\t\t\t\t? table._.alias\n\t\t\t\t\t\t: is(table, SQLiteViewBase)\n\t\t\t\t\t\t? table[ViewBaseConfig].name\n\t\t\t\t\t\t: is(table, SQL)\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: getTableName(table))\n\t\t\t\t&& !((table) =>\n\t\t\t\t\tjoins?.some(({ alias }) =>\n\t\t\t\t\t\talias === (table[Table.Symbol.IsAlias] ? getTableName(table) : table[Table.Symbol.BaseName])\n\t\t\t\t\t))(f.field.table)\n\t\t\t) {\n\t\t\t\tconst tableName = getTableName(f.field.table);\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Your \"${\n\t\t\t\t\t\tf.path.join('->')\n\t\t\t\t\t}\" field references a column \"${tableName}\".\"${f.field.name}\", but the table \"${tableName}\" is not part of the query! Did you forget to join it?`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tconst isSingleTable = !joins || joins.length === 0;\n\n\t\tconst withSql = this.buildWithCTE(withList);\n\n\t\tconst distinctSql = distinct ? sql` distinct` : undefined;\n\n\t\tconst selection = this.buildSelection(fieldsList, { isSingleTable }, extensions);\n\n\t\tconst tableSql = this.buildFromTable(table);\n\n\t\tconst joinsSql = this.buildJoins(joins);\n\n\t\tconst whereSql = where ? sql` where ${where}` : undefined;\n\n\t\tconst havingSql = having ? sql` having ${having}` : undefined;\n\n\t\tconst groupByList: (SQL | AnyColumn | SQL.Aliased)[] = [];\n\t\tif (groupBy) {\n\t\t\tfor (const [index, groupByValue] of groupBy.entries()) {\n\t\t\t\tgroupByList.push(groupByValue);\n\n\t\t\t\tif (index < groupBy.length - 1) {\n\t\t\t\t\tgroupByList.push(sql`, `);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst groupBySql = groupByList.length > 0 ? sql` group by ${sql.join(groupByList)}` : undefined;\n\n\t\tconst orderBySql = this.buildOrderBy(orderBy);\n\n\t\tconst limitSql = this.buildLimit(limit);\n\n\t\tconst offsetSql = offset ? sql` offset ${offset}` : undefined;\n\n\t\tconst finalQuery =\n\t\t\tsql`${withSql}select${distinctSql} ${selection} from ${tableSql}${joinsSql}${whereSql}${groupBySql}${havingSql}${orderBySql}${limitSql}${offsetSql}`;\n\n\t\tif (setOperators.length > 0) {\n\t\t\treturn this.buildSetOperations(finalQuery, setOperators);\n\t\t}\n\n\t\treturn finalQuery;\n\t}\n\n\tbuildSetOperations(leftSelect: SQL, setOperators: SQLiteSelectConfig['setOperators']): SQL {\n\t\tconst [setOperator, ...rest] = setOperators;\n\n\t\tif (!setOperator) {\n\t\t\tthrow new Error('Cannot pass undefined values to any set operator');\n\t\t}\n\n\t\tif (rest.length === 0) {\n\t\t\treturn this.buildSetOperationQuery({ leftSelect, setOperator });\n\t\t}\n\n\t\t// Some recursive magic here\n\t\treturn this.buildSetOperations(\n\t\t\tthis.buildSetOperationQuery({ leftSelect, setOperator }),\n\t\t\trest,\n\t\t);\n\t}\n\n\tbuildSetOperationQuery({\n\t\tleftSelect,\n\t\tsetOperator: { type, isAll, rightSelect, limit, orderBy, offset },\n\t}: { leftSelect: SQL; setOperator: SQLiteSelectConfig['setOperators'][number] }): SQL {\n\t\t// SQLite doesn't support parenthesis in set operations\n\t\tconst leftChunk = sql`${leftSelect.getSQL()} `;\n\t\tconst rightChunk = sql`${rightSelect.getSQL()}`;\n\n\t\tlet orderBySql;\n\t\tif (orderBy && orderBy.length > 0) {\n\t\t\tconst orderByValues: (SQL<unknown> | Name)[] = [];\n\n\t\t\t// The next bit is necessary because the sql operator replaces ${table.column} with `table`.`column`\n\t\t\t// which is invalid Sql syntax, Table from one of the SELECTs cannot be used in global ORDER clause\n\t\t\tfor (const singleOrderBy of orderBy) {\n\t\t\t\tif (is(singleOrderBy, SQLiteColumn)) {\n\t\t\t\t\torderByValues.push(sql.identifier(singleOrderBy.name));\n\t\t\t\t} else if (is(singleOrderBy, SQL)) {\n\t\t\t\t\tfor (let i = 0; i < singleOrderBy.queryChunks.length; i++) {\n\t\t\t\t\t\tconst chunk = singleOrderBy.queryChunks[i];\n\n\t\t\t\t\t\tif (is(chunk, SQLiteColumn)) {\n\t\t\t\t\t\t\tsingleOrderBy.queryChunks[i] = sql.identifier(this.casing.getColumnCasing(chunk));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\torderByValues.push(sql`${singleOrderBy}`);\n\t\t\t\t} else {\n\t\t\t\t\torderByValues.push(sql`${singleOrderBy}`);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\torderBySql = sql` order by ${sql.join(orderByValues, sql`, `)}`;\n\t\t}\n\n\t\tconst limitSql = typeof limit === 'object' || (typeof limit === 'number' && limit >= 0)\n\t\t\t? sql` limit ${limit}`\n\t\t\t: undefined;\n\n\t\tconst operatorChunk = sql.raw(`${type} ${isAll ? 'all ' : ''}`);\n\n\t\tconst offsetSql = offset ? sql` offset ${offset}` : undefined;\n\n\t\treturn sql`${leftChunk}${operatorChunk}${rightChunk}${orderBySql}${limitSql}${offsetSql}`;\n\t}\n\n\tbuildInsertQuery(\n\t\t{ table, values: valuesOrSelect, onConflict, returning, withList, select }: SQLiteInsertConfig,\n\t\textensions?: DrizzleSQLiteExtension[],\n\t): SQL {\n\t\t// const isSingleValue = values.length === 1;\n\t\tconst valuesSqlList: ((SQLChunk | SQL)[] | SQL)[] = [];\n\t\tconst columns: Record<string, SQLiteColumn> = table[Table.Symbol.Columns];\n\n\t\tconst colEntries: [string, SQLiteColumn][] = Object.entries(columns).filter(([_, col]) =>\n\t\t\t!col.shouldDisableInsert()\n\t\t);\n\t\tconst insertOrder = colEntries.map(([, column]) => sql.identifier(this.casing.getColumnCasing(column)));\n\n\t\tif (select) {\n\t\t\tconst select = valuesOrSelect as AnySQLiteSelectQueryBuilder | SQL;\n\n\t\t\tif (is(select, SQL)) {\n\t\t\t\tvaluesSqlList.push(select);\n\t\t\t} else {\n\t\t\t\tvaluesSqlList.push(select.getSQL());\n\t\t\t}\n\t\t} else {\n\t\t\tconst values = valuesOrSelect as Record<string, Param | SQL>[];\n\t\t\tvaluesSqlList.push(sql.raw('values '));\n\n\t\t\tfor (const [valueIndex, value] of values.entries()) {\n\t\t\t\tconst valueList: (SQLChunk | SQL)[] = [];\n\t\t\t\tfor (const [fieldName, col] of colEntries) {\n\t\t\t\t\tconst ext = col[requiredExtension];\n\n\t\t\t\t\tconst colValue = value[fieldName];\n\t\t\t\t\tif (colValue === undefined || (is(colValue, Param) && colValue.value === undefined)) {\n\t\t\t\t\t\tlet defaultValue;\n\t\t\t\t\t\tif (col.default !== null && col.default !== undefined) {\n\t\t\t\t\t\t\tdefaultValue = is(col.default, SQL) ? col.default : sql.param(col.default, col);\n\t\t\t\t\t\t\t// eslint-disable-next-line unicorn/no-negated-condition\n\t\t\t\t\t\t} else if (col.defaultFn !== undefined) {\n\t\t\t\t\t\t\tconst defaultFnResult = col.defaultFn();\n\t\t\t\t\t\t\tdefaultValue = is(defaultFnResult, SQL)\n\t\t\t\t\t\t\t\t? defaultFnResult\n\t\t\t\t\t\t\t\t: (ext && columnExtensionsCheck(col, extensions)\n\t\t\t\t\t\t\t\t\t? sql.extensionParam(ext, defaultFnResult, col)\n\t\t\t\t\t\t\t\t\t: sql.param(defaultFnResult, col));\n\t\t\t\t\t\t\t// eslint-disable-next-line unicorn/no-negated-condition\n\t\t\t\t\t\t} else if (!col.default && col.onUpdateFn !== undefined) {\n\t\t\t\t\t\t\tcolumnExtensionsCheck(col, extensions);\n\n\t\t\t\t\t\t\tconst onUpdateFnResult = col.onUpdateFn();\n\t\t\t\t\t\t\tdefaultValue = is(onUpdateFnResult, SQL)\n\t\t\t\t\t\t\t\t? onUpdateFnResult\n\t\t\t\t\t\t\t\t: (ext && columnExtensionsCheck(col, extensions)\n\t\t\t\t\t\t\t\t\t? sql.extensionParam(ext, onUpdateFnResult, col)\n\t\t\t\t\t\t\t\t\t: sql.param(onUpdateFnResult, col));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdefaultValue = sql`null`;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalueList.push(defaultValue);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (ext && !is(colValue, SQL) && colValue.value !== null) columnExtensionsCheck(col, extensions);\n\n\t\t\t\t\t\tvalueList.push(colValue);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvaluesSqlList.push(valueList);\n\t\t\t\tif (valueIndex < values.length - 1) {\n\t\t\t\t\tvaluesSqlList.push(sql`, `);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst withSql = this.buildWithCTE(withList);\n\n\t\tconst valuesSql = sql.join(valuesSqlList);\n\n\t\tconst returningSql = returning\n\t\t\t? sql` returning ${this.buildSelection(returning, { isSingleTable: true }, extensions)}`\n\t\t\t: undefined;\n\n\t\tconst onConflictSql = onConflict?.length\n\t\t\t? sql.join(onConflict)\n\t\t\t: undefined;\n\n\t\t// if (isSingleValue && valuesSqlList.length === 0){\n\t\t// \treturn sql`insert into ${table} default values ${onConflictSql}${returningSql}`;\n\t\t// }\n\n\t\treturn sql`${withSql}insert into ${table} ${insertOrder} ${valuesSql}${onConflictSql}${returningSql}`;\n\t}\n\n\tsqlToQuery(sql: SQL, invokeSource?: 'indexes' | undefined): QueryWithTypings {\n\t\treturn sql.toQuery({\n\t\t\tcasing: this.casing,\n\t\t\tescapeName: this.escapeName,\n\t\t\tescapeParam: this.escapeParam,\n\t\t\tescapeString: this.escapeString,\n\t\t\tinvokeSource,\n\t\t});\n\t}\n\n\tbuildRelationalQuery({\n\t\tfullSchema,\n\t\tschema,\n\t\ttableNamesMap,\n\t\ttable,\n\t\ttableConfig,\n\t\tqueryConfig: config,\n\t\ttableAlias,\n\t\tnestedQueryRelation,\n\t\tjoinOn,\n\t}: {\n\t\tfullSchema: Record<string, unknown>;\n\t\tschema: TablesRelationalConfig;\n\t\ttableNamesMap: Record<string, string>;\n\t\ttable: SQLiteTable;\n\t\ttableConfig: TableRelationalConfig;\n\t\tqueryConfig: true | DBQueryConfig<'many', true>;\n\t\ttableAlias: string;\n\t\tnestedQueryRelation?: Relation;\n\t\tjoinOn?: SQL;\n\t}, extensions?: DrizzleSQLiteExtension[]): BuildRelationalQueryResult<SQLiteTable, SQLiteColumn> {\n\t\tlet selection: BuildRelationalQueryResult<SQLiteTable, SQLiteColumn>['selection'] = [];\n\t\tlet limit, offset, orderBy: SQLiteSelectConfig['orderBy'] = [], where;\n\t\tconst joins: SQLiteSelectJoinConfig[] = [];\n\n\t\tif (config === true) {\n\t\t\tconst selectionEntries = Object.entries(tableConfig.columns);\n\t\t\tselection = selectionEntries.map((\n\t\t\t\t[key, value],\n\t\t\t) => ({\n\t\t\t\tdbKey: value.name,\n\t\t\t\ttsKey: key,\n\t\t\t\tfield: aliasedTableColumn(value as SQLiteColumn, tableAlias),\n\t\t\t\trelationTableTsKey: undefined,\n\t\t\t\tisJson: false,\n\t\t\t\tselection: [],\n\t\t\t}));\n\t\t} else {\n\t\t\tconst aliasedColumns = Object.fromEntries(\n\t\t\t\tObject.entries(tableConfig.columns).map(([key, value]) => [key, aliasedTableColumn(value, tableAlias)]),\n\t\t\t);\n\n\t\t\tif (config.where) {\n\t\t\t\tconst whereSql = typeof config.where === 'function'\n\t\t\t\t\t? config.where(aliasedColumns, getOperators())\n\t\t\t\t\t: config.where;\n\t\t\t\twhere = whereSql && mapColumnsInSQLToAlias(whereSql, tableAlias);\n\t\t\t}\n\n\t\t\tconst fieldsSelection: { tsKey: string; value: SQLiteColumn | SQL.Aliased }[] = [];\n\t\t\tlet selectedColumns: string[] = [];\n\n\t\t\t// Figure out which columns to select\n\t\t\tif (config.columns) {\n\t\t\t\tlet isIncludeMode = false;\n\n\t\t\t\tfor (const [field, value] of Object.entries(config.columns)) {\n\t\t\t\t\tif (value === undefined) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (field in tableConfig.columns) {\n\t\t\t\t\t\tif (!isIncludeMode && value === true) {\n\t\t\t\t\t\t\tisIncludeMode = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tselectedColumns.push(field);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (selectedColumns.length > 0) {\n\t\t\t\t\tselectedColumns = isIncludeMode\n\t\t\t\t\t\t? selectedColumns.filter((c) => config.columns?.[c] === true)\n\t\t\t\t\t\t: Object.keys(tableConfig.columns).filter((key) => !selectedColumns.includes(key));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Select all columns if selection is not specified\n\t\t\t\tselectedColumns = Object.keys(tableConfig.columns);\n\t\t\t}\n\n\t\t\tfor (const field of selectedColumns) {\n\t\t\t\tconst column = tableConfig.columns[field]! as SQLiteColumn;\n\t\t\t\tfieldsSelection.push({ tsKey: field, value: column });\n\t\t\t}\n\n\t\t\tlet selectedRelations: {\n\t\t\t\ttsKey: string;\n\t\t\t\tqueryConfig: true | DBQueryConfig<'many', false>;\n\t\t\t\trelation: Relation;\n\t\t\t}[] = [];\n\n\t\t\t// Figure out which relations to select\n\t\t\tif (config.with) {\n\t\t\t\tselectedRelations = Object.entries(config.with)\n\t\t\t\t\t.filter((entry): entry is [typeof entry[0], NonNullable<typeof entry[1]>] => !!entry[1])\n\t\t\t\t\t.map(([tsKey, queryConfig]) => ({ tsKey, queryConfig, relation: tableConfig.relations[tsKey]! }));\n\t\t\t}\n\n\t\t\tlet extras;\n\n\t\t\t// Figure out which extras to select\n\t\t\tif (config.extras) {\n\t\t\t\textras = typeof config.extras === 'function'\n\t\t\t\t\t? config.extras(aliasedColumns, { sql })\n\t\t\t\t\t: config.extras;\n\t\t\t\tfor (const [tsKey, value] of Object.entries(extras)) {\n\t\t\t\t\tfieldsSelection.push({\n\t\t\t\t\t\ttsKey,\n\t\t\t\t\t\tvalue: mapColumnsInAliasedSQLToAlias(value, tableAlias),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Transform `fieldsSelection` into `selection`\n\t\t\t// `fieldsSelection` shouldn't be used after this point\n\t\t\tfor (const { tsKey, value } of fieldsSelection) {\n\t\t\t\tselection.push({\n\t\t\t\t\tdbKey: is(value, SQL.Aliased) ? value.fieldAlias : tableConfig.columns[tsKey]!.name,\n\t\t\t\t\ttsKey,\n\t\t\t\t\tfield: is(value, Column) ? aliasedTableColumn(value, tableAlias) : value,\n\t\t\t\t\trelationTableTsKey: undefined,\n\t\t\t\t\tisJson: false,\n\t\t\t\t\tselection: [],\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tlet orderByOrig = typeof config.orderBy === 'function'\n\t\t\t\t? config.orderBy(aliasedColumns, getOrderByOperators())\n\t\t\t\t: config.orderBy ?? [];\n\t\t\tif (!Array.isArray(orderByOrig)) {\n\t\t\t\torderByOrig = [orderByOrig];\n\t\t\t}\n\t\t\torderBy = orderByOrig.map((orderByValue) => {\n\t\t\t\tif (is(orderByValue, Column)) {\n\t\t\t\t\treturn aliasedTableColumn(orderByValue, tableAlias) as SQLiteColumn;\n\t\t\t\t}\n\t\t\t\treturn mapColumnsInSQLToAlias(orderByValue, tableAlias);\n\t\t\t});\n\n\t\t\tlimit = config.limit;\n\t\t\toffset = config.offset;\n\n\t\t\t// Process all relations\n\t\t\tfor (\n\t\t\t\tconst {\n\t\t\t\t\ttsKey: selectedRelationTsKey,\n\t\t\t\t\tqueryConfig: selectedRelationConfigValue,\n\t\t\t\t\trelation,\n\t\t\t\t} of selectedRelations\n\t\t\t) {\n\t\t\t\tconst normalizedRelation = normalizeRelation(schema, tableNamesMap, relation);\n\t\t\t\tconst relationTableName = getTableUniqueName(relation.referencedTable);\n\t\t\t\tconst relationTableTsName = tableNamesMap[relationTableName]!;\n\t\t\t\tconst relationTableAlias = `${tableAlias}_${selectedRelationTsKey}`;\n\t\t\t\t// const relationTable = schema[relationTableTsName]!;\n\t\t\t\tconst joinOn = and(\n\t\t\t\t\t...normalizedRelation.fields.map((field, i) =>\n\t\t\t\t\t\teq(\n\t\t\t\t\t\t\taliasedTableColumn(normalizedRelation.references[i]!, relationTableAlias),\n\t\t\t\t\t\t\taliasedTableColumn(field, tableAlias),\n\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tconst builtRelation = this.buildRelationalQuery({\n\t\t\t\t\tfullSchema,\n\t\t\t\t\tschema,\n\t\t\t\t\ttableNamesMap,\n\t\t\t\t\ttable: fullSchema[relationTableTsName] as SQLiteTable,\n\t\t\t\t\ttableConfig: schema[relationTableTsName]!,\n\t\t\t\t\tqueryConfig: is(relation, One)\n\t\t\t\t\t\t? (selectedRelationConfigValue === true\n\t\t\t\t\t\t\t? { limit: 1 }\n\t\t\t\t\t\t\t: { ...selectedRelationConfigValue, limit: 1 })\n\t\t\t\t\t\t: selectedRelationConfigValue,\n\t\t\t\t\ttableAlias: relationTableAlias,\n\t\t\t\t\tjoinOn,\n\t\t\t\t\tnestedQueryRelation: relation,\n\t\t\t\t}, extensions);\n\t\t\t\tconst field = (sql`(${builtRelation.sql})`).as(selectedRelationTsKey);\n\t\t\t\tselection.push({\n\t\t\t\t\tdbKey: selectedRelationTsKey,\n\t\t\t\t\ttsKey: selectedRelationTsKey,\n\t\t\t\t\tfield,\n\t\t\t\t\trelationTableTsKey: relationTableTsName,\n\t\t\t\t\tisJson: true,\n\t\t\t\t\tselection: builtRelation.selection,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (selection.length === 0) {\n\t\t\tthrow new DrizzleError({\n\t\t\t\tmessage:\n\t\t\t\t\t`No fields selected for table \"${tableConfig.tsName}\" (\"${tableAlias}\"). You need to have at least one item in \"columns\", \"with\" or \"extras\". If you need to select all columns, omit the \"columns\" key or set it to undefined.`,\n\t\t\t});\n\t\t}\n\n\t\tlet result;\n\n\t\twhere = and(joinOn, where);\n\n\t\tif (nestedQueryRelation) {\n\t\t\tlet field = sql`json_array(${\n\t\t\t\tsql.join(\n\t\t\t\t\tselection.map(({ field }) =>\n\t\t\t\t\t\tis(field, SQLiteColumn)\n\t\t\t\t\t\t\t? sql.identifier(this.casing.getColumnCasing(field))\n\t\t\t\t\t\t\t: is(field, SQL.Aliased)\n\t\t\t\t\t\t\t? field.sql\n\t\t\t\t\t\t\t: field\n\t\t\t\t\t),\n\t\t\t\t\tsql`, `,\n\t\t\t\t)\n\t\t\t})`;\n\t\t\tif (is(nestedQueryRelation, Many)) {\n\t\t\t\tfield = sql`coalesce(json_group_array(${field}), json_array())`;\n\t\t\t}\n\t\t\tconst nestedSelection = [{\n\t\t\t\tdbKey: 'data',\n\t\t\t\ttsKey: 'data',\n\t\t\t\tfield: field.as('data'),\n\t\t\t\tisJson: true,\n\t\t\t\trelationTableTsKey: tableConfig.tsName,\n\t\t\t\tselection,\n\t\t\t}];\n\n\t\t\tconst needsSubquery = limit !== undefined || offset !== undefined || orderBy.length > 0;\n\n\t\t\tif (needsSubquery) {\n\t\t\t\tresult = this.buildSelectQuery({\n\t\t\t\t\ttable: aliasedTable(table, tableAlias),\n\t\t\t\t\tfields: {},\n\t\t\t\t\tfieldsFlat: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpath: [],\n\t\t\t\t\t\t\tfield: sql.raw('*'),\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\twhere,\n\t\t\t\t\tlimit,\n\t\t\t\t\toffset,\n\t\t\t\t\torderBy,\n\t\t\t\t\tsetOperators: [],\n\t\t\t\t}, extensions);\n\n\t\t\t\twhere = undefined;\n\t\t\t\tlimit = undefined;\n\t\t\t\toffset = undefined;\n\t\t\t\torderBy = undefined;\n\t\t\t} else {\n\t\t\t\tresult = aliasedTable(table, tableAlias);\n\t\t\t}\n\n\t\t\tresult = this.buildSelectQuery({\n\t\t\t\ttable: is(result, SQLiteTable) ? result : new Subquery(result, {}, tableAlias),\n\t\t\t\tfields: {},\n\t\t\t\tfieldsFlat: nestedSelection.map(({ field }) => ({\n\t\t\t\t\tpath: [],\n\t\t\t\t\tfield: is(field, Column) ? aliasedTableColumn(field, tableAlias) : field,\n\t\t\t\t})),\n\t\t\t\tjoins,\n\t\t\t\twhere,\n\t\t\t\tlimit,\n\t\t\t\toffset,\n\t\t\t\torderBy,\n\t\t\t\tsetOperators: [],\n\t\t\t}, extensions);\n\t\t} else {\n\t\t\tresult = this.buildSelectQuery({\n\t\t\t\ttable: aliasedTable(table, tableAlias),\n\t\t\t\tfields: {},\n\t\t\t\tfieldsFlat: selection.map(({ field }) => ({\n\t\t\t\t\tpath: [],\n\t\t\t\t\tfield: is(field, Column) ? aliasedTableColumn(field, tableAlias) : field,\n\t\t\t\t})),\n\t\t\t\tjoins,\n\t\t\t\twhere,\n\t\t\t\tlimit,\n\t\t\t\toffset,\n\t\t\t\torderBy,\n\t\t\t\tsetOperators: [],\n\t\t\t}, extensions);\n\t\t}\n\n\t\treturn {\n\t\t\ttableTsKey: tableConfig.tsName,\n\t\t\tsql: result,\n\t\t\tselection,\n\t\t};\n\t}\n}\n\nexport class SQLiteSyncDialect extends SQLiteDialect {\n\tstatic override readonly [entityKind]: string = 'SQLiteSyncDialect';\n\n\tmigrate(\n\t\tmigrations: MigrationMeta[],\n\t\tsession: SQLiteSession<'sync', unknown, Record<string, unknown>, TablesRelationalConfig>,\n\t\tconfig?: string | MigrationConfig,\n\t): void {\n\t\tconst migrationsTable = config === undefined\n\t\t\t? '__drizzle_migrations'\n\t\t\t: typeof config === 'string'\n\t\t\t? '__drizzle_migrations'\n\t\t\t: config.migrationsTable ?? '__drizzle_migrations';\n\n\t\tconst migrationTableCreate = sql`\n\t\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\t\tid SERIAL PRIMARY KEY,\n\t\t\t\thash text NOT NULL,\n\t\t\t\tcreated_at numeric\n\t\t\t)\n\t\t`;\n\t\tsession.run(migrationTableCreate);\n\n\t\tconst dbMigrations = session.values<[number, string, string]>(\n\t\t\tsql`SELECT id, hash, created_at FROM ${sql.identifier(migrationsTable)} ORDER BY created_at DESC LIMIT 1`,\n\t\t);\n\n\t\tconst lastDbMigration = dbMigrations[0] ?? undefined;\n\t\tsession.run(sql`BEGIN`);\n\n\t\ttry {\n\t\t\tfor (const migration of migrations) {\n\t\t\t\tif (!lastDbMigration || Number(lastDbMigration[2])! < migration.folderMillis) {\n\t\t\t\t\tfor (const stmt of migration.sql) {\n\t\t\t\t\t\tsession.run(sql.raw(stmt));\n\t\t\t\t\t}\n\t\t\t\t\tsession.run(\n\t\t\t\t\t\tsql`INSERT INTO ${\n\t\t\t\t\t\t\tsql.identifier(migrationsTable)\n\t\t\t\t\t\t} (\"hash\", \"created_at\") VALUES(${migration.hash}, ${migration.folderMillis})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsession.run(sql`COMMIT`);\n\t\t} catch (e) {\n\t\t\tsession.run(sql`ROLLBACK`);\n\t\t\tthrow e;\n\t\t}\n\t}\n}\n\nexport class SQLiteAsyncDialect extends SQLiteDialect {\n\tstatic override readonly [entityKind]: string = 'SQLiteAsyncDialect';\n\n\tasync migrate(\n\t\tmigrations: MigrationMeta[],\n\t\tsession: SQLiteSession<'async', any, any, any>,\n\t\tconfig?: string | MigrationConfig,\n\t): Promise<void> {\n\t\tconst migrationsTable = config === undefined\n\t\t\t? '__drizzle_migrations'\n\t\t\t: typeof config === 'string'\n\t\t\t? '__drizzle_migrations'\n\t\t\t: config.migrationsTable ?? '__drizzle_migrations';\n\n\t\tconst migrationTableCreate = sql`\n\t\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\t\tid SERIAL PRIMARY KEY,\n\t\t\t\thash text NOT NULL,\n\t\t\t\tcreated_at numeric\n\t\t\t)\n\t\t`;\n\t\tawait session.run(migrationTableCreate);\n\n\t\tconst dbMigrations = await session.values<[number, string, string]>(\n\t\t\tsql`SELECT id, hash, created_at FROM ${sql.identifier(migrationsTable)} ORDER BY created_at DESC LIMIT 1`,\n\t\t);\n\n\t\tconst lastDbMigration = dbMigrations[0] ?? undefined;\n\n\t\tawait session.transaction(async (tx) => {\n\t\t\tfor (const migration of migrations) {\n\t\t\t\tif (!lastDbMigration || Number(lastDbMigration[2])! < migration.folderMillis) {\n\t\t\t\t\tfor (const stmt of migration.sql) {\n\t\t\t\t\t\tawait tx.run(sql.raw(stmt));\n\t\t\t\t\t}\n\t\t\t\t\tawait tx.run(\n\t\t\t\t\t\tsql`INSERT INTO ${\n\t\t\t\t\t\t\tsql.identifier(migrationsTable)\n\t\t\t\t\t\t} (\"hash\", \"created_at\") VALUES(${migration.hash}, ${migration.folderMillis})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n"],"mappings":"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","names":["import_sql","import_table","table","select","sql","joinOn","field"]}
1
+ {"version":3,"sources":["../../src/sqlite-core/dialect.ts"],"sourcesContent":["import { aliasedTable, aliasedTableColumn, mapColumnsInAliasedSQLToAlias, mapColumnsInSQLToAlias } from '~/alias.ts';\nimport { CasingCache } from '~/casing.ts';\nimport type { AnyColumn } from '~/column.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport { DrizzleError } from '~/errors.ts';\nimport type { MigrationConfig, MigrationMeta } from '~/migrator.ts';\nimport {\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tgetOperators,\n\tgetOrderByOperators,\n\tMany,\n\tnormalizeRelation,\n\tOne,\n\ttype Relation,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { Name, Placeholder } from '~/sql/index.ts';\nimport { and, eq } from '~/sql/index.ts';\nimport { Param, type QueryWithTypings, SQL, sql, type SQLChunk } from '~/sql/sql.ts';\nimport { SQLiteColumn } from '~/sqlite-core/columns/index.ts';\nimport type {\n\tAnySQLiteSelectQueryBuilder,\n\tSQLiteDeleteConfig,\n\tSQLiteInsertConfig,\n\tSQLiteUpdateConfig,\n} from '~/sqlite-core/query-builders/index.ts';\nimport { SQLiteTable } from '~/sqlite-core/table.ts';\nimport { Subquery } from '~/subquery.ts';\nimport { getTableName, getTableUniqueName, Table } from '~/table.ts';\nimport { type Casing, orderSelectedFields, type UpdateSet } from '~/utils.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type {\n\tSelectedFieldsOrdered,\n\tSQLiteSelectConfig,\n\tSQLiteSelectJoinConfig,\n} from './query-builders/select.types.ts';\nimport type { SQLiteSession } from './session.ts';\nimport { SQLiteViewBase } from './view-base.ts';\n\nexport interface SQLiteDialectConfig {\n\tcasing?: Casing;\n}\n\nexport abstract class SQLiteDialect {\n\tstatic readonly [entityKind]: string = 'SQLiteDialect';\n\n\t/** @internal */\n\treadonly casing: CasingCache;\n\n\tconstructor(config?: SQLiteDialectConfig) {\n\t\tthis.casing = new CasingCache(config?.casing);\n\t}\n\n\tescapeName(name: string): string {\n\t\treturn `\"${name}\"`;\n\t}\n\n\tescapeParam(_num: number): string {\n\t\treturn '?';\n\t}\n\n\tescapeString(str: string): string {\n\t\treturn `'${str.replace(/'/g, \"''\")}'`;\n\t}\n\n\tprivate buildWithCTE(queries: Subquery[] | undefined): SQL | undefined {\n\t\tif (!queries?.length) return undefined;\n\n\t\tconst withSqlChunks = [sql`with `];\n\t\tfor (const [i, w] of queries.entries()) {\n\t\t\twithSqlChunks.push(sql`${sql.identifier(w._.alias)} as (${w._.sql})`);\n\t\t\tif (i < queries.length - 1) {\n\t\t\t\twithSqlChunks.push(sql`, `);\n\t\t\t}\n\t\t}\n\t\twithSqlChunks.push(sql` `);\n\t\treturn sql.join(withSqlChunks);\n\t}\n\n\tbuildDeleteQuery({ table, where, returning, withList, limit, orderBy }: SQLiteDeleteConfig): SQL {\n\t\tconst withSql = this.buildWithCTE(withList);\n\n\t\tconst returningSql = returning\n\t\t\t? sql` returning ${this.buildSelection(returning, { isSingleTable: true })}`\n\t\t\t: undefined;\n\n\t\tconst whereSql = where ? sql` where ${where}` : undefined;\n\n\t\tconst orderBySql = this.buildOrderBy(orderBy);\n\n\t\tconst limitSql = this.buildLimit(limit);\n\n\t\treturn sql`${withSql}delete from ${table}${whereSql}${returningSql}${orderBySql}${limitSql}`;\n\t}\n\n\tbuildUpdateSet(table: SQLiteTable, set: UpdateSet): SQL {\n\t\tconst tableColumns = table[Table.Symbol.Columns];\n\n\t\tconst columnNames = Object.keys(tableColumns).filter((colName) =>\n\t\t\tset[colName] !== undefined || tableColumns[colName]?.onUpdateFn !== undefined\n\t\t);\n\n\t\tconst setSize = columnNames.length;\n\t\treturn sql.join(columnNames.flatMap((colName, i) => {\n\t\t\tconst col = tableColumns[colName]!;\n\n\t\t\tconst value = set[colName] ?? sql.param(col.onUpdateFn!(), col);\n\t\t\tconst res = sql`${sql.identifier(this.casing.getColumnCasing(col))} = ${value}`;\n\n\t\t\tif (i < setSize - 1) {\n\t\t\t\treturn [res, sql.raw(', ')];\n\t\t\t}\n\t\t\treturn [res];\n\t\t}));\n\t}\n\n\tbuildUpdateQuery({ table, set, where, returning, withList, joins, from, limit, orderBy }: SQLiteUpdateConfig): SQL {\n\t\tconst withSql = this.buildWithCTE(withList);\n\n\t\tconst setSql = this.buildUpdateSet(table, set);\n\n\t\tconst fromSql = from && sql.join([sql.raw(' from '), this.buildFromTable(from)]);\n\n\t\tconst joinsSql = this.buildJoins(joins);\n\n\t\tconst returningSql = returning\n\t\t\t? sql` returning ${this.buildSelection(returning, { isSingleTable: true })}`\n\t\t\t: undefined;\n\n\t\tconst whereSql = where ? sql` where ${where}` : undefined;\n\n\t\tconst orderBySql = this.buildOrderBy(orderBy);\n\n\t\tconst limitSql = this.buildLimit(limit);\n\n\t\treturn sql`${withSql}update ${table} set ${setSql}${fromSql}${joinsSql}${whereSql}${returningSql}${orderBySql}${limitSql}`;\n\t}\n\n\t/**\n\t * Builds selection SQL with provided fields/expressions\n\t *\n\t * Examples:\n\t *\n\t * `select <selection> from`\n\t *\n\t * `insert ... returning <selection>`\n\t *\n\t * If `isSingleTable` is true, then columns won't be prefixed with table name\n\t */\n\tprivate buildSelection(\n\t\tfields: SelectedFieldsOrdered,\n\t\t{ isSingleTable = false }: { isSingleTable?: boolean } = {},\n\t): SQL {\n\t\tconst columnsLen = fields.length;\n\n\t\tconst chunks = fields\n\t\t\t.flatMap(({ field }, i) => {\n\t\t\t\tconst chunk: SQLChunk[] = [];\n\n\t\t\t\tif (is(field, SQL.Aliased) && field.isSelectionField) {\n\t\t\t\t\tchunk.push(sql.identifier(field.fieldAlias));\n\t\t\t\t} else if (is(field, SQL.Aliased) || is(field, SQL)) {\n\t\t\t\t\tconst query = is(field, SQL.Aliased) ? field.sql : field;\n\n\t\t\t\t\tif (isSingleTable) {\n\t\t\t\t\t\tchunk.push(\n\t\t\t\t\t\t\tnew SQL(\n\t\t\t\t\t\t\t\tquery.queryChunks.map((c) => {\n\t\t\t\t\t\t\t\t\tif (is(c, Column)) {\n\t\t\t\t\t\t\t\t\t\treturn sql.identifier(this.casing.getColumnCasing(c));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn c;\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchunk.push(query);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (is(field, SQL.Aliased)) {\n\t\t\t\t\t\tchunk.push(sql` as ${sql.identifier(field.fieldAlias)}`);\n\t\t\t\t\t}\n\t\t\t\t} else if (is(field, Column)) {\n\t\t\t\t\tconst tableName = field.table[Table.Symbol.Name];\n\t\t\t\t\tif (field.columnType === 'SQLiteNumericBigInt') {\n\t\t\t\t\t\tif (isSingleTable) {\n\t\t\t\t\t\t\tchunk.push(sql`cast(${sql.identifier(this.casing.getColumnCasing(field))} as text)`);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tchunk.push(\n\t\t\t\t\t\t\t\tsql`cast(${sql.identifier(tableName)}.${sql.identifier(this.casing.getColumnCasing(field))} as text)`,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (isSingleTable) {\n\t\t\t\t\t\t\tchunk.push(sql.identifier(this.casing.getColumnCasing(field)));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tchunk.push(sql`${sql.identifier(tableName)}.${sql.identifier(this.casing.getColumnCasing(field))}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (i < columnsLen - 1) {\n\t\t\t\t\tchunk.push(sql`, `);\n\t\t\t\t}\n\n\t\t\t\treturn chunk;\n\t\t\t});\n\n\t\treturn sql.join(chunks);\n\t}\n\n\tprivate buildJoins(joins: SQLiteSelectJoinConfig[] | undefined): SQL | undefined {\n\t\tif (!joins || joins.length === 0) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst joinsArray: SQL[] = [];\n\n\t\tif (joins) {\n\t\t\tfor (const [index, joinMeta] of joins.entries()) {\n\t\t\t\tif (index === 0) {\n\t\t\t\t\tjoinsArray.push(sql` `);\n\t\t\t\t}\n\t\t\t\tconst table = joinMeta.table;\n\t\t\t\tconst onSql = joinMeta.on ? sql` on ${joinMeta.on}` : undefined;\n\n\t\t\t\tif (is(table, SQLiteTable)) {\n\t\t\t\t\tconst tableName = table[SQLiteTable.Symbol.Name];\n\t\t\t\t\tconst tableSchema = table[SQLiteTable.Symbol.Schema];\n\t\t\t\t\tconst origTableName = table[SQLiteTable.Symbol.OriginalName];\n\t\t\t\t\tconst alias = tableName === origTableName ? undefined : joinMeta.alias;\n\t\t\t\t\tjoinsArray.push(\n\t\t\t\t\t\tsql`${sql.raw(joinMeta.joinType)} join ${tableSchema ? sql`${sql.identifier(tableSchema)}.` : undefined}${\n\t\t\t\t\t\t\tsql.identifier(origTableName)\n\t\t\t\t\t\t}${alias && sql` ${sql.identifier(alias)}`}${onSql}`,\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tjoinsArray.push(\n\t\t\t\t\t\tsql`${sql.raw(joinMeta.joinType)} join ${table}${onSql}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (index < joins.length - 1) {\n\t\t\t\t\tjoinsArray.push(sql` `);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn sql.join(joinsArray);\n\t}\n\n\tprivate buildLimit(limit: number | Placeholder | undefined): SQL | undefined {\n\t\treturn typeof limit === 'object' || (typeof limit === 'number' && limit >= 0)\n\t\t\t? sql` limit ${limit}`\n\t\t\t: undefined;\n\t}\n\n\tprivate buildOrderBy(orderBy: (SQLiteColumn | SQL | SQL.Aliased)[] | undefined): SQL | undefined {\n\t\tconst orderByList: (SQLiteColumn | SQL | SQL.Aliased)[] = [];\n\n\t\tif (orderBy) {\n\t\t\tfor (const [index, orderByValue] of orderBy.entries()) {\n\t\t\t\torderByList.push(orderByValue);\n\n\t\t\t\tif (index < orderBy.length - 1) {\n\t\t\t\t\torderByList.push(sql`, `);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn orderByList.length > 0 ? sql` order by ${sql.join(orderByList)}` : undefined;\n\t}\n\n\tprivate buildFromTable(\n\t\ttable: SQL | Subquery | SQLiteViewBase | SQLiteTable | undefined,\n\t): SQL | Subquery | SQLiteViewBase | SQLiteTable | undefined {\n\t\tif (is(table, Table) && table[Table.Symbol.IsAlias]) {\n\t\t\treturn sql`${sql`${sql.identifier(table[Table.Symbol.Schema] ?? '')}.`.if(table[Table.Symbol.Schema])}${\n\t\t\t\tsql.identifier(table[Table.Symbol.OriginalName])\n\t\t\t} ${sql.identifier(table[Table.Symbol.Name])}`;\n\t\t}\n\n\t\treturn table;\n\t}\n\n\tbuildSelectQuery(\n\t\t{\n\t\t\twithList,\n\t\t\tfields,\n\t\t\tfieldsFlat,\n\t\t\twhere,\n\t\t\thaving,\n\t\t\ttable,\n\t\t\tjoins,\n\t\t\torderBy,\n\t\t\tgroupBy,\n\t\t\tlimit,\n\t\t\toffset,\n\t\t\tdistinct,\n\t\t\tsetOperators,\n\t\t}: SQLiteSelectConfig,\n\t): SQL {\n\t\tconst fieldsList = fieldsFlat ?? orderSelectedFields<SQLiteColumn>(fields);\n\t\tfor (const f of fieldsList) {\n\t\t\tif (\n\t\t\t\tis(f.field, Column)\n\t\t\t\t&& getTableName(f.field.table)\n\t\t\t\t\t!== (is(table, Subquery)\n\t\t\t\t\t\t? table._.alias\n\t\t\t\t\t\t: is(table, SQLiteViewBase)\n\t\t\t\t\t\t? table[ViewBaseConfig].name\n\t\t\t\t\t\t: is(table, SQL)\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: getTableName(table))\n\t\t\t\t&& !((table) =>\n\t\t\t\t\tjoins?.some(({ alias }) =>\n\t\t\t\t\t\talias === (table[Table.Symbol.IsAlias] ? getTableName(table) : table[Table.Symbol.BaseName])\n\t\t\t\t\t))(f.field.table)\n\t\t\t) {\n\t\t\t\tconst tableName = getTableName(f.field.table);\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Your \"${\n\t\t\t\t\t\tf.path.join('->')\n\t\t\t\t\t}\" field references a column \"${tableName}\".\"${f.field.name}\", but the table \"${tableName}\" is not part of the query! Did you forget to join it?`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tconst isSingleTable = !joins || joins.length === 0;\n\n\t\tconst withSql = this.buildWithCTE(withList);\n\n\t\tconst distinctSql = distinct ? sql` distinct` : undefined;\n\n\t\tconst selection = this.buildSelection(fieldsList, { isSingleTable });\n\n\t\tconst tableSql = this.buildFromTable(table);\n\n\t\tconst joinsSql = this.buildJoins(joins);\n\n\t\tconst whereSql = where ? sql` where ${where}` : undefined;\n\n\t\tconst havingSql = having ? sql` having ${having}` : undefined;\n\n\t\tconst groupByList: (SQL | AnyColumn | SQL.Aliased)[] = [];\n\t\tif (groupBy) {\n\t\t\tfor (const [index, groupByValue] of groupBy.entries()) {\n\t\t\t\tgroupByList.push(groupByValue);\n\n\t\t\t\tif (index < groupBy.length - 1) {\n\t\t\t\t\tgroupByList.push(sql`, `);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst groupBySql = groupByList.length > 0 ? sql` group by ${sql.join(groupByList)}` : undefined;\n\n\t\tconst orderBySql = this.buildOrderBy(orderBy);\n\n\t\tconst limitSql = this.buildLimit(limit);\n\n\t\tconst offsetSql = offset ? sql` offset ${offset}` : undefined;\n\n\t\tconst finalQuery =\n\t\t\tsql`${withSql}select${distinctSql} ${selection} from ${tableSql}${joinsSql}${whereSql}${groupBySql}${havingSql}${orderBySql}${limitSql}${offsetSql}`;\n\n\t\tif (setOperators.length > 0) {\n\t\t\treturn this.buildSetOperations(finalQuery, setOperators);\n\t\t}\n\n\t\treturn finalQuery;\n\t}\n\n\tbuildSetOperations(leftSelect: SQL, setOperators: SQLiteSelectConfig['setOperators']): SQL {\n\t\tconst [setOperator, ...rest] = setOperators;\n\n\t\tif (!setOperator) {\n\t\t\tthrow new Error('Cannot pass undefined values to any set operator');\n\t\t}\n\n\t\tif (rest.length === 0) {\n\t\t\treturn this.buildSetOperationQuery({ leftSelect, setOperator });\n\t\t}\n\n\t\t// Some recursive magic here\n\t\treturn this.buildSetOperations(\n\t\t\tthis.buildSetOperationQuery({ leftSelect, setOperator }),\n\t\t\trest,\n\t\t);\n\t}\n\n\tbuildSetOperationQuery({\n\t\tleftSelect,\n\t\tsetOperator: { type, isAll, rightSelect, limit, orderBy, offset },\n\t}: { leftSelect: SQL; setOperator: SQLiteSelectConfig['setOperators'][number] }): SQL {\n\t\t// SQLite doesn't support parenthesis in set operations\n\t\tconst leftChunk = sql`${leftSelect.getSQL()} `;\n\t\tconst rightChunk = sql`${rightSelect.getSQL()}`;\n\n\t\tlet orderBySql;\n\t\tif (orderBy && orderBy.length > 0) {\n\t\t\tconst orderByValues: (SQL<unknown> | Name)[] = [];\n\n\t\t\t// The next bit is necessary because the sql operator replaces ${table.column} with `table`.`column`\n\t\t\t// which is invalid Sql syntax, Table from one of the SELECTs cannot be used in global ORDER clause\n\t\t\tfor (const singleOrderBy of orderBy) {\n\t\t\t\tif (is(singleOrderBy, SQLiteColumn)) {\n\t\t\t\t\torderByValues.push(sql.identifier(singleOrderBy.name));\n\t\t\t\t} else if (is(singleOrderBy, SQL)) {\n\t\t\t\t\tfor (let i = 0; i < singleOrderBy.queryChunks.length; i++) {\n\t\t\t\t\t\tconst chunk = singleOrderBy.queryChunks[i];\n\n\t\t\t\t\t\tif (is(chunk, SQLiteColumn)) {\n\t\t\t\t\t\t\tsingleOrderBy.queryChunks[i] = sql.identifier(this.casing.getColumnCasing(chunk));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\torderByValues.push(sql`${singleOrderBy}`);\n\t\t\t\t} else {\n\t\t\t\t\torderByValues.push(sql`${singleOrderBy}`);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\torderBySql = sql` order by ${sql.join(orderByValues, sql`, `)}`;\n\t\t}\n\n\t\tconst limitSql = typeof limit === 'object' || (typeof limit === 'number' && limit >= 0)\n\t\t\t? sql` limit ${limit}`\n\t\t\t: undefined;\n\n\t\tconst operatorChunk = sql.raw(`${type} ${isAll ? 'all ' : ''}`);\n\n\t\tconst offsetSql = offset ? sql` offset ${offset}` : undefined;\n\n\t\treturn sql`${leftChunk}${operatorChunk}${rightChunk}${orderBySql}${limitSql}${offsetSql}`;\n\t}\n\n\tbuildInsertQuery(\n\t\t{ table, values: valuesOrSelect, onConflict, returning, withList, select }: SQLiteInsertConfig,\n\t): SQL {\n\t\t// const isSingleValue = values.length === 1;\n\t\tconst valuesSqlList: ((SQLChunk | SQL)[] | SQL)[] = [];\n\t\tconst columns: Record<string, SQLiteColumn> = table[Table.Symbol.Columns];\n\n\t\tconst colEntries: [string, SQLiteColumn][] = Object.entries(columns).filter(([_, col]) =>\n\t\t\t!col.shouldDisableInsert()\n\t\t);\n\t\tconst insertOrder = colEntries.map(([, column]) => sql.identifier(this.casing.getColumnCasing(column)));\n\n\t\tif (select) {\n\t\t\tconst select = valuesOrSelect as AnySQLiteSelectQueryBuilder | SQL;\n\n\t\t\tif (is(select, SQL)) {\n\t\t\t\tvaluesSqlList.push(select);\n\t\t\t} else {\n\t\t\t\tvaluesSqlList.push(select.getSQL());\n\t\t\t}\n\t\t} else {\n\t\t\tconst values = valuesOrSelect as Record<string, Param | SQL>[];\n\t\t\tvaluesSqlList.push(sql.raw('values '));\n\n\t\t\tfor (const [valueIndex, value] of values.entries()) {\n\t\t\t\tconst valueList: (SQLChunk | SQL)[] = [];\n\t\t\t\tfor (const [fieldName, col] of colEntries) {\n\t\t\t\t\tconst colValue = value[fieldName];\n\t\t\t\t\tif (colValue === undefined || (is(colValue, Param) && colValue.value === undefined)) {\n\t\t\t\t\t\tlet defaultValue;\n\t\t\t\t\t\tif (col.default !== null && col.default !== undefined) {\n\t\t\t\t\t\t\tdefaultValue = is(col.default, SQL) ? col.default : sql.param(col.default, col);\n\t\t\t\t\t\t\t// eslint-disable-next-line unicorn/no-negated-condition\n\t\t\t\t\t\t} else if (col.defaultFn !== undefined) {\n\t\t\t\t\t\t\tconst defaultFnResult = col.defaultFn();\n\t\t\t\t\t\t\tdefaultValue = is(defaultFnResult, SQL) ? defaultFnResult : sql.param(defaultFnResult, col);\n\t\t\t\t\t\t\t// eslint-disable-next-line unicorn/no-negated-condition\n\t\t\t\t\t\t} else if (!col.default && col.onUpdateFn !== undefined) {\n\t\t\t\t\t\t\tconst onUpdateFnResult = col.onUpdateFn();\n\t\t\t\t\t\t\tdefaultValue = is(onUpdateFnResult, SQL) ? onUpdateFnResult : sql.param(onUpdateFnResult, col);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdefaultValue = sql`null`;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalueList.push(defaultValue);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalueList.push(colValue);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvaluesSqlList.push(valueList);\n\t\t\t\tif (valueIndex < values.length - 1) {\n\t\t\t\t\tvaluesSqlList.push(sql`, `);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst withSql = this.buildWithCTE(withList);\n\n\t\tconst valuesSql = sql.join(valuesSqlList);\n\n\t\tconst returningSql = returning\n\t\t\t? sql` returning ${this.buildSelection(returning, { isSingleTable: true })}`\n\t\t\t: undefined;\n\n\t\tconst onConflictSql = onConflict?.length\n\t\t\t? sql.join(onConflict)\n\t\t\t: undefined;\n\n\t\t// if (isSingleValue && valuesSqlList.length === 0){\n\t\t// \treturn sql`insert into ${table} default values ${onConflictSql}${returningSql}`;\n\t\t// }\n\n\t\treturn sql`${withSql}insert into ${table} ${insertOrder} ${valuesSql}${onConflictSql}${returningSql}`;\n\t}\n\n\tsqlToQuery(sql: SQL, invokeSource?: 'indexes' | undefined): QueryWithTypings {\n\t\treturn sql.toQuery({\n\t\t\tcasing: this.casing,\n\t\t\tescapeName: this.escapeName,\n\t\t\tescapeParam: this.escapeParam,\n\t\t\tescapeString: this.escapeString,\n\t\t\tinvokeSource,\n\t\t});\n\t}\n\n\tbuildRelationalQuery({\n\t\tfullSchema,\n\t\tschema,\n\t\ttableNamesMap,\n\t\ttable,\n\t\ttableConfig,\n\t\tqueryConfig: config,\n\t\ttableAlias,\n\t\tnestedQueryRelation,\n\t\tjoinOn,\n\t}: {\n\t\tfullSchema: Record<string, unknown>;\n\t\tschema: TablesRelationalConfig;\n\t\ttableNamesMap: Record<string, string>;\n\t\ttable: SQLiteTable;\n\t\ttableConfig: TableRelationalConfig;\n\t\tqueryConfig: true | DBQueryConfig<'many', true>;\n\t\ttableAlias: string;\n\t\tnestedQueryRelation?: Relation;\n\t\tjoinOn?: SQL;\n\t}): BuildRelationalQueryResult<SQLiteTable, SQLiteColumn> {\n\t\tlet selection: BuildRelationalQueryResult<SQLiteTable, SQLiteColumn>['selection'] = [];\n\t\tlet limit, offset, orderBy: SQLiteSelectConfig['orderBy'] = [], where;\n\t\tconst joins: SQLiteSelectJoinConfig[] = [];\n\n\t\tif (config === true) {\n\t\t\tconst selectionEntries = Object.entries(tableConfig.columns);\n\t\t\tselection = selectionEntries.map((\n\t\t\t\t[key, value],\n\t\t\t) => ({\n\t\t\t\tdbKey: value.name,\n\t\t\t\ttsKey: key,\n\t\t\t\tfield: aliasedTableColumn(value as SQLiteColumn, tableAlias),\n\t\t\t\trelationTableTsKey: undefined,\n\t\t\t\tisJson: false,\n\t\t\t\tselection: [],\n\t\t\t}));\n\t\t} else {\n\t\t\tconst aliasedColumns = Object.fromEntries(\n\t\t\t\tObject.entries(tableConfig.columns).map(([key, value]) => [key, aliasedTableColumn(value, tableAlias)]),\n\t\t\t);\n\n\t\t\tif (config.where) {\n\t\t\t\tconst whereSql = typeof config.where === 'function'\n\t\t\t\t\t? config.where(aliasedColumns, getOperators())\n\t\t\t\t\t: config.where;\n\t\t\t\twhere = whereSql && mapColumnsInSQLToAlias(whereSql, tableAlias);\n\t\t\t}\n\n\t\t\tconst fieldsSelection: { tsKey: string; value: SQLiteColumn | SQL.Aliased }[] = [];\n\t\t\tlet selectedColumns: string[] = [];\n\n\t\t\t// Figure out which columns to select\n\t\t\tif (config.columns) {\n\t\t\t\tlet isIncludeMode = false;\n\n\t\t\t\tfor (const [field, value] of Object.entries(config.columns)) {\n\t\t\t\t\tif (value === undefined) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (field in tableConfig.columns) {\n\t\t\t\t\t\tif (!isIncludeMode && value === true) {\n\t\t\t\t\t\t\tisIncludeMode = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tselectedColumns.push(field);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (selectedColumns.length > 0) {\n\t\t\t\t\tselectedColumns = isIncludeMode\n\t\t\t\t\t\t? selectedColumns.filter((c) => config.columns?.[c] === true)\n\t\t\t\t\t\t: Object.keys(tableConfig.columns).filter((key) => !selectedColumns.includes(key));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Select all columns if selection is not specified\n\t\t\t\tselectedColumns = Object.keys(tableConfig.columns);\n\t\t\t}\n\n\t\t\tfor (const field of selectedColumns) {\n\t\t\t\tconst column = tableConfig.columns[field]! as SQLiteColumn;\n\t\t\t\tfieldsSelection.push({ tsKey: field, value: column });\n\t\t\t}\n\n\t\t\tlet selectedRelations: {\n\t\t\t\ttsKey: string;\n\t\t\t\tqueryConfig: true | DBQueryConfig<'many', false>;\n\t\t\t\trelation: Relation;\n\t\t\t}[] = [];\n\n\t\t\t// Figure out which relations to select\n\t\t\tif (config.with) {\n\t\t\t\tselectedRelations = Object.entries(config.with)\n\t\t\t\t\t.filter((entry): entry is [typeof entry[0], NonNullable<typeof entry[1]>] => !!entry[1])\n\t\t\t\t\t.map(([tsKey, queryConfig]) => ({ tsKey, queryConfig, relation: tableConfig.relations[tsKey]! }));\n\t\t\t}\n\n\t\t\tlet extras;\n\n\t\t\t// Figure out which extras to select\n\t\t\tif (config.extras) {\n\t\t\t\textras = typeof config.extras === 'function'\n\t\t\t\t\t? config.extras(aliasedColumns, { sql })\n\t\t\t\t\t: config.extras;\n\t\t\t\tfor (const [tsKey, value] of Object.entries(extras)) {\n\t\t\t\t\tfieldsSelection.push({\n\t\t\t\t\t\ttsKey,\n\t\t\t\t\t\tvalue: mapColumnsInAliasedSQLToAlias(value, tableAlias),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Transform `fieldsSelection` into `selection`\n\t\t\t// `fieldsSelection` shouldn't be used after this point\n\t\t\tfor (const { tsKey, value } of fieldsSelection) {\n\t\t\t\tselection.push({\n\t\t\t\t\tdbKey: is(value, SQL.Aliased) ? value.fieldAlias : tableConfig.columns[tsKey]!.name,\n\t\t\t\t\ttsKey,\n\t\t\t\t\tfield: is(value, Column) ? aliasedTableColumn(value, tableAlias) : value,\n\t\t\t\t\trelationTableTsKey: undefined,\n\t\t\t\t\tisJson: false,\n\t\t\t\t\tselection: [],\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tlet orderByOrig = typeof config.orderBy === 'function'\n\t\t\t\t? config.orderBy(aliasedColumns, getOrderByOperators())\n\t\t\t\t: config.orderBy ?? [];\n\t\t\tif (!Array.isArray(orderByOrig)) {\n\t\t\t\torderByOrig = [orderByOrig];\n\t\t\t}\n\t\t\torderBy = orderByOrig.map((orderByValue) => {\n\t\t\t\tif (is(orderByValue, Column)) {\n\t\t\t\t\treturn aliasedTableColumn(orderByValue, tableAlias) as SQLiteColumn;\n\t\t\t\t}\n\t\t\t\treturn mapColumnsInSQLToAlias(orderByValue, tableAlias);\n\t\t\t});\n\n\t\t\tlimit = config.limit;\n\t\t\toffset = config.offset;\n\n\t\t\t// Process all relations\n\t\t\tfor (\n\t\t\t\tconst {\n\t\t\t\t\ttsKey: selectedRelationTsKey,\n\t\t\t\t\tqueryConfig: selectedRelationConfigValue,\n\t\t\t\t\trelation,\n\t\t\t\t} of selectedRelations\n\t\t\t) {\n\t\t\t\tconst normalizedRelation = normalizeRelation(schema, tableNamesMap, relation);\n\t\t\t\tconst relationTableName = getTableUniqueName(relation.referencedTable);\n\t\t\t\tconst relationTableTsName = tableNamesMap[relationTableName]!;\n\t\t\t\tconst relationTableAlias = `${tableAlias}_${selectedRelationTsKey}`;\n\t\t\t\t// const relationTable = schema[relationTableTsName]!;\n\t\t\t\tconst joinOn = and(\n\t\t\t\t\t...normalizedRelation.fields.map((field, i) =>\n\t\t\t\t\t\teq(\n\t\t\t\t\t\t\taliasedTableColumn(normalizedRelation.references[i]!, relationTableAlias),\n\t\t\t\t\t\t\taliasedTableColumn(field, tableAlias),\n\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tconst builtRelation = this.buildRelationalQuery({\n\t\t\t\t\tfullSchema,\n\t\t\t\t\tschema,\n\t\t\t\t\ttableNamesMap,\n\t\t\t\t\ttable: fullSchema[relationTableTsName] as SQLiteTable,\n\t\t\t\t\ttableConfig: schema[relationTableTsName]!,\n\t\t\t\t\tqueryConfig: is(relation, One)\n\t\t\t\t\t\t? (selectedRelationConfigValue === true\n\t\t\t\t\t\t\t? { limit: 1 }\n\t\t\t\t\t\t\t: { ...selectedRelationConfigValue, limit: 1 })\n\t\t\t\t\t\t: selectedRelationConfigValue,\n\t\t\t\t\ttableAlias: relationTableAlias,\n\t\t\t\t\tjoinOn,\n\t\t\t\t\tnestedQueryRelation: relation,\n\t\t\t\t});\n\t\t\t\tconst field = (sql`(${builtRelation.sql})`).as(selectedRelationTsKey);\n\t\t\t\tselection.push({\n\t\t\t\t\tdbKey: selectedRelationTsKey,\n\t\t\t\t\ttsKey: selectedRelationTsKey,\n\t\t\t\t\tfield,\n\t\t\t\t\trelationTableTsKey: relationTableTsName,\n\t\t\t\t\tisJson: true,\n\t\t\t\t\tselection: builtRelation.selection,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (selection.length === 0) {\n\t\t\tthrow new DrizzleError({\n\t\t\t\tmessage:\n\t\t\t\t\t`No fields selected for table \"${tableConfig.tsName}\" (\"${tableAlias}\"). You need to have at least one item in \"columns\", \"with\" or \"extras\". If you need to select all columns, omit the \"columns\" key or set it to undefined.`,\n\t\t\t});\n\t\t}\n\n\t\tlet result;\n\n\t\twhere = and(joinOn, where);\n\n\t\tif (nestedQueryRelation) {\n\t\t\tlet field = sql`json_array(${\n\t\t\t\tsql.join(\n\t\t\t\t\tselection.map(({ field }) =>\n\t\t\t\t\t\tis(field, SQLiteColumn)\n\t\t\t\t\t\t\t? sql.identifier(this.casing.getColumnCasing(field))\n\t\t\t\t\t\t\t: is(field, SQL.Aliased)\n\t\t\t\t\t\t\t? field.sql\n\t\t\t\t\t\t\t: field\n\t\t\t\t\t),\n\t\t\t\t\tsql`, `,\n\t\t\t\t)\n\t\t\t})`;\n\t\t\tif (is(nestedQueryRelation, Many)) {\n\t\t\t\tfield = sql`coalesce(json_group_array(${field}), json_array())`;\n\t\t\t}\n\t\t\tconst nestedSelection = [{\n\t\t\t\tdbKey: 'data',\n\t\t\t\ttsKey: 'data',\n\t\t\t\tfield: field.as('data'),\n\t\t\t\tisJson: true,\n\t\t\t\trelationTableTsKey: tableConfig.tsName,\n\t\t\t\tselection,\n\t\t\t}];\n\n\t\t\tconst needsSubquery = limit !== undefined || offset !== undefined || orderBy.length > 0;\n\n\t\t\tif (needsSubquery) {\n\t\t\t\tresult = this.buildSelectQuery({\n\t\t\t\t\ttable: aliasedTable(table, tableAlias),\n\t\t\t\t\tfields: {},\n\t\t\t\t\tfieldsFlat: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpath: [],\n\t\t\t\t\t\t\tfield: sql.raw('*'),\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\twhere,\n\t\t\t\t\tlimit,\n\t\t\t\t\toffset,\n\t\t\t\t\torderBy,\n\t\t\t\t\tsetOperators: [],\n\t\t\t\t});\n\n\t\t\t\twhere = undefined;\n\t\t\t\tlimit = undefined;\n\t\t\t\toffset = undefined;\n\t\t\t\torderBy = undefined;\n\t\t\t} else {\n\t\t\t\tresult = aliasedTable(table, tableAlias);\n\t\t\t}\n\n\t\t\tresult = this.buildSelectQuery({\n\t\t\t\ttable: is(result, SQLiteTable) ? result : new Subquery(result, {}, tableAlias),\n\t\t\t\tfields: {},\n\t\t\t\tfieldsFlat: nestedSelection.map(({ field }) => ({\n\t\t\t\t\tpath: [],\n\t\t\t\t\tfield: is(field, Column) ? aliasedTableColumn(field, tableAlias) : field,\n\t\t\t\t})),\n\t\t\t\tjoins,\n\t\t\t\twhere,\n\t\t\t\tlimit,\n\t\t\t\toffset,\n\t\t\t\torderBy,\n\t\t\t\tsetOperators: [],\n\t\t\t});\n\t\t} else {\n\t\t\tresult = this.buildSelectQuery({\n\t\t\t\ttable: aliasedTable(table, tableAlias),\n\t\t\t\tfields: {},\n\t\t\t\tfieldsFlat: selection.map(({ field }) => ({\n\t\t\t\t\tpath: [],\n\t\t\t\t\tfield: is(field, Column) ? aliasedTableColumn(field, tableAlias) : field,\n\t\t\t\t})),\n\t\t\t\tjoins,\n\t\t\t\twhere,\n\t\t\t\tlimit,\n\t\t\t\toffset,\n\t\t\t\torderBy,\n\t\t\t\tsetOperators: [],\n\t\t\t});\n\t\t}\n\n\t\treturn {\n\t\t\ttableTsKey: tableConfig.tsName,\n\t\t\tsql: result,\n\t\t\tselection,\n\t\t};\n\t}\n}\n\nexport class SQLiteSyncDialect extends SQLiteDialect {\n\tstatic override readonly [entityKind]: string = 'SQLiteSyncDialect';\n\n\tmigrate(\n\t\tmigrations: MigrationMeta[],\n\t\tsession: SQLiteSession<'sync', unknown, Record<string, unknown>, TablesRelationalConfig>,\n\t\tconfig?: string | MigrationConfig,\n\t): void {\n\t\tconst migrationsTable = config === undefined\n\t\t\t? '__drizzle_migrations'\n\t\t\t: typeof config === 'string'\n\t\t\t? '__drizzle_migrations'\n\t\t\t: config.migrationsTable ?? '__drizzle_migrations';\n\n\t\tconst migrationTableCreate = sql`\n\t\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\t\tid SERIAL PRIMARY KEY,\n\t\t\t\thash text NOT NULL,\n\t\t\t\tcreated_at numeric\n\t\t\t)\n\t\t`;\n\t\tsession.run(migrationTableCreate);\n\n\t\tconst dbMigrations = session.values<[number, string, string]>(\n\t\t\tsql`SELECT id, hash, created_at FROM ${sql.identifier(migrationsTable)} ORDER BY created_at DESC LIMIT 1`,\n\t\t);\n\n\t\tconst lastDbMigration = dbMigrations[0] ?? undefined;\n\t\tsession.run(sql`BEGIN`);\n\n\t\ttry {\n\t\t\tfor (const migration of migrations) {\n\t\t\t\tif (!lastDbMigration || Number(lastDbMigration[2])! < migration.folderMillis) {\n\t\t\t\t\tfor (const stmt of migration.sql) {\n\t\t\t\t\t\tsession.run(sql.raw(stmt));\n\t\t\t\t\t}\n\t\t\t\t\tsession.run(\n\t\t\t\t\t\tsql`INSERT INTO ${\n\t\t\t\t\t\t\tsql.identifier(migrationsTable)\n\t\t\t\t\t\t} (\"hash\", \"created_at\") VALUES(${migration.hash}, ${migration.folderMillis})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsession.run(sql`COMMIT`);\n\t\t} catch (e) {\n\t\t\tsession.run(sql`ROLLBACK`);\n\t\t\tthrow e;\n\t\t}\n\t}\n}\n\nexport class SQLiteAsyncDialect extends SQLiteDialect {\n\tstatic override readonly [entityKind]: string = 'SQLiteAsyncDialect';\n\n\tasync migrate(\n\t\tmigrations: MigrationMeta[],\n\t\tsession: SQLiteSession<'async', any, any, any>,\n\t\tconfig?: string | MigrationConfig,\n\t): Promise<void> {\n\t\tconst migrationsTable = config === undefined\n\t\t\t? '__drizzle_migrations'\n\t\t\t: typeof config === 'string'\n\t\t\t? '__drizzle_migrations'\n\t\t\t: config.migrationsTable ?? '__drizzle_migrations';\n\n\t\tconst migrationTableCreate = sql`\n\t\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\t\tid SERIAL PRIMARY KEY,\n\t\t\t\thash text NOT NULL,\n\t\t\t\tcreated_at numeric\n\t\t\t)\n\t\t`;\n\t\tawait session.run(migrationTableCreate);\n\n\t\tconst dbMigrations = await session.values<[number, string, string]>(\n\t\t\tsql`SELECT id, hash, created_at FROM ${sql.identifier(migrationsTable)} ORDER BY created_at DESC LIMIT 1`,\n\t\t);\n\n\t\tconst lastDbMigration = dbMigrations[0] ?? undefined;\n\n\t\tawait session.transaction(async (tx) => {\n\t\t\tfor (const migration of migrations) {\n\t\t\t\tif (!lastDbMigration || Number(lastDbMigration[2])! < migration.folderMillis) {\n\t\t\t\t\tfor (const stmt of migration.sql) {\n\t\t\t\t\t\tawait tx.run(sql.raw(stmt));\n\t\t\t\t\t}\n\t\t\t\t\tawait tx.run(\n\t\t\t\t\t\tsql`INSERT INTO ${\n\t\t\t\t\t\t\tsql.identifier(migrationsTable)\n\t\t\t\t\t\t} (\"hash\", \"created_at\") VALUES(${migration.hash}, ${migration.folderMillis})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n"],"mappings":"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","names":["import_sql","import_table","table","select","sql","joinOn","field"]}
@@ -1,5 +1,4 @@
1
1
  import { entityKind } from "../entity.cjs";
2
- import type { DrizzleSQLiteExtension } from "../extension-core/sqlite/index.cjs";
3
2
  import type { MigrationConfig, MigrationMeta } from "../migrator.cjs";
4
3
  import { type BuildRelationalQueryResult, type DBQueryConfig, type Relation, type TableRelationalConfig, type TablesRelationalConfig } from "../relations.cjs";
5
4
  import { type QueryWithTypings, SQL } from "../sql/sql.cjs";
@@ -19,9 +18,9 @@ export declare abstract class SQLiteDialect {
19
18
  escapeParam(_num: number): string;
20
19
  escapeString(str: string): string;
21
20
  private buildWithCTE;
22
- buildDeleteQuery({ table, where, returning, withList, limit, orderBy }: SQLiteDeleteConfig, extensions?: DrizzleSQLiteExtension[]): SQL;
23
- buildUpdateSet(table: SQLiteTable, set: UpdateSet, extensions?: DrizzleSQLiteExtension[]): SQL;
24
- buildUpdateQuery({ table, set, where, returning, withList, joins, from, limit, orderBy }: SQLiteUpdateConfig, extensions?: DrizzleSQLiteExtension[]): SQL;
21
+ buildDeleteQuery({ table, where, returning, withList, limit, orderBy }: SQLiteDeleteConfig): SQL;
22
+ buildUpdateSet(table: SQLiteTable, set: UpdateSet): SQL;
23
+ buildUpdateQuery({ table, set, where, returning, withList, joins, from, limit, orderBy }: SQLiteUpdateConfig): SQL;
25
24
  /**
26
25
  * Builds selection SQL with provided fields/expressions
27
26
  *
@@ -38,13 +37,13 @@ export declare abstract class SQLiteDialect {
38
37
  private buildLimit;
39
38
  private buildOrderBy;
40
39
  private buildFromTable;
41
- buildSelectQuery({ withList, fields, fieldsFlat, where, having, table, joins, orderBy, groupBy, limit, offset, distinct, setOperators, }: SQLiteSelectConfig, extensions?: DrizzleSQLiteExtension[]): SQL;
40
+ buildSelectQuery({ withList, fields, fieldsFlat, where, having, table, joins, orderBy, groupBy, limit, offset, distinct, setOperators, }: SQLiteSelectConfig): SQL;
42
41
  buildSetOperations(leftSelect: SQL, setOperators: SQLiteSelectConfig['setOperators']): SQL;
43
42
  buildSetOperationQuery({ leftSelect, setOperator: { type, isAll, rightSelect, limit, orderBy, offset }, }: {
44
43
  leftSelect: SQL;
45
44
  setOperator: SQLiteSelectConfig['setOperators'][number];
46
45
  }): SQL;
47
- buildInsertQuery({ table, values: valuesOrSelect, onConflict, returning, withList, select }: SQLiteInsertConfig, extensions?: DrizzleSQLiteExtension[]): SQL;
46
+ buildInsertQuery({ table, values: valuesOrSelect, onConflict, returning, withList, select }: SQLiteInsertConfig): SQL;
48
47
  sqlToQuery(sql: SQL, invokeSource?: 'indexes' | undefined): QueryWithTypings;
49
48
  buildRelationalQuery({ fullSchema, schema, tableNamesMap, table, tableConfig, queryConfig: config, tableAlias, nestedQueryRelation, joinOn, }: {
50
49
  fullSchema: Record<string, unknown>;
@@ -56,7 +55,7 @@ export declare abstract class SQLiteDialect {
56
55
  tableAlias: string;
57
56
  nestedQueryRelation?: Relation;
58
57
  joinOn?: SQL;
59
- }, extensions?: DrizzleSQLiteExtension[]): BuildRelationalQueryResult<SQLiteTable, SQLiteColumn>;
58
+ }): BuildRelationalQueryResult<SQLiteTable, SQLiteColumn>;
60
59
  }
61
60
  export declare class SQLiteSyncDialect extends SQLiteDialect {
62
61
  static readonly [entityKind]: string;
@@ -1,5 +1,4 @@
1
1
  import { entityKind } from "../entity.js";
2
- import type { DrizzleSQLiteExtension } from "../extension-core/sqlite/index.js";
3
2
  import type { MigrationConfig, MigrationMeta } from "../migrator.js";
4
3
  import { type BuildRelationalQueryResult, type DBQueryConfig, type Relation, type TableRelationalConfig, type TablesRelationalConfig } from "../relations.js";
5
4
  import { type QueryWithTypings, SQL } from "../sql/sql.js";
@@ -19,9 +18,9 @@ export declare abstract class SQLiteDialect {
19
18
  escapeParam(_num: number): string;
20
19
  escapeString(str: string): string;
21
20
  private buildWithCTE;
22
- buildDeleteQuery({ table, where, returning, withList, limit, orderBy }: SQLiteDeleteConfig, extensions?: DrizzleSQLiteExtension[]): SQL;
23
- buildUpdateSet(table: SQLiteTable, set: UpdateSet, extensions?: DrizzleSQLiteExtension[]): SQL;
24
- buildUpdateQuery({ table, set, where, returning, withList, joins, from, limit, orderBy }: SQLiteUpdateConfig, extensions?: DrizzleSQLiteExtension[]): SQL;
21
+ buildDeleteQuery({ table, where, returning, withList, limit, orderBy }: SQLiteDeleteConfig): SQL;
22
+ buildUpdateSet(table: SQLiteTable, set: UpdateSet): SQL;
23
+ buildUpdateQuery({ table, set, where, returning, withList, joins, from, limit, orderBy }: SQLiteUpdateConfig): SQL;
25
24
  /**
26
25
  * Builds selection SQL with provided fields/expressions
27
26
  *
@@ -38,13 +37,13 @@ export declare abstract class SQLiteDialect {
38
37
  private buildLimit;
39
38
  private buildOrderBy;
40
39
  private buildFromTable;
41
- buildSelectQuery({ withList, fields, fieldsFlat, where, having, table, joins, orderBy, groupBy, limit, offset, distinct, setOperators, }: SQLiteSelectConfig, extensions?: DrizzleSQLiteExtension[]): SQL;
40
+ buildSelectQuery({ withList, fields, fieldsFlat, where, having, table, joins, orderBy, groupBy, limit, offset, distinct, setOperators, }: SQLiteSelectConfig): SQL;
42
41
  buildSetOperations(leftSelect: SQL, setOperators: SQLiteSelectConfig['setOperators']): SQL;
43
42
  buildSetOperationQuery({ leftSelect, setOperator: { type, isAll, rightSelect, limit, orderBy, offset }, }: {
44
43
  leftSelect: SQL;
45
44
  setOperator: SQLiteSelectConfig['setOperators'][number];
46
45
  }): SQL;
47
- buildInsertQuery({ table, values: valuesOrSelect, onConflict, returning, withList, select }: SQLiteInsertConfig, extensions?: DrizzleSQLiteExtension[]): SQL;
46
+ buildInsertQuery({ table, values: valuesOrSelect, onConflict, returning, withList, select }: SQLiteInsertConfig): SQL;
48
47
  sqlToQuery(sql: SQL, invokeSource?: 'indexes' | undefined): QueryWithTypings;
49
48
  buildRelationalQuery({ fullSchema, schema, tableNamesMap, table, tableConfig, queryConfig: config, tableAlias, nestedQueryRelation, joinOn, }: {
50
49
  fullSchema: Record<string, unknown>;
@@ -56,7 +55,7 @@ export declare abstract class SQLiteDialect {
56
55
  tableAlias: string;
57
56
  nestedQueryRelation?: Relation;
58
57
  joinOn?: SQL;
59
- }, extensions?: DrizzleSQLiteExtension[]): BuildRelationalQueryResult<SQLiteTable, SQLiteColumn>;
58
+ }): BuildRelationalQueryResult<SQLiteTable, SQLiteColumn>;
60
59
  }
61
60
  export declare class SQLiteSyncDialect extends SQLiteDialect {
62
61
  static readonly [entityKind]: string;
@@ -3,7 +3,6 @@ import { CasingCache } from "../casing.js";
3
3
  import { Column } from "../column.js";
4
4
  import { entityKind, is } from "../entity.js";
5
5
  import { DrizzleError } from "../errors.js";
6
- import { requiredExtension } from "../extension-core/index.js";
7
6
  import {
8
7
  getOperators,
9
8
  getOrderByOperators,
@@ -17,7 +16,7 @@ import { SQLiteColumn } from "./columns/index.js";
17
16
  import { SQLiteTable } from "./table.js";
18
17
  import { Subquery } from "../subquery.js";
19
18
  import { getTableName, getTableUniqueName, Table } from "../table.js";
20
- import { columnExtensionsCheck, orderSelectedFields } from "../utils.js";
19
+ import { orderSelectedFields } from "../utils.js";
21
20
  import { ViewBaseConfig } from "../view-common.js";
22
21
  import { SQLiteViewBase } from "./view-base.js";
23
22
  class SQLiteDialect {
@@ -48,15 +47,15 @@ class SQLiteDialect {
48
47
  withSqlChunks.push(sql` `);
49
48
  return sql.join(withSqlChunks);
50
49
  }
51
- buildDeleteQuery({ table, where, returning, withList, limit, orderBy }, extensions) {
50
+ buildDeleteQuery({ table, where, returning, withList, limit, orderBy }) {
52
51
  const withSql = this.buildWithCTE(withList);
53
- const returningSql = returning ? sql` returning ${this.buildSelection(returning, { isSingleTable: true }, extensions)}` : void 0;
52
+ const returningSql = returning ? sql` returning ${this.buildSelection(returning, { isSingleTable: true })}` : void 0;
54
53
  const whereSql = where ? sql` where ${where}` : void 0;
55
54
  const orderBySql = this.buildOrderBy(orderBy);
56
55
  const limitSql = this.buildLimit(limit);
57
56
  return sql`${withSql}delete from ${table}${whereSql}${returningSql}${orderBySql}${limitSql}`;
58
57
  }
59
- buildUpdateSet(table, set, extensions) {
58
+ buildUpdateSet(table, set) {
60
59
  const tableColumns = table[Table.Symbol.Columns];
61
60
  const columnNames = Object.keys(tableColumns).filter(
62
61
  (colName) => set[colName] !== void 0 || tableColumns[colName]?.onUpdateFn !== void 0
@@ -64,8 +63,7 @@ class SQLiteDialect {
64
63
  const setSize = columnNames.length;
65
64
  return sql.join(columnNames.flatMap((colName, i) => {
66
65
  const col = tableColumns[colName];
67
- const ext = col[requiredExtension];
68
- const value = set[colName] ?? (ext && columnExtensionsCheck(col, extensions) ? sql.extensionParam(ext, col.onUpdateFn(), col) : sql.param(col.onUpdateFn(), col));
66
+ const value = set[colName] ?? sql.param(col.onUpdateFn(), col);
69
67
  const res = sql`${sql.identifier(this.casing.getColumnCasing(col))} = ${value}`;
70
68
  if (i < setSize - 1) {
71
69
  return [res, sql.raw(", ")];
@@ -73,12 +71,12 @@ class SQLiteDialect {
73
71
  return [res];
74
72
  }));
75
73
  }
76
- buildUpdateQuery({ table, set, where, returning, withList, joins, from, limit, orderBy }, extensions) {
74
+ buildUpdateQuery({ table, set, where, returning, withList, joins, from, limit, orderBy }) {
77
75
  const withSql = this.buildWithCTE(withList);
78
- const setSql = this.buildUpdateSet(table, set, extensions);
76
+ const setSql = this.buildUpdateSet(table, set);
79
77
  const fromSql = from && sql.join([sql.raw(" from "), this.buildFromTable(from)]);
80
78
  const joinsSql = this.buildJoins(joins);
81
- const returningSql = returning ? sql` returning ${this.buildSelection(returning, { isSingleTable: true }, extensions)}` : void 0;
79
+ const returningSql = returning ? sql` returning ${this.buildSelection(returning, { isSingleTable: true })}` : void 0;
82
80
  const whereSql = where ? sql` where ${where}` : void 0;
83
81
  const orderBySql = this.buildOrderBy(orderBy);
84
82
  const limitSql = this.buildLimit(limit);
@@ -95,7 +93,7 @@ class SQLiteDialect {
95
93
  *
96
94
  * If `isSingleTable` is true, then columns won't be prefixed with table name
97
95
  */
98
- buildSelection(fields, { isSingleTable = false } = {}, extensions) {
96
+ buildSelection(fields, { isSingleTable = false } = {}) {
99
97
  const columnsLen = fields.length;
100
98
  const chunks = fields.flatMap(({ field }, i) => {
101
99
  const chunk = [];
@@ -108,10 +106,6 @@ class SQLiteDialect {
108
106
  new SQL(
109
107
  query.queryChunks.map((c) => {
110
108
  if (is(c, Column)) {
111
- columnExtensionsCheck(c, extensions);
112
- if (c.columnType === "SQLiteNumericBigInt") {
113
- return sql`cast(${sql.identifier(this.casing.getColumnCasing(c))} as text)`;
114
- }
115
109
  return sql.identifier(this.casing.getColumnCasing(c));
116
110
  }
117
111
  return c;
@@ -125,7 +119,6 @@ class SQLiteDialect {
125
119
  chunk.push(sql` as ${sql.identifier(field.fieldAlias)}`);
126
120
  }
127
121
  } else if (is(field, Column)) {
128
- columnExtensionsCheck(field, extensions);
129
122
  const tableName = field.table[Table.Symbol.Name];
130
123
  if (field.columnType === "SQLiteNumericBigInt") {
131
124
  if (isSingleTable) {
@@ -217,7 +210,7 @@ class SQLiteDialect {
217
210
  offset,
218
211
  distinct,
219
212
  setOperators
220
- }, extensions) {
213
+ }) {
221
214
  const fieldsList = fieldsFlat ?? orderSelectedFields(fields);
222
215
  for (const f of fieldsList) {
223
216
  if (is(f.field, Column) && getTableName(f.field.table) !== (is(table, Subquery) ? table._.alias : is(table, SQLiteViewBase) ? table[ViewBaseConfig].name : is(table, SQL) ? void 0 : getTableName(table)) && !((table2) => joins?.some(
@@ -232,7 +225,7 @@ class SQLiteDialect {
232
225
  const isSingleTable = !joins || joins.length === 0;
233
226
  const withSql = this.buildWithCTE(withList);
234
227
  const distinctSql = distinct ? sql` distinct` : void 0;
235
- const selection = this.buildSelection(fieldsList, { isSingleTable }, extensions);
228
+ const selection = this.buildSelection(fieldsList, { isSingleTable });
236
229
  const tableSql = this.buildFromTable(table);
237
230
  const joinsSql = this.buildJoins(joins);
238
231
  const whereSql = where ? sql` where ${where}` : void 0;
@@ -300,7 +293,7 @@ class SQLiteDialect {
300
293
  const offsetSql = offset ? sql` offset ${offset}` : void 0;
301
294
  return sql`${leftChunk}${operatorChunk}${rightChunk}${orderBySql}${limitSql}${offsetSql}`;
302
295
  }
303
- buildInsertQuery({ table, values: valuesOrSelect, onConflict, returning, withList, select }, extensions) {
296
+ buildInsertQuery({ table, values: valuesOrSelect, onConflict, returning, withList, select }) {
304
297
  const valuesSqlList = [];
305
298
  const columns = table[Table.Symbol.Columns];
306
299
  const colEntries = Object.entries(columns).filter(
@@ -320,7 +313,6 @@ class SQLiteDialect {
320
313
  for (const [valueIndex, value] of values.entries()) {
321
314
  const valueList = [];
322
315
  for (const [fieldName, col] of colEntries) {
323
- const ext = col[requiredExtension];
324
316
  const colValue = value[fieldName];
325
317
  if (colValue === void 0 || is(colValue, Param) && colValue.value === void 0) {
326
318
  let defaultValue;
@@ -328,17 +320,15 @@ class SQLiteDialect {
328
320
  defaultValue = is(col.default, SQL) ? col.default : sql.param(col.default, col);
329
321
  } else if (col.defaultFn !== void 0) {
330
322
  const defaultFnResult = col.defaultFn();
331
- defaultValue = is(defaultFnResult, SQL) ? defaultFnResult : ext && columnExtensionsCheck(col, extensions) ? sql.extensionParam(ext, defaultFnResult, col) : sql.param(defaultFnResult, col);
323
+ defaultValue = is(defaultFnResult, SQL) ? defaultFnResult : sql.param(defaultFnResult, col);
332
324
  } else if (!col.default && col.onUpdateFn !== void 0) {
333
- columnExtensionsCheck(col, extensions);
334
325
  const onUpdateFnResult = col.onUpdateFn();
335
- defaultValue = is(onUpdateFnResult, SQL) ? onUpdateFnResult : ext && columnExtensionsCheck(col, extensions) ? sql.extensionParam(ext, onUpdateFnResult, col) : sql.param(onUpdateFnResult, col);
326
+ defaultValue = is(onUpdateFnResult, SQL) ? onUpdateFnResult : sql.param(onUpdateFnResult, col);
336
327
  } else {
337
328
  defaultValue = sql`null`;
338
329
  }
339
330
  valueList.push(defaultValue);
340
331
  } else {
341
- if (ext && !is(colValue, SQL) && colValue.value !== null) columnExtensionsCheck(col, extensions);
342
332
  valueList.push(colValue);
343
333
  }
344
334
  }
@@ -350,7 +340,7 @@ class SQLiteDialect {
350
340
  }
351
341
  const withSql = this.buildWithCTE(withList);
352
342
  const valuesSql = sql.join(valuesSqlList);
353
- const returningSql = returning ? sql` returning ${this.buildSelection(returning, { isSingleTable: true }, extensions)}` : void 0;
343
+ const returningSql = returning ? sql` returning ${this.buildSelection(returning, { isSingleTable: true })}` : void 0;
354
344
  const onConflictSql = onConflict?.length ? sql.join(onConflict) : void 0;
355
345
  return sql`${withSql}insert into ${table} ${insertOrder} ${valuesSql}${onConflictSql}${returningSql}`;
356
346
  }
@@ -373,7 +363,7 @@ class SQLiteDialect {
373
363
  tableAlias,
374
364
  nestedQueryRelation,
375
365
  joinOn
376
- }, extensions) {
366
+ }) {
377
367
  let selection = [];
378
368
  let limit, offset, orderBy = [], where;
379
369
  const joins = [];
@@ -483,7 +473,7 @@ class SQLiteDialect {
483
473
  tableAlias: relationTableAlias,
484
474
  joinOn: joinOn2,
485
475
  nestedQueryRelation: relation
486
- }, extensions);
476
+ });
487
477
  const field = sql`(${builtRelation.sql})`.as(selectedRelationTsKey);
488
478
  selection.push({
489
479
  dbKey: selectedRelationTsKey,
@@ -536,7 +526,7 @@ class SQLiteDialect {
536
526
  offset,
537
527
  orderBy,
538
528
  setOperators: []
539
- }, extensions);
529
+ });
540
530
  where = void 0;
541
531
  limit = void 0;
542
532
  offset = void 0;
@@ -557,7 +547,7 @@ class SQLiteDialect {
557
547
  offset,
558
548
  orderBy,
559
549
  setOperators: []
560
- }, extensions);
550
+ });
561
551
  } else {
562
552
  result = this.buildSelectQuery({
563
553
  table: aliasedTable(table, tableAlias),
@@ -572,7 +562,7 @@ class SQLiteDialect {
572
562
  offset,
573
563
  orderBy,
574
564
  setOperators: []
575
- }, extensions);
565
+ });
576
566
  }
577
567
  return {
578
568
  tableTsKey: tableConfig.tsName,