kysely 0.22.0 → 0.23.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 (358) hide show
  1. package/CONTRIBUTING.md +70 -0
  2. package/README.md +25 -2
  3. package/dist/cjs/dialect/database-introspector.d.ts +4 -0
  4. package/dist/cjs/dialect/mysql/mysql-driver.js +6 -3
  5. package/dist/cjs/dialect/postgres/postgres-adapter.js +1 -1
  6. package/dist/cjs/dialect/postgres/postgres-driver.js +7 -2
  7. package/dist/cjs/dialect/postgres/postgres-introspector.js +8 -0
  8. package/dist/cjs/dialect/sqlite/sqlite-driver.js +4 -3
  9. package/dist/cjs/dialect/sqlite/sqlite-introspector.js +1 -0
  10. package/dist/cjs/driver/database-connection.d.ts +6 -2
  11. package/dist/cjs/dynamic/dynamic-reference-builder.d.ts +2 -3
  12. package/dist/cjs/dynamic/dynamic-reference-builder.js +1 -1
  13. package/dist/cjs/expression/expression.d.ts +100 -0
  14. package/dist/cjs/expression/expression.js +16 -0
  15. package/dist/cjs/index.d.ts +10 -6
  16. package/dist/cjs/index.js +8 -2
  17. package/dist/cjs/migration/file-migration-provider.js +5 -3
  18. package/dist/cjs/operation-node/aggregate-function-node.d.ts +7 -4
  19. package/dist/cjs/operation-node/aggregate-function-node.js +17 -0
  20. package/dist/cjs/operation-node/alias-node.d.ts +3 -11
  21. package/dist/cjs/operation-node/alter-column-node.d.ts +1 -2
  22. package/dist/cjs/operation-node/alter-table-node.d.ts +5 -7
  23. package/dist/cjs/operation-node/alter-table-node.js +9 -1
  24. package/dist/cjs/operation-node/and-node.d.ts +3 -4
  25. package/dist/cjs/operation-node/binary-operation-node.d.ts +14 -0
  26. package/dist/cjs/operation-node/binary-operation-node.js +20 -0
  27. package/dist/cjs/operation-node/check-constraint-node.d.ts +2 -3
  28. package/dist/cjs/operation-node/column-definition-node.d.ts +6 -5
  29. package/dist/cjs/operation-node/column-definition-node.js +16 -0
  30. package/dist/cjs/operation-node/column-update-node.d.ts +2 -3
  31. package/dist/cjs/operation-node/common-table-expression-node.d.ts +2 -4
  32. package/dist/cjs/operation-node/create-index-node.d.ts +1 -3
  33. package/dist/cjs/operation-node/create-table-node.d.ts +4 -5
  34. package/dist/cjs/operation-node/create-type-node.d.ts +1 -1
  35. package/dist/cjs/operation-node/create-type-node.js +1 -2
  36. package/dist/cjs/operation-node/default-value-node.d.ts +2 -4
  37. package/dist/cjs/operation-node/delete-query-node.d.ts +1 -2
  38. package/dist/cjs/operation-node/drop-type-node.d.ts +1 -1
  39. package/dist/cjs/operation-node/drop-type-node.js +1 -2
  40. package/dist/cjs/operation-node/explain-node.d.ts +2 -4
  41. package/dist/cjs/operation-node/explain-node.js +1 -1
  42. package/dist/cjs/operation-node/from-node.d.ts +3 -4
  43. package/dist/cjs/operation-node/generated-node.d.ts +2 -3
  44. package/dist/cjs/operation-node/group-by-item-node.d.ts +2 -3
  45. package/dist/cjs/operation-node/having-node.d.ts +3 -4
  46. package/dist/cjs/operation-node/having-node.js +4 -4
  47. package/dist/cjs/operation-node/insert-query-node.d.ts +1 -5
  48. package/dist/cjs/operation-node/join-node.d.ts +5 -9
  49. package/dist/cjs/operation-node/join-node.js +6 -6
  50. package/dist/cjs/operation-node/on-conflict-node.d.ts +5 -7
  51. package/dist/cjs/operation-node/on-conflict-node.js +12 -12
  52. package/dist/cjs/operation-node/on-node.d.ts +3 -4
  53. package/dist/cjs/operation-node/on-node.js +4 -4
  54. package/dist/cjs/operation-node/operation-node-transformer.d.ts +4 -2
  55. package/dist/cjs/operation-node/operation-node-transformer.js +22 -15
  56. package/dist/cjs/operation-node/operation-node-visitor.d.ts +4 -2
  57. package/dist/cjs/operation-node/operation-node-visitor.js +2 -1
  58. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  59. package/dist/cjs/operation-node/operator-node.d.ts +5 -3
  60. package/dist/cjs/operation-node/operator-node.js +3 -5
  61. package/dist/cjs/operation-node/or-node.d.ts +3 -4
  62. package/dist/cjs/operation-node/order-by-item-node.d.ts +3 -5
  63. package/dist/cjs/operation-node/parens-node.d.ts +2 -3
  64. package/dist/cjs/operation-node/partition-by-item-node.d.ts +3 -4
  65. package/dist/cjs/operation-node/query-node.d.ts +2 -3
  66. package/dist/cjs/operation-node/query-node.js +6 -6
  67. package/dist/cjs/operation-node/select-modifier-node.d.ts +2 -3
  68. package/dist/cjs/operation-node/select-modifier-node.js +1 -1
  69. package/dist/cjs/operation-node/select-query-node.d.ts +5 -6
  70. package/dist/cjs/operation-node/select-query-node.js +10 -10
  71. package/dist/cjs/operation-node/selection-node.d.ts +2 -3
  72. package/dist/cjs/operation-node/set-operation-node.d.ts +2 -5
  73. package/dist/cjs/operation-node/simple-reference-expression-node.d.ts +3 -0
  74. package/dist/cjs/operation-node/{operation-node-utils.js → simple-reference-expression-node.js} +0 -0
  75. package/dist/cjs/operation-node/unary-operation-node.d.ts +13 -0
  76. package/dist/cjs/operation-node/unary-operation-node.js +19 -0
  77. package/dist/cjs/operation-node/update-query-node.d.ts +3 -4
  78. package/dist/cjs/operation-node/value-list-node.d.ts +2 -9
  79. package/dist/cjs/operation-node/where-node.d.ts +3 -4
  80. package/dist/cjs/operation-node/where-node.js +4 -4
  81. package/dist/cjs/parser/binary-operation-parser.d.ts +20 -0
  82. package/dist/cjs/parser/binary-operation-parser.js +99 -0
  83. package/dist/cjs/parser/coalesce-parser.d.ts +4 -0
  84. package/dist/cjs/parser/coalesce-parser.js +11 -0
  85. package/dist/cjs/parser/data-type-parser.d.ts +5 -5
  86. package/dist/cjs/parser/default-value-parser.d.ts +4 -5
  87. package/dist/cjs/parser/default-value-parser.js +2 -2
  88. package/dist/cjs/parser/expression-parser.d.ts +10 -0
  89. package/dist/cjs/parser/{complex-expression-parser.js → expression-parser.js} +9 -8
  90. package/dist/cjs/parser/identifier-parser.d.ts +2 -0
  91. package/dist/cjs/parser/identifier-parser.js +23 -0
  92. package/dist/cjs/parser/insert-values-parser.d.ts +1 -1
  93. package/dist/cjs/parser/insert-values-parser.js +2 -2
  94. package/dist/cjs/parser/join-parser.js +2 -2
  95. package/dist/cjs/parser/order-by-parser.d.ts +2 -2
  96. package/dist/cjs/parser/reference-parser.d.ts +14 -14
  97. package/dist/cjs/parser/reference-parser.js +12 -9
  98. package/dist/cjs/parser/select-parser.d.ts +6 -7
  99. package/dist/cjs/parser/select-parser.js +2 -2
  100. package/dist/cjs/parser/set-operation-parser.d.ts +2 -4
  101. package/dist/cjs/parser/table-parser.d.ts +11 -12
  102. package/dist/cjs/parser/table-parser.js +2 -2
  103. package/dist/cjs/parser/unary-operation-parser.d.ts +5 -0
  104. package/dist/cjs/parser/unary-operation-parser.js +17 -0
  105. package/dist/cjs/parser/update-set-parser.d.ts +1 -1
  106. package/dist/cjs/parser/value-parser.d.ts +5 -9
  107. package/dist/cjs/parser/value-parser.js +4 -4
  108. package/dist/cjs/parser/with-parser.d.ts +3 -4
  109. package/dist/cjs/plugin/camel-case/camel-case-plugin.js +1 -1
  110. package/dist/cjs/query-builder/aggregate-function-builder.d.ts +245 -14
  111. package/dist/cjs/query-builder/aggregate-function-builder.js +164 -12
  112. package/dist/cjs/query-builder/delete-query-builder.d.ts +20 -20
  113. package/dist/cjs/query-builder/delete-query-builder.js +19 -16
  114. package/dist/cjs/query-builder/function-module.d.ts +123 -22
  115. package/dist/cjs/query-builder/function-module.js +91 -48
  116. package/dist/cjs/query-builder/having-interface.d.ts +9 -8
  117. package/dist/cjs/query-builder/insert-query-builder.d.ts +7 -6
  118. package/dist/cjs/query-builder/insert-query-builder.js +11 -9
  119. package/dist/cjs/query-builder/insert-result.d.ts +8 -1
  120. package/dist/cjs/query-builder/insert-result.js +12 -1
  121. package/dist/cjs/query-builder/join-builder.d.ts +9 -8
  122. package/dist/cjs/query-builder/join-builder.js +10 -9
  123. package/dist/cjs/query-builder/on-conflict-builder.d.ts +25 -24
  124. package/dist/cjs/query-builder/on-conflict-builder.js +18 -17
  125. package/dist/cjs/query-builder/select-query-builder.d.ts +82 -51
  126. package/dist/cjs/query-builder/select-query-builder.js +39 -37
  127. package/dist/cjs/query-builder/update-query-builder.d.ts +20 -20
  128. package/dist/cjs/query-builder/update-query-builder.js +19 -16
  129. package/dist/cjs/query-builder/where-interface.d.ts +12 -11
  130. package/dist/cjs/query-compiler/compiled-query.d.ts +1 -1
  131. package/dist/cjs/query-compiler/default-query-compiler.d.ts +5 -3
  132. package/dist/cjs/query-compiler/default-query-compiler.js +37 -33
  133. package/dist/cjs/query-executor/query-executor-base.js +16 -1
  134. package/dist/cjs/raw-builder/raw-builder.d.ts +49 -13
  135. package/dist/cjs/raw-builder/raw-builder.js +24 -14
  136. package/dist/cjs/raw-builder/sql.d.ts +4 -4
  137. package/dist/cjs/schema/alter-column-builder.d.ts +28 -0
  138. package/dist/cjs/schema/alter-column-builder.js +55 -0
  139. package/dist/cjs/schema/alter-table-builder.d.ts +39 -341
  140. package/dist/cjs/schema/alter-table-builder.js +63 -278
  141. package/dist/cjs/schema/column-definition-builder.d.ts +43 -155
  142. package/dist/cjs/schema/column-definition-builder.js +189 -0
  143. package/dist/cjs/schema/create-index-builder.d.ts +3 -3
  144. package/dist/cjs/schema/create-index-builder.js +7 -7
  145. package/dist/cjs/schema/create-schema-builder.d.ts +1 -1
  146. package/dist/cjs/schema/create-schema-builder.js +2 -2
  147. package/dist/cjs/schema/create-table-builder.d.ts +39 -6
  148. package/dist/cjs/schema/create-table-builder.js +47 -12
  149. package/dist/cjs/schema/create-type-builder.d.ts +1 -1
  150. package/dist/cjs/schema/create-type-builder.js +2 -2
  151. package/dist/cjs/schema/create-view-builder.d.ts +4 -3
  152. package/dist/cjs/schema/create-view-builder.js +7 -7
  153. package/dist/cjs/schema/drop-index-builder.d.ts +1 -1
  154. package/dist/cjs/schema/drop-index-builder.js +4 -4
  155. package/dist/cjs/schema/drop-schema-builder.d.ts +1 -1
  156. package/dist/cjs/schema/drop-schema-builder.js +3 -3
  157. package/dist/cjs/schema/drop-table-builder.d.ts +1 -1
  158. package/dist/cjs/schema/drop-table-builder.js +3 -3
  159. package/dist/cjs/schema/drop-type-builder.d.ts +1 -1
  160. package/dist/cjs/schema/drop-type-builder.js +2 -2
  161. package/dist/cjs/schema/drop-view-builder.d.ts +1 -1
  162. package/dist/cjs/schema/drop-view-builder.js +4 -4
  163. package/dist/cjs/schema/schema.d.ts +2 -2
  164. package/dist/cjs/schema/schema.js +14 -13
  165. package/dist/cjs/util/compilable.d.ts +2 -2
  166. package/dist/cjs/util/explainable.d.ts +2 -2
  167. package/dist/cjs/util/infer-result.d.ts +46 -0
  168. package/dist/cjs/util/infer-result.js +2 -0
  169. package/dist/cjs/util/log-once.d.ts +5 -0
  170. package/dist/cjs/util/log-once.js +16 -0
  171. package/dist/cjs/util/object-utils.d.ts +1 -0
  172. package/dist/cjs/util/object-utils.js +5 -1
  173. package/dist/cjs/util/type-utils.d.ts +3 -17
  174. package/dist/esm/dialect/database-introspector.d.ts +4 -0
  175. package/dist/esm/dialect/mysql/mysql-driver.js +6 -3
  176. package/dist/esm/dialect/postgres/postgres-adapter.js +1 -1
  177. package/dist/esm/dialect/postgres/postgres-driver.js +7 -2
  178. package/dist/esm/dialect/postgres/postgres-introspector.js +8 -0
  179. package/dist/esm/dialect/sqlite/sqlite-driver.js +4 -3
  180. package/dist/esm/dialect/sqlite/sqlite-introspector.js +1 -0
  181. package/dist/esm/driver/database-connection.d.ts +6 -2
  182. package/dist/esm/dynamic/dynamic-reference-builder.d.ts +2 -3
  183. package/dist/esm/dynamic/dynamic-reference-builder.js +2 -2
  184. package/dist/esm/expression/expression.d.ts +100 -0
  185. package/dist/esm/expression/expression.js +12 -0
  186. package/dist/esm/index.d.ts +10 -6
  187. package/dist/esm/index.js +6 -2
  188. package/dist/esm/migration/file-migration-provider.js +5 -3
  189. package/dist/esm/operation-node/aggregate-function-node.d.ts +7 -4
  190. package/dist/esm/operation-node/aggregate-function-node.js +17 -0
  191. package/dist/esm/operation-node/alias-node.d.ts +3 -11
  192. package/dist/esm/operation-node/alter-column-node.d.ts +1 -2
  193. package/dist/esm/operation-node/alter-table-node.d.ts +5 -7
  194. package/dist/esm/operation-node/alter-table-node.js +9 -1
  195. package/dist/esm/operation-node/and-node.d.ts +3 -4
  196. package/dist/esm/operation-node/binary-operation-node.d.ts +14 -0
  197. package/dist/esm/operation-node/binary-operation-node.js +18 -0
  198. package/dist/esm/operation-node/check-constraint-node.d.ts +2 -3
  199. package/dist/esm/operation-node/column-definition-node.d.ts +6 -5
  200. package/dist/esm/operation-node/column-definition-node.js +16 -0
  201. package/dist/esm/operation-node/column-update-node.d.ts +2 -3
  202. package/dist/esm/operation-node/common-table-expression-node.d.ts +2 -4
  203. package/dist/esm/operation-node/create-index-node.d.ts +1 -3
  204. package/dist/esm/operation-node/create-table-node.d.ts +4 -5
  205. package/dist/esm/operation-node/create-type-node.d.ts +1 -1
  206. package/dist/esm/operation-node/create-type-node.js +1 -2
  207. package/dist/esm/operation-node/default-value-node.d.ts +2 -4
  208. package/dist/esm/operation-node/delete-query-node.d.ts +1 -2
  209. package/dist/esm/operation-node/drop-type-node.d.ts +1 -1
  210. package/dist/esm/operation-node/drop-type-node.js +1 -2
  211. package/dist/esm/operation-node/explain-node.d.ts +2 -4
  212. package/dist/esm/operation-node/explain-node.js +1 -1
  213. package/dist/esm/operation-node/from-node.d.ts +3 -4
  214. package/dist/esm/operation-node/generated-node.d.ts +2 -3
  215. package/dist/esm/operation-node/group-by-item-node.d.ts +2 -3
  216. package/dist/esm/operation-node/having-node.d.ts +3 -4
  217. package/dist/esm/operation-node/having-node.js +4 -4
  218. package/dist/esm/operation-node/insert-query-node.d.ts +1 -5
  219. package/dist/esm/operation-node/join-node.d.ts +5 -9
  220. package/dist/esm/operation-node/join-node.js +6 -6
  221. package/dist/esm/operation-node/on-conflict-node.d.ts +5 -7
  222. package/dist/esm/operation-node/on-conflict-node.js +12 -12
  223. package/dist/esm/operation-node/on-node.d.ts +3 -4
  224. package/dist/esm/operation-node/on-node.js +4 -4
  225. package/dist/esm/operation-node/operation-node-transformer.d.ts +4 -2
  226. package/dist/esm/operation-node/operation-node-transformer.js +22 -15
  227. package/dist/esm/operation-node/operation-node-visitor.d.ts +4 -2
  228. package/dist/esm/operation-node/operation-node-visitor.js +2 -1
  229. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  230. package/dist/esm/operation-node/operator-node.d.ts +5 -3
  231. package/dist/esm/operation-node/operator-node.js +2 -4
  232. package/dist/esm/operation-node/or-node.d.ts +3 -4
  233. package/dist/esm/operation-node/order-by-item-node.d.ts +3 -5
  234. package/dist/esm/operation-node/parens-node.d.ts +2 -3
  235. package/dist/esm/operation-node/partition-by-item-node.d.ts +3 -4
  236. package/dist/esm/operation-node/query-node.d.ts +2 -3
  237. package/dist/esm/operation-node/query-node.js +6 -6
  238. package/dist/esm/operation-node/select-modifier-node.d.ts +2 -3
  239. package/dist/esm/operation-node/select-modifier-node.js +1 -1
  240. package/dist/esm/operation-node/select-query-node.d.ts +5 -6
  241. package/dist/esm/operation-node/select-query-node.js +10 -10
  242. package/dist/esm/operation-node/selection-node.d.ts +2 -3
  243. package/dist/esm/operation-node/set-operation-node.d.ts +2 -5
  244. package/dist/esm/operation-node/simple-reference-expression-node.d.ts +3 -0
  245. package/dist/esm/operation-node/simple-reference-expression-node.js +2 -0
  246. package/dist/esm/operation-node/unary-operation-node.d.ts +13 -0
  247. package/dist/esm/operation-node/unary-operation-node.js +17 -0
  248. package/dist/esm/operation-node/update-query-node.d.ts +3 -4
  249. package/dist/esm/operation-node/value-list-node.d.ts +2 -9
  250. package/dist/esm/operation-node/where-node.d.ts +3 -4
  251. package/dist/esm/operation-node/where-node.js +4 -4
  252. package/dist/esm/parser/binary-operation-parser.d.ts +20 -0
  253. package/dist/esm/parser/binary-operation-parser.js +92 -0
  254. package/dist/esm/parser/coalesce-parser.d.ts +4 -0
  255. package/dist/esm/parser/coalesce-parser.js +8 -0
  256. package/dist/esm/parser/data-type-parser.d.ts +5 -5
  257. package/dist/esm/parser/default-value-parser.d.ts +4 -5
  258. package/dist/esm/parser/default-value-parser.js +2 -2
  259. package/dist/esm/parser/expression-parser.d.ts +10 -0
  260. package/dist/esm/parser/{complex-expression-parser.js → expression-parser.js} +6 -5
  261. package/dist/esm/parser/identifier-parser.d.ts +2 -0
  262. package/dist/esm/parser/identifier-parser.js +20 -0
  263. package/dist/esm/parser/insert-values-parser.d.ts +1 -1
  264. package/dist/esm/parser/insert-values-parser.js +2 -2
  265. package/dist/esm/parser/join-parser.js +2 -2
  266. package/dist/esm/parser/order-by-parser.d.ts +2 -2
  267. package/dist/esm/parser/reference-parser.d.ts +14 -14
  268. package/dist/esm/parser/reference-parser.js +10 -8
  269. package/dist/esm/parser/select-parser.d.ts +6 -7
  270. package/dist/esm/parser/select-parser.js +2 -2
  271. package/dist/esm/parser/set-operation-parser.d.ts +2 -4
  272. package/dist/esm/parser/table-parser.d.ts +11 -12
  273. package/dist/esm/parser/table-parser.js +2 -2
  274. package/dist/esm/parser/unary-operation-parser.d.ts +5 -0
  275. package/dist/esm/parser/unary-operation-parser.js +13 -0
  276. package/dist/esm/parser/update-set-parser.d.ts +1 -1
  277. package/dist/esm/parser/value-parser.d.ts +5 -9
  278. package/dist/esm/parser/value-parser.js +4 -4
  279. package/dist/esm/parser/with-parser.d.ts +3 -4
  280. package/dist/esm/plugin/camel-case/camel-case-plugin.js +2 -2
  281. package/dist/esm/query-builder/aggregate-function-builder.d.ts +245 -14
  282. package/dist/esm/query-builder/aggregate-function-builder.js +164 -12
  283. package/dist/esm/query-builder/delete-query-builder.d.ts +20 -20
  284. package/dist/esm/query-builder/delete-query-builder.js +19 -16
  285. package/dist/esm/query-builder/function-module.d.ts +123 -22
  286. package/dist/esm/query-builder/function-module.js +92 -49
  287. package/dist/esm/query-builder/having-interface.d.ts +9 -8
  288. package/dist/esm/query-builder/insert-query-builder.d.ts +7 -6
  289. package/dist/esm/query-builder/insert-query-builder.js +11 -9
  290. package/dist/esm/query-builder/insert-result.d.ts +8 -1
  291. package/dist/esm/query-builder/insert-result.js +12 -1
  292. package/dist/esm/query-builder/join-builder.d.ts +9 -8
  293. package/dist/esm/query-builder/join-builder.js +10 -9
  294. package/dist/esm/query-builder/on-conflict-builder.d.ts +25 -24
  295. package/dist/esm/query-builder/on-conflict-builder.js +18 -17
  296. package/dist/esm/query-builder/select-query-builder.d.ts +82 -51
  297. package/dist/esm/query-builder/select-query-builder.js +38 -36
  298. package/dist/esm/query-builder/update-query-builder.d.ts +20 -20
  299. package/dist/esm/query-builder/update-query-builder.js +19 -16
  300. package/dist/esm/query-builder/where-interface.d.ts +12 -11
  301. package/dist/esm/query-compiler/compiled-query.d.ts +1 -1
  302. package/dist/esm/query-compiler/default-query-compiler.d.ts +5 -3
  303. package/dist/esm/query-compiler/default-query-compiler.js +38 -34
  304. package/dist/esm/query-executor/query-executor-base.js +16 -1
  305. package/dist/esm/raw-builder/raw-builder.d.ts +49 -13
  306. package/dist/esm/raw-builder/raw-builder.js +23 -14
  307. package/dist/esm/raw-builder/sql.d.ts +4 -4
  308. package/dist/esm/schema/alter-column-builder.d.ts +28 -0
  309. package/dist/esm/schema/alter-column-builder.js +51 -0
  310. package/dist/esm/schema/alter-table-builder.d.ts +39 -341
  311. package/dist/esm/schema/alter-table-builder.js +59 -272
  312. package/dist/esm/schema/column-definition-builder.d.ts +43 -155
  313. package/dist/esm/schema/column-definition-builder.js +189 -0
  314. package/dist/esm/schema/create-index-builder.d.ts +3 -3
  315. package/dist/esm/schema/create-index-builder.js +7 -7
  316. package/dist/esm/schema/create-schema-builder.d.ts +1 -1
  317. package/dist/esm/schema/create-schema-builder.js +2 -2
  318. package/dist/esm/schema/create-table-builder.d.ts +39 -6
  319. package/dist/esm/schema/create-table-builder.js +47 -12
  320. package/dist/esm/schema/create-type-builder.d.ts +1 -1
  321. package/dist/esm/schema/create-type-builder.js +2 -2
  322. package/dist/esm/schema/create-view-builder.d.ts +4 -3
  323. package/dist/esm/schema/create-view-builder.js +7 -7
  324. package/dist/esm/schema/drop-index-builder.d.ts +1 -1
  325. package/dist/esm/schema/drop-index-builder.js +4 -4
  326. package/dist/esm/schema/drop-schema-builder.d.ts +1 -1
  327. package/dist/esm/schema/drop-schema-builder.js +3 -3
  328. package/dist/esm/schema/drop-table-builder.d.ts +1 -1
  329. package/dist/esm/schema/drop-table-builder.js +3 -3
  330. package/dist/esm/schema/drop-type-builder.d.ts +1 -1
  331. package/dist/esm/schema/drop-type-builder.js +2 -2
  332. package/dist/esm/schema/drop-view-builder.d.ts +1 -1
  333. package/dist/esm/schema/drop-view-builder.js +4 -4
  334. package/dist/esm/schema/schema.d.ts +2 -2
  335. package/dist/esm/schema/schema.js +14 -13
  336. package/dist/esm/util/compilable.d.ts +2 -2
  337. package/dist/esm/util/explainable.d.ts +2 -2
  338. package/dist/esm/util/infer-result.d.ts +46 -0
  339. package/dist/esm/util/infer-result.js +2 -0
  340. package/dist/esm/util/log-once.d.ts +5 -0
  341. package/dist/esm/util/log-once.js +13 -0
  342. package/dist/esm/util/object-utils.d.ts +1 -0
  343. package/dist/esm/util/object-utils.js +3 -0
  344. package/dist/esm/util/type-utils.d.ts +3 -17
  345. package/package.json +1 -1
  346. package/dist/cjs/operation-node/filter-node.d.ts +0 -18
  347. package/dist/cjs/operation-node/filter-node.js +0 -20
  348. package/dist/cjs/operation-node/operation-node-utils.d.ts +0 -18
  349. package/dist/cjs/parser/complex-expression-parser.d.ts +0 -12
  350. package/dist/cjs/parser/filter-parser.d.ts +0 -24
  351. package/dist/cjs/parser/filter-parser.js +0 -109
  352. package/dist/esm/operation-node/filter-node.d.ts +0 -18
  353. package/dist/esm/operation-node/filter-node.js +0 -18
  354. package/dist/esm/operation-node/operation-node-utils.d.ts +0 -18
  355. package/dist/esm/operation-node/operation-node-utils.js +0 -2
  356. package/dist/esm/parser/complex-expression-parser.d.ts +0 -12
  357. package/dist/esm/parser/filter-parser.d.ts +0 -24
  358. package/dist/esm/parser/filter-parser.js +0 -100
@@ -7,7 +7,7 @@ import { ColumnDefinitionBuilder } from './column-definition-builder.js';
7
7
  import { QueryId } from '../util/query-id.js';
8
8
  import { ForeignKeyConstraintBuilder } from './foreign-key-constraint-builder.js';
9
9
  import { DataTypeExpression } from '../parser/data-type-parser.js';
10
- import { AnyRawBuilder } from '../util/type-utils.js';
10
+ import { Expression } from '../expression/expression.js';
11
11
  /**
12
12
  * This builder can be used to create a `create table` query.
13
13
  */
@@ -118,7 +118,7 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
118
118
  * addCheckConstraint('check_legs', sql`number_of_legs < 5`)
119
119
  * ```
120
120
  */
121
- addCheckConstraint(constraintName: string, checkExpression: AnyRawBuilder): CreateTableBuilder<TB, C>;
121
+ addCheckConstraint(constraintName: string, checkExpression: Expression<any>): CreateTableBuilder<TB, C>;
122
122
  /**
123
123
  * Adds a foreign key constraint.
124
124
  *
@@ -159,7 +159,7 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
159
159
  * ```ts
160
160
  * db.schema.createTable('person')
161
161
  * .modifyFront(sql`global temporary`)
162
- * .addColumn('id', 'integer', col => col => primaryKey())
162
+ * .addColumn('id', 'integer', col => col.primaryKey())
163
163
  * .addColumn('first_name', 'varchar(64)', col => col.notNull())
164
164
  * .addColumn('last_name', 'varchar(64), col => col.notNull())
165
165
  * .execute()
@@ -175,7 +175,7 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
175
175
  * )
176
176
  * ```
177
177
  */
178
- modifyFront(modifier: AnyRawBuilder): CreateTableBuilder<TB, C>;
178
+ modifyFront(modifier: Expression<any>): CreateTableBuilder<TB, C>;
179
179
  /**
180
180
  * This can be used to add any additional SQL to the end of the query.
181
181
  *
@@ -202,7 +202,40 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
202
202
  * ) collate utf8_unicode_ci
203
203
  * ```
204
204
  */
205
- modifyEnd(modifier: AnyRawBuilder): CreateTableBuilder<TB, C>;
205
+ modifyEnd(modifier: Expression<any>): CreateTableBuilder<TB, C>;
206
+ /**
207
+ * Calls the given function passing `this` as the only argument.
208
+ *
209
+ * ### Examples
210
+ *
211
+ * ```ts
212
+ * db.schema
213
+ * .createTable('test')
214
+ * .call((builder) => builder.addColumn('id', 'integer'))
215
+ * .execute()
216
+ * ```
217
+ *
218
+ * ```ts
219
+ * const addDefaultColumns = <T extends string, C extends string = never>(
220
+ * builder: CreateTableBuilder<T, C>
221
+ * ) => {
222
+ * return builder
223
+ * .addColumn('id', 'integer', (col) => col.notNull())
224
+ * .addColumn('created_at', 'date', (col) =>
225
+ * col.notNull().defaultTo(sql`now()`)
226
+ * )
227
+ * .addColumn('updated_at', 'date', (col) =>
228
+ * col.notNull().defaultTo(sql`now()`)
229
+ * )
230
+ * }
231
+ *
232
+ * db.schema
233
+ * .createTable('test')
234
+ * .call(addDefaultColumns)
235
+ * .execute()
236
+ * ```
237
+ */
238
+ call<T>(func: (qb: this) => T): T;
206
239
  toOperationNode(): CreateTableNode;
207
240
  compile(): CompiledQuery;
208
241
  execute(): Promise<void>;
@@ -210,7 +243,7 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
210
243
  export interface CreateTableBuilderProps {
211
244
  readonly queryId: QueryId;
212
245
  readonly executor: QueryExecutor;
213
- readonly createTableNode: CreateTableNode;
246
+ readonly node: CreateTableNode;
214
247
  }
215
248
  export declare type ColumnBuilderCallback = (builder: ColumnDefinitionBuilder) => ColumnDefinitionBuilder;
216
249
  export declare type ForeignKeyConstraintBuilderCallback = (builder: ForeignKeyConstraintBuilder) => ForeignKeyConstraintBuilder;
@@ -29,7 +29,7 @@ export class CreateTableBuilder {
29
29
  temporary() {
30
30
  return new CreateTableBuilder({
31
31
  ...this.#props,
32
- createTableNode: CreateTableNode.cloneWith(this.#props.createTableNode, {
32
+ node: CreateTableNode.cloneWith(this.#props.node, {
33
33
  temporary: true,
34
34
  }),
35
35
  });
@@ -43,7 +43,7 @@ export class CreateTableBuilder {
43
43
  onCommit(onCommit) {
44
44
  return new CreateTableBuilder({
45
45
  ...this.#props,
46
- createTableNode: CreateTableNode.cloneWith(this.#props.createTableNode, {
46
+ node: CreateTableNode.cloneWith(this.#props.node, {
47
47
  onCommit: parseOnCommitAction(onCommit),
48
48
  }),
49
49
  });
@@ -56,7 +56,7 @@ export class CreateTableBuilder {
56
56
  ifNotExists() {
57
57
  return new CreateTableBuilder({
58
58
  ...this.#props,
59
- createTableNode: CreateTableNode.cloneWith(this.#props.createTableNode, {
59
+ node: CreateTableNode.cloneWith(this.#props.node, {
60
60
  ifNotExists: true,
61
61
  }),
62
62
  });
@@ -109,7 +109,7 @@ export class CreateTableBuilder {
109
109
  const columnBuilder = build(new ColumnDefinitionBuilder(ColumnDefinitionNode.create(columnName, parseDataTypeExpression(dataType))));
110
110
  return new CreateTableBuilder({
111
111
  ...this.#props,
112
- createTableNode: CreateTableNode.cloneWithColumn(this.#props.createTableNode, columnBuilder.toOperationNode()),
112
+ node: CreateTableNode.cloneWithColumn(this.#props.node, columnBuilder.toOperationNode()),
113
113
  });
114
114
  }
115
115
  /**
@@ -127,7 +127,7 @@ export class CreateTableBuilder {
127
127
  addPrimaryKeyConstraint(constraintName, columns) {
128
128
  return new CreateTableBuilder({
129
129
  ...this.#props,
130
- createTableNode: CreateTableNode.cloneWithConstraint(this.#props.createTableNode, PrimaryConstraintNode.create(columns, constraintName)),
130
+ node: CreateTableNode.cloneWithConstraint(this.#props.node, PrimaryConstraintNode.create(columns, constraintName)),
131
131
  });
132
132
  }
133
133
  /**
@@ -145,7 +145,7 @@ export class CreateTableBuilder {
145
145
  addUniqueConstraint(constraintName, columns) {
146
146
  return new CreateTableBuilder({
147
147
  ...this.#props,
148
- createTableNode: CreateTableNode.cloneWithConstraint(this.#props.createTableNode, UniqueConstraintNode.create(columns, constraintName)),
148
+ node: CreateTableNode.cloneWithConstraint(this.#props.node, UniqueConstraintNode.create(columns, constraintName)),
149
149
  });
150
150
  }
151
151
  /**
@@ -165,7 +165,7 @@ export class CreateTableBuilder {
165
165
  addCheckConstraint(constraintName, checkExpression) {
166
166
  return new CreateTableBuilder({
167
167
  ...this.#props,
168
- createTableNode: CreateTableNode.cloneWithConstraint(this.#props.createTableNode, CheckConstraintNode.create(checkExpression.toOperationNode(), constraintName)),
168
+ node: CreateTableNode.cloneWithConstraint(this.#props.node, CheckConstraintNode.create(checkExpression.toOperationNode(), constraintName)),
169
169
  });
170
170
  }
171
171
  /**
@@ -201,7 +201,7 @@ export class CreateTableBuilder {
201
201
  const builder = build(new ForeignKeyConstraintBuilder(ForeignKeyConstraintNode.create(columns.map(ColumnNode.create), parseTable(targetTable), targetColumns.map(ColumnNode.create), constraintName)));
202
202
  return new CreateTableBuilder({
203
203
  ...this.#props,
204
- createTableNode: CreateTableNode.cloneWithConstraint(this.#props.createTableNode, builder.toOperationNode()),
204
+ node: CreateTableNode.cloneWithConstraint(this.#props.node, builder.toOperationNode()),
205
205
  });
206
206
  }
207
207
  /**
@@ -214,7 +214,7 @@ export class CreateTableBuilder {
214
214
  * ```ts
215
215
  * db.schema.createTable('person')
216
216
  * .modifyFront(sql`global temporary`)
217
- * .addColumn('id', 'integer', col => col => primaryKey())
217
+ * .addColumn('id', 'integer', col => col.primaryKey())
218
218
  * .addColumn('first_name', 'varchar(64)', col => col.notNull())
219
219
  * .addColumn('last_name', 'varchar(64), col => col.notNull())
220
220
  * .execute()
@@ -233,7 +233,7 @@ export class CreateTableBuilder {
233
233
  modifyFront(modifier) {
234
234
  return new CreateTableBuilder({
235
235
  ...this.#props,
236
- createTableNode: CreateTableNode.cloneWithFrontModifier(this.#props.createTableNode, modifier.toOperationNode()),
236
+ node: CreateTableNode.cloneWithFrontModifier(this.#props.node, modifier.toOperationNode()),
237
237
  });
238
238
  }
239
239
  /**
@@ -265,11 +265,46 @@ export class CreateTableBuilder {
265
265
  modifyEnd(modifier) {
266
266
  return new CreateTableBuilder({
267
267
  ...this.#props,
268
- createTableNode: CreateTableNode.cloneWithEndModifier(this.#props.createTableNode, modifier.toOperationNode()),
268
+ node: CreateTableNode.cloneWithEndModifier(this.#props.node, modifier.toOperationNode()),
269
269
  });
270
270
  }
271
+ /**
272
+ * Calls the given function passing `this` as the only argument.
273
+ *
274
+ * ### Examples
275
+ *
276
+ * ```ts
277
+ * db.schema
278
+ * .createTable('test')
279
+ * .call((builder) => builder.addColumn('id', 'integer'))
280
+ * .execute()
281
+ * ```
282
+ *
283
+ * ```ts
284
+ * const addDefaultColumns = <T extends string, C extends string = never>(
285
+ * builder: CreateTableBuilder<T, C>
286
+ * ) => {
287
+ * return builder
288
+ * .addColumn('id', 'integer', (col) => col.notNull())
289
+ * .addColumn('created_at', 'date', (col) =>
290
+ * col.notNull().defaultTo(sql`now()`)
291
+ * )
292
+ * .addColumn('updated_at', 'date', (col) =>
293
+ * col.notNull().defaultTo(sql`now()`)
294
+ * )
295
+ * }
296
+ *
297
+ * db.schema
298
+ * .createTable('test')
299
+ * .call(addDefaultColumns)
300
+ * .execute()
301
+ * ```
302
+ */
303
+ call(func) {
304
+ return func(this);
305
+ }
271
306
  toOperationNode() {
272
- return this.#props.executor.transformQuery(this.#props.createTableNode, this.#props.queryId);
307
+ return this.#props.executor.transformQuery(this.#props.node, this.#props.queryId);
273
308
  }
274
309
  compile() {
275
310
  return this.#props.executor.compileQuery(this.toOperationNode(), this.#props.queryId);
@@ -24,5 +24,5 @@ export declare class CreateTypeBuilder implements OperationNodeSource, Compilabl
24
24
  export interface CreateTypeBuilderProps {
25
25
  readonly queryId: QueryId;
26
26
  readonly executor: QueryExecutor;
27
- readonly createTypeNode: CreateTypeNode;
27
+ readonly node: CreateTypeNode;
28
28
  }
@@ -8,7 +8,7 @@ export class CreateTypeBuilder {
8
8
  this.#props = freeze(props);
9
9
  }
10
10
  toOperationNode() {
11
- return this.#props.executor.transformQuery(this.#props.createTypeNode, this.#props.queryId);
11
+ return this.#props.executor.transformQuery(this.#props.node, this.#props.queryId);
12
12
  }
13
13
  /**
14
14
  * Creates an anum type.
@@ -22,7 +22,7 @@ export class CreateTypeBuilder {
22
22
  asEnum(values) {
23
23
  return new CreateTypeBuilder({
24
24
  ...this.#props,
25
- createTypeNode: CreateTypeNode.cloneWithEnum(this.#props.createTypeNode, values),
25
+ node: CreateTypeNode.cloneWithEnum(this.#props.node, values),
26
26
  });
27
27
  }
28
28
  compile() {
@@ -4,7 +4,8 @@ import { Compilable } from '../util/compilable.js';
4
4
  import { QueryExecutor } from '../query-executor/query-executor.js';
5
5
  import { QueryId } from '../util/query-id.js';
6
6
  import { CreateViewNode } from '../operation-node/create-view-node.js';
7
- import { AnyRawBuilder, AnySelectQueryBuilder } from '../util/type-utils.js';
7
+ import { AnySelectQueryBuilder } from '../util/type-utils.js';
8
+ import { RawBuilder } from '../raw-builder/raw-builder.js';
8
9
  export declare class CreateViewBuilder implements OperationNodeSource, Compilable {
9
10
  #private;
10
11
  constructor(props: CreateViewBuilderProps);
@@ -30,7 +31,7 @@ export declare class CreateViewBuilder implements OperationNodeSource, Compilabl
30
31
  * string opening an SQL injection vulnerability. DO NOT pass unchecked user input
31
32
  * into the query or raw expression passed to this method!
32
33
  */
33
- as(query: AnySelectQueryBuilder | AnyRawBuilder): CreateViewBuilder;
34
+ as(query: AnySelectQueryBuilder | RawBuilder<any>): CreateViewBuilder;
34
35
  toOperationNode(): CreateViewNode;
35
36
  compile(): CompiledQuery;
36
37
  execute(): Promise<void>;
@@ -38,5 +39,5 @@ export declare class CreateViewBuilder implements OperationNodeSource, Compilabl
38
39
  export interface CreateViewBuilderProps {
39
40
  readonly queryId: QueryId;
40
41
  readonly executor: QueryExecutor;
41
- readonly createViewNode: CreateViewNode;
42
+ readonly node: CreateViewNode;
42
43
  }
@@ -17,7 +17,7 @@ export class CreateViewBuilder {
17
17
  temporary() {
18
18
  return new CreateViewBuilder({
19
19
  ...this.#props,
20
- createViewNode: CreateViewNode.cloneWith(this.#props.createViewNode, {
20
+ node: CreateViewNode.cloneWith(this.#props.node, {
21
21
  temporary: true,
22
22
  }),
23
23
  });
@@ -25,7 +25,7 @@ export class CreateViewBuilder {
25
25
  materialized() {
26
26
  return new CreateViewBuilder({
27
27
  ...this.#props,
28
- createViewNode: CreateViewNode.cloneWith(this.#props.createViewNode, {
28
+ node: CreateViewNode.cloneWith(this.#props.node, {
29
29
  materialized: true,
30
30
  }),
31
31
  });
@@ -36,7 +36,7 @@ export class CreateViewBuilder {
36
36
  ifNotExists() {
37
37
  return new CreateViewBuilder({
38
38
  ...this.#props,
39
- createViewNode: CreateViewNode.cloneWith(this.#props.createViewNode, {
39
+ node: CreateViewNode.cloneWith(this.#props.node, {
40
40
  ifNotExists: true,
41
41
  }),
42
42
  });
@@ -44,7 +44,7 @@ export class CreateViewBuilder {
44
44
  orReplace() {
45
45
  return new CreateViewBuilder({
46
46
  ...this.#props,
47
- createViewNode: CreateViewNode.cloneWith(this.#props.createViewNode, {
47
+ node: CreateViewNode.cloneWith(this.#props.node, {
48
48
  orReplace: true,
49
49
  }),
50
50
  });
@@ -52,7 +52,7 @@ export class CreateViewBuilder {
52
52
  columns(columns) {
53
53
  return new CreateViewBuilder({
54
54
  ...this.#props,
55
- createViewNode: CreateViewNode.cloneWith(this.#props.createViewNode, {
55
+ node: CreateViewNode.cloneWith(this.#props.node, {
56
56
  columns: columns.map(parseColumnName),
57
57
  }),
58
58
  });
@@ -72,13 +72,13 @@ export class CreateViewBuilder {
72
72
  .toOperationNode();
73
73
  return new CreateViewBuilder({
74
74
  ...this.#props,
75
- createViewNode: CreateViewNode.cloneWith(this.#props.createViewNode, {
75
+ node: CreateViewNode.cloneWith(this.#props.node, {
76
76
  as: queryNode,
77
77
  }),
78
78
  });
79
79
  }
80
80
  toOperationNode() {
81
- return this.#props.executor.transformQuery(this.#props.createViewNode, this.#props.queryId);
81
+ return this.#props.executor.transformQuery(this.#props.node, this.#props.queryId);
82
82
  }
83
83
  compile() {
84
84
  return this.#props.executor.compileQuery(this.toOperationNode(), this.#props.queryId);
@@ -21,5 +21,5 @@ export declare class DropIndexBuilder implements OperationNodeSource, Compilable
21
21
  export interface DropIndexBuilderProps {
22
22
  readonly queryId: QueryId;
23
23
  readonly executor: QueryExecutor;
24
- readonly dropIndexNode: DropIndexNode;
24
+ readonly node: DropIndexNode;
25
25
  }
@@ -15,7 +15,7 @@ export class DropIndexBuilder {
15
15
  on(table) {
16
16
  return new DropIndexBuilder({
17
17
  ...this.#props,
18
- dropIndexNode: DropIndexNode.cloneWith(this.#props.dropIndexNode, {
18
+ node: DropIndexNode.cloneWith(this.#props.node, {
19
19
  table: parseTable(table),
20
20
  }),
21
21
  });
@@ -23,7 +23,7 @@ export class DropIndexBuilder {
23
23
  ifExists() {
24
24
  return new DropIndexBuilder({
25
25
  ...this.#props,
26
- dropIndexNode: DropIndexNode.cloneWith(this.#props.dropIndexNode, {
26
+ node: DropIndexNode.cloneWith(this.#props.node, {
27
27
  ifExists: true,
28
28
  }),
29
29
  });
@@ -31,13 +31,13 @@ export class DropIndexBuilder {
31
31
  cascade() {
32
32
  return new DropIndexBuilder({
33
33
  ...this.#props,
34
- dropIndexNode: DropIndexNode.cloneWith(this.#props.dropIndexNode, {
34
+ node: DropIndexNode.cloneWith(this.#props.node, {
35
35
  cascade: true,
36
36
  }),
37
37
  });
38
38
  }
39
39
  toOperationNode() {
40
- return this.#props.executor.transformQuery(this.#props.dropIndexNode, this.#props.queryId);
40
+ return this.#props.executor.transformQuery(this.#props.node, this.#props.queryId);
41
41
  }
42
42
  compile() {
43
43
  return this.#props.executor.compileQuery(this.toOperationNode(), this.#props.queryId);
@@ -16,5 +16,5 @@ export declare class DropSchemaBuilder implements OperationNodeSource, Compilabl
16
16
  export interface DropSchemaBuilderProps {
17
17
  readonly queryId: QueryId;
18
18
  readonly executor: QueryExecutor;
19
- readonly dropSchemaNode: DropSchemaNode;
19
+ readonly node: DropSchemaNode;
20
20
  }
@@ -10,7 +10,7 @@ export class DropSchemaBuilder {
10
10
  ifExists() {
11
11
  return new DropSchemaBuilder({
12
12
  ...this.#props,
13
- dropSchemaNode: DropSchemaNode.cloneWith(this.#props.dropSchemaNode, {
13
+ node: DropSchemaNode.cloneWith(this.#props.node, {
14
14
  ifExists: true,
15
15
  }),
16
16
  });
@@ -18,13 +18,13 @@ export class DropSchemaBuilder {
18
18
  cascade() {
19
19
  return new DropSchemaBuilder({
20
20
  ...this.#props,
21
- dropSchemaNode: DropSchemaNode.cloneWith(this.#props.dropSchemaNode, {
21
+ node: DropSchemaNode.cloneWith(this.#props.node, {
22
22
  cascade: true,
23
23
  }),
24
24
  });
25
25
  }
26
26
  toOperationNode() {
27
- return this.#props.executor.transformQuery(this.#props.dropSchemaNode, this.#props.queryId);
27
+ return this.#props.executor.transformQuery(this.#props.node, this.#props.queryId);
28
28
  }
29
29
  compile() {
30
30
  return this.#props.executor.compileQuery(this.toOperationNode(), this.#props.queryId);
@@ -16,5 +16,5 @@ export declare class DropTableBuilder implements OperationNodeSource, Compilable
16
16
  export interface DropTableBuilderProps {
17
17
  readonly queryId: QueryId;
18
18
  readonly executor: QueryExecutor;
19
- readonly dropTableNode: DropTableNode;
19
+ readonly node: DropTableNode;
20
20
  }
@@ -10,7 +10,7 @@ export class DropTableBuilder {
10
10
  ifExists() {
11
11
  return new DropTableBuilder({
12
12
  ...this.#props,
13
- dropTableNode: DropTableNode.cloneWith(this.#props.dropTableNode, {
13
+ node: DropTableNode.cloneWith(this.#props.node, {
14
14
  ifExists: true,
15
15
  }),
16
16
  });
@@ -18,13 +18,13 @@ export class DropTableBuilder {
18
18
  cascade() {
19
19
  return new DropTableBuilder({
20
20
  ...this.#props,
21
- dropTableNode: DropTableNode.cloneWith(this.#props.dropTableNode, {
21
+ node: DropTableNode.cloneWith(this.#props.node, {
22
22
  cascade: true,
23
23
  }),
24
24
  });
25
25
  }
26
26
  toOperationNode() {
27
- return this.#props.executor.transformQuery(this.#props.dropTableNode, this.#props.queryId);
27
+ return this.#props.executor.transformQuery(this.#props.node, this.#props.queryId);
28
28
  }
29
29
  compile() {
30
30
  return this.#props.executor.compileQuery(this.toOperationNode(), this.#props.queryId);
@@ -15,5 +15,5 @@ export declare class DropTypeBuilder implements OperationNodeSource, Compilable
15
15
  export interface DropTypeBuilderProps {
16
16
  readonly queryId: QueryId;
17
17
  readonly executor: QueryExecutor;
18
- readonly dropTypeNode: DropTypeNode;
18
+ readonly node: DropTypeNode;
19
19
  }
@@ -10,13 +10,13 @@ export class DropTypeBuilder {
10
10
  ifExists() {
11
11
  return new DropTypeBuilder({
12
12
  ...this.#props,
13
- dropTypeNode: DropTypeNode.cloneWith(this.#props.dropTypeNode, {
13
+ node: DropTypeNode.cloneWith(this.#props.node, {
14
14
  ifExists: true,
15
15
  }),
16
16
  });
17
17
  }
18
18
  toOperationNode() {
19
- return this.#props.executor.transformQuery(this.#props.dropTypeNode, this.#props.queryId);
19
+ return this.#props.executor.transformQuery(this.#props.node, this.#props.queryId);
20
20
  }
21
21
  compile() {
22
22
  return this.#props.executor.compileQuery(this.toOperationNode(), this.#props.queryId);
@@ -17,5 +17,5 @@ export declare class DropViewBuilder implements OperationNodeSource, Compilable
17
17
  export interface DropViewBuilderProps {
18
18
  readonly queryId: QueryId;
19
19
  readonly executor: QueryExecutor;
20
- readonly dropViewNode: DropViewNode;
20
+ readonly node: DropViewNode;
21
21
  }
@@ -10,7 +10,7 @@ export class DropViewBuilder {
10
10
  materialized() {
11
11
  return new DropViewBuilder({
12
12
  ...this.#props,
13
- dropViewNode: DropViewNode.cloneWith(this.#props.dropViewNode, {
13
+ node: DropViewNode.cloneWith(this.#props.node, {
14
14
  materialized: true,
15
15
  }),
16
16
  });
@@ -18,7 +18,7 @@ export class DropViewBuilder {
18
18
  ifExists() {
19
19
  return new DropViewBuilder({
20
20
  ...this.#props,
21
- dropViewNode: DropViewNode.cloneWith(this.#props.dropViewNode, {
21
+ node: DropViewNode.cloneWith(this.#props.node, {
22
22
  ifExists: true,
23
23
  }),
24
24
  });
@@ -26,13 +26,13 @@ export class DropViewBuilder {
26
26
  cascade() {
27
27
  return new DropViewBuilder({
28
28
  ...this.#props,
29
- dropViewNode: DropViewNode.cloneWith(this.#props.dropViewNode, {
29
+ node: DropViewNode.cloneWith(this.#props.node, {
30
30
  cascade: true,
31
31
  }),
32
32
  });
33
33
  }
34
34
  toOperationNode() {
35
- return this.#props.executor.transformQuery(this.#props.dropViewNode, this.#props.queryId);
35
+ return this.#props.executor.transformQuery(this.#props.node, this.#props.queryId);
36
36
  }
37
37
  compile() {
38
38
  return this.#props.executor.compileQuery(this.toOperationNode(), this.#props.queryId);
@@ -186,7 +186,7 @@ export declare class SchemaModule {
186
186
  * .execute()
187
187
  * ```
188
188
  */
189
- createType(viewName: string): CreateTypeBuilder;
189
+ createType(typeName: string): CreateTypeBuilder;
190
190
  /**
191
191
  * Drop a type.
192
192
  *
@@ -201,7 +201,7 @@ export declare class SchemaModule {
201
201
  * .execute()
202
202
  * ```
203
203
  */
204
- dropType(viewName: string): DropTypeBuilder;
204
+ dropType(typeName: string): DropTypeBuilder;
205
205
  /**
206
206
  * Returns a copy of this schema module with the given plugin installed.
207
207
  */
@@ -24,6 +24,7 @@ import { CreateTypeBuilder } from './create-type-builder.js';
24
24
  import { DropTypeBuilder } from './drop-type-builder.js';
25
25
  import { CreateTypeNode } from '../operation-node/create-type-node.js';
26
26
  import { DropTypeNode } from '../operation-node/drop-type-node.js';
27
+ import { parseSchemableIdentifier } from '../parser/identifier-parser.js';
27
28
  /**
28
29
  * Provides methods for building database schema.
29
30
  */
@@ -87,7 +88,7 @@ export class SchemaModule {
87
88
  return new CreateTableBuilder({
88
89
  queryId: createQueryId(),
89
90
  executor: this.#executor,
90
- createTableNode: CreateTableNode.create(parseTable(table)),
91
+ node: CreateTableNode.create(parseTable(table)),
91
92
  });
92
93
  }
93
94
  /**
@@ -105,7 +106,7 @@ export class SchemaModule {
105
106
  return new DropTableBuilder({
106
107
  queryId: createQueryId(),
107
108
  executor: this.#executor,
108
- dropTableNode: DropTableNode.create(parseTable(table)),
109
+ node: DropTableNode.create(parseTable(table)),
109
110
  });
110
111
  }
111
112
  /**
@@ -125,7 +126,7 @@ export class SchemaModule {
125
126
  return new CreateIndexBuilder({
126
127
  queryId: createQueryId(),
127
128
  executor: this.#executor,
128
- createIndexNode: CreateIndexNode.create(indexName),
129
+ node: CreateIndexNode.create(indexName),
129
130
  });
130
131
  }
131
132
  /**
@@ -143,7 +144,7 @@ export class SchemaModule {
143
144
  return new DropIndexBuilder({
144
145
  queryId: createQueryId(),
145
146
  executor: this.#executor,
146
- dropIndexNode: DropIndexNode.create(indexName),
147
+ node: DropIndexNode.create(indexName),
147
148
  });
148
149
  }
149
150
  /**
@@ -161,7 +162,7 @@ export class SchemaModule {
161
162
  return new CreateSchemaBuilder({
162
163
  queryId: createQueryId(),
163
164
  executor: this.#executor,
164
- createSchemaNode: CreateSchemaNode.create(schema),
165
+ node: CreateSchemaNode.create(schema),
165
166
  });
166
167
  }
167
168
  /**
@@ -179,7 +180,7 @@ export class SchemaModule {
179
180
  return new DropSchemaBuilder({
180
181
  queryId: createQueryId(),
181
182
  executor: this.#executor,
182
- dropSchemaNode: DropSchemaNode.create(schema),
183
+ node: DropSchemaNode.create(schema),
183
184
  });
184
185
  }
185
186
  /**
@@ -199,7 +200,7 @@ export class SchemaModule {
199
200
  return new AlterTableBuilder({
200
201
  queryId: createQueryId(),
201
202
  executor: this.#executor,
202
- alterTableNode: AlterTableNode.create(table),
203
+ node: AlterTableNode.create(table),
203
204
  });
204
205
  }
205
206
  /**
@@ -219,7 +220,7 @@ export class SchemaModule {
219
220
  return new CreateViewBuilder({
220
221
  queryId: createQueryId(),
221
222
  executor: this.#executor,
222
- createViewNode: CreateViewNode.create(viewName),
223
+ node: CreateViewNode.create(viewName),
223
224
  });
224
225
  }
225
226
  /**
@@ -238,7 +239,7 @@ export class SchemaModule {
238
239
  return new DropViewBuilder({
239
240
  queryId: createQueryId(),
240
241
  executor: this.#executor,
241
- dropViewNode: DropViewNode.create(viewName),
242
+ node: DropViewNode.create(viewName),
242
243
  });
243
244
  }
244
245
  /**
@@ -255,11 +256,11 @@ export class SchemaModule {
255
256
  * .execute()
256
257
  * ```
257
258
  */
258
- createType(viewName) {
259
+ createType(typeName) {
259
260
  return new CreateTypeBuilder({
260
261
  queryId: createQueryId(),
261
262
  executor: this.#executor,
262
- createTypeNode: CreateTypeNode.create(viewName),
263
+ node: CreateTypeNode.create(parseSchemableIdentifier(typeName)),
263
264
  });
264
265
  }
265
266
  /**
@@ -276,11 +277,11 @@ export class SchemaModule {
276
277
  * .execute()
277
278
  * ```
278
279
  */
279
- dropType(viewName) {
280
+ dropType(typeName) {
280
281
  return new DropTypeBuilder({
281
282
  queryId: createQueryId(),
282
283
  executor: this.#executor,
283
- dropTypeNode: DropTypeNode.create(viewName),
284
+ node: DropTypeNode.create(parseSchemableIdentifier(typeName)),
284
285
  });
285
286
  }
286
287
  /**
@@ -1,4 +1,4 @@
1
1
  import { CompiledQuery } from '../query-compiler/compiled-query.js';
2
- export interface Compilable {
3
- compile(): CompiledQuery;
2
+ export interface Compilable<O = unknown> {
3
+ compile(): CompiledQuery<O>;
4
4
  }
@@ -1,5 +1,5 @@
1
- import { AnyRawBuilder } from './type-utils.js';
1
+ import { Expression } from '../expression/expression.js';
2
2
  export declare type ExplainFormat = 'text' | 'xml' | 'json' | 'yaml' | 'traditional' | 'tree';
3
3
  export interface Explainable {
4
- explain<O extends Record<string, any> = Record<string, any>>(format?: ExplainFormat, options?: AnyRawBuilder): Promise<O[]>;
4
+ explain<O extends Record<string, any> = Record<string, any>>(format?: ExplainFormat, options?: Expression<any>): Promise<O[]>;
5
5
  }