kysely 0.24.2 → 0.26.0

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 (351) hide show
  1. package/README.md +31 -567
  2. package/dist/cjs/dialect/database-introspector.d.ts +1 -1
  3. package/dist/cjs/dialect/mysql/mysql-dialect-config.d.ts +2 -1
  4. package/dist/cjs/dialect/mysql/mysql-driver.js +5 -1
  5. package/dist/cjs/dialect/postgres/postgres-dialect-config.d.ts +1 -1
  6. package/dist/cjs/dialect/postgres/postgres-introspector.js +1 -1
  7. package/dist/cjs/dialect/sqlite/sqlite-introspector.js +1 -1
  8. package/dist/cjs/driver/database-connection.d.ts +6 -0
  9. package/dist/cjs/driver/driver.d.ts +1 -1
  10. package/dist/cjs/driver/runtime-driver.js +6 -6
  11. package/dist/cjs/dynamic/dynamic.d.ts +1 -1
  12. package/dist/cjs/dynamic/dynamic.js +1 -1
  13. package/dist/cjs/expression/expression-builder.d.ts +263 -109
  14. package/dist/cjs/expression/expression-builder.js +38 -7
  15. package/dist/cjs/expression/expression-wrapper.d.ts +296 -5
  16. package/dist/cjs/expression/expression-wrapper.js +70 -2
  17. package/dist/cjs/helpers/mysql.d.ts +3 -3
  18. package/dist/cjs/helpers/mysql.js +2 -2
  19. package/dist/cjs/helpers/postgres.d.ts +31 -19
  20. package/dist/cjs/helpers/postgres.js +30 -18
  21. package/dist/cjs/index.d.ts +10 -0
  22. package/dist/cjs/index.js +10 -0
  23. package/dist/cjs/kysely.d.ts +42 -15
  24. package/dist/cjs/kysely.js +41 -10
  25. package/dist/cjs/migration/file-migration-provider.js +2 -2
  26. package/dist/cjs/operation-node/aggregate-function-node.d.ts +3 -7
  27. package/dist/cjs/operation-node/aggregate-function-node.js +1 -1
  28. package/dist/cjs/operation-node/alter-column-node.d.ts +3 -5
  29. package/dist/cjs/operation-node/alter-column-node.js +2 -7
  30. package/dist/cjs/operation-node/alter-table-node.d.ts +3 -3
  31. package/dist/cjs/operation-node/alter-table-node.js +1 -2
  32. package/dist/cjs/operation-node/case-node.d.ts +19 -0
  33. package/dist/cjs/operation-node/case-node.js +42 -0
  34. package/dist/cjs/operation-node/column-definition-node.d.ts +1 -1
  35. package/dist/cjs/operation-node/constraint-node.d.ts +1 -1
  36. package/dist/cjs/operation-node/create-index-node.d.ts +4 -3
  37. package/dist/cjs/operation-node/create-index-node.js +6 -0
  38. package/dist/cjs/operation-node/create-schema-node.d.ts +1 -1
  39. package/dist/cjs/operation-node/create-table-node.d.ts +2 -2
  40. package/dist/cjs/operation-node/create-type-node.d.ts +1 -1
  41. package/dist/cjs/operation-node/create-view-node.d.ts +1 -1
  42. package/dist/cjs/operation-node/data-type-node.d.ts +2 -2
  43. package/dist/cjs/operation-node/drop-constraint-node.d.ts +1 -1
  44. package/dist/cjs/operation-node/drop-index-node.d.ts +1 -1
  45. package/dist/cjs/operation-node/drop-schema-node.d.ts +1 -1
  46. package/dist/cjs/operation-node/drop-table-node.d.ts +1 -1
  47. package/dist/cjs/operation-node/drop-type-node.d.ts +1 -1
  48. package/dist/cjs/operation-node/drop-view-node.d.ts +1 -1
  49. package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +1 -1
  50. package/dist/cjs/operation-node/generated-node.d.ts +1 -1
  51. package/dist/cjs/operation-node/insert-query-node.d.ts +1 -1
  52. package/dist/cjs/operation-node/join-node.d.ts +1 -2
  53. package/dist/cjs/operation-node/join-node.js +0 -8
  54. package/dist/cjs/operation-node/json-operator-chain-node.d.ts +16 -0
  55. package/dist/cjs/operation-node/json-operator-chain-node.js +25 -0
  56. package/dist/cjs/operation-node/json-path-leg-node.d.ts +14 -0
  57. package/dist/cjs/operation-node/json-path-leg-node.js +19 -0
  58. package/dist/cjs/operation-node/json-path-node.d.ts +16 -0
  59. package/dist/cjs/operation-node/json-path-node.js +25 -0
  60. package/dist/cjs/operation-node/json-reference-node.d.ts +17 -0
  61. package/dist/cjs/operation-node/json-reference-node.js +25 -0
  62. package/dist/cjs/operation-node/on-conflict-node.d.ts +1 -1
  63. package/dist/cjs/operation-node/on-duplicate-key-node.d.ts +1 -1
  64. package/dist/cjs/operation-node/operation-node-transformer.d.ts +12 -0
  65. package/dist/cjs/operation-node/operation-node-transformer.js +53 -3
  66. package/dist/cjs/operation-node/operation-node-visitor.d.ts +12 -0
  67. package/dist/cjs/operation-node/operation-node-visitor.js +6 -0
  68. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  69. package/dist/cjs/operation-node/operator-node.d.ts +13 -9
  70. package/dist/cjs/operation-node/operator-node.js +12 -2
  71. package/dist/cjs/operation-node/query-node.d.ts +9 -10
  72. package/dist/cjs/operation-node/query-node.js +0 -8
  73. package/dist/cjs/operation-node/reference-node.d.ts +2 -2
  74. package/dist/cjs/operation-node/reference-node.js +1 -1
  75. package/dist/cjs/operation-node/references-node.d.ts +1 -1
  76. package/dist/cjs/operation-node/select-modifier-node.d.ts +1 -1
  77. package/dist/cjs/operation-node/select-query-node.d.ts +0 -1
  78. package/dist/cjs/operation-node/select-query-node.js +0 -8
  79. package/dist/cjs/operation-node/selection-node.d.ts +1 -1
  80. package/dist/cjs/operation-node/set-operation-node.d.ts +1 -1
  81. package/dist/cjs/operation-node/simple-reference-expression-node.d.ts +1 -1
  82. package/dist/cjs/operation-node/update-query-node.d.ts +1 -1
  83. package/dist/cjs/operation-node/values-node.d.ts +1 -1
  84. package/dist/cjs/operation-node/when-node.d.ts +14 -0
  85. package/dist/cjs/operation-node/when-node.js +24 -0
  86. package/dist/cjs/operation-node/with-node.d.ts +1 -1
  87. package/dist/cjs/parser/binary-operation-parser.d.ts +9 -11
  88. package/dist/cjs/parser/binary-operation-parser.js +40 -103
  89. package/dist/cjs/parser/coalesce-parser.d.ts +1 -1
  90. package/dist/cjs/parser/data-type-parser.d.ts +1 -1
  91. package/dist/cjs/parser/default-value-parser.d.ts +1 -1
  92. package/dist/cjs/parser/expression-parser.d.ts +6 -5
  93. package/dist/cjs/parser/group-by-parser.d.ts +2 -2
  94. package/dist/cjs/parser/insert-values-parser.d.ts +4 -4
  95. package/dist/cjs/parser/join-parser.d.ts +4 -4
  96. package/dist/cjs/parser/order-by-parser.d.ts +4 -3
  97. package/dist/cjs/parser/order-by-parser.js +5 -1
  98. package/dist/cjs/parser/partition-by-parser.d.ts +2 -2
  99. package/dist/cjs/parser/reference-parser.d.ts +16 -8
  100. package/dist/cjs/parser/reference-parser.js +43 -16
  101. package/dist/cjs/parser/returning-parser.d.ts +2 -2
  102. package/dist/cjs/parser/select-parser.d.ts +9 -9
  103. package/dist/cjs/parser/table-parser.d.ts +14 -13
  104. package/dist/cjs/parser/unary-operation-parser.d.ts +1 -1
  105. package/dist/cjs/parser/update-set-parser.d.ts +3 -3
  106. package/dist/cjs/parser/update-set-parser.js +1 -3
  107. package/dist/cjs/parser/value-parser.d.ts +4 -4
  108. package/dist/cjs/parser/with-parser.d.ts +14 -9
  109. package/dist/cjs/plugin/camel-case/camel-case.d.ts +1 -1
  110. package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.d.ts +42 -0
  111. package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.js +32 -0
  112. package/dist/cjs/plugin/with-schema/with-schema-transformer.js +22 -6
  113. package/dist/cjs/query-builder/aggregate-function-builder.d.ts +5 -38
  114. package/dist/cjs/query-builder/aggregate-function-builder.js +4 -59
  115. package/dist/cjs/query-builder/case-builder.d.ts +111 -0
  116. package/dist/cjs/query-builder/case-builder.js +75 -0
  117. package/dist/cjs/query-builder/delete-query-builder.d.ts +130 -63
  118. package/dist/cjs/query-builder/delete-query-builder.js +42 -59
  119. package/dist/cjs/query-builder/delete-result.d.ts +1 -2
  120. package/dist/cjs/query-builder/delete-result.js +2 -8
  121. package/dist/cjs/query-builder/function-module.d.ts +78 -69
  122. package/dist/cjs/query-builder/function-module.js +12 -16
  123. package/dist/cjs/query-builder/having-interface.d.ts +2 -35
  124. package/dist/cjs/query-builder/insert-query-builder.d.ts +99 -47
  125. package/dist/cjs/query-builder/insert-query-builder.js +57 -26
  126. package/dist/cjs/query-builder/insert-result.d.ts +3 -4
  127. package/dist/cjs/query-builder/insert-result.js +5 -14
  128. package/dist/cjs/query-builder/join-builder.d.ts +2 -35
  129. package/dist/cjs/query-builder/join-builder.js +1 -56
  130. package/dist/cjs/query-builder/json-path-builder.d.ts +212 -0
  131. package/dist/cjs/query-builder/json-path-builder.js +191 -0
  132. package/dist/cjs/query-builder/no-result-error.d.ts +1 -1
  133. package/dist/cjs/query-builder/on-conflict-builder.d.ts +144 -73
  134. package/dist/cjs/query-builder/on-conflict-builder.js +2 -111
  135. package/dist/cjs/query-builder/over-builder.d.ts +2 -2
  136. package/dist/cjs/query-builder/over-builder.js +1 -1
  137. package/dist/cjs/query-builder/returning-interface.d.ts +1 -1
  138. package/dist/cjs/query-builder/select-query-builder.d.ts +184 -138
  139. package/dist/cjs/query-builder/select-query-builder.js +64 -130
  140. package/dist/cjs/query-builder/update-query-builder.d.ts +143 -71
  141. package/dist/cjs/query-builder/update-query-builder.js +47 -60
  142. package/dist/cjs/query-builder/update-result.d.ts +3 -3
  143. package/dist/cjs/query-builder/update-result.js +5 -9
  144. package/dist/cjs/query-builder/where-interface.d.ts +73 -38
  145. package/dist/cjs/query-compiler/compiled-query.d.ts +1 -1
  146. package/dist/cjs/query-compiler/compiled-query.js +2 -2
  147. package/dist/cjs/query-compiler/default-query-compiler.d.ts +12 -0
  148. package/dist/cjs/query-compiler/default-query-compiler.js +67 -5
  149. package/dist/cjs/query-compiler/query-compiler.d.ts +1 -1
  150. package/dist/cjs/query-creator.d.ts +4 -2
  151. package/dist/cjs/schema/alter-column-builder.d.ts +13 -7
  152. package/dist/cjs/schema/alter-column-builder.js +20 -22
  153. package/dist/cjs/schema/alter-table-builder.d.ts +0 -4
  154. package/dist/cjs/schema/alter-table-builder.js +2 -9
  155. package/dist/cjs/schema/column-definition-builder.d.ts +1 -1
  156. package/dist/cjs/schema/column-definition-builder.js +1 -2
  157. package/dist/cjs/schema/create-index-builder.d.ts +49 -7
  158. package/dist/cjs/schema/create-index-builder.js +52 -14
  159. package/dist/cjs/schema/create-table-builder.d.ts +2 -6
  160. package/dist/cjs/schema/create-table-builder.js +0 -6
  161. package/dist/cjs/schema/schema.d.ts +1 -2
  162. package/dist/cjs/schema/schema.js +2 -3
  163. package/dist/cjs/util/column-type.d.ts +21 -16
  164. package/dist/cjs/util/explainable.d.ts +1 -1
  165. package/dist/cjs/util/infer-result.d.ts +2 -2
  166. package/dist/cjs/util/log.d.ts +6 -6
  167. package/dist/cjs/util/log.js +4 -4
  168. package/dist/cjs/util/object-utils.d.ts +2 -1
  169. package/dist/cjs/util/require-all-props.d.ts +1 -1
  170. package/dist/cjs/util/type-utils.d.ts +54 -40
  171. package/dist/esm/dialect/database-introspector.d.ts +1 -1
  172. package/dist/esm/dialect/mysql/mysql-dialect-config.d.ts +2 -1
  173. package/dist/esm/dialect/mysql/mysql-driver.js +5 -1
  174. package/dist/esm/dialect/postgres/postgres-dialect-config.d.ts +1 -1
  175. package/dist/esm/dialect/postgres/postgres-introspector.js +1 -1
  176. package/dist/esm/dialect/sqlite/sqlite-introspector.js +1 -1
  177. package/dist/esm/driver/database-connection.d.ts +6 -0
  178. package/dist/esm/driver/driver.d.ts +1 -1
  179. package/dist/esm/driver/runtime-driver.js +6 -6
  180. package/dist/esm/dynamic/dynamic.d.ts +1 -1
  181. package/dist/esm/dynamic/dynamic.js +1 -1
  182. package/dist/esm/expression/expression-builder.d.ts +263 -109
  183. package/dist/esm/expression/expression-builder.js +40 -9
  184. package/dist/esm/expression/expression-wrapper.d.ts +296 -5
  185. package/dist/esm/expression/expression-wrapper.js +67 -1
  186. package/dist/esm/helpers/mysql.d.ts +3 -3
  187. package/dist/esm/helpers/mysql.js +2 -2
  188. package/dist/esm/helpers/postgres.d.ts +31 -19
  189. package/dist/esm/helpers/postgres.js +30 -18
  190. package/dist/esm/index.d.ts +10 -0
  191. package/dist/esm/index.js +10 -0
  192. package/dist/esm/kysely.d.ts +42 -15
  193. package/dist/esm/kysely.js +42 -11
  194. package/dist/esm/operation-node/aggregate-function-node.d.ts +3 -7
  195. package/dist/esm/operation-node/aggregate-function-node.js +1 -1
  196. package/dist/esm/operation-node/alter-column-node.d.ts +3 -5
  197. package/dist/esm/operation-node/alter-column-node.js +2 -7
  198. package/dist/esm/operation-node/alter-table-node.d.ts +3 -3
  199. package/dist/esm/operation-node/alter-table-node.js +1 -2
  200. package/dist/esm/operation-node/case-node.d.ts +19 -0
  201. package/dist/esm/operation-node/case-node.js +40 -0
  202. package/dist/esm/operation-node/column-definition-node.d.ts +1 -1
  203. package/dist/esm/operation-node/constraint-node.d.ts +1 -1
  204. package/dist/esm/operation-node/create-index-node.d.ts +4 -3
  205. package/dist/esm/operation-node/create-index-node.js +6 -0
  206. package/dist/esm/operation-node/create-schema-node.d.ts +1 -1
  207. package/dist/esm/operation-node/create-table-node.d.ts +2 -2
  208. package/dist/esm/operation-node/create-type-node.d.ts +1 -1
  209. package/dist/esm/operation-node/create-view-node.d.ts +1 -1
  210. package/dist/esm/operation-node/data-type-node.d.ts +2 -2
  211. package/dist/esm/operation-node/drop-constraint-node.d.ts +1 -1
  212. package/dist/esm/operation-node/drop-index-node.d.ts +1 -1
  213. package/dist/esm/operation-node/drop-schema-node.d.ts +1 -1
  214. package/dist/esm/operation-node/drop-table-node.d.ts +1 -1
  215. package/dist/esm/operation-node/drop-type-node.d.ts +1 -1
  216. package/dist/esm/operation-node/drop-view-node.d.ts +1 -1
  217. package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +1 -1
  218. package/dist/esm/operation-node/generated-node.d.ts +1 -1
  219. package/dist/esm/operation-node/insert-query-node.d.ts +1 -1
  220. package/dist/esm/operation-node/join-node.d.ts +1 -2
  221. package/dist/esm/operation-node/join-node.js +0 -8
  222. package/dist/esm/operation-node/json-operator-chain-node.d.ts +16 -0
  223. package/dist/esm/operation-node/json-operator-chain-node.js +23 -0
  224. package/dist/esm/operation-node/json-path-leg-node.d.ts +14 -0
  225. package/dist/esm/operation-node/json-path-leg-node.js +17 -0
  226. package/dist/esm/operation-node/json-path-node.d.ts +16 -0
  227. package/dist/esm/operation-node/json-path-node.js +23 -0
  228. package/dist/esm/operation-node/json-reference-node.d.ts +17 -0
  229. package/dist/esm/operation-node/json-reference-node.js +23 -0
  230. package/dist/esm/operation-node/on-conflict-node.d.ts +1 -1
  231. package/dist/esm/operation-node/on-duplicate-key-node.d.ts +1 -1
  232. package/dist/esm/operation-node/operation-node-transformer.d.ts +12 -0
  233. package/dist/esm/operation-node/operation-node-transformer.js +53 -3
  234. package/dist/esm/operation-node/operation-node-visitor.d.ts +12 -0
  235. package/dist/esm/operation-node/operation-node-visitor.js +6 -0
  236. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  237. package/dist/esm/operation-node/operator-node.d.ts +13 -9
  238. package/dist/esm/operation-node/operator-node.js +10 -1
  239. package/dist/esm/operation-node/query-node.d.ts +9 -10
  240. package/dist/esm/operation-node/query-node.js +0 -8
  241. package/dist/esm/operation-node/reference-node.d.ts +2 -2
  242. package/dist/esm/operation-node/reference-node.js +1 -1
  243. package/dist/esm/operation-node/references-node.d.ts +1 -1
  244. package/dist/esm/operation-node/select-modifier-node.d.ts +1 -1
  245. package/dist/esm/operation-node/select-query-node.d.ts +0 -1
  246. package/dist/esm/operation-node/select-query-node.js +0 -8
  247. package/dist/esm/operation-node/selection-node.d.ts +1 -1
  248. package/dist/esm/operation-node/set-operation-node.d.ts +1 -1
  249. package/dist/esm/operation-node/simple-reference-expression-node.d.ts +1 -1
  250. package/dist/esm/operation-node/update-query-node.d.ts +1 -1
  251. package/dist/esm/operation-node/values-node.d.ts +1 -1
  252. package/dist/esm/operation-node/when-node.d.ts +14 -0
  253. package/dist/esm/operation-node/when-node.js +22 -0
  254. package/dist/esm/operation-node/with-node.d.ts +1 -1
  255. package/dist/esm/parser/binary-operation-parser.d.ts +9 -11
  256. package/dist/esm/parser/binary-operation-parser.js +38 -99
  257. package/dist/esm/parser/coalesce-parser.d.ts +1 -1
  258. package/dist/esm/parser/data-type-parser.d.ts +1 -1
  259. package/dist/esm/parser/default-value-parser.d.ts +1 -1
  260. package/dist/esm/parser/expression-parser.d.ts +6 -5
  261. package/dist/esm/parser/group-by-parser.d.ts +2 -2
  262. package/dist/esm/parser/insert-values-parser.d.ts +4 -4
  263. package/dist/esm/parser/join-parser.d.ts +4 -4
  264. package/dist/esm/parser/order-by-parser.d.ts +4 -3
  265. package/dist/esm/parser/order-by-parser.js +3 -0
  266. package/dist/esm/parser/partition-by-parser.d.ts +2 -2
  267. package/dist/esm/parser/reference-parser.d.ts +16 -8
  268. package/dist/esm/parser/reference-parser.js +40 -15
  269. package/dist/esm/parser/returning-parser.d.ts +2 -2
  270. package/dist/esm/parser/select-parser.d.ts +9 -9
  271. package/dist/esm/parser/table-parser.d.ts +14 -13
  272. package/dist/esm/parser/unary-operation-parser.d.ts +1 -1
  273. package/dist/esm/parser/update-set-parser.d.ts +3 -3
  274. package/dist/esm/parser/update-set-parser.js +2 -4
  275. package/dist/esm/parser/value-parser.d.ts +4 -4
  276. package/dist/esm/parser/with-parser.d.ts +14 -9
  277. package/dist/esm/plugin/camel-case/camel-case.d.ts +1 -1
  278. package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.d.ts +42 -0
  279. package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.js +29 -0
  280. package/dist/esm/plugin/with-schema/with-schema-transformer.js +22 -6
  281. package/dist/esm/query-builder/aggregate-function-builder.d.ts +5 -38
  282. package/dist/esm/query-builder/aggregate-function-builder.js +5 -60
  283. package/dist/esm/query-builder/case-builder.d.ts +111 -0
  284. package/dist/esm/query-builder/case-builder.js +69 -0
  285. package/dist/esm/query-builder/delete-query-builder.d.ts +130 -63
  286. package/dist/esm/query-builder/delete-query-builder.js +43 -60
  287. package/dist/esm/query-builder/delete-result.d.ts +1 -2
  288. package/dist/esm/query-builder/delete-result.js +2 -8
  289. package/dist/esm/query-builder/function-module.d.ts +78 -69
  290. package/dist/esm/query-builder/function-module.js +13 -17
  291. package/dist/esm/query-builder/having-interface.d.ts +2 -35
  292. package/dist/esm/query-builder/insert-query-builder.d.ts +99 -47
  293. package/dist/esm/query-builder/insert-query-builder.js +57 -26
  294. package/dist/esm/query-builder/insert-result.d.ts +3 -4
  295. package/dist/esm/query-builder/insert-result.js +5 -14
  296. package/dist/esm/query-builder/join-builder.d.ts +2 -35
  297. package/dist/esm/query-builder/join-builder.js +2 -57
  298. package/dist/esm/query-builder/json-path-builder.d.ts +212 -0
  299. package/dist/esm/query-builder/json-path-builder.js +186 -0
  300. package/dist/esm/query-builder/no-result-error.d.ts +1 -1
  301. package/dist/esm/query-builder/on-conflict-builder.d.ts +144 -73
  302. package/dist/esm/query-builder/on-conflict-builder.js +3 -112
  303. package/dist/esm/query-builder/over-builder.d.ts +2 -2
  304. package/dist/esm/query-builder/over-builder.js +1 -1
  305. package/dist/esm/query-builder/returning-interface.d.ts +1 -1
  306. package/dist/esm/query-builder/select-query-builder.d.ts +184 -138
  307. package/dist/esm/query-builder/select-query-builder.js +65 -131
  308. package/dist/esm/query-builder/update-query-builder.d.ts +143 -71
  309. package/dist/esm/query-builder/update-query-builder.js +48 -61
  310. package/dist/esm/query-builder/update-result.d.ts +3 -3
  311. package/dist/esm/query-builder/update-result.js +5 -9
  312. package/dist/esm/query-builder/where-interface.d.ts +73 -38
  313. package/dist/esm/query-compiler/compiled-query.d.ts +1 -1
  314. package/dist/esm/query-compiler/compiled-query.js +2 -2
  315. package/dist/esm/query-compiler/default-query-compiler.d.ts +12 -0
  316. package/dist/esm/query-compiler/default-query-compiler.js +67 -5
  317. package/dist/esm/query-compiler/query-compiler.d.ts +1 -1
  318. package/dist/esm/query-creator.d.ts +4 -2
  319. package/dist/esm/schema/alter-column-builder.d.ts +13 -7
  320. package/dist/esm/schema/alter-column-builder.js +20 -22
  321. package/dist/esm/schema/alter-table-builder.d.ts +0 -4
  322. package/dist/esm/schema/alter-table-builder.js +2 -9
  323. package/dist/esm/schema/column-definition-builder.d.ts +1 -1
  324. package/dist/esm/schema/column-definition-builder.js +1 -2
  325. package/dist/esm/schema/create-index-builder.d.ts +49 -7
  326. package/dist/esm/schema/create-index-builder.js +54 -16
  327. package/dist/esm/schema/create-table-builder.d.ts +2 -6
  328. package/dist/esm/schema/create-table-builder.js +0 -6
  329. package/dist/esm/schema/schema.d.ts +1 -2
  330. package/dist/esm/schema/schema.js +2 -3
  331. package/dist/esm/util/column-type.d.ts +21 -16
  332. package/dist/esm/util/explainable.d.ts +1 -1
  333. package/dist/esm/util/infer-result.d.ts +2 -2
  334. package/dist/esm/util/log.d.ts +6 -6
  335. package/dist/esm/util/log.js +4 -4
  336. package/dist/esm/util/object-utils.d.ts +2 -1
  337. package/dist/esm/util/require-all-props.d.ts +1 -1
  338. package/dist/esm/util/type-utils.d.ts +54 -40
  339. package/package.json +25 -23
  340. package/dist/cjs/query-builder/deprecated-having-expression-builder.d.ts +0 -62
  341. package/dist/cjs/query-builder/deprecated-having-expression-builder.js +0 -2
  342. package/dist/cjs/query-builder/deprecated-on-expression-builder.d.ts +0 -62
  343. package/dist/cjs/query-builder/deprecated-on-expression-builder.js +0 -2
  344. package/dist/cjs/query-builder/deprecated-where-expression-builder.d.ts +0 -62
  345. package/dist/cjs/query-builder/deprecated-where-expression-builder.js +0 -2
  346. package/dist/esm/query-builder/deprecated-having-expression-builder.d.ts +0 -62
  347. package/dist/esm/query-builder/deprecated-having-expression-builder.js +0 -2
  348. package/dist/esm/query-builder/deprecated-on-expression-builder.d.ts +0 -62
  349. package/dist/esm/query-builder/deprecated-on-expression-builder.js +0 -2
  350. package/dist/esm/query-builder/deprecated-where-expression-builder.d.ts +0 -62
  351. package/dist/esm/query-builder/deprecated-where-expression-builder.js +0 -2
@@ -1,8 +1,8 @@
1
1
  import { DynamicReferenceBuilder } from '../dynamic/dynamic-reference-builder.js';
2
2
  import { ExpressionWrapper } from '../expression/expression-wrapper.js';
3
3
  import { CoalesceReferenceExpressionList } from '../parser/coalesce-parser.js';
4
- import { ExtractTypeFromReferenceExpression, SimpleReferenceExpression, ReferenceExpression, StringReference } from '../parser/reference-parser.js';
5
- import { Equals, IsNever } from '../util/type-utils.js';
4
+ import { ExtractTypeFromReferenceExpression, ReferenceExpression, StringReference } from '../parser/reference-parser.js';
5
+ import { Equals, IsAny } from '../util/type-utils.js';
6
6
  import { AggregateFunctionBuilder } from './aggregate-function-builder.js';
7
7
  /**
8
8
  * Helpers for type safe SQL function calls.
@@ -12,24 +12,36 @@ import { AggregateFunctionBuilder } from './aggregate-function-builder.js';
12
12
  *
13
13
  * ### Examples
14
14
  *
15
- * ```ts
16
- * const { count } = db.fn
15
+ * <!-- siteExample("select", "Function calls", 60) -->
16
+ *
17
+ * This example uses the `fn` module to select some aggregates:
17
18
  *
18
- * await db.selectFrom('person')
19
+ * ```ts
20
+ * const result = await db.selectFrom('person')
19
21
  * .innerJoin('pet', 'pet.owner_id', 'person.id')
20
- * .select([
22
+ * .select(({ fn }) => [
21
23
  * 'person.id',
22
- * count('pet.id').as('pet_count')
24
+ *
25
+ * // The `fn` module contains the most common
26
+ * // functions.
27
+ * fn.count<number>('pet.id').as('pet_count'),
28
+ *
29
+ * // You can call any function using the
30
+ * // `agg` method
31
+ * fn.agg<string[]>('array_agg', ['pet.name']).as('pet_names')
23
32
  * ])
24
33
  * .groupBy('person.id')
25
- * .having(count('pet.id'), '>', 10)
34
+ * .having((eb) => eb.fn.count('pet.id'), '>', 10)
26
35
  * .execute()
27
36
  * ```
28
37
  *
29
38
  * The generated SQL (PostgreSQL):
30
39
  *
31
40
  * ```sql
32
- * select "person"."id", count("pet"."id") as "pet_count"
41
+ * select
42
+ * "person"."id",
43
+ * count("pet"."id") as "pet_count",
44
+ * array_agg("pet"."name") as "pet_names"
33
45
  * from "person"
34
46
  * inner join "pet" on "pet"."owner_id" = "person"."id"
35
47
  * group by "person"."id"
@@ -40,6 +52,8 @@ export interface FunctionModule<DB, TB extends keyof DB> {
40
52
  /**
41
53
  * Creates a function call.
42
54
  *
55
+ * To create an aggregate function call, use {@link FunctionModule.agg}.
56
+ *
43
57
  * ### Examples
44
58
  *
45
59
  * ```ts
@@ -64,7 +78,36 @@ export interface FunctionModule<DB, TB extends keyof DB> {
64
78
  * .where(sql`upper(first_name)`, '=', 'JENNIFER')
65
79
  * ```
66
80
  */
67
- <T>(name: string, args: ReadonlyArray<ReferenceExpression<DB, TB>>): ExpressionWrapper<T>;
81
+ <T>(name: string, args: ReadonlyArray<ReferenceExpression<DB, TB>>): ExpressionWrapper<DB, TB, T>;
82
+ /**
83
+ * Creates an aggregate function call.
84
+ *
85
+ * This is a specialized version of the `fn` method, that returns an {@link AggregateFunctionBuilder}
86
+ * instance. A builder that allows you to chain additional methods such as `distinct`,
87
+ * `filterWhere` and `over`.
88
+ *
89
+ * See {@link avg}, {@link count}, {@link countAll}, {@link max}, {@link min}, {@link sum}
90
+ * shortcuts of common aggregate functions.
91
+ *
92
+ * ### Examples
93
+ *
94
+ * ```ts
95
+ * db.selectFrom('person')
96
+ * .select(({ fn }) => [
97
+ * fn.agg<number>('rank').over().as('rank'),
98
+ * fn.agg<string>('group_concat', ['first_name']).distinct().as('first_names')
99
+ * ])
100
+ * ```
101
+ *
102
+ * The generated SQL (MySQL):
103
+ *
104
+ * ```sql
105
+ * select rank() over() as "rank",
106
+ * group_concat(distinct "first_name") as "first_names"
107
+ * from "person"
108
+ * ```
109
+ */
110
+ agg<O>(name: string, args?: ReadonlyArray<ReferenceExpression<DB, TB>>): AggregateFunctionBuilder<DB, TB, O>;
68
111
  /**
69
112
  * Calls the `avg` function for the column given as the argument.
70
113
  *
@@ -77,10 +120,8 @@ export interface FunctionModule<DB, TB extends keyof DB> {
77
120
  * ### Examples
78
121
  *
79
122
  * ```ts
80
- * const { avg } = db.fn
81
- *
82
123
  * db.selectFrom('toy')
83
- * .select(avg('price').as('avg_price'))
124
+ * .select((eb) => eb.fn.avg('price').as('avg_price'))
84
125
  * .execute()
85
126
  * ```
86
127
  *
@@ -109,10 +150,8 @@ export interface FunctionModule<DB, TB extends keyof DB> {
109
150
  * the first type argument:
110
151
  *
111
152
  * ```ts
112
- * const { avg } = db.fn
113
- *
114
153
  * db.selectFrom('toy')
115
- * .select(avg<number>('price').as('avg_price'))
154
+ * .select((eb) => eb.fn.avg<number>('price').as('avg_price'))
116
155
  * .execute()
117
156
  * ```
118
157
  *
@@ -122,14 +161,12 @@ export interface FunctionModule<DB, TB extends keyof DB> {
122
161
  * function.
123
162
  *
124
163
  * ```ts
125
- * const { avg } = db.fn
126
- *
127
164
  * db.selectFrom('toy')
128
- * .select(avg<number | null>('price').as('avg_price'))
165
+ * .select((eb) => eb.fn.avg<number | null>('price').as('avg_price'))
129
166
  * .execute()
130
167
  * ```
131
168
  */
132
- avg<O extends number | string | null = number | string, C extends SimpleReferenceExpression<DB, TB> = SimpleReferenceExpression<DB, TB>>(column: C): AggregateFunctionBuilder<DB, TB, O>;
169
+ avg<O extends number | string | null = number | string, C extends ReferenceExpression<DB, TB> = ReferenceExpression<DB, TB>>(column: C): AggregateFunctionBuilder<DB, TB, O>;
133
170
  /**
134
171
  * Calls the `coalesce` function for given arguments.
135
172
  *
@@ -151,10 +188,8 @@ export interface FunctionModule<DB, TB extends keyof DB> {
151
188
  * ### Examples
152
189
  *
153
190
  * ```ts
154
- * const { coalesce } = db.fn
155
- *
156
191
  * db.selectFrom('participant')
157
- * .select(coalesce('nickname', sql<string>`'<anonymous>'`).as('nickname'))
192
+ * .select((eb) => eb.fn.coalesce('nickname', sql<string>`'<anonymous>'`).as('nickname'))
158
193
  * .where('room_id', '=', roomId)
159
194
  * .execute()
160
195
  * ```
@@ -180,10 +215,8 @@ export interface FunctionModule<DB, TB extends keyof DB> {
180
215
  * You can combine this function with other helpers in this module:
181
216
  *
182
217
  * ```ts
183
- * const { avg, coalesce } = db.fn
184
- *
185
218
  * db.selectFrom('person')
186
- * .select(coalesce(avg<number | null>('age'), sql<number>`0`).as('avg_age'))
219
+ * .select((eb) => eb.fn.coalesce(eb.fn.avg<number | null>('age'), sql<number>`0`).as('avg_age'))
187
220
  * .where('first_name', '=', 'Jennifer')
188
221
  * .execute()
189
222
  * ```
@@ -194,7 +227,7 @@ export interface FunctionModule<DB, TB extends keyof DB> {
194
227
  * select coalesce(avg("age"), 0) as "avg_age" from "person" where "first_name" = $1
195
228
  * ```
196
229
  */
197
- coalesce<V extends ReferenceExpression<DB, TB>, OV extends ReferenceExpression<DB, TB>[]>(value: V, ...otherValues: OV): ExpressionWrapper<CoalesceReferenceExpressionList<DB, TB, [V, ...OV]>>;
230
+ coalesce<V extends ReferenceExpression<DB, TB>, OV extends ReferenceExpression<DB, TB>[]>(value: V, ...otherValues: OV): ExpressionWrapper<DB, TB, CoalesceReferenceExpressionList<DB, TB, [V, ...OV]>>;
198
231
  /**
199
232
  * Calls the `count` function for the column given as the argument.
200
233
  *
@@ -210,10 +243,8 @@ export interface FunctionModule<DB, TB extends keyof DB> {
210
243
  * ### Examples
211
244
  *
212
245
  * ```ts
213
- * const { count } = db.fn
214
- *
215
246
  * db.selectFrom('toy')
216
- * .select(count('id').as('num_toys'))
247
+ * .select((eb) => eb.fn.count('id').as('num_toys'))
217
248
  * .execute()
218
249
  * ```
219
250
  *
@@ -234,10 +265,8 @@ export interface FunctionModule<DB, TB extends keyof DB> {
234
265
  * the type as the first type argument:
235
266
  *
236
267
  * ```ts
237
- * const { count } = db.fn
238
- *
239
268
  * db.selectFrom('toy')
240
- * .select(count<number>('id').as('num_toys'))
269
+ * .select((eb) => eb.fn.count<number>('id').as('num_toys'))
241
270
  * .execute()
242
271
  * ```
243
272
  *
@@ -249,7 +278,7 @@ export interface FunctionModule<DB, TB extends keyof DB> {
249
278
  * .execute()
250
279
  * ```
251
280
  */
252
- count<O extends number | string | bigint, C extends SimpleReferenceExpression<DB, TB> = SimpleReferenceExpression<DB, TB>>(column: C): AggregateFunctionBuilder<DB, TB, O>;
281
+ count<O extends number | string | bigint, C extends ReferenceExpression<DB, TB> = ReferenceExpression<DB, TB>>(column: C): AggregateFunctionBuilder<DB, TB, O>;
253
282
  /**
254
283
  * Calls the `count` function with `*` or `table.*` as argument.
255
284
  *
@@ -266,10 +295,8 @@ export interface FunctionModule<DB, TB extends keyof DB> {
266
295
  * ### Examples
267
296
  *
268
297
  * ```ts
269
- * const { countAll } = db.fn
270
- *
271
298
  * db.selectFrom('toy')
272
- * .select(countAll().as('num_toys'))
299
+ * .select((eb) => eb.fn.countAll().as('num_toys'))
273
300
  * .execute()
274
301
  * ```
275
302
  *
@@ -290,10 +317,8 @@ export interface FunctionModule<DB, TB extends keyof DB> {
290
317
  * the type as the first type argument:
291
318
  *
292
319
  * ```ts
293
- * const { countAll } = db.fn
294
- *
295
320
  * db.selectFrom('toy')
296
- * .select(countAll<number>().as('num_toys'))
321
+ * .select((eb) => eb.fn.countAll<number>().as('num_toys'))
297
322
  * .execute()
298
323
  * ```
299
324
  *
@@ -301,11 +326,9 @@ export interface FunctionModule<DB, TB extends keyof DB> {
301
326
  * table:
302
327
  *
303
328
  * ```ts
304
- * const { countAll } = db.fn
305
- *
306
329
  * db.selectFrom('toy')
307
330
  * .innerJoin('pet', 'pet.id', 'toy.pet_id')
308
- * .select(countAll('toy').as('num_toys'))
331
+ * .select((eb) => eb.fn.countAll('toy').as('num_toys'))
309
332
  * .execute()
310
333
  * ```
311
334
  *
@@ -343,10 +366,8 @@ export interface FunctionModule<DB, TB extends keyof DB> {
343
366
  * ### Examples
344
367
  *
345
368
  * ```ts
346
- * const { max } = db.fn
347
- *
348
369
  * db.selectFrom('toy')
349
- * .select(max('price').as('max_price'))
370
+ * .select((eb) => eb.fn.max('price').as('max_price'))
350
371
  * .execute()
351
372
  * ```
352
373
  *
@@ -370,14 +391,12 @@ export interface FunctionModule<DB, TB extends keyof DB> {
370
391
  * function.
371
392
  *
372
393
  * ```ts
373
- * const { max } = db.fn
374
- *
375
394
  * db.selectFrom('toy')
376
- * .select(max<number | null, 'price'>('price').as('max_price'))
395
+ * .select((eb) => eb.fn.max<number | null, 'price'>('price').as('max_price'))
377
396
  * .execute()
378
397
  * ```
379
398
  */
380
- max<O extends number | string | bigint | null = never, C extends StringReference<DB, TB> = StringReference<DB, TB>>(column: OutputBoundStringReference<DB, TB, C, O>): StringReferenceBoundAggregateFunctionBuilder<DB, TB, C, O>;
399
+ max<O extends number | string | bigint | null = any, C extends StringReference<DB, TB> = StringReference<DB, TB>>(column: OutputBoundStringReference<DB, TB, C, O>): StringReferenceBoundAggregateFunctionBuilder<DB, TB, C, O>;
381
400
  max<O extends number | string | bigint | null = number | string | bigint>(column: DynamicReferenceBuilder): AggregateFunctionBuilder<DB, TB, O>;
382
401
  /**
383
402
  * Calls the `min` function for the column given as the argument.
@@ -395,10 +414,8 @@ export interface FunctionModule<DB, TB extends keyof DB> {
395
414
  * ### Examples
396
415
  *
397
416
  * ```ts
398
- * const { min } = db.fn
399
- *
400
417
  * db.selectFrom('toy')
401
- * .select(min('price').as('min_price'))
418
+ * .select((eb) => eb.fn.min('price').as('min_price'))
402
419
  * .execute()
403
420
  * ```
404
421
  *
@@ -422,14 +439,12 @@ export interface FunctionModule<DB, TB extends keyof DB> {
422
439
  * function.
423
440
  *
424
441
  * ```ts
425
- * const { min } = db.fn
426
- *
427
442
  * db.selectFrom('toy')
428
- * .select(min<number | null, 'price'>('price').as('min_price'))
443
+ * .select((eb) => eb.fn.min<number | null, 'price'>('price').as('min_price'))
429
444
  * .execute()
430
445
  * ```
431
446
  */
432
- min<O extends number | string | bigint | null = never, C extends StringReference<DB, TB> = StringReference<DB, TB>>(column: OutputBoundStringReference<DB, TB, C, O>): StringReferenceBoundAggregateFunctionBuilder<DB, TB, C, O>;
447
+ min<O extends number | string | bigint | null = any, C extends StringReference<DB, TB> = StringReference<DB, TB>>(column: OutputBoundStringReference<DB, TB, C, O>): StringReferenceBoundAggregateFunctionBuilder<DB, TB, C, O>;
433
448
  min<O extends number | string | bigint | null = number | string | bigint>(column: DynamicReferenceBuilder): AggregateFunctionBuilder<DB, TB, O>;
434
449
  /**
435
450
  * Calls the `sum` function for the column given as the argument.
@@ -443,10 +458,8 @@ export interface FunctionModule<DB, TB extends keyof DB> {
443
458
  * ### Examples
444
459
  *
445
460
  * ```ts
446
- * const { sum } = db.fn
447
- *
448
461
  * db.selectFrom('toy')
449
- * .select(sum('price').as('total_price'))
462
+ * .select((eb) => eb.fn.sum('price').as('total_price'))
450
463
  * .execute()
451
464
  * ```
452
465
  *
@@ -475,10 +488,8 @@ export interface FunctionModule<DB, TB extends keyof DB> {
475
488
  * the first type argument:
476
489
  *
477
490
  * ```ts
478
- * const { sum } = db.fn
479
- *
480
491
  * db.selectFrom('toy')
481
- * .select(sum<number>('price').as('total_price'))
492
+ * .select((eb) => eb.fn.sum<number>('price').as('total_price'))
482
493
  * .execute()
483
494
  * ```
484
495
  *
@@ -488,16 +499,14 @@ export interface FunctionModule<DB, TB extends keyof DB> {
488
499
  * function.
489
500
  *
490
501
  * ```ts
491
- * const { sum } = db.fn
492
- *
493
502
  * db.selectFrom('toy')
494
- * .select(sum<number | null>('price').as('total_price'))
503
+ * .select((eb) => eb.fn.sum<number | null>('price').as('total_price'))
495
504
  * .execute()
496
505
  * ```
497
506
  */
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>;
507
+ sum<O extends number | string | bigint | null = number | string | bigint, C extends ReferenceExpression<DB, TB> = ReferenceExpression<DB, TB>>(column: C): AggregateFunctionBuilder<DB, TB, O>;
499
508
  }
500
509
  export declare function createFunctionModule<DB, TB extends keyof DB>(): FunctionModule<DB, TB>;
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;
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)>;
510
+ type OutputBoundStringReference<DB, TB extends keyof DB, C extends StringReference<DB, TB>, O> = IsAny<O> extends true ? C : Equals<ExtractTypeFromReferenceExpression<DB, TB, C> | null, O | null> extends true ? C : never;
511
+ type StringReferenceBoundAggregateFunctionBuilder<DB, TB extends keyof DB, C extends StringReference<DB, TB>, O> = AggregateFunctionBuilder<DB, TB, ExtractTypeFromReferenceExpression<DB, TB, C> | (IsAny<O> extends true ? never : null extends O ? null : never)>;
503
512
  export {};
@@ -2,46 +2,42 @@
2
2
  import { ExpressionWrapper } from '../expression/expression-wrapper.js';
3
3
  import { AggregateFunctionNode } from '../operation-node/aggregate-function-node.js';
4
4
  import { FunctionNode } from '../operation-node/function-node.js';
5
- import { parseSimpleReferenceExpression, parseReferenceExpressionOrList, } from '../parser/reference-parser.js';
5
+ import { parseReferenceExpressionOrList, } from '../parser/reference-parser.js';
6
6
  import { parseSelectAll } from '../parser/select-parser.js';
7
7
  import { AggregateFunctionBuilder } from './aggregate-function-builder.js';
8
8
  export function createFunctionModule() {
9
9
  const fn = (name, args) => {
10
10
  return new ExpressionWrapper(FunctionNode.create(name, parseReferenceExpressionOrList(args)));
11
11
  };
12
+ const agg = (name, args) => {
13
+ return new AggregateFunctionBuilder({
14
+ aggregateFunctionNode: AggregateFunctionNode.create(name, args ? parseReferenceExpressionOrList(args) : undefined),
15
+ });
16
+ };
12
17
  return Object.assign(fn, {
18
+ agg,
13
19
  avg(column) {
14
- return new AggregateFunctionBuilder({
15
- aggregateFunctionNode: AggregateFunctionNode.create('avg', parseSimpleReferenceExpression(column)),
16
- });
20
+ return agg('avg', [column]);
17
21
  },
18
22
  coalesce(value, ...otherValues) {
19
23
  return fn('coalesce', [value, ...otherValues]);
20
24
  },
21
25
  count(column) {
22
- return new AggregateFunctionBuilder({
23
- aggregateFunctionNode: AggregateFunctionNode.create('count', parseSimpleReferenceExpression(column)),
24
- });
26
+ return agg('count', [column]);
25
27
  },
26
28
  countAll(table) {
27
29
  return new AggregateFunctionBuilder({
28
- aggregateFunctionNode: AggregateFunctionNode.create('count', parseSelectAll(table)[0]),
30
+ aggregateFunctionNode: AggregateFunctionNode.create('count', parseSelectAll(table)),
29
31
  });
30
32
  },
31
33
  max(column) {
32
- return new AggregateFunctionBuilder({
33
- aggregateFunctionNode: AggregateFunctionNode.create('max', parseSimpleReferenceExpression(column)),
34
- });
34
+ return agg('max', [column]);
35
35
  },
36
36
  min(column) {
37
- return new AggregateFunctionBuilder({
38
- aggregateFunctionNode: AggregateFunctionNode.create('min', parseSimpleReferenceExpression(column)),
39
- });
37
+ return agg('min', [column]);
40
38
  },
41
39
  sum(column) {
42
- return new AggregateFunctionBuilder({
43
- aggregateFunctionNode: AggregateFunctionNode.create('sum', parseSimpleReferenceExpression(column)),
44
- });
40
+ return agg('sum', [column]);
45
41
  },
46
42
  });
47
43
  }
@@ -1,9 +1,8 @@
1
+ import { ExpressionBuilder } from '../expression/expression-builder.js';
1
2
  import { Expression } from '../expression/expression.js';
2
3
  import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js';
3
4
  import { ReferenceExpression } from '../parser/reference-parser.js';
4
- import { ExistsExpression } from '../parser/unary-operation-parser.js';
5
5
  import { SqlBool } from '../util/type-utils.js';
6
- import { HavingExpressionBuilder } from './deprecated-having-expression-builder.js';
7
6
  export interface HavingInterface<DB, TB extends keyof DB> {
8
7
  /**
9
8
  * Just like {@link WhereInterface.where | where} but adds a `having` statement
@@ -17,37 +16,5 @@ export interface HavingInterface<DB, TB extends keyof DB> {
17
16
  * instead of a `where` statement.
18
17
  */
19
18
  havingRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): HavingInterface<DB, TB>;
20
- /**
21
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
22
- */
23
- orHaving<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): HavingInterface<DB, TB>;
24
- /**
25
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
26
- */
27
- orHaving(factory: HavingExpressionFactory<DB, TB>): HavingInterface<DB, TB>;
28
- /**
29
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
30
- */
31
- orHaving(expression: Expression<any>): HavingInterface<DB, TB>;
32
- /**
33
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
34
- */
35
- orHavingRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): HavingInterface<DB, TB>;
36
- /**
37
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
38
- */
39
- havingExists(arg: ExistsExpression<DB, TB>): HavingInterface<DB, TB>;
40
- /**
41
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
42
- */
43
- havingNotExists(arg: ExistsExpression<DB, TB>): HavingInterface<DB, TB>;
44
- /**
45
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
46
- */
47
- orHavingExists(arg: ExistsExpression<DB, TB>): HavingInterface<DB, TB>;
48
- /**
49
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
50
- */
51
- orHavingNotExists(arg: ExistsExpression<DB, TB>): HavingInterface<DB, TB>;
52
19
  }
53
- export declare type HavingExpressionFactory<DB, TB extends keyof DB> = (eb: HavingExpressionBuilder<DB, TB>) => Expression<SqlBool> | HavingExpressionBuilder<DB, TB>;
20
+ export type HavingExpressionFactory<DB, TB extends keyof DB> = (eb: ExpressionBuilder<DB, TB>) => Expression<SqlBool>;