kysely 0.23.5 → 0.24.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 (300) hide show
  1. package/README.md +46 -24
  2. package/dist/cjs/dialect/mysql/mysql-adapter.js +2 -2
  3. package/dist/cjs/dialect/mysql/mysql-driver.d.ts +1 -1
  4. package/dist/cjs/dialect/mysql/mysql-driver.js +1 -1
  5. package/dist/cjs/dialect/postgres/postgres-adapter.js +1 -1
  6. package/dist/cjs/dialect/sqlite/sqlite-dialect.d.ts +1 -0
  7. package/dist/cjs/dialect/sqlite/sqlite-dialect.js +1 -0
  8. package/dist/cjs/driver/runtime-driver.js +4 -2
  9. package/dist/cjs/expression/expression-builder.d.ts +386 -0
  10. package/dist/cjs/expression/expression-builder.js +92 -0
  11. package/dist/cjs/expression/expression-wrapper.d.ts +92 -0
  12. package/dist/cjs/expression/expression-wrapper.js +54 -0
  13. package/dist/cjs/expression/expression.d.ts +1 -1
  14. package/dist/cjs/helpers/mysql.d.ts +140 -0
  15. package/dist/cjs/helpers/mysql.js +170 -0
  16. package/dist/cjs/helpers/postgres.d.ts +133 -0
  17. package/dist/cjs/helpers/postgres.js +141 -0
  18. package/dist/cjs/index.d.ts +4 -3
  19. package/dist/cjs/index.js +4 -2
  20. package/dist/cjs/kysely.d.ts +10 -0
  21. package/dist/cjs/kysely.js +12 -1
  22. package/dist/cjs/migration/file-migration-provider.d.ts +5 -2
  23. package/dist/cjs/migration/migrator.d.ts +5 -2
  24. package/dist/cjs/operation-node/aggregate-function-node.d.ts +3 -3
  25. package/dist/cjs/operation-node/create-index-node.d.ts +2 -0
  26. package/dist/cjs/operation-node/delete-query-node.d.ts +0 -1
  27. package/dist/cjs/operation-node/delete-query-node.js +0 -6
  28. package/dist/cjs/operation-node/function-node.d.ts +13 -0
  29. package/dist/cjs/operation-node/function-node.js +19 -0
  30. package/dist/cjs/operation-node/operation-node-transformer.d.ts +2 -0
  31. package/dist/cjs/operation-node/operation-node-transformer.js +9 -0
  32. package/dist/cjs/operation-node/operation-node-visitor.d.ts +2 -0
  33. package/dist/cjs/operation-node/operation-node-visitor.js +1 -0
  34. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  35. package/dist/cjs/operation-node/operator-node.d.ts +13 -2
  36. package/dist/cjs/operation-node/operator-node.js +38 -3
  37. package/dist/cjs/operation-node/query-node.d.ts +25 -8
  38. package/dist/cjs/operation-node/query-node.js +9 -2
  39. package/dist/cjs/operation-node/select-query-node.d.ts +0 -1
  40. package/dist/cjs/operation-node/select-query-node.js +0 -6
  41. package/dist/cjs/operation-node/update-query-node.d.ts +0 -1
  42. package/dist/cjs/operation-node/update-query-node.js +0 -6
  43. package/dist/cjs/parser/binary-operation-parser.d.ts +9 -10
  44. package/dist/cjs/parser/binary-operation-parser.js +89 -39
  45. package/dist/cjs/parser/coalesce-parser.d.ts +0 -2
  46. package/dist/cjs/parser/coalesce-parser.js +0 -9
  47. package/dist/cjs/parser/expression-parser.d.ts +7 -3
  48. package/dist/cjs/parser/expression-parser.js +3 -3
  49. package/dist/cjs/parser/group-by-parser.d.ts +3 -2
  50. package/dist/cjs/parser/group-by-parser.js +3 -0
  51. package/dist/cjs/parser/insert-values-parser.d.ts +4 -1
  52. package/dist/cjs/parser/insert-values-parser.js +19 -13
  53. package/dist/cjs/parser/join-parser.js +1 -1
  54. package/dist/cjs/parser/parse-utils.d.ts +0 -2
  55. package/dist/cjs/parser/parse-utils.js +1 -8
  56. package/dist/cjs/parser/returning-parser.d.ts +2 -1
  57. package/dist/cjs/parser/select-parser.d.ts +5 -13
  58. package/dist/cjs/parser/select-parser.js +8 -4
  59. package/dist/cjs/parser/table-parser.d.ts +5 -3
  60. package/dist/cjs/parser/unary-operation-parser.d.ts +5 -2
  61. package/dist/cjs/parser/unary-operation-parser.js +9 -8
  62. package/dist/cjs/parser/update-set-parser.d.ts +4 -1
  63. package/dist/cjs/parser/update-set-parser.js +9 -4
  64. package/dist/cjs/parser/value-parser.d.ts +5 -0
  65. package/dist/cjs/parser/value-parser.js +1 -3
  66. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +1 -1
  67. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
  68. package/dist/cjs/query-builder/aggregate-function-builder.d.ts +40 -113
  69. package/dist/cjs/query-builder/aggregate-function-builder.js +23 -63
  70. package/dist/cjs/query-builder/delete-query-builder.d.ts +220 -201
  71. package/dist/cjs/query-builder/delete-query-builder.js +21 -27
  72. package/dist/cjs/query-builder/delete-result.js +3 -0
  73. package/dist/cjs/query-builder/deprecated-having-expression-builder.d.ts +62 -0
  74. package/dist/cjs/query-builder/deprecated-having-expression-builder.js +2 -0
  75. package/dist/cjs/query-builder/deprecated-on-expression-builder.d.ts +62 -0
  76. package/dist/cjs/query-builder/deprecated-on-expression-builder.js +2 -0
  77. package/dist/cjs/query-builder/deprecated-where-expression-builder.d.ts +62 -0
  78. package/dist/cjs/query-builder/deprecated-where-expression-builder.js +2 -0
  79. package/dist/cjs/query-builder/function-module.d.ts +40 -12
  80. package/dist/cjs/query-builder/function-module.js +43 -329
  81. package/dist/cjs/query-builder/having-interface.d.ts +19 -16
  82. package/dist/cjs/query-builder/insert-query-builder.d.ts +75 -26
  83. package/dist/cjs/query-builder/insert-query-builder.js +21 -29
  84. package/dist/cjs/query-builder/insert-result.js +3 -0
  85. package/dist/cjs/query-builder/join-builder.d.ts +23 -26
  86. package/dist/cjs/query-builder/join-builder.js +17 -22
  87. package/dist/cjs/query-builder/no-result-error.d.ts +1 -0
  88. package/dist/cjs/query-builder/no-result-error.js +5 -1
  89. package/dist/cjs/query-builder/on-conflict-builder.d.ts +158 -276
  90. package/dist/cjs/query-builder/on-conflict-builder.js +52 -36
  91. package/dist/cjs/query-builder/over-builder.d.ts +5 -0
  92. package/dist/cjs/query-builder/over-builder.js +7 -0
  93. package/dist/cjs/query-builder/returning-interface.d.ts +2 -2
  94. package/dist/cjs/query-builder/select-query-builder.d.ts +148 -237
  95. package/dist/cjs/query-builder/select-query-builder.js +333 -78
  96. package/dist/cjs/query-builder/update-query-builder.d.ts +145 -213
  97. package/dist/cjs/query-builder/update-query-builder.js +21 -115
  98. package/dist/cjs/query-builder/update-result.js +3 -0
  99. package/dist/cjs/query-builder/where-interface.d.ts +71 -184
  100. package/dist/cjs/query-compiler/default-query-compiler.d.ts +3 -0
  101. package/dist/cjs/query-compiler/default-query-compiler.js +17 -1
  102. package/dist/cjs/query-creator.d.ts +9 -2
  103. package/dist/cjs/query-creator.js +1 -24
  104. package/dist/cjs/query-executor/query-executor.d.ts +3 -3
  105. package/dist/cjs/raw-builder/raw-builder.d.ts +5 -3
  106. package/dist/cjs/raw-builder/raw-builder.js +13 -7
  107. package/dist/cjs/raw-builder/sql.d.ts +17 -9
  108. package/dist/cjs/raw-builder/sql.js +8 -2
  109. package/dist/cjs/schema/alter-column-builder.d.ts +5 -0
  110. package/dist/cjs/schema/alter-column-builder.js +7 -0
  111. package/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.d.ts +5 -0
  112. package/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.js +7 -0
  113. package/dist/cjs/schema/alter-table-drop-constraint-builder.d.ts +5 -0
  114. package/dist/cjs/schema/alter-table-drop-constraint-builder.js +7 -0
  115. package/dist/cjs/schema/column-definition-builder.d.ts +6 -1
  116. package/dist/cjs/schema/column-definition-builder.js +8 -1
  117. package/dist/cjs/schema/create-index-builder.d.ts +51 -9
  118. package/dist/cjs/schema/create-index-builder.js +17 -0
  119. package/dist/cjs/schema/create-schema-builder.d.ts +5 -0
  120. package/dist/cjs/schema/create-schema-builder.js +7 -0
  121. package/dist/cjs/schema/create-table-builder.d.ts +3 -1
  122. package/dist/cjs/schema/create-table-builder.js +3 -1
  123. package/dist/cjs/schema/create-type-builder.d.ts +5 -0
  124. package/dist/cjs/schema/create-type-builder.js +7 -0
  125. package/dist/cjs/schema/create-view-builder.d.ts +5 -0
  126. package/dist/cjs/schema/create-view-builder.js +7 -0
  127. package/dist/cjs/schema/drop-index-builder.d.ts +5 -0
  128. package/dist/cjs/schema/drop-index-builder.js +7 -0
  129. package/dist/cjs/schema/drop-schema-builder.d.ts +5 -0
  130. package/dist/cjs/schema/drop-schema-builder.js +7 -0
  131. package/dist/cjs/schema/drop-table-builder.d.ts +5 -0
  132. package/dist/cjs/schema/drop-table-builder.js +7 -0
  133. package/dist/cjs/schema/drop-type-builder.d.ts +5 -0
  134. package/dist/cjs/schema/drop-type-builder.js +7 -0
  135. package/dist/cjs/schema/drop-view-builder.d.ts +5 -0
  136. package/dist/cjs/schema/drop-view-builder.js +7 -0
  137. package/dist/cjs/schema/foreign-key-constraint-builder.d.ts +5 -0
  138. package/dist/cjs/schema/foreign-key-constraint-builder.js +7 -0
  139. package/dist/cjs/util/compilable.d.ts +1 -0
  140. package/dist/cjs/util/compilable.js +6 -0
  141. package/dist/cjs/util/explainable.d.ts +35 -0
  142. package/dist/cjs/util/log.d.ts +2 -0
  143. package/dist/cjs/util/object-utils.js +1 -1
  144. package/dist/cjs/util/streamable.d.ts +29 -0
  145. package/dist/cjs/util/streamable.js +2 -0
  146. package/dist/cjs/util/type-utils.d.ts +1 -0
  147. package/dist/esm/dialect/mysql/mysql-adapter.js +2 -2
  148. package/dist/esm/dialect/mysql/mysql-driver.d.ts +1 -1
  149. package/dist/esm/dialect/mysql/mysql-driver.js +1 -1
  150. package/dist/esm/dialect/postgres/postgres-adapter.js +1 -1
  151. package/dist/esm/dialect/sqlite/sqlite-dialect.d.ts +1 -0
  152. package/dist/esm/dialect/sqlite/sqlite-dialect.js +1 -0
  153. package/dist/esm/driver/runtime-driver.js +4 -2
  154. package/dist/esm/expression/expression-builder.d.ts +386 -0
  155. package/dist/esm/expression/expression-builder.js +88 -0
  156. package/dist/esm/expression/expression-wrapper.d.ts +92 -0
  157. package/dist/esm/expression/expression-wrapper.js +50 -0
  158. package/dist/esm/expression/expression.d.ts +1 -1
  159. package/dist/esm/helpers/mysql.d.ts +140 -0
  160. package/dist/esm/helpers/mysql.js +165 -0
  161. package/dist/esm/helpers/postgres.d.ts +133 -0
  162. package/dist/esm/helpers/postgres.js +136 -0
  163. package/dist/esm/index.d.ts +4 -3
  164. package/dist/esm/index.js +2 -1
  165. package/dist/esm/kysely.d.ts +10 -0
  166. package/dist/esm/kysely.js +13 -2
  167. package/dist/esm/migration/file-migration-provider.d.ts +5 -2
  168. package/dist/esm/migration/migrator.d.ts +5 -2
  169. package/dist/esm/operation-node/aggregate-function-node.d.ts +3 -3
  170. package/dist/esm/operation-node/create-index-node.d.ts +2 -0
  171. package/dist/esm/operation-node/delete-query-node.d.ts +0 -1
  172. package/dist/esm/operation-node/delete-query-node.js +0 -6
  173. package/dist/esm/operation-node/function-node.d.ts +13 -0
  174. package/dist/esm/operation-node/function-node.js +17 -0
  175. package/dist/esm/operation-node/operation-node-transformer.d.ts +2 -0
  176. package/dist/esm/operation-node/operation-node-transformer.js +9 -0
  177. package/dist/esm/operation-node/operation-node-visitor.d.ts +2 -0
  178. package/dist/esm/operation-node/operation-node-visitor.js +1 -0
  179. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  180. package/dist/esm/operation-node/operator-node.d.ts +13 -2
  181. package/dist/esm/operation-node/operator-node.js +34 -3
  182. package/dist/esm/operation-node/query-node.d.ts +25 -8
  183. package/dist/esm/operation-node/query-node.js +9 -2
  184. package/dist/esm/operation-node/select-query-node.d.ts +0 -1
  185. package/dist/esm/operation-node/select-query-node.js +0 -6
  186. package/dist/esm/operation-node/update-query-node.d.ts +0 -1
  187. package/dist/esm/operation-node/update-query-node.js +0 -6
  188. package/dist/esm/parser/binary-operation-parser.d.ts +9 -10
  189. package/dist/esm/parser/binary-operation-parser.js +85 -37
  190. package/dist/esm/parser/coalesce-parser.d.ts +0 -2
  191. package/dist/esm/parser/coalesce-parser.js +1 -7
  192. package/dist/esm/parser/expression-parser.d.ts +7 -3
  193. package/dist/esm/parser/expression-parser.js +3 -3
  194. package/dist/esm/parser/group-by-parser.d.ts +3 -2
  195. package/dist/esm/parser/group-by-parser.js +3 -0
  196. package/dist/esm/parser/insert-values-parser.d.ts +4 -1
  197. package/dist/esm/parser/insert-values-parser.js +18 -12
  198. package/dist/esm/parser/join-parser.js +2 -2
  199. package/dist/esm/parser/parse-utils.d.ts +0 -2
  200. package/dist/esm/parser/parse-utils.js +0 -6
  201. package/dist/esm/parser/returning-parser.d.ts +2 -1
  202. package/dist/esm/parser/select-parser.d.ts +5 -13
  203. package/dist/esm/parser/select-parser.js +7 -3
  204. package/dist/esm/parser/table-parser.d.ts +5 -3
  205. package/dist/esm/parser/unary-operation-parser.d.ts +5 -2
  206. package/dist/esm/parser/unary-operation-parser.js +8 -8
  207. package/dist/esm/parser/update-set-parser.d.ts +4 -1
  208. package/dist/esm/parser/update-set-parser.js +7 -2
  209. package/dist/esm/parser/value-parser.d.ts +5 -0
  210. package/dist/esm/parser/value-parser.js +1 -3
  211. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +1 -1
  212. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
  213. package/dist/esm/query-builder/aggregate-function-builder.d.ts +40 -113
  214. package/dist/esm/query-builder/aggregate-function-builder.js +24 -64
  215. package/dist/esm/query-builder/delete-query-builder.d.ts +220 -201
  216. package/dist/esm/query-builder/delete-query-builder.js +24 -30
  217. package/dist/esm/query-builder/delete-result.js +3 -0
  218. package/dist/esm/query-builder/deprecated-having-expression-builder.d.ts +62 -0
  219. package/dist/esm/query-builder/deprecated-having-expression-builder.js +2 -0
  220. package/dist/esm/query-builder/deprecated-on-expression-builder.d.ts +62 -0
  221. package/dist/esm/query-builder/deprecated-on-expression-builder.js +2 -0
  222. package/dist/esm/query-builder/deprecated-where-expression-builder.d.ts +62 -0
  223. package/dist/esm/query-builder/deprecated-where-expression-builder.js +2 -0
  224. package/dist/esm/query-builder/function-module.d.ts +40 -12
  225. package/dist/esm/query-builder/function-module.js +42 -328
  226. package/dist/esm/query-builder/having-interface.d.ts +19 -16
  227. package/dist/esm/query-builder/insert-query-builder.d.ts +75 -26
  228. package/dist/esm/query-builder/insert-query-builder.js +25 -33
  229. package/dist/esm/query-builder/insert-result.js +3 -0
  230. package/dist/esm/query-builder/join-builder.d.ts +23 -26
  231. package/dist/esm/query-builder/join-builder.js +18 -23
  232. package/dist/esm/query-builder/no-result-error.d.ts +1 -0
  233. package/dist/esm/query-builder/no-result-error.js +3 -0
  234. package/dist/esm/query-builder/on-conflict-builder.d.ts +158 -276
  235. package/dist/esm/query-builder/on-conflict-builder.js +54 -38
  236. package/dist/esm/query-builder/over-builder.d.ts +5 -0
  237. package/dist/esm/query-builder/over-builder.js +7 -0
  238. package/dist/esm/query-builder/returning-interface.d.ts +2 -2
  239. package/dist/esm/query-builder/select-query-builder.d.ts +148 -237
  240. package/dist/esm/query-builder/select-query-builder.js +337 -82
  241. package/dist/esm/query-builder/update-query-builder.d.ts +145 -213
  242. package/dist/esm/query-builder/update-query-builder.js +25 -119
  243. package/dist/esm/query-builder/update-result.js +3 -0
  244. package/dist/esm/query-builder/where-interface.d.ts +71 -184
  245. package/dist/esm/query-compiler/default-query-compiler.d.ts +3 -0
  246. package/dist/esm/query-compiler/default-query-compiler.js +17 -1
  247. package/dist/esm/query-creator.d.ts +9 -2
  248. package/dist/esm/query-creator.js +1 -24
  249. package/dist/esm/query-executor/query-executor.d.ts +3 -3
  250. package/dist/esm/raw-builder/raw-builder.d.ts +5 -3
  251. package/dist/esm/raw-builder/raw-builder.js +13 -7
  252. package/dist/esm/raw-builder/sql.d.ts +17 -9
  253. package/dist/esm/raw-builder/sql.js +8 -2
  254. package/dist/esm/schema/alter-column-builder.d.ts +5 -0
  255. package/dist/esm/schema/alter-column-builder.js +7 -0
  256. package/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.d.ts +5 -0
  257. package/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.js +7 -0
  258. package/dist/esm/schema/alter-table-drop-constraint-builder.d.ts +5 -0
  259. package/dist/esm/schema/alter-table-drop-constraint-builder.js +7 -0
  260. package/dist/esm/schema/column-definition-builder.d.ts +6 -1
  261. package/dist/esm/schema/column-definition-builder.js +8 -1
  262. package/dist/esm/schema/create-index-builder.d.ts +51 -9
  263. package/dist/esm/schema/create-index-builder.js +17 -0
  264. package/dist/esm/schema/create-schema-builder.d.ts +5 -0
  265. package/dist/esm/schema/create-schema-builder.js +7 -0
  266. package/dist/esm/schema/create-table-builder.d.ts +3 -1
  267. package/dist/esm/schema/create-table-builder.js +3 -1
  268. package/dist/esm/schema/create-type-builder.d.ts +5 -0
  269. package/dist/esm/schema/create-type-builder.js +7 -0
  270. package/dist/esm/schema/create-view-builder.d.ts +5 -0
  271. package/dist/esm/schema/create-view-builder.js +7 -0
  272. package/dist/esm/schema/drop-index-builder.d.ts +5 -0
  273. package/dist/esm/schema/drop-index-builder.js +7 -0
  274. package/dist/esm/schema/drop-schema-builder.d.ts +5 -0
  275. package/dist/esm/schema/drop-schema-builder.js +7 -0
  276. package/dist/esm/schema/drop-table-builder.d.ts +5 -0
  277. package/dist/esm/schema/drop-table-builder.js +7 -0
  278. package/dist/esm/schema/drop-type-builder.d.ts +5 -0
  279. package/dist/esm/schema/drop-type-builder.js +7 -0
  280. package/dist/esm/schema/drop-view-builder.d.ts +5 -0
  281. package/dist/esm/schema/drop-view-builder.js +7 -0
  282. package/dist/esm/schema/foreign-key-constraint-builder.d.ts +5 -0
  283. package/dist/esm/schema/foreign-key-constraint-builder.js +7 -0
  284. package/dist/esm/util/compilable.d.ts +1 -0
  285. package/dist/esm/util/compilable.js +4 -1
  286. package/dist/esm/util/explainable.d.ts +35 -0
  287. package/dist/esm/util/log.d.ts +2 -0
  288. package/dist/esm/util/object-utils.js +1 -1
  289. package/dist/esm/util/streamable.d.ts +29 -0
  290. package/dist/esm/util/streamable.js +2 -0
  291. package/dist/esm/util/type-utils.d.ts +1 -0
  292. package/helpers/mysql.d.ts +1 -0
  293. package/helpers/mysql.js +1 -0
  294. package/helpers/postgres.d.ts +1 -0
  295. package/helpers/postgres.js +1 -0
  296. package/package.json +26 -9
  297. package/dist/cjs/query-builder/expression-builder.d.ts +0 -126
  298. package/dist/cjs/query-builder/expression-builder.js +0 -107
  299. package/dist/esm/query-builder/expression-builder.d.ts +0 -126
  300. package/dist/esm/query-builder/expression-builder.js +0 -104
@@ -1,17 +1,16 @@
1
1
  /// <reference types="./delete-query-builder.d.ts" />
2
2
  import { parseJoin, } from '../parser/join-parser.js';
3
3
  import { parseTableExpressionOrList, } from '../parser/table-parser.js';
4
- import { parseSelectExpressionOrList, parseSelectAll, } from '../parser/select-parser.js';
4
+ import { parseSelectArg, parseSelectAll, } from '../parser/select-parser.js';
5
5
  import { QueryNode } from '../operation-node/query-node.js';
6
6
  import { preventAwait } from '../util/prevent-await.js';
7
7
  import { freeze } from '../util/object-utils.js';
8
- import { NoResultError } from './no-result-error.js';
8
+ import { isNoResultErrorConstructor, NoResultError, } from './no-result-error.js';
9
9
  import { DeleteResult } from './delete-result.js';
10
10
  import { DeleteQueryNode } from '../operation-node/delete-query-node.js';
11
11
  import { LimitNode } from '../operation-node/limit-node.js';
12
12
  import { parseOrderBy, } from '../parser/order-by-parser.js';
13
- import { ExplainNode } from '../operation-node/explain-node.js';
14
- import { parseReferentialFilter, parseWhere, } from '../parser/binary-operation-parser.js';
13
+ import { parseReferentialComparison, parseWhere, } from '../parser/binary-operation-parser.js';
15
14
  import { parseExists, parseNotExists, } from '../parser/unary-operation-parser.js';
16
15
  export class DeleteQueryBuilder {
17
16
  #props;
@@ -27,7 +26,7 @@ export class DeleteQueryBuilder {
27
26
  whereRef(lhs, op, rhs) {
28
27
  return new DeleteQueryBuilder({
29
28
  ...this.#props,
30
- queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, parseReferentialFilter(lhs, op, rhs)),
29
+ queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, parseReferentialComparison(lhs, op, rhs)),
31
30
  });
32
31
  }
33
32
  orWhere(...args) {
@@ -39,7 +38,7 @@ export class DeleteQueryBuilder {
39
38
  orWhereRef(lhs, op, rhs) {
40
39
  return new DeleteQueryBuilder({
41
40
  ...this.#props,
42
- queryNode: QueryNode.cloneWithOrWhere(this.#props.queryNode, parseReferentialFilter(lhs, op, rhs)),
41
+ queryNode: QueryNode.cloneWithOrWhere(this.#props.queryNode, parseReferentialComparison(lhs, op, rhs)),
43
42
  });
44
43
  }
45
44
  whereExists(arg) {
@@ -105,13 +104,13 @@ export class DeleteQueryBuilder {
105
104
  returning(selection) {
106
105
  return new DeleteQueryBuilder({
107
106
  ...this.#props,
108
- queryNode: QueryNode.cloneWithReturning(this.#props.queryNode, parseSelectExpressionOrList(selection)),
107
+ queryNode: QueryNode.cloneWithReturning(this.#props.queryNode, parseSelectArg(selection)),
109
108
  });
110
109
  }
111
- returningAll() {
110
+ returningAll(table) {
112
111
  return new DeleteQueryBuilder({
113
112
  ...this.#props,
114
- queryNode: QueryNode.cloneWithReturning(this.#props.queryNode, parseSelectAll()),
113
+ queryNode: QueryNode.cloneWithReturning(this.#props.queryNode, parseSelectAll(table)),
115
114
  });
116
115
  }
117
116
  /**
@@ -179,7 +178,8 @@ export class DeleteQueryBuilder {
179
178
  });
180
179
  }
181
180
  /**
182
- * Simply calls the given function passing `this` as the only argument.
181
+ * Simply calls the provided function passing `this` as the only argument. `$call` returns
182
+ * what the provided function returns.
183
183
  *
184
184
  * If you want to conditionally call a method on `this`, see
185
185
  * the {@link $if} method.
@@ -352,7 +352,7 @@ export class DeleteQueryBuilder {
352
352
  return [
353
353
  new DeleteResult(
354
354
  // TODO: remove numUpdatedOrDeletedRows.
355
- result.numAffectedRows ?? result.numUpdatedOrDeletedRows ?? 0n),
355
+ result.numAffectedRows ?? result.numUpdatedOrDeletedRows ?? BigInt(0)),
356
356
  ];
357
357
  }
358
358
  /**
@@ -368,36 +368,30 @@ export class DeleteQueryBuilder {
368
368
  * the query returned no result.
369
369
  *
370
370
  * By default an instance of {@link NoResultError} is thrown, but you can
371
- * provide a custom error class as the only argument to throw a different
371
+ * provide a custom error class, or callback as the only argument to throw a different
372
372
  * error.
373
373
  */
374
374
  async executeTakeFirstOrThrow(errorConstructor = NoResultError) {
375
375
  const result = await this.executeTakeFirst();
376
376
  if (result === undefined) {
377
- throw new errorConstructor(this.toOperationNode());
377
+ const error = isNoResultErrorConstructor(errorConstructor)
378
+ ? new errorConstructor(this.toOperationNode())
379
+ : errorConstructor(this.toOperationNode());
380
+ throw error;
378
381
  }
379
382
  return result;
380
383
  }
381
- /**
382
- * Executes query with `explain` statement before `delete` keyword.
383
- *
384
- * ```ts
385
- * const explained = await db
386
- * .deleteFrom('person')
387
- * .where('id', '=', 123)
388
- * .explain('json')
389
- * ```
390
- *
391
- * The generated SQL (MySQL):
392
- *
393
- * ```sql
394
- * explain format=json delete from `person` where `id` = ?
395
- * ```
396
- */
384
+ async *stream(chunkSize = 100) {
385
+ const compiledQuery = this.compile();
386
+ const stream = this.#props.executor.stream(compiledQuery, chunkSize, this.#props.queryId);
387
+ for await (const item of stream) {
388
+ yield* item.rows;
389
+ }
390
+ }
397
391
  async explain(format, options) {
398
392
  const builder = new DeleteQueryBuilder({
399
393
  ...this.#props,
400
- queryNode: DeleteQueryNode.cloneWithExplain(this.#props.queryNode, ExplainNode.create(format, options?.toOperationNode())),
394
+ queryNode: QueryNode.cloneWithExplain(this.#props.queryNode, format, options),
401
395
  });
402
396
  return await builder.execute();
403
397
  }
@@ -8,3 +8,6 @@ export class DeleteResult {
8
8
  return this.#numDeletedRows;
9
9
  }
10
10
  }
11
+ Object.defineProperty(DeleteResult.prototype, 'numDeletedRows', {
12
+ enumerable: true,
13
+ });
@@ -0,0 +1,62 @@
1
+ import { Expression } from '../expression/expression.js';
2
+ import { OperationNode } from '../operation-node/operation-node.js';
3
+ import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js';
4
+ import { ReferenceExpression } from '../parser/reference-parser.js';
5
+ import { ExistsExpression } from '../parser/unary-operation-parser.js';
6
+ import { ExpressionBuilder } from '../expression/expression-builder.js';
7
+ /**
8
+ * Temporary transitional wrapper type that contains the old `HavingGrouper` methods
9
+ * and the new `ExpressionBuilder` interface. One we remove the deprecated methods,
10
+ * this interface can be ditched in favor of just `ExpressionBuilder`.
11
+ */
12
+ export interface HavingExpressionBuilder<DB, TB extends keyof DB> extends ExpressionBuilder<DB, TB> {
13
+ /**
14
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
15
+ */
16
+ having<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): HavingExpressionBuilder<DB, TB>;
17
+ /**
18
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
19
+ */
20
+ having(grouper: HavingExpressionBuilder<DB, TB>): HavingExpressionBuilder<DB, TB>;
21
+ /**
22
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
23
+ */
24
+ having(expression: Expression<any>): HavingExpressionBuilder<DB, TB>;
25
+ /**
26
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
27
+ */
28
+ havingRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): HavingExpressionBuilder<DB, TB>;
29
+ /**
30
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
31
+ */
32
+ orHaving<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): HavingExpressionBuilder<DB, TB>;
33
+ /**
34
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
35
+ */
36
+ orHaving(grouper: HavingExpressionBuilder<DB, TB>): HavingExpressionBuilder<DB, TB>;
37
+ /**
38
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
39
+ */
40
+ orHaving(expression: Expression<any>): HavingExpressionBuilder<DB, TB>;
41
+ /**
42
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
43
+ */
44
+ orHavingRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): HavingExpressionBuilder<DB, TB>;
45
+ /**
46
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
47
+ */
48
+ havingExists(arg: ExistsExpression<DB, TB>): HavingExpressionBuilder<DB, TB>;
49
+ /**
50
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
51
+ */
52
+ havingNotExists(arg: ExistsExpression<DB, TB>): HavingExpressionBuilder<DB, TB>;
53
+ /**
54
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
55
+ */
56
+ orHavingExists(arg: ExistsExpression<DB, TB>): HavingExpressionBuilder<DB, TB>;
57
+ /**
58
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
59
+ */
60
+ orHavingNotExists(arg: ExistsExpression<DB, TB>): HavingExpressionBuilder<DB, TB>;
61
+ toOperationNode(): OperationNode;
62
+ }
@@ -0,0 +1,2 @@
1
+ /// <reference types="./deprecated-having-expression-builder.d.ts" />
2
+ export {};
@@ -0,0 +1,62 @@
1
+ import { Expression } from '../expression/expression.js';
2
+ import { OperationNode } from '../operation-node/operation-node.js';
3
+ import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js';
4
+ import { ReferenceExpression } from '../parser/reference-parser.js';
5
+ import { ExistsExpression } from '../parser/unary-operation-parser.js';
6
+ import { ExpressionBuilder } from '../expression/expression-builder.js';
7
+ /**
8
+ * Temporary transitional wrapper type that contains the old `OnGrouper` methods
9
+ * and the new `ExpressionBuilder` interface. One we remove the deprecated methods,
10
+ * this interface can be ditched in favor of just `ExpressionBuilder`.
11
+ */
12
+ export interface OnExpressionBuilder<DB, TB extends keyof DB> extends ExpressionBuilder<DB, TB> {
13
+ /**
14
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
15
+ */
16
+ on<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): OnExpressionBuilder<DB, TB>;
17
+ /**
18
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
19
+ */
20
+ on(grouper: OnExpressionBuilder<DB, TB>): OnExpressionBuilder<DB, TB>;
21
+ /**
22
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
23
+ */
24
+ on(expression: Expression<any>): OnExpressionBuilder<DB, TB>;
25
+ /**
26
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
27
+ */
28
+ onRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): OnExpressionBuilder<DB, TB>;
29
+ /**
30
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
31
+ */
32
+ orOn<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): OnExpressionBuilder<DB, TB>;
33
+ /**
34
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
35
+ */
36
+ orOn(grouper: OnExpressionBuilder<DB, TB>): OnExpressionBuilder<DB, TB>;
37
+ /**
38
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
39
+ */
40
+ orOn(expression: Expression<any>): OnExpressionBuilder<DB, TB>;
41
+ /**
42
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
43
+ */
44
+ orOnRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): OnExpressionBuilder<DB, TB>;
45
+ /**
46
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
47
+ */
48
+ onExists(arg: ExistsExpression<DB, TB>): OnExpressionBuilder<DB, TB>;
49
+ /**
50
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
51
+ */
52
+ onNotExists(arg: ExistsExpression<DB, TB>): OnExpressionBuilder<DB, TB>;
53
+ /**
54
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
55
+ */
56
+ orOnExists(arg: ExistsExpression<DB, TB>): OnExpressionBuilder<DB, TB>;
57
+ /**
58
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
59
+ */
60
+ orOnNotExists(arg: ExistsExpression<DB, TB>): OnExpressionBuilder<DB, TB>;
61
+ toOperationNode(): OperationNode;
62
+ }
@@ -0,0 +1,2 @@
1
+ /// <reference types="./deprecated-on-expression-builder.d.ts" />
2
+ export {};
@@ -0,0 +1,62 @@
1
+ import { Expression } from '../expression/expression.js';
2
+ import { OperationNode } from '../operation-node/operation-node.js';
3
+ import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js';
4
+ import { ReferenceExpression } from '../parser/reference-parser.js';
5
+ import { ExistsExpression } from '../parser/unary-operation-parser.js';
6
+ import { ExpressionBuilder } from '../expression/expression-builder.js';
7
+ /**
8
+ * Temporary transitional wrapper type that contains the old `WhereGrouper` methods
9
+ * and the new `ExpressionBuilder` interface. One we remove the deprecated methods,
10
+ * this interface can be ditched in favor of just `ExpressionBuilder`.
11
+ */
12
+ export interface WhereExpressionBuilder<DB, TB extends keyof DB> extends ExpressionBuilder<DB, TB> {
13
+ /**
14
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
15
+ */
16
+ where<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): WhereExpressionBuilder<DB, TB>;
17
+ /**
18
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
19
+ */
20
+ where(grouper: WhereExpressionBuilder<DB, TB>): WhereExpressionBuilder<DB, TB>;
21
+ /**
22
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
23
+ */
24
+ where(expression: Expression<any>): WhereExpressionBuilder<DB, TB>;
25
+ /**
26
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
27
+ */
28
+ whereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): WhereExpressionBuilder<DB, TB>;
29
+ /**
30
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
31
+ */
32
+ orWhere<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): WhereExpressionBuilder<DB, TB>;
33
+ /**
34
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
35
+ */
36
+ orWhere(grouper: WhereExpressionBuilder<DB, TB>): WhereExpressionBuilder<DB, TB>;
37
+ /**
38
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
39
+ */
40
+ orWhere(expression: Expression<any>): WhereExpressionBuilder<DB, TB>;
41
+ /**
42
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
43
+ */
44
+ orWhereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): WhereExpressionBuilder<DB, TB>;
45
+ /**
46
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
47
+ */
48
+ whereExists(arg: ExistsExpression<DB, TB>): WhereExpressionBuilder<DB, TB>;
49
+ /**
50
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
51
+ */
52
+ whereNotExists(arg: ExistsExpression<DB, TB>): WhereExpressionBuilder<DB, TB>;
53
+ /**
54
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
55
+ */
56
+ orWhereExists(arg: ExistsExpression<DB, TB>): WhereExpressionBuilder<DB, TB>;
57
+ /**
58
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
59
+ */
60
+ orWhereNotExists(arg: ExistsExpression<DB, TB>): WhereExpressionBuilder<DB, TB>;
61
+ toOperationNode(): OperationNode;
62
+ }
@@ -0,0 +1,2 @@
1
+ /// <reference types="./deprecated-where-expression-builder.d.ts" />
2
+ export {};
@@ -1,7 +1,7 @@
1
1
  import { DynamicReferenceBuilder } from '../dynamic/dynamic-reference-builder.js';
2
+ import { ExpressionWrapper } from '../expression/expression-wrapper.js';
2
3
  import { CoalesceReferenceExpressionList } from '../parser/coalesce-parser.js';
3
4
  import { ExtractTypeFromReferenceExpression, SimpleReferenceExpression, ReferenceExpression, StringReference } from '../parser/reference-parser.js';
4
- import { RawBuilder } from '../raw-builder/raw-builder.js';
5
5
  import { Equals, IsNever } from '../util/type-utils.js';
6
6
  import { AggregateFunctionBuilder } from './aggregate-function-builder.js';
7
7
  /**
@@ -36,8 +36,35 @@ import { AggregateFunctionBuilder } from './aggregate-function-builder.js';
36
36
  * having count("pet"."id") > $1
37
37
  * ```
38
38
  */
39
- export declare class FunctionModule<DB, TB extends keyof DB> {
40
- constructor();
39
+ export interface FunctionModule<DB, TB extends keyof DB> {
40
+ /**
41
+ * Creates a function call.
42
+ *
43
+ * ### Examples
44
+ *
45
+ * ```ts
46
+ * db.selectFrom('person')
47
+ * .selectAll('person')
48
+ * .where(db.fn('upper', ['first_name']), '=', 'JENNIFER')
49
+ * ```
50
+ *
51
+ * The generated SQL (PostgreSQL):
52
+ *
53
+ * ```sql
54
+ * select "person".*
55
+ * from "person"
56
+ * where upper("first_name") = $1
57
+ * ```
58
+ *
59
+ * If you prefer readability over type-safety, you can always use raw `sql`:
60
+ *
61
+ * ```ts
62
+ * db.selectFrom('person')
63
+ * .selectAll('person')
64
+ * .where(sql`upper(first_name)`, '=', 'JENNIFER')
65
+ * ```
66
+ */
67
+ <T>(name: string, args: ReadonlyArray<ReferenceExpression<DB, TB>>): ExpressionWrapper<T>;
41
68
  /**
42
69
  * Calls the `avg` function for the column given as the argument.
43
70
  *
@@ -67,7 +94,7 @@ export declare class FunctionModule<DB, TB extends keyof DB> {
67
94
  *
68
95
  * ```ts
69
96
  * db.selectFrom('toy')
70
- * .select(qb => qb.fn.avg('price').as('avg_price'))
97
+ * .select((eb) => eb.fn.avg('price').as('avg_price'))
71
98
  * .execute()
72
99
  * ```
73
100
  *
@@ -143,8 +170,8 @@ export declare class FunctionModule<DB, TB extends keyof DB> {
143
170
  *
144
171
  * ```ts
145
172
  * db.selectFrom('participant')
146
- * .select(qb =>
147
- * qb.fn.coalesce('nickname', sql<string>`'<anonymous>'`).as('nickname')
173
+ * .select((eb) =>
174
+ * eb.fn.coalesce('nickname', sql<string>`'<anonymous>'`).as('nickname')
148
175
  * )
149
176
  * .where('room_id', '=', roomId)
150
177
  * .execute()
@@ -167,7 +194,7 @@ export declare class FunctionModule<DB, TB extends keyof DB> {
167
194
  * select coalesce(avg("age"), 0) as "avg_age" from "person" where "first_name" = $1
168
195
  * ```
169
196
  */
170
- coalesce<V extends ReferenceExpression<DB, TB>, OV extends ReferenceExpression<DB, TB>[]>(value: V, ...otherValues: OV): RawBuilder<CoalesceReferenceExpressionList<DB, TB, [V, ...OV]>>;
197
+ coalesce<V extends ReferenceExpression<DB, TB>, OV extends ReferenceExpression<DB, TB>[]>(value: V, ...otherValues: OV): ExpressionWrapper<CoalesceReferenceExpressionList<DB, TB, [V, ...OV]>>;
171
198
  /**
172
199
  * Calls the `count` function for the column given as the argument.
173
200
  *
@@ -218,7 +245,7 @@ export declare class FunctionModule<DB, TB extends keyof DB> {
218
245
  *
219
246
  * ```ts
220
247
  * db.selectFrom('toy')
221
- * .select(qb => qb.fn.count('id').as('num_toys'))
248
+ * .select((eb) => eb.fn.count('id').as('num_toys'))
222
249
  * .execute()
223
250
  * ```
224
251
  */
@@ -294,7 +321,7 @@ export declare class FunctionModule<DB, TB extends keyof DB> {
294
321
  * ```ts
295
322
  * db.selectFrom('toy')
296
323
  * .innerJoin('pet', 'pet.id', 'toy.pet_id')
297
- * .select(qb => qb.fn.countAll('toy').as('num_toys'))
324
+ * .select((eb) => eb.fn.countAll('toy').as('num_toys'))
298
325
  * .execute()
299
326
  * ```
300
327
  */
@@ -333,7 +360,7 @@ export declare class FunctionModule<DB, TB extends keyof DB> {
333
360
  *
334
361
  * ```ts
335
362
  * db.selectFrom('toy')
336
- * .select(qb => qb.fn.max('price').as('max_price'))
363
+ * .select((eb) => eb.fn.max('price').as('max_price'))
337
364
  * .execute()
338
365
  * ```
339
366
  *
@@ -385,7 +412,7 @@ export declare class FunctionModule<DB, TB extends keyof DB> {
385
412
  *
386
413
  * ```ts
387
414
  * db.selectFrom('toy')
388
- * .select(qb => qb.fn.min('price').as('min_price'))
415
+ * .select((eb) => eb.fn.min('price').as('min_price'))
389
416
  * .execute()
390
417
  * ```
391
418
  *
@@ -433,7 +460,7 @@ export declare class FunctionModule<DB, TB extends keyof DB> {
433
460
  *
434
461
  * ```ts
435
462
  * db.selectFrom('toy')
436
- * .select(qb => qb.fn.sum('price').as('total_price'))
463
+ * .select((eb) => eb.fn.sum('price').as('total_price'))
437
464
  * .execute()
438
465
  * ```
439
466
  *
@@ -470,6 +497,7 @@ export declare class FunctionModule<DB, TB extends keyof DB> {
470
497
  */
471
498
  sum<O extends number | string | bigint | null = number | string | bigint, C extends SimpleReferenceExpression<DB, TB> = SimpleReferenceExpression<DB, TB>>(column: C): AggregateFunctionBuilder<DB, TB, O>;
472
499
  }
500
+ export declare function createFunctionModule<DB, TB extends keyof DB>(): FunctionModule<DB, TB>;
473
501
  declare type OutputBoundStringReference<DB, TB extends keyof DB, C extends StringReference<DB, TB>, O> = IsNever<O> extends true ? C : Equals<ExtractTypeFromReferenceExpression<DB, TB, C> | null, O | null> extends true ? C : never;
474
502
  declare type StringReferenceBoundAggregateFunctionBuilder<DB, TB extends keyof DB, C extends StringReference<DB, TB>, O> = AggregateFunctionBuilder<DB, TB, ExtractTypeFromReferenceExpression<DB, TB, C> | (null extends O ? null : never)>;
475
503
  export {};