kysely 0.27.6 → 0.28.1

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 (363) hide show
  1. package/README.md +169 -1
  2. package/deno.check.d.ts +7 -0
  3. package/dist/cjs/dialect/mssql/mssql-dialect-config.d.ts +26 -16
  4. package/dist/cjs/dialect/mssql/mssql-driver.d.ts +6 -3
  5. package/dist/cjs/dialect/mssql/mssql-driver.js +33 -19
  6. package/dist/cjs/dialect/mssql/mssql-query-compiler.d.ts +2 -0
  7. package/dist/cjs/dialect/mssql/mssql-query-compiler.js +11 -0
  8. package/dist/cjs/dialect/mysql/mysql-driver.d.ts +4 -0
  9. package/dist/cjs/dialect/mysql/mysql-driver.js +27 -12
  10. package/dist/cjs/dialect/postgres/postgres-driver.d.ts +4 -0
  11. package/dist/cjs/dialect/postgres/postgres-driver.js +28 -18
  12. package/dist/cjs/dialect/postgres/postgres-introspector.js +7 -17
  13. package/dist/cjs/dialect/sqlite/sqlite-driver.d.ts +4 -0
  14. package/dist/cjs/dialect/sqlite/sqlite-driver.js +19 -13
  15. package/dist/cjs/dialect/sqlite/sqlite-query-compiler.d.ts +2 -0
  16. package/dist/cjs/dialect/sqlite/sqlite-query-compiler.js +4 -0
  17. package/dist/cjs/driver/database-connection.d.ts +0 -4
  18. package/dist/cjs/driver/driver.d.ts +17 -0
  19. package/dist/cjs/driver/driver.js +13 -1
  20. package/dist/cjs/driver/dummy-driver.d.ts +3 -0
  21. package/dist/cjs/driver/dummy-driver.js +9 -0
  22. package/dist/cjs/driver/runtime-driver.d.ts +4 -0
  23. package/dist/cjs/driver/runtime-driver.js +43 -3
  24. package/dist/cjs/expression/expression-builder.d.ts +7 -10
  25. package/dist/cjs/helpers/postgres.d.ts +48 -0
  26. package/dist/cjs/helpers/postgres.js +50 -0
  27. package/dist/cjs/index.d.ts +13 -2
  28. package/dist/cjs/index.js +13 -2
  29. package/dist/cjs/kysely.d.ts +339 -2
  30. package/dist/cjs/kysely.js +465 -11
  31. package/dist/cjs/migration/migrator.d.ts +8 -0
  32. package/dist/cjs/migration/migrator.js +1 -1
  33. package/dist/cjs/operation-node/aggregate-function-node.d.ts +2 -1
  34. package/dist/cjs/operation-node/aggregate-function-node.js +4 -3
  35. package/dist/cjs/operation-node/alter-table-node.d.ts +3 -1
  36. package/dist/cjs/operation-node/collate-node.d.ts +13 -0
  37. package/dist/cjs/operation-node/collate-node.js +19 -0
  38. package/dist/cjs/operation-node/constraint-node.d.ts +1 -1
  39. package/dist/cjs/operation-node/create-type-node.d.ts +1 -1
  40. package/dist/cjs/operation-node/create-type-node.js +1 -1
  41. package/dist/cjs/operation-node/delete-query-node.d.ts +8 -2
  42. package/dist/cjs/operation-node/delete-query-node.js +11 -15
  43. package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +4 -0
  44. package/dist/cjs/operation-node/insert-query-node.d.ts +3 -0
  45. package/dist/cjs/operation-node/join-node.d.ts +1 -1
  46. package/dist/cjs/operation-node/merge-query-node.d.ts +2 -0
  47. package/dist/cjs/operation-node/operation-node-transformer.d.ts +106 -97
  48. package/dist/cjs/operation-node/operation-node-transformer.js +352 -312
  49. package/dist/cjs/operation-node/operation-node-visitor.d.ts +9 -1
  50. package/dist/cjs/operation-node/operation-node-visitor.js +4 -0
  51. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  52. package/dist/cjs/operation-node/or-action-node.d.ts +12 -0
  53. package/dist/cjs/operation-node/or-action-node.js +18 -0
  54. package/dist/cjs/operation-node/order-by-item-node.d.ts +5 -0
  55. package/dist/cjs/operation-node/order-by-item-node.js +6 -0
  56. package/dist/cjs/operation-node/primary-key-constraint-node.d.ts +29 -0
  57. package/dist/cjs/operation-node/{primary-constraint-node.js → primary-key-constraint-node.js} +11 -2
  58. package/dist/cjs/operation-node/query-node.d.ts +7 -0
  59. package/dist/cjs/operation-node/query-node.js +15 -0
  60. package/dist/cjs/operation-node/refresh-materialized-view-node.d.ts +17 -0
  61. package/dist/cjs/operation-node/refresh-materialized-view-node.js +25 -0
  62. package/dist/cjs/operation-node/rename-constraint-node.d.ts +14 -0
  63. package/dist/cjs/operation-node/rename-constraint-node.js +20 -0
  64. package/dist/cjs/operation-node/select-query-node.d.ts +8 -2
  65. package/dist/cjs/operation-node/select-query-node.js +11 -15
  66. package/dist/cjs/operation-node/unique-constraint-node.d.ts +2 -0
  67. package/dist/cjs/operation-node/update-query-node.d.ts +3 -4
  68. package/dist/cjs/operation-node/update-query-node.js +5 -2
  69. package/dist/cjs/parser/collate-parser.d.ts +1 -0
  70. package/dist/cjs/parser/collate-parser.js +2 -0
  71. package/dist/cjs/parser/delete-from-parser.d.ts +5 -0
  72. package/dist/cjs/parser/delete-from-parser.js +2 -0
  73. package/dist/cjs/parser/join-parser.d.ts +1 -1
  74. package/dist/cjs/parser/join-parser.js +7 -1
  75. package/dist/cjs/parser/merge-into-parser.d.ts +5 -0
  76. package/dist/cjs/parser/merge-into-parser.js +2 -0
  77. package/dist/cjs/parser/order-by-parser.d.ts +18 -5
  78. package/dist/cjs/parser/order-by-parser.js +24 -14
  79. package/dist/cjs/parser/savepoint-parser.d.ts +4 -0
  80. package/dist/cjs/parser/savepoint-parser.js +11 -0
  81. package/dist/cjs/parser/select-from-parser.d.ts +4 -0
  82. package/dist/cjs/parser/select-from-parser.js +2 -0
  83. package/dist/cjs/parser/table-parser.d.ts +2 -5
  84. package/dist/cjs/parser/update-parser.d.ts +5 -0
  85. package/dist/cjs/parser/update-parser.js +2 -0
  86. package/dist/cjs/parser/update-set-parser.d.ts +7 -4
  87. package/dist/cjs/plugin/camel-case/camel-case-plugin.js +1 -1
  88. package/dist/cjs/plugin/camel-case/camel-case-transformer.d.ts +2 -1
  89. package/dist/cjs/plugin/camel-case/camel-case-transformer.js +2 -2
  90. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
  91. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-transformer.d.ts +4 -3
  92. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-transformer.js +6 -6
  93. package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.d.ts +211 -0
  94. package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.js +162 -0
  95. package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists-transformer.d.ts +8 -0
  96. package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists-transformer.js +29 -0
  97. package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists.d.ts +44 -0
  98. package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists.js +66 -0
  99. package/dist/cjs/plugin/immediate-value/immediate-value-plugin.js +1 -1
  100. package/dist/cjs/plugin/immediate-value/immediate-value-transformer.d.ts +2 -0
  101. package/dist/cjs/plugin/immediate-value/immediate-value-transformer.js +6 -4
  102. package/dist/cjs/plugin/with-schema/with-schema-plugin.js +1 -1
  103. package/dist/cjs/plugin/with-schema/with-schema-transformer.d.ts +6 -5
  104. package/dist/cjs/plugin/with-schema/with-schema-transformer.js +29 -24
  105. package/dist/cjs/query-builder/aggregate-function-builder.d.ts +83 -5
  106. package/dist/cjs/query-builder/aggregate-function-builder.js +15 -27
  107. package/dist/cjs/query-builder/cte-builder.js +0 -2
  108. package/dist/cjs/query-builder/delete-query-builder.d.ts +36 -47
  109. package/dist/cjs/query-builder/delete-query-builder.js +12 -78
  110. package/dist/cjs/query-builder/function-module.d.ts +31 -4
  111. package/dist/cjs/query-builder/insert-query-builder.d.ts +161 -6
  112. package/dist/cjs/query-builder/insert-query-builder.js +197 -10
  113. package/dist/cjs/query-builder/join-builder.js +0 -2
  114. package/dist/cjs/query-builder/merge-query-builder.d.ts +145 -3
  115. package/dist/cjs/query-builder/merge-query-builder.js +28 -7
  116. package/dist/cjs/query-builder/on-conflict-builder.js +0 -4
  117. package/dist/cjs/query-builder/order-by-interface.d.ts +176 -0
  118. package/dist/cjs/query-builder/order-by-interface.js +2 -0
  119. package/dist/cjs/query-builder/order-by-item-builder.d.ts +43 -0
  120. package/dist/cjs/query-builder/order-by-item-builder.js +75 -0
  121. package/dist/cjs/query-builder/over-builder.d.ts +43 -6
  122. package/dist/cjs/query-builder/over-builder.js +8 -25
  123. package/dist/cjs/query-builder/returning-interface.d.ts +20 -3
  124. package/dist/cjs/query-builder/select-query-builder.d.ts +279 -98
  125. package/dist/cjs/query-builder/select-query-builder.js +26 -26
  126. package/dist/cjs/query-builder/update-query-builder.d.ts +88 -9
  127. package/dist/cjs/query-builder/update-query-builder.js +17 -15
  128. package/dist/cjs/query-compiler/compiled-query.d.ts +2 -0
  129. package/dist/cjs/query-compiler/compiled-query.js +2 -0
  130. package/dist/cjs/query-compiler/default-query-compiler.d.ts +17 -2
  131. package/dist/cjs/query-compiler/default-query-compiler.js +97 -2
  132. package/dist/cjs/query-compiler/query-compiler.d.ts +4 -2
  133. package/dist/cjs/query-creator.d.ts +23 -25
  134. package/dist/cjs/query-creator.js +280 -8
  135. package/dist/cjs/query-executor/default-query-executor.d.ts +2 -1
  136. package/dist/cjs/query-executor/default-query-executor.js +2 -2
  137. package/dist/cjs/query-executor/query-executor-base.js +7 -25
  138. package/dist/cjs/raw-builder/raw-builder.js +0 -3
  139. package/dist/cjs/raw-builder/sql.d.ts +3 -3
  140. package/dist/cjs/raw-builder/sql.js +1 -1
  141. package/dist/cjs/schema/alter-column-builder.js +0 -3
  142. package/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.d.ts +4 -0
  143. package/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.js +24 -2
  144. package/dist/cjs/schema/alter-table-add-index-builder.js +0 -2
  145. package/dist/cjs/schema/alter-table-builder.d.ts +7 -3
  146. package/dist/cjs/schema/alter-table-builder.js +21 -10
  147. package/dist/cjs/schema/alter-table-drop-constraint-builder.js +0 -2
  148. package/dist/cjs/schema/alter-table-executor.js +0 -2
  149. package/dist/cjs/schema/check-constraint-builder.d.ts +13 -0
  150. package/dist/cjs/schema/check-constraint-builder.js +20 -0
  151. package/dist/cjs/schema/column-definition-builder.js +0 -2
  152. package/dist/cjs/schema/create-index-builder.js +1 -3
  153. package/dist/cjs/schema/create-schema-builder.js +0 -2
  154. package/dist/cjs/schema/create-table-builder.d.ts +5 -4
  155. package/dist/cjs/schema/create-table-builder.js +9 -7
  156. package/dist/cjs/schema/create-type-builder.d.ts +1 -1
  157. package/dist/cjs/schema/create-type-builder.js +0 -2
  158. package/dist/cjs/schema/create-view-builder.js +0 -2
  159. package/dist/cjs/schema/drop-index-builder.js +0 -2
  160. package/dist/cjs/schema/drop-schema-builder.js +0 -2
  161. package/dist/cjs/schema/drop-table-builder.js +0 -2
  162. package/dist/cjs/schema/drop-type-builder.js +0 -2
  163. package/dist/cjs/schema/drop-view-builder.js +0 -2
  164. package/dist/cjs/schema/foreign-key-constraint-builder.d.ts +9 -0
  165. package/dist/cjs/schema/foreign-key-constraint-builder.js +16 -2
  166. package/dist/cjs/schema/primary-key-constraint-builder.d.ts +17 -0
  167. package/dist/cjs/schema/primary-key-constraint-builder.js +37 -0
  168. package/dist/cjs/schema/refresh-materialized-view-builder.d.ts +47 -0
  169. package/dist/cjs/schema/refresh-materialized-view-builder.js +75 -0
  170. package/dist/cjs/schema/schema.d.ts +14 -0
  171. package/dist/cjs/schema/schema.js +21 -0
  172. package/dist/cjs/schema/unique-constraint-builder.d.ts +10 -1
  173. package/dist/cjs/schema/unique-constraint-builder.js +26 -5
  174. package/dist/cjs/util/infer-result.d.ts +1 -1
  175. package/dist/cjs/util/log.d.ts +1 -0
  176. package/dist/cjs/util/log.js +3 -2
  177. package/dist/cjs/util/provide-controlled-connection.d.ts +7 -0
  178. package/dist/cjs/util/provide-controlled-connection.js +24 -0
  179. package/dist/esm/dialect/mssql/mssql-dialect-config.d.ts +26 -16
  180. package/dist/esm/dialect/mssql/mssql-driver.d.ts +6 -3
  181. package/dist/esm/dialect/mssql/mssql-driver.js +33 -19
  182. package/dist/esm/dialect/mssql/mssql-query-compiler.d.ts +2 -0
  183. package/dist/esm/dialect/mssql/mssql-query-compiler.js +11 -0
  184. package/dist/esm/dialect/mysql/mysql-driver.d.ts +4 -0
  185. package/dist/esm/dialect/mysql/mysql-driver.js +27 -12
  186. package/dist/esm/dialect/postgres/postgres-driver.d.ts +4 -0
  187. package/dist/esm/dialect/postgres/postgres-driver.js +28 -18
  188. package/dist/esm/dialect/postgres/postgres-introspector.js +7 -17
  189. package/dist/esm/dialect/sqlite/sqlite-driver.d.ts +4 -0
  190. package/dist/esm/dialect/sqlite/sqlite-driver.js +19 -13
  191. package/dist/esm/dialect/sqlite/sqlite-query-compiler.d.ts +2 -0
  192. package/dist/esm/dialect/sqlite/sqlite-query-compiler.js +4 -0
  193. package/dist/esm/driver/database-connection.d.ts +0 -4
  194. package/dist/esm/driver/driver.d.ts +17 -0
  195. package/dist/esm/driver/driver.js +11 -0
  196. package/dist/esm/driver/dummy-driver.d.ts +3 -0
  197. package/dist/esm/driver/dummy-driver.js +9 -0
  198. package/dist/esm/driver/runtime-driver.d.ts +4 -0
  199. package/dist/esm/driver/runtime-driver.js +43 -3
  200. package/dist/esm/expression/expression-builder.d.ts +7 -10
  201. package/dist/esm/helpers/postgres.d.ts +48 -0
  202. package/dist/esm/helpers/postgres.js +49 -0
  203. package/dist/esm/index.d.ts +13 -2
  204. package/dist/esm/index.js +11 -1
  205. package/dist/esm/kysely.d.ts +339 -2
  206. package/dist/esm/kysely.js +461 -10
  207. package/dist/esm/migration/migrator.d.ts +8 -0
  208. package/dist/esm/migration/migrator.js +1 -1
  209. package/dist/esm/operation-node/aggregate-function-node.d.ts +2 -1
  210. package/dist/esm/operation-node/aggregate-function-node.js +4 -3
  211. package/dist/esm/operation-node/alter-table-node.d.ts +3 -1
  212. package/dist/esm/operation-node/collate-node.d.ts +13 -0
  213. package/dist/esm/operation-node/collate-node.js +17 -0
  214. package/dist/esm/operation-node/constraint-node.d.ts +1 -1
  215. package/dist/esm/operation-node/create-type-node.d.ts +1 -1
  216. package/dist/esm/operation-node/create-type-node.js +1 -1
  217. package/dist/esm/operation-node/delete-query-node.d.ts +8 -2
  218. package/dist/esm/operation-node/delete-query-node.js +11 -15
  219. package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +4 -0
  220. package/dist/esm/operation-node/insert-query-node.d.ts +3 -0
  221. package/dist/esm/operation-node/join-node.d.ts +1 -1
  222. package/dist/esm/operation-node/merge-query-node.d.ts +2 -0
  223. package/dist/esm/operation-node/operation-node-transformer.d.ts +106 -97
  224. package/dist/esm/operation-node/operation-node-transformer.js +352 -312
  225. package/dist/esm/operation-node/operation-node-visitor.d.ts +9 -1
  226. package/dist/esm/operation-node/operation-node-visitor.js +4 -0
  227. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  228. package/dist/esm/operation-node/or-action-node.d.ts +12 -0
  229. package/dist/esm/operation-node/or-action-node.js +16 -0
  230. package/dist/esm/operation-node/order-by-item-node.d.ts +5 -0
  231. package/dist/esm/operation-node/order-by-item-node.js +6 -0
  232. package/dist/esm/operation-node/primary-key-constraint-node.d.ts +29 -0
  233. package/dist/esm/operation-node/{primary-constraint-node.js → primary-key-constraint-node.js} +11 -2
  234. package/dist/esm/operation-node/query-node.d.ts +7 -0
  235. package/dist/esm/operation-node/query-node.js +15 -0
  236. package/dist/esm/operation-node/refresh-materialized-view-node.d.ts +17 -0
  237. package/dist/esm/operation-node/refresh-materialized-view-node.js +23 -0
  238. package/dist/esm/operation-node/rename-constraint-node.d.ts +14 -0
  239. package/dist/esm/operation-node/rename-constraint-node.js +18 -0
  240. package/dist/esm/operation-node/select-query-node.d.ts +8 -2
  241. package/dist/esm/operation-node/select-query-node.js +11 -15
  242. package/dist/esm/operation-node/unique-constraint-node.d.ts +2 -0
  243. package/dist/esm/operation-node/update-query-node.d.ts +3 -4
  244. package/dist/esm/operation-node/update-query-node.js +5 -2
  245. package/dist/esm/parser/collate-parser.d.ts +1 -0
  246. package/dist/esm/parser/collate-parser.js +2 -0
  247. package/dist/esm/parser/delete-from-parser.d.ts +5 -0
  248. package/dist/esm/parser/delete-from-parser.js +2 -0
  249. package/dist/esm/parser/join-parser.d.ts +1 -1
  250. package/dist/esm/parser/join-parser.js +7 -1
  251. package/dist/esm/parser/merge-into-parser.d.ts +5 -0
  252. package/dist/esm/parser/merge-into-parser.js +2 -0
  253. package/dist/esm/parser/order-by-parser.d.ts +18 -5
  254. package/dist/esm/parser/order-by-parser.js +27 -17
  255. package/dist/esm/parser/savepoint-parser.d.ts +4 -0
  256. package/dist/esm/parser/savepoint-parser.js +9 -0
  257. package/dist/esm/parser/select-from-parser.d.ts +4 -0
  258. package/dist/esm/parser/select-from-parser.js +2 -0
  259. package/dist/esm/parser/table-parser.d.ts +2 -5
  260. package/dist/esm/parser/update-parser.d.ts +5 -0
  261. package/dist/esm/parser/update-parser.js +2 -0
  262. package/dist/esm/parser/update-set-parser.d.ts +7 -4
  263. package/dist/esm/plugin/camel-case/camel-case-plugin.js +1 -1
  264. package/dist/esm/plugin/camel-case/camel-case-transformer.d.ts +2 -1
  265. package/dist/esm/plugin/camel-case/camel-case-transformer.js +2 -2
  266. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
  267. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-transformer.d.ts +4 -3
  268. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-transformer.js +6 -6
  269. package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.d.ts +211 -0
  270. package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.js +159 -0
  271. package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-transformer.d.ts +8 -0
  272. package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-transformer.js +26 -0
  273. package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists.d.ts +44 -0
  274. package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists.js +63 -0
  275. package/dist/esm/plugin/immediate-value/immediate-value-plugin.js +1 -1
  276. package/dist/esm/plugin/immediate-value/immediate-value-transformer.d.ts +2 -0
  277. package/dist/esm/plugin/immediate-value/immediate-value-transformer.js +6 -4
  278. package/dist/esm/plugin/with-schema/with-schema-plugin.js +1 -1
  279. package/dist/esm/plugin/with-schema/with-schema-transformer.d.ts +6 -5
  280. package/dist/esm/plugin/with-schema/with-schema-transformer.js +29 -24
  281. package/dist/esm/query-builder/aggregate-function-builder.d.ts +83 -5
  282. package/dist/esm/query-builder/aggregate-function-builder.js +15 -27
  283. package/dist/esm/query-builder/cte-builder.js +0 -2
  284. package/dist/esm/query-builder/delete-query-builder.d.ts +36 -47
  285. package/dist/esm/query-builder/delete-query-builder.js +12 -78
  286. package/dist/esm/query-builder/function-module.d.ts +31 -4
  287. package/dist/esm/query-builder/insert-query-builder.d.ts +161 -6
  288. package/dist/esm/query-builder/insert-query-builder.js +197 -10
  289. package/dist/esm/query-builder/join-builder.js +0 -2
  290. package/dist/esm/query-builder/merge-query-builder.d.ts +145 -3
  291. package/dist/esm/query-builder/merge-query-builder.js +29 -8
  292. package/dist/esm/query-builder/on-conflict-builder.js +0 -4
  293. package/dist/esm/query-builder/order-by-interface.d.ts +176 -0
  294. package/dist/esm/query-builder/order-by-interface.js +2 -0
  295. package/dist/esm/query-builder/order-by-item-builder.d.ts +43 -0
  296. package/dist/esm/query-builder/order-by-item-builder.js +72 -0
  297. package/dist/esm/query-builder/over-builder.d.ts +43 -6
  298. package/dist/esm/query-builder/over-builder.js +8 -25
  299. package/dist/esm/query-builder/returning-interface.d.ts +20 -3
  300. package/dist/esm/query-builder/select-query-builder.d.ts +279 -98
  301. package/dist/esm/query-builder/select-query-builder.js +26 -26
  302. package/dist/esm/query-builder/update-query-builder.d.ts +88 -9
  303. package/dist/esm/query-builder/update-query-builder.js +17 -15
  304. package/dist/esm/query-compiler/compiled-query.d.ts +2 -0
  305. package/dist/esm/query-compiler/compiled-query.js +2 -0
  306. package/dist/esm/query-compiler/default-query-compiler.d.ts +17 -2
  307. package/dist/esm/query-compiler/default-query-compiler.js +97 -2
  308. package/dist/esm/query-compiler/query-compiler.d.ts +4 -2
  309. package/dist/esm/query-creator.d.ts +23 -25
  310. package/dist/esm/query-creator.js +281 -9
  311. package/dist/esm/query-executor/default-query-executor.d.ts +2 -1
  312. package/dist/esm/query-executor/default-query-executor.js +2 -2
  313. package/dist/esm/query-executor/query-executor-base.js +7 -25
  314. package/dist/esm/raw-builder/raw-builder.js +0 -3
  315. package/dist/esm/raw-builder/sql.d.ts +3 -3
  316. package/dist/esm/raw-builder/sql.js +1 -1
  317. package/dist/esm/schema/alter-column-builder.js +0 -3
  318. package/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.d.ts +4 -0
  319. package/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.js +24 -2
  320. package/dist/esm/schema/alter-table-add-index-builder.js +0 -2
  321. package/dist/esm/schema/alter-table-builder.d.ts +7 -3
  322. package/dist/esm/schema/alter-table-builder.js +22 -11
  323. package/dist/esm/schema/alter-table-drop-constraint-builder.js +0 -2
  324. package/dist/esm/schema/alter-table-executor.js +0 -2
  325. package/dist/esm/schema/check-constraint-builder.d.ts +13 -0
  326. package/dist/esm/schema/check-constraint-builder.js +17 -0
  327. package/dist/esm/schema/column-definition-builder.js +0 -2
  328. package/dist/esm/schema/create-index-builder.js +1 -3
  329. package/dist/esm/schema/create-schema-builder.js +0 -2
  330. package/dist/esm/schema/create-table-builder.d.ts +5 -4
  331. package/dist/esm/schema/create-table-builder.js +10 -8
  332. package/dist/esm/schema/create-type-builder.d.ts +1 -1
  333. package/dist/esm/schema/create-type-builder.js +0 -2
  334. package/dist/esm/schema/create-view-builder.js +0 -2
  335. package/dist/esm/schema/drop-index-builder.js +0 -2
  336. package/dist/esm/schema/drop-schema-builder.js +0 -2
  337. package/dist/esm/schema/drop-table-builder.js +0 -2
  338. package/dist/esm/schema/drop-type-builder.js +0 -2
  339. package/dist/esm/schema/drop-view-builder.js +0 -2
  340. package/dist/esm/schema/foreign-key-constraint-builder.d.ts +9 -0
  341. package/dist/esm/schema/foreign-key-constraint-builder.js +16 -2
  342. package/dist/esm/schema/primary-key-constraint-builder.d.ts +17 -0
  343. package/dist/esm/schema/primary-key-constraint-builder.js +34 -0
  344. package/dist/esm/schema/refresh-materialized-view-builder.d.ts +47 -0
  345. package/dist/esm/schema/refresh-materialized-view-builder.js +72 -0
  346. package/dist/esm/schema/schema.d.ts +14 -0
  347. package/dist/esm/schema/schema.js +21 -0
  348. package/dist/esm/schema/unique-constraint-builder.d.ts +10 -1
  349. package/dist/esm/schema/unique-constraint-builder.js +26 -5
  350. package/dist/esm/util/infer-result.d.ts +1 -1
  351. package/dist/esm/util/log.d.ts +1 -0
  352. package/dist/esm/util/log.js +3 -2
  353. package/dist/esm/util/provide-controlled-connection.d.ts +7 -0
  354. package/dist/esm/util/provide-controlled-connection.js +22 -0
  355. package/outdated-typescript.d.ts +5 -0
  356. package/package.json +16 -2
  357. package/CONTRIBUTING.md +0 -168
  358. package/dist/cjs/operation-node/primary-constraint-node.d.ts +0 -15
  359. package/dist/cjs/util/prevent-await.d.ts +0 -1
  360. package/dist/cjs/util/prevent-await.js +0 -13
  361. package/dist/esm/operation-node/primary-constraint-node.d.ts +0 -15
  362. package/dist/esm/util/prevent-await.d.ts +0 -1
  363. package/dist/esm/util/prevent-await.js +0 -11
@@ -6,6 +6,7 @@ import { ColumnDefinitionBuilderCallback } from './column-definition-builder.js'
6
6
  import { QueryId } from '../util/query-id.js';
7
7
  import { QueryExecutor } from '../query-executor/query-executor.js';
8
8
  import { DataTypeExpression } from '../parser/data-type-parser.js';
9
+ import { ForeignKeyConstraintBuilderCallback } from './foreign-key-constraint-builder.js';
9
10
  import { Expression } from '../expression/expression.js';
10
11
  import { AlterColumnBuilderCallback } from './alter-column-builder.js';
11
12
  import { AlterTableExecutor } from './alter-table-executor.js';
@@ -13,6 +14,8 @@ import { AlterTableAddForeignKeyConstraintBuilder } from './alter-table-add-fore
13
14
  import { AlterTableDropConstraintBuilder } from './alter-table-drop-constraint-builder.js';
14
15
  import { AlterTableAddIndexBuilder } from './alter-table-add-index-builder.js';
15
16
  import { UniqueConstraintNodeBuilderCallback } from './unique-constraint-builder.js';
17
+ import { PrimaryKeyConstraintBuilderCallback } from './primary-key-constraint-builder.js';
18
+ import { CheckConstraintBuilderCallback } from './check-constraint-builder.js';
16
19
  /**
17
20
  * This builder can be used to create a `alter table` query.
18
21
  */
@@ -41,7 +44,7 @@ export declare class AlterTableBuilder implements ColumnAlteringInterface {
41
44
  /**
42
45
  * See {@link CreateTableBuilder.addCheckConstraint}
43
46
  */
44
- addCheckConstraint(constraintName: string, checkExpression: Expression<any>): AlterTableExecutor;
47
+ addCheckConstraint(constraintName: string, checkExpression: Expression<any>, build?: CheckConstraintBuilderCallback): AlterTableExecutor;
45
48
  /**
46
49
  * See {@link CreateTableBuilder.addForeignKeyConstraint}
47
50
  *
@@ -49,12 +52,13 @@ export declare class AlterTableBuilder implements ColumnAlteringInterface {
49
52
  * the constraint builder and doesn't take a callback as the last argument. This
50
53
  * is because you can only add one column per `ALTER TABLE` query.
51
54
  */
52
- addForeignKeyConstraint(constraintName: string, columns: string[], targetTable: string, targetColumns: string[]): AlterTableAddForeignKeyConstraintBuilder;
55
+ addForeignKeyConstraint(constraintName: string, columns: string[], targetTable: string, targetColumns: string[], build?: ForeignKeyConstraintBuilderCallback): AlterTableAddForeignKeyConstraintBuilder;
53
56
  /**
54
57
  * See {@link CreateTableBuilder.addPrimaryKeyConstraint}
55
58
  */
56
- addPrimaryKeyConstraint(constraintName: string, columns: string[]): AlterTableExecutor;
59
+ addPrimaryKeyConstraint(constraintName: string, columns: string[], build?: PrimaryKeyConstraintBuilderCallback): AlterTableExecutor;
57
60
  dropConstraint(constraintName: string): AlterTableDropConstraintBuilder;
61
+ renameConstraint(oldName: string, newName: string): AlterTableDropConstraintBuilder;
58
62
  /**
59
63
  * This can be used to add index to table.
60
64
  *
@@ -8,7 +8,6 @@ const drop_column_node_js_1 = require("../operation-node/drop-column-node.js");
8
8
  const identifier_node_js_1 = require("../operation-node/identifier-node.js");
9
9
  const rename_column_node_js_1 = require("../operation-node/rename-column-node.js");
10
10
  const object_utils_js_1 = require("../util/object-utils.js");
11
- const prevent_await_js_1 = require("../util/prevent-await.js");
12
11
  const column_definition_builder_js_1 = require("./column-definition-builder.js");
13
12
  const modify_column_node_js_1 = require("../operation-node/modify-column-node.js");
14
13
  const data_type_parser_js_1 = require("../parser/data-type-parser.js");
@@ -24,11 +23,14 @@ const alter_column_builder_js_1 = require("./alter-column-builder.js");
24
23
  const alter_table_executor_js_1 = require("./alter-table-executor.js");
25
24
  const alter_table_add_foreign_key_constraint_builder_js_1 = require("./alter-table-add-foreign-key-constraint-builder.js");
26
25
  const alter_table_drop_constraint_builder_js_1 = require("./alter-table-drop-constraint-builder.js");
27
- const primary_constraint_node_js_1 = require("../operation-node/primary-constraint-node.js");
26
+ const primary_key_constraint_node_js_1 = require("../operation-node/primary-key-constraint-node.js");
28
27
  const drop_index_node_js_1 = require("../operation-node/drop-index-node.js");
29
28
  const add_index_node_js_1 = require("../operation-node/add-index-node.js");
30
29
  const alter_table_add_index_builder_js_1 = require("./alter-table-add-index-builder.js");
31
30
  const unique_constraint_builder_js_1 = require("./unique-constraint-builder.js");
31
+ const primary_key_constraint_builder_js_1 = require("./primary-key-constraint-builder.js");
32
+ const check_constraint_builder_js_1 = require("./check-constraint-builder.js");
33
+ const rename_constraint_node_js_1 = require("../operation-node/rename-constraint-node.js");
32
34
  /**
33
35
  * This builder can be used to create a `alter table` query.
34
36
  */
@@ -101,11 +103,12 @@ class AlterTableBuilder {
101
103
  /**
102
104
  * See {@link CreateTableBuilder.addCheckConstraint}
103
105
  */
104
- addCheckConstraint(constraintName, checkExpression) {
106
+ addCheckConstraint(constraintName, checkExpression, build = object_utils_js_1.noop) {
107
+ const constraintBuilder = build(new check_constraint_builder_js_1.CheckConstraintBuilder(check_constraint_node_js_1.CheckConstraintNode.create(checkExpression.toOperationNode(), constraintName)));
105
108
  return new alter_table_executor_js_1.AlterTableExecutor({
106
109
  ...this.#props,
107
110
  node: alter_table_node_js_1.AlterTableNode.cloneWithTableProps(this.#props.node, {
108
- addConstraint: add_constraint_node_js_1.AddConstraintNode.create(check_constraint_node_js_1.CheckConstraintNode.create(checkExpression.toOperationNode(), constraintName)),
111
+ addConstraint: add_constraint_node_js_1.AddConstraintNode.create(constraintBuilder.toOperationNode()),
109
112
  }),
110
113
  });
111
114
  }
@@ -116,20 +119,22 @@ class AlterTableBuilder {
116
119
  * the constraint builder and doesn't take a callback as the last argument. This
117
120
  * is because you can only add one column per `ALTER TABLE` query.
118
121
  */
119
- addForeignKeyConstraint(constraintName, columns, targetTable, targetColumns) {
122
+ addForeignKeyConstraint(constraintName, columns, targetTable, targetColumns, build = object_utils_js_1.noop) {
123
+ const constraintBuilder = build(new foreign_key_constraint_builder_js_1.ForeignKeyConstraintBuilder(foreign_key_constraint_node_js_1.ForeignKeyConstraintNode.create(columns.map(column_node_js_1.ColumnNode.create), (0, table_parser_js_1.parseTable)(targetTable), targetColumns.map(column_node_js_1.ColumnNode.create), constraintName)));
120
124
  return new alter_table_add_foreign_key_constraint_builder_js_1.AlterTableAddForeignKeyConstraintBuilder({
121
125
  ...this.#props,
122
- constraintBuilder: new foreign_key_constraint_builder_js_1.ForeignKeyConstraintBuilder(foreign_key_constraint_node_js_1.ForeignKeyConstraintNode.create(columns.map(column_node_js_1.ColumnNode.create), (0, table_parser_js_1.parseTable)(targetTable), targetColumns.map(column_node_js_1.ColumnNode.create), constraintName)),
126
+ constraintBuilder,
123
127
  });
124
128
  }
125
129
  /**
126
130
  * See {@link CreateTableBuilder.addPrimaryKeyConstraint}
127
131
  */
128
- addPrimaryKeyConstraint(constraintName, columns) {
132
+ addPrimaryKeyConstraint(constraintName, columns, build = object_utils_js_1.noop) {
133
+ const constraintBuilder = build(new primary_key_constraint_builder_js_1.PrimaryKeyConstraintBuilder(primary_key_constraint_node_js_1.PrimaryKeyConstraintNode.create(columns, constraintName)));
129
134
  return new alter_table_executor_js_1.AlterTableExecutor({
130
135
  ...this.#props,
131
136
  node: alter_table_node_js_1.AlterTableNode.cloneWithTableProps(this.#props.node, {
132
- addConstraint: add_constraint_node_js_1.AddConstraintNode.create(primary_constraint_node_js_1.PrimaryConstraintNode.create(columns, constraintName)),
137
+ addConstraint: add_constraint_node_js_1.AddConstraintNode.create(constraintBuilder.toOperationNode()),
133
138
  }),
134
139
  });
135
140
  }
@@ -141,6 +146,14 @@ class AlterTableBuilder {
141
146
  }),
142
147
  });
143
148
  }
149
+ renameConstraint(oldName, newName) {
150
+ return new alter_table_drop_constraint_builder_js_1.AlterTableDropConstraintBuilder({
151
+ ...this.#props,
152
+ node: alter_table_node_js_1.AlterTableNode.cloneWithTableProps(this.#props.node, {
153
+ renameConstraint: rename_constraint_node_js_1.RenameConstraintNode.create(oldName, newName),
154
+ }),
155
+ });
156
+ }
144
157
  /**
145
158
  * This can be used to add index to table.
146
159
  *
@@ -203,7 +216,6 @@ class AlterTableBuilder {
203
216
  }
204
217
  }
205
218
  exports.AlterTableBuilder = AlterTableBuilder;
206
- (0, prevent_await_js_1.preventAwait)(AlterTableBuilder, "don't await AlterTableBuilder instances");
207
219
  class AlterTableColumnAlteringBuilder {
208
220
  #props;
209
221
  constructor(props) {
@@ -253,4 +265,3 @@ class AlterTableColumnAlteringBuilder {
253
265
  }
254
266
  }
255
267
  exports.AlterTableColumnAlteringBuilder = AlterTableColumnAlteringBuilder;
256
- (0, prevent_await_js_1.preventAwait)(AlterTableColumnAlteringBuilder, "don't await AlterTableColumnAlteringBuilder instances directly. To execute the query you need to call `execute`");
@@ -4,7 +4,6 @@ exports.AlterTableDropConstraintBuilder = void 0;
4
4
  const alter_table_node_js_1 = require("../operation-node/alter-table-node.js");
5
5
  const drop_constraint_node_js_1 = require("../operation-node/drop-constraint-node.js");
6
6
  const object_utils_js_1 = require("../util/object-utils.js");
7
- const prevent_await_js_1 = require("../util/prevent-await.js");
8
7
  class AlterTableDropConstraintBuilder {
9
8
  #props;
10
9
  constructor(props) {
@@ -58,4 +57,3 @@ class AlterTableDropConstraintBuilder {
58
57
  }
59
58
  }
60
59
  exports.AlterTableDropConstraintBuilder = AlterTableDropConstraintBuilder;
61
- (0, prevent_await_js_1.preventAwait)(AlterTableDropConstraintBuilder, "don't await AlterTableDropConstraintBuilder instances directly. To execute the query you need to call `execute`");
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AlterTableExecutor = void 0;
4
4
  const object_utils_js_1 = require("../util/object-utils.js");
5
- const prevent_await_js_1 = require("../util/prevent-await.js");
6
5
  class AlterTableExecutor {
7
6
  #props;
8
7
  constructor(props) {
@@ -19,4 +18,3 @@ class AlterTableExecutor {
19
18
  }
20
19
  }
21
20
  exports.AlterTableExecutor = AlterTableExecutor;
22
- (0, prevent_await_js_1.preventAwait)(AlterTableExecutor, "don't await AlterTableExecutor instances directly. To execute the query you need to call `execute`");
@@ -0,0 +1,13 @@
1
+ import { OperationNodeSource } from '../operation-node/operation-node-source.js';
2
+ import { CheckConstraintNode } from '../operation-node/check-constraint-node.js';
3
+ export declare class CheckConstraintBuilder implements OperationNodeSource {
4
+ #private;
5
+ constructor(node: CheckConstraintNode);
6
+ /**
7
+ * Simply calls the provided function passing `this` as the only argument. `$call` returns
8
+ * what the provided function returns.
9
+ */
10
+ $call<T>(func: (qb: this) => T): T;
11
+ toOperationNode(): CheckConstraintNode;
12
+ }
13
+ export type CheckConstraintBuilderCallback = (builder: CheckConstraintBuilder) => CheckConstraintBuilder;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CheckConstraintBuilder = void 0;
4
+ class CheckConstraintBuilder {
5
+ #node;
6
+ constructor(node) {
7
+ this.#node = node;
8
+ }
9
+ /**
10
+ * Simply calls the provided function passing `this` as the only argument. `$call` returns
11
+ * what the provided function returns.
12
+ */
13
+ $call(func) {
14
+ return func(this);
15
+ }
16
+ toOperationNode() {
17
+ return this.#node;
18
+ }
19
+ }
20
+ exports.CheckConstraintBuilder = CheckConstraintBuilder;
@@ -5,7 +5,6 @@ const check_constraint_node_js_1 = require("../operation-node/check-constraint-n
5
5
  const references_node_js_1 = require("../operation-node/references-node.js");
6
6
  const select_all_node_js_1 = require("../operation-node/select-all-node.js");
7
7
  const reference_parser_js_1 = require("../parser/reference-parser.js");
8
- const prevent_await_js_1 = require("../util/prevent-await.js");
9
8
  const column_definition_node_js_1 = require("../operation-node/column-definition-node.js");
10
9
  const default_value_parser_js_1 = require("../parser/default-value-parser.js");
11
10
  const generated_node_js_1 = require("../operation-node/generated-node.js");
@@ -599,4 +598,3 @@ class ColumnDefinitionBuilder {
599
598
  }
600
599
  }
601
600
  exports.ColumnDefinitionBuilder = ColumnDefinitionBuilder;
602
- (0, prevent_await_js_1.preventAwait)(ColumnDefinitionBuilder, "don't await ColumnDefinitionBuilder instances directly.");
@@ -5,7 +5,6 @@ const create_index_node_js_1 = require("../operation-node/create-index-node.js")
5
5
  const raw_node_js_1 = require("../operation-node/raw-node.js");
6
6
  const reference_parser_js_1 = require("../parser/reference-parser.js");
7
7
  const table_parser_js_1 = require("../parser/table-parser.js");
8
- const prevent_await_js_1 = require("../util/prevent-await.js");
9
8
  const object_utils_js_1 = require("../util/object-utils.js");
10
9
  const binary_operation_parser_js_1 = require("../parser/binary-operation-parser.js");
11
10
  const query_node_js_1 = require("../operation-node/query-node.js");
@@ -180,7 +179,7 @@ class CreateIndexBuilder {
180
179
  const transformer = new immediate_value_transformer_js_1.ImmediateValueTransformer();
181
180
  return new CreateIndexBuilder({
182
181
  ...this.#props,
183
- node: query_node_js_1.QueryNode.cloneWithWhere(this.#props.node, transformer.transformNode((0, binary_operation_parser_js_1.parseValueBinaryOperationOrExpression)(args))),
182
+ node: query_node_js_1.QueryNode.cloneWithWhere(this.#props.node, transformer.transformNode((0, binary_operation_parser_js_1.parseValueBinaryOperationOrExpression)(args), this.#props.queryId)),
184
183
  });
185
184
  }
186
185
  /**
@@ -201,4 +200,3 @@ class CreateIndexBuilder {
201
200
  }
202
201
  }
203
202
  exports.CreateIndexBuilder = CreateIndexBuilder;
204
- (0, prevent_await_js_1.preventAwait)(CreateIndexBuilder, "don't await CreateIndexBuilder instances directly. To execute the query you need to call `execute`");
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CreateSchemaBuilder = void 0;
4
4
  const create_schema_node_js_1 = require("../operation-node/create-schema-node.js");
5
- const prevent_await_js_1 = require("../util/prevent-await.js");
6
5
  const object_utils_js_1 = require("../util/object-utils.js");
7
6
  class CreateSchemaBuilder {
8
7
  #props;
@@ -33,4 +32,3 @@ class CreateSchemaBuilder {
33
32
  }
34
33
  }
35
34
  exports.CreateSchemaBuilder = CreateSchemaBuilder;
36
- (0, prevent_await_js_1.preventAwait)(CreateSchemaBuilder, "don't await CreateSchemaBuilder instances directly. To execute the query you need to call `execute`");
@@ -5,10 +5,12 @@ import { Compilable } from '../util/compilable.js';
5
5
  import { QueryExecutor } from '../query-executor/query-executor.js';
6
6
  import { ColumnDefinitionBuilder } from './column-definition-builder.js';
7
7
  import { QueryId } from '../util/query-id.js';
8
- import { ForeignKeyConstraintBuilder } from './foreign-key-constraint-builder.js';
8
+ import { ForeignKeyConstraintBuilderCallback } from './foreign-key-constraint-builder.js';
9
9
  import { DataTypeExpression } from '../parser/data-type-parser.js';
10
10
  import { Expression } from '../expression/expression.js';
11
11
  import { UniqueConstraintNodeBuilderCallback } from './unique-constraint-builder.js';
12
+ import { PrimaryKeyConstraintBuilderCallback } from './primary-key-constraint-builder.js';
13
+ import { CheckConstraintBuilderCallback } from './check-constraint-builder.js';
12
14
  /**
13
15
  * This builder can be used to create a `create table` query.
14
16
  */
@@ -106,7 +108,7 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
106
108
  * .execute()
107
109
  * ```
108
110
  */
109
- addPrimaryKeyConstraint(constraintName: string, columns: C[]): CreateTableBuilder<TB, C>;
111
+ addPrimaryKeyConstraint(constraintName: string, columns: C[], build?: PrimaryKeyConstraintBuilderCallback): CreateTableBuilder<TB, C>;
110
112
  /**
111
113
  * Adds a unique constraint for one or more columns.
112
114
  *
@@ -161,7 +163,7 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
161
163
  * .execute()
162
164
  * ```
163
165
  */
164
- addCheckConstraint(constraintName: string, checkExpression: Expression<any>): CreateTableBuilder<TB, C>;
166
+ addCheckConstraint(constraintName: string, checkExpression: Expression<any>, build?: CheckConstraintBuilderCallback): CreateTableBuilder<TB, C>;
165
167
  /**
166
168
  * Adds a foreign key constraint.
167
169
  *
@@ -327,4 +329,3 @@ export interface CreateTableBuilderProps {
327
329
  readonly node: CreateTableNode;
328
330
  }
329
331
  export type ColumnBuilderCallback = (builder: ColumnDefinitionBuilder) => ColumnDefinitionBuilder;
330
- export type ForeignKeyConstraintBuilderCallback = (builder: ForeignKeyConstraintBuilder) => ForeignKeyConstraintBuilder;
@@ -3,20 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CreateTableBuilder = void 0;
4
4
  const column_definition_node_js_1 = require("../operation-node/column-definition-node.js");
5
5
  const create_table_node_js_1 = require("../operation-node/create-table-node.js");
6
- const prevent_await_js_1 = require("../util/prevent-await.js");
7
6
  const column_definition_builder_js_1 = require("./column-definition-builder.js");
8
7
  const object_utils_js_1 = require("../util/object-utils.js");
9
8
  const foreign_key_constraint_node_js_1 = require("../operation-node/foreign-key-constraint-node.js");
10
9
  const column_node_js_1 = require("../operation-node/column-node.js");
11
10
  const foreign_key_constraint_builder_js_1 = require("./foreign-key-constraint-builder.js");
12
11
  const data_type_parser_js_1 = require("../parser/data-type-parser.js");
13
- const primary_constraint_node_js_1 = require("../operation-node/primary-constraint-node.js");
12
+ const primary_key_constraint_node_js_1 = require("../operation-node/primary-key-constraint-node.js");
14
13
  const unique_constraint_node_js_1 = require("../operation-node/unique-constraint-node.js");
15
14
  const check_constraint_node_js_1 = require("../operation-node/check-constraint-node.js");
16
15
  const table_parser_js_1 = require("../parser/table-parser.js");
17
16
  const on_commit_action_parse_js_1 = require("../parser/on-commit-action-parse.js");
18
17
  const unique_constraint_builder_js_1 = require("./unique-constraint-builder.js");
19
18
  const expression_parser_js_1 = require("../parser/expression-parser.js");
19
+ const primary_key_constraint_builder_js_1 = require("./primary-key-constraint-builder.js");
20
+ const check_constraint_builder_js_1 = require("./check-constraint-builder.js");
20
21
  /**
21
22
  * This builder can be used to create a `create table` query.
22
23
  */
@@ -143,10 +144,11 @@ class CreateTableBuilder {
143
144
  * .execute()
144
145
  * ```
145
146
  */
146
- addPrimaryKeyConstraint(constraintName, columns) {
147
+ addPrimaryKeyConstraint(constraintName, columns, build = object_utils_js_1.noop) {
148
+ const constraintBuilder = build(new primary_key_constraint_builder_js_1.PrimaryKeyConstraintBuilder(primary_key_constraint_node_js_1.PrimaryKeyConstraintNode.create(columns, constraintName)));
147
149
  return new CreateTableBuilder({
148
150
  ...this.#props,
149
- node: create_table_node_js_1.CreateTableNode.cloneWithConstraint(this.#props.node, primary_constraint_node_js_1.PrimaryConstraintNode.create(columns, constraintName)),
151
+ node: create_table_node_js_1.CreateTableNode.cloneWithConstraint(this.#props.node, constraintBuilder.toOperationNode()),
150
152
  });
151
153
  }
152
154
  /**
@@ -209,10 +211,11 @@ class CreateTableBuilder {
209
211
  * .execute()
210
212
  * ```
211
213
  */
212
- addCheckConstraint(constraintName, checkExpression) {
214
+ addCheckConstraint(constraintName, checkExpression, build = object_utils_js_1.noop) {
215
+ const constraintBuilder = build(new check_constraint_builder_js_1.CheckConstraintBuilder(check_constraint_node_js_1.CheckConstraintNode.create(checkExpression.toOperationNode(), constraintName)));
213
216
  return new CreateTableBuilder({
214
217
  ...this.#props,
215
- node: create_table_node_js_1.CreateTableNode.cloneWithConstraint(this.#props.node, check_constraint_node_js_1.CheckConstraintNode.create(checkExpression.toOperationNode(), constraintName)),
218
+ node: create_table_node_js_1.CreateTableNode.cloneWithConstraint(this.#props.node, constraintBuilder.toOperationNode()),
216
219
  });
217
220
  }
218
221
  /**
@@ -406,4 +409,3 @@ class CreateTableBuilder {
406
409
  }
407
410
  }
408
411
  exports.CreateTableBuilder = CreateTableBuilder;
409
- (0, prevent_await_js_1.preventAwait)(CreateTableBuilder, "don't await CreateTableBuilder instances directly. To execute the query you need to call `execute`");
@@ -17,7 +17,7 @@ export declare class CreateTypeBuilder implements OperationNodeSource, Compilabl
17
17
  * db.schema.createType('species').asEnum(['cat', 'dog', 'frog'])
18
18
  * ```
19
19
  */
20
- asEnum(values: string[]): CreateTypeBuilder;
20
+ asEnum(values: readonly string[]): CreateTypeBuilder;
21
21
  /**
22
22
  * Simply calls the provided function passing `this` as the only argument. `$call` returns
23
23
  * what the provided function returns.
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CreateTypeBuilder = void 0;
4
- const prevent_await_js_1 = require("../util/prevent-await.js");
5
4
  const object_utils_js_1 = require("../util/object-utils.js");
6
5
  const create_type_node_js_1 = require("../operation-node/create-type-node.js");
7
6
  class CreateTypeBuilder {
@@ -42,4 +41,3 @@ class CreateTypeBuilder {
42
41
  }
43
42
  }
44
43
  exports.CreateTypeBuilder = CreateTypeBuilder;
45
- (0, prevent_await_js_1.preventAwait)(CreateTypeBuilder, "don't await CreateTypeBuilder instances directly. To execute the query you need to call `execute`");
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CreateViewBuilder = void 0;
4
- const prevent_await_js_1 = require("../util/prevent-await.js");
5
4
  const object_utils_js_1 = require("../util/object-utils.js");
6
5
  const create_view_node_js_1 = require("../operation-node/create-view-node.js");
7
6
  const reference_parser_js_1 = require("../parser/reference-parser.js");
@@ -97,4 +96,3 @@ class CreateViewBuilder {
97
96
  }
98
97
  }
99
98
  exports.CreateViewBuilder = CreateViewBuilder;
100
- (0, prevent_await_js_1.preventAwait)(CreateViewBuilder, "don't await CreateViewBuilder instances directly. To execute the query you need to call `execute`");
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DropIndexBuilder = void 0;
4
4
  const drop_index_node_js_1 = require("../operation-node/drop-index-node.js");
5
- const prevent_await_js_1 = require("../util/prevent-await.js");
6
5
  const table_parser_js_1 = require("../parser/table-parser.js");
7
6
  const object_utils_js_1 = require("../util/object-utils.js");
8
7
  class DropIndexBuilder {
@@ -56,4 +55,3 @@ class DropIndexBuilder {
56
55
  }
57
56
  }
58
57
  exports.DropIndexBuilder = DropIndexBuilder;
59
- (0, prevent_await_js_1.preventAwait)(DropIndexBuilder, "don't await DropIndexBuilder instances directly. To execute the query you need to call `execute`");
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DropSchemaBuilder = void 0;
4
4
  const drop_schema_node_js_1 = require("../operation-node/drop-schema-node.js");
5
- const prevent_await_js_1 = require("../util/prevent-await.js");
6
5
  const object_utils_js_1 = require("../util/object-utils.js");
7
6
  class DropSchemaBuilder {
8
7
  #props;
@@ -43,4 +42,3 @@ class DropSchemaBuilder {
43
42
  }
44
43
  }
45
44
  exports.DropSchemaBuilder = DropSchemaBuilder;
46
- (0, prevent_await_js_1.preventAwait)(DropSchemaBuilder, "don't await DropSchemaBuilder instances directly. To execute the query you need to call `execute`");
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DropTableBuilder = void 0;
4
4
  const drop_table_node_js_1 = require("../operation-node/drop-table-node.js");
5
- const prevent_await_js_1 = require("../util/prevent-await.js");
6
5
  const object_utils_js_1 = require("../util/object-utils.js");
7
6
  class DropTableBuilder {
8
7
  #props;
@@ -43,4 +42,3 @@ class DropTableBuilder {
43
42
  }
44
43
  }
45
44
  exports.DropTableBuilder = DropTableBuilder;
46
- (0, prevent_await_js_1.preventAwait)(DropTableBuilder, "don't await DropTableBuilder instances directly. To execute the query you need to call `execute`");
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DropTypeBuilder = void 0;
4
4
  const drop_type_node_js_1 = require("../operation-node/drop-type-node.js");
5
- const prevent_await_js_1 = require("../util/prevent-await.js");
6
5
  const object_utils_js_1 = require("../util/object-utils.js");
7
6
  class DropTypeBuilder {
8
7
  #props;
@@ -35,4 +34,3 @@ class DropTypeBuilder {
35
34
  }
36
35
  }
37
36
  exports.DropTypeBuilder = DropTypeBuilder;
38
- (0, prevent_await_js_1.preventAwait)(DropTypeBuilder, "don't await DropTypeBuilder instances directly. To execute the query you need to call `execute`");
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DropViewBuilder = void 0;
4
- const prevent_await_js_1 = require("../util/prevent-await.js");
5
4
  const object_utils_js_1 = require("../util/object-utils.js");
6
5
  const drop_view_node_js_1 = require("../operation-node/drop-view-node.js");
7
6
  class DropViewBuilder {
@@ -51,4 +50,3 @@ class DropViewBuilder {
51
50
  }
52
51
  }
53
52
  exports.DropViewBuilder = DropViewBuilder;
54
- (0, prevent_await_js_1.preventAwait)(DropViewBuilder, "don't await DropViewBuilder instances directly. To execute the query you need to call `execute`");
@@ -4,12 +4,20 @@ import { OnModifyForeignAction } from '../operation-node/references-node.js';
4
4
  export interface ForeignKeyConstraintBuilderInterface<R> {
5
5
  onDelete(onDelete: OnModifyForeignAction): R;
6
6
  onUpdate(onUpdate: OnModifyForeignAction): R;
7
+ deferrable(): R;
8
+ notDeferrable(): R;
9
+ initiallyDeferred(): R;
10
+ initiallyImmediate(): R;
7
11
  }
8
12
  export declare class ForeignKeyConstraintBuilder implements ForeignKeyConstraintBuilderInterface<ForeignKeyConstraintBuilder>, OperationNodeSource {
9
13
  #private;
10
14
  constructor(node: ForeignKeyConstraintNode);
11
15
  onDelete(onDelete: OnModifyForeignAction): ForeignKeyConstraintBuilder;
12
16
  onUpdate(onUpdate: OnModifyForeignAction): ForeignKeyConstraintBuilder;
17
+ deferrable(): ForeignKeyConstraintBuilder;
18
+ notDeferrable(): ForeignKeyConstraintBuilder;
19
+ initiallyDeferred(): ForeignKeyConstraintBuilder;
20
+ initiallyImmediate(): ForeignKeyConstraintBuilder;
13
21
  /**
14
22
  * Simply calls the provided function passing `this` as the only argument. `$call` returns
15
23
  * what the provided function returns.
@@ -17,3 +25,4 @@ export declare class ForeignKeyConstraintBuilder implements ForeignKeyConstraint
17
25
  $call<T>(func: (qb: this) => T): T;
18
26
  toOperationNode(): ForeignKeyConstraintNode;
19
27
  }
28
+ export type ForeignKeyConstraintBuilderCallback = (builder: ForeignKeyConstraintBuilder) => ForeignKeyConstraintBuilder;
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ForeignKeyConstraintBuilder = void 0;
4
4
  const foreign_key_constraint_node_js_1 = require("../operation-node/foreign-key-constraint-node.js");
5
5
  const on_modify_action_parser_js_1 = require("../parser/on-modify-action-parser.js");
6
- const prevent_await_js_1 = require("../util/prevent-await.js");
7
6
  class ForeignKeyConstraintBuilder {
8
7
  #node;
9
8
  constructor(node) {
@@ -19,6 +18,22 @@ class ForeignKeyConstraintBuilder {
19
18
  onUpdate: (0, on_modify_action_parser_js_1.parseOnModifyForeignAction)(onUpdate),
20
19
  }));
21
20
  }
21
+ deferrable() {
22
+ return new ForeignKeyConstraintBuilder(foreign_key_constraint_node_js_1.ForeignKeyConstraintNode.cloneWith(this.#node, { deferrable: true }));
23
+ }
24
+ notDeferrable() {
25
+ return new ForeignKeyConstraintBuilder(foreign_key_constraint_node_js_1.ForeignKeyConstraintNode.cloneWith(this.#node, { deferrable: false }));
26
+ }
27
+ initiallyDeferred() {
28
+ return new ForeignKeyConstraintBuilder(foreign_key_constraint_node_js_1.ForeignKeyConstraintNode.cloneWith(this.#node, {
29
+ initiallyDeferred: true,
30
+ }));
31
+ }
32
+ initiallyImmediate() {
33
+ return new ForeignKeyConstraintBuilder(foreign_key_constraint_node_js_1.ForeignKeyConstraintNode.cloneWith(this.#node, {
34
+ initiallyDeferred: false,
35
+ }));
36
+ }
22
37
  /**
23
38
  * Simply calls the provided function passing `this` as the only argument. `$call` returns
24
39
  * what the provided function returns.
@@ -31,4 +46,3 @@ class ForeignKeyConstraintBuilder {
31
46
  }
32
47
  }
33
48
  exports.ForeignKeyConstraintBuilder = ForeignKeyConstraintBuilder;
34
- (0, prevent_await_js_1.preventAwait)(ForeignKeyConstraintBuilder, "don't await ForeignKeyConstraintBuilder instances directly.");
@@ -0,0 +1,17 @@
1
+ import { OperationNodeSource } from '../operation-node/operation-node-source.js';
2
+ import { PrimaryKeyConstraintNode } from '../operation-node/primary-key-constraint-node.js';
3
+ export declare class PrimaryKeyConstraintBuilder implements OperationNodeSource {
4
+ #private;
5
+ constructor(node: PrimaryKeyConstraintNode);
6
+ deferrable(): PrimaryKeyConstraintBuilder;
7
+ notDeferrable(): PrimaryKeyConstraintBuilder;
8
+ initiallyDeferred(): PrimaryKeyConstraintBuilder;
9
+ initiallyImmediate(): PrimaryKeyConstraintBuilder;
10
+ /**
11
+ * Simply calls the provided function passing `this` as the only argument. `$call` returns
12
+ * what the provided function returns.
13
+ */
14
+ $call<T>(func: (qb: this) => T): T;
15
+ toOperationNode(): PrimaryKeyConstraintNode;
16
+ }
17
+ export type PrimaryKeyConstraintBuilderCallback = (builder: PrimaryKeyConstraintBuilder) => PrimaryKeyConstraintBuilder;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PrimaryKeyConstraintBuilder = void 0;
4
+ const primary_key_constraint_node_js_1 = require("../operation-node/primary-key-constraint-node.js");
5
+ class PrimaryKeyConstraintBuilder {
6
+ #node;
7
+ constructor(node) {
8
+ this.#node = node;
9
+ }
10
+ deferrable() {
11
+ return new PrimaryKeyConstraintBuilder(primary_key_constraint_node_js_1.PrimaryKeyConstraintNode.cloneWith(this.#node, { deferrable: true }));
12
+ }
13
+ notDeferrable() {
14
+ return new PrimaryKeyConstraintBuilder(primary_key_constraint_node_js_1.PrimaryKeyConstraintNode.cloneWith(this.#node, { deferrable: false }));
15
+ }
16
+ initiallyDeferred() {
17
+ return new PrimaryKeyConstraintBuilder(primary_key_constraint_node_js_1.PrimaryKeyConstraintNode.cloneWith(this.#node, {
18
+ initiallyDeferred: true,
19
+ }));
20
+ }
21
+ initiallyImmediate() {
22
+ return new PrimaryKeyConstraintBuilder(primary_key_constraint_node_js_1.PrimaryKeyConstraintNode.cloneWith(this.#node, {
23
+ initiallyDeferred: false,
24
+ }));
25
+ }
26
+ /**
27
+ * Simply calls the provided function passing `this` as the only argument. `$call` returns
28
+ * what the provided function returns.
29
+ */
30
+ $call(func) {
31
+ return func(this);
32
+ }
33
+ toOperationNode() {
34
+ return this.#node;
35
+ }
36
+ }
37
+ exports.PrimaryKeyConstraintBuilder = PrimaryKeyConstraintBuilder;
@@ -0,0 +1,47 @@
1
+ import { OperationNodeSource } from '../operation-node/operation-node-source.js';
2
+ import { CompiledQuery } from '../query-compiler/compiled-query.js';
3
+ import { Compilable } from '../util/compilable.js';
4
+ import { QueryExecutor } from '../query-executor/query-executor.js';
5
+ import { QueryId } from '../util/query-id.js';
6
+ import { RefreshMaterializedViewNode } from '../operation-node/refresh-materialized-view-node.js';
7
+ export declare class RefreshMaterializedViewBuilder implements OperationNodeSource, Compilable {
8
+ #private;
9
+ constructor(props: RefreshMaterializedViewBuilderProps);
10
+ /**
11
+ * Adds the "concurrently" modifier.
12
+ *
13
+ * Use this to refresh the view without locking out concurrent selects on the materialized view.
14
+ *
15
+ * WARNING!
16
+ * This cannot be used with the "with no data" modifier.
17
+ */
18
+ concurrently(): RefreshMaterializedViewBuilder;
19
+ /**
20
+ * Adds the "with data" modifier.
21
+ *
22
+ * If specified (or defaults) the backing query is executed to provide the new data, and the materialized view is left in a scannable state
23
+ */
24
+ withData(): RefreshMaterializedViewBuilder;
25
+ /**
26
+ * Adds the "with no data" modifier.
27
+ *
28
+ * If specified, no new data is generated and the materialized view is left in an unscannable state.
29
+ *
30
+ * WARNING!
31
+ * This cannot be used with the "concurrently" modifier.
32
+ */
33
+ withNoData(): RefreshMaterializedViewBuilder;
34
+ /**
35
+ * Simply calls the provided function passing `this` as the only argument. `$call` returns
36
+ * what the provided function returns.
37
+ */
38
+ $call<T>(func: (qb: this) => T): T;
39
+ toOperationNode(): RefreshMaterializedViewNode;
40
+ compile(): CompiledQuery;
41
+ execute(): Promise<void>;
42
+ }
43
+ export interface RefreshMaterializedViewBuilderProps {
44
+ readonly queryId: QueryId;
45
+ readonly executor: QueryExecutor;
46
+ readonly node: RefreshMaterializedViewNode;
47
+ }