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,12 +1,12 @@
1
1
  import { Expression } from '../expression/expression.js';
2
2
  import { OnConflictNode } from '../operation-node/on-conflict-node.js';
3
3
  import { OperationNodeSource } from '../operation-node/operation-node-source.js';
4
- import { ComparisonOperatorExpression, OperandValueExpressionOrList, WhereGrouper } from '../parser/binary-operation-parser.js';
4
+ import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js';
5
5
  import { ExpressionOrFactory } from '../parser/expression-parser.js';
6
6
  import { ReferenceExpression } from '../parser/reference-parser.js';
7
- import { UpdateObject } from '../parser/update-set-parser.js';
7
+ import { UpdateExpression } from '../parser/update-set-parser.js';
8
8
  import { AnyColumn } from '../util/type-utils.js';
9
- import { WhereInterface } from './where-interface.js';
9
+ import { WhereExpressionFactory, WhereInterface } from './where-interface.js';
10
10
  export declare class OnConflictBuilder<DB, TB extends keyof DB> implements WhereInterface<DB, TB> {
11
11
  #private;
12
12
  constructor(props: OnConflictBuilderProps);
@@ -47,53 +47,37 @@ export declare class OnConflictBuilder<DB, TB extends keyof DB> implements Where
47
47
  */
48
48
  where<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): OnConflictBuilder<DB, TB>;
49
49
  /**
50
- * Adds a `where` clause to the query.
50
+ * Adds a `where` expression to the query.
51
51
  *
52
- * Also see {@link orWhere}, {@link whereExists} and {@link whereRef}.
52
+ * Calling this method multiple times will combine the expressions using `and`.
53
53
  *
54
- * ### Examples
54
+ * Also see {@link whereRef}
55
55
  *
56
- * Find a row by column value:
56
+ * ### Examples
57
57
  *
58
58
  * ```ts
59
59
  * const person = await db
60
60
  * .selectFrom('person')
61
61
  * .selectAll()
62
- * .where('id', '=', 100)
62
+ * .where('first_name', '=', 'Jennifer')
63
+ * .where('age', '>', 40)
63
64
  * .executeTakeFirst()
64
65
  * ```
65
66
  *
66
67
  * The generated SQL (PostgreSQL):
67
68
  *
68
69
  * ```sql
69
- * select * from "person" where "id" = $1
70
+ * select * from "person" where "first_name" = $1 and "age" > $2
70
71
  * ```
71
72
  *
72
73
  * Operator can be any supported operator or if the typings don't support it
73
- * you can always use
74
+ * you can always use:
74
75
  *
75
76
  * ```ts
76
77
  * sql`your operator`
77
78
  * ```
78
79
  *
79
- * The next example uses the `>` operator:
80
- *
81
- * ```ts
82
- * const persons = await db
83
- * .selectFrom('person')
84
- * .selectAll()
85
- * .where('id', '>', 100)
86
- * .execute()
87
- * ```
88
- *
89
- * The generated SQL (PostgreSQL):
90
- *
91
- * ```sql
92
- * select * from "person" where "id" > $1
93
- * ```
94
- *
95
- * `where` methods don't change the type of the query. You can add
96
- * conditional statements easily by doing something like this:
80
+ * You can add expressions conditionally like this:
97
81
  *
98
82
  * ```ts
99
83
  * let query = db
@@ -106,16 +90,16 @@ export declare class OnConflictBuilder<DB, TB extends keyof DB> implements Where
106
90
  * query = query.where('first_name', '=', firstName)
107
91
  * }
108
92
  *
93
+ * if (lastName) {
94
+ * query = query.where('last_name', '=', lastName)
95
+ * }
96
+ *
109
97
  * const persons = await query.execute()
110
98
  * ```
111
99
  *
112
- * This is true for basically all methods execpt the `select` and
113
- * `returning`, that __do__ change the return type of the query.
114
- *
115
- * Both the first and third argument can also be subqueries.
116
- * A subquery is defined by passing a function and calling
117
- * the `selectFrom` method of the object passed into the
118
- * function:
100
+ * Both the first and third argument can also be arbitrary expressions like
101
+ * subqueries. An expression can defined by passing a function and calling
102
+ * the methods of the {@link ExpressionBuilder} passed to the callback:
119
103
  *
120
104
  * ```ts
121
105
  * const persons = await db
@@ -146,8 +130,7 @@ export declare class OnConflictBuilder<DB, TB extends keyof DB> implements Where
146
130
  * ```
147
131
  *
148
132
  * A `where in` query can be built by using the `in` operator and an array
149
- * of values. The values in the array can also be subqueries or raw
150
- * {@link sql} expressions.
133
+ * of values. The values in the array can also be expressions:
151
134
  *
152
135
  * ```ts
153
136
  * const persons = await db
@@ -163,40 +146,53 @@ export declare class OnConflictBuilder<DB, TB extends keyof DB> implements Where
163
146
  * select * from "person" where "id" in ($1, $2, $3)
164
147
  * ```
165
148
  *
166
- * If everything else fails, you can always use the {@link sql} tag
167
- * as any of the arguments, including the operator:
149
+ * For complex `where` expressions you can pass in a single callback and
150
+ * use the {@link ExpressionBuilder} to build your expression:
168
151
  *
169
152
  * ```ts
170
- * import { sql } from 'kysely'
171
- *
172
153
  * const persons = await db
173
154
  * .selectFrom('person')
174
- * .selectAll()
175
- * .where(
176
- * sql`coalesce(first_name, last_name)`,
177
- * 'like',
178
- * '%' + name + '%',
179
- * )
180
- * .execute()
155
+ * .selectAll('person')
156
+ * .where(({ cmpr, or, and, not, exists, selectFrom, val }) => and([
157
+ * or([
158
+ * cmpr('first_name', '=', firstName),
159
+ * cmpr('age', '<', maxAge)
160
+ * ]),
161
+ * not(exists(
162
+ * selectFrom('pet').select('pet.id').whereRef('pet.owner_id', '=', 'person.id')
163
+ * ))
164
+ * ]))
181
165
  * ```
182
166
  *
183
167
  * The generated SQL (PostgreSQL):
184
168
  *
185
169
  * ```sql
186
- * select * from "person"
187
- * where coalesce(first_name, last_name) like $1
170
+ * select "person".*
171
+ * from "person"
172
+ * where (
173
+ * (
174
+ * "first_name" = $1
175
+ * or "age" < $2
176
+ * )
177
+ * and not exists (
178
+ * select "pet"."id" from "pet" where "pet"."owner_id" = "person"."id"
179
+ * )
180
+ * )
188
181
  * ```
189
182
  *
190
- * If you only pass one function argument to this method, it can be
191
- * used to create parentheses around other where statements:
183
+ * If everything else fails, you can always use the {@link sql} tag
184
+ * as any of the arguments, including the operator:
192
185
  *
193
186
  * ```ts
187
+ * import { sql } from 'kysely'
188
+ *
194
189
  * const persons = await db
195
190
  * .selectFrom('person')
196
191
  * .selectAll()
197
- * .where((qb) => qb
198
- * .where('id', '=', 1)
199
- * .orWhere('id', '=', 2)
192
+ * .where(
193
+ * sql`coalesce(first_name, last_name)`,
194
+ * 'like',
195
+ * '%' + name + '%',
200
196
  * )
201
197
  * .execute()
202
198
  * ```
@@ -204,7 +200,8 @@ export declare class OnConflictBuilder<DB, TB extends keyof DB> implements Where
204
200
  * The generated SQL (PostgreSQL):
205
201
  *
206
202
  * ```sql
207
- * select * from "person" (where "id" = 1 or "id" = 2)
203
+ * select * from "person"
204
+ * where coalesce(first_name, last_name) like $1
208
205
  * ```
209
206
  *
210
207
  * In all examples above the columns were known at compile time
@@ -226,11 +223,11 @@ export declare class OnConflictBuilder<DB, TB extends keyof DB> implements Where
226
223
  * .selectFrom('person')
227
224
  * .selectAll()
228
225
  * .where(ref(columnFromUserInput), '=', 1)
229
- * .orWhere(sql.id(columnFromUserInput), '=', 2)
226
+ * .where(sql.id(columnFromUserInput), '=', 2)
230
227
  * .execute()
231
228
  * ```
232
229
  */
233
- where(grouper: WhereGrouper<DB, TB>): OnConflictBuilder<DB, TB>;
230
+ where(factory: WhereExpressionFactory<DB, TB>): OnConflictBuilder<DB, TB>;
234
231
  where(expression: Expression<any>): OnConflictBuilder<DB, TB>;
235
232
  /**
236
233
  * Specify an index predicate for the index target.
@@ -239,108 +236,39 @@ export declare class OnConflictBuilder<DB, TB extends keyof DB> implements Where
239
236
  */
240
237
  whereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): OnConflictBuilder<DB, TB>;
241
238
  /**
242
- * Specify an index predicate for the index target.
243
- *
244
- * See {@link WhereInterface.orWhere} for more info.
239
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
245
240
  */
246
241
  orWhere<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): OnConflictBuilder<DB, TB>;
247
242
  /**
248
- * Adds an `or where` clause to the query. Otherwise works just like {@link where}.
249
- *
250
- * It's often necessary to wrap `or where` clauses in parentheses to control
251
- * precendence. You can use the one argument version of the `where` method
252
- * for that. See the examples.
253
- *
254
- * ### Examples
255
- *
256
- * ```ts
257
- * const persons = await db
258
- * .selectFrom('person')
259
- * .selectAll()
260
- * .where('id', '=', 1)
261
- * .orWhere('id', '=', 2)
262
- * .execute()
263
- * ```
264
- *
265
- * The generated SQL (PostgreSQL):
266
- *
267
- * ```sql
268
- * select * from "person" where "id" = 1 or "id" = 2
269
- * ```
270
- *
271
- * Grouping with parentheses:
272
- *
273
- * ```ts
274
- * const persons = await db
275
- * .selectFrom('person')
276
- * .selectAll()
277
- * .where((qb) => qb
278
- * .where('id', '=', 1)
279
- * .orWhere('id', '=', 2)
280
- * )
281
- * .execute()
282
- * ```
283
- *
284
- * The generated SQL (PostgreSQL):
285
- *
286
- * ```sql
287
- * select * from "person" (where "id" = 1 or "id" = 2)
288
- * ```
289
- *
290
- * Even the first `where` can be an `orWhere`. This is useful
291
- * if you are looping through a set of conditions:
292
- *
293
- * ```ts
294
- * const persons = await db
295
- * .selectFrom('person')
296
- * .selectAll()
297
- * .where((qb) => qb
298
- * .orWhere('id', '=', 1)
299
- * .orWhere('id', '=', 2)
300
- * )
301
- * .execute()
302
- * ```
303
- *
304
- * The generated SQL (PostgreSQL):
305
- *
306
- * ```sql
307
- * select * from "person" (where "id" = 1 or "id" = 2)
308
- * ```
243
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
244
+ */
245
+ orWhere(factory: WhereExpressionFactory<DB, TB>): OnConflictBuilder<DB, TB>;
246
+ /**
247
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
309
248
  */
310
- orWhere(grouper: WhereGrouper<DB, TB>): OnConflictBuilder<DB, TB>;
311
249
  orWhere(expression: Expression<any>): OnConflictBuilder<DB, TB>;
312
250
  /**
313
- * Specify an index predicate for the index target.
314
- *
315
- * See {@link WhereInterface.orWhereRef} for more info.
251
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
316
252
  */
317
253
  orWhereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): OnConflictBuilder<DB, TB>;
318
254
  /**
319
- * Specify an index predicate for the index target.
320
- *
321
- * See {@link WhereInterface.whereExists} for more info.
255
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
322
256
  */
323
257
  whereExists(arg: ExpressionOrFactory<DB, TB, any>): OnConflictBuilder<DB, TB>;
324
258
  /**
325
- * Specify an index predicate for the index target.
326
- *
327
- * See {@link WhereInterface.whereNotExists} for more info.
259
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
328
260
  */
329
261
  whereNotExists(arg: ExpressionOrFactory<DB, TB, any>): OnConflictBuilder<DB, TB>;
330
262
  /**
331
- * Specify an index predicate for the index target.
332
- *
333
- * See {@link WhereInterface.orWhereExists} for more info.
263
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
334
264
  */
335
265
  orWhereExists(arg: ExpressionOrFactory<DB, TB, any>): OnConflictBuilder<DB, TB>;
336
266
  /**
337
- * Specify an index predicate for the index target.
338
- *
339
- * See {@link WhereInterface.orWhereNotExists} for more info.
267
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
340
268
  */
341
269
  orWhereNotExists(arg: ExpressionOrFactory<DB, TB, any>): OnConflictBuilder<DB, TB>;
342
270
  /**
343
- * Clears all where clauses from the query.
271
+ * Clears all where expressions from the query.
344
272
  *
345
273
  * ### Examples
346
274
  *
@@ -405,8 +333,29 @@ export declare class OnConflictBuilder<DB, TB extends keyof DB> implements Where
405
333
  * on conflict ("pic")
406
334
  * do update set "first_name" = $3
407
335
  * ```
336
+ *
337
+ * In the next example we use the `ref` method to reference
338
+ * columns of the virtual table `excluded` in a type-safe way
339
+ * to create an upsert operation:
340
+ *
341
+ * ```ts
342
+ * db.insertInto('person')
343
+ * .values(person)
344
+ * .onConflict((oc) => oc
345
+ * .column('id')
346
+ * .doUpdateSet((eb) => ({
347
+ * first_name: eb.ref('excluded.first_name'),
348
+ * last_name: eb.ref('excluded.last_name')
349
+ * }))
350
+ * )
351
+ * ```
352
+ */
353
+ doUpdateSet(update: UpdateExpression<OnConflictDatabase<DB, TB>, OnConflictTables<TB>, OnConflictTables<TB>>): OnConflictUpdateBuilder<OnConflictDatabase<DB, TB>, OnConflictTables<TB>>;
354
+ /**
355
+ * Simply calls the provided function passing `this` as the only argument. `$call` returns
356
+ * what the provided function returns.
408
357
  */
409
- doUpdateSet(updates: UpdateObject<OnConflictDatabase<DB, TB>, OnConflictTables<TB>, OnConflictTables<TB>>): OnConflictUpdateBuilder<OnConflictDatabase<DB, TB>, OnConflictTables<TB>>;
358
+ $call<T>(func: (qb: this) => T): T;
410
359
  }
411
360
  export interface OnConflictBuilderProps {
412
361
  readonly onConflictNode: OnConflictNode;
@@ -430,53 +379,37 @@ export declare class OnConflictUpdateBuilder<DB, TB extends keyof DB> implements
430
379
  */
431
380
  where<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): OnConflictUpdateBuilder<DB, TB>;
432
381
  /**
433
- * Adds a `where` clause to the query.
382
+ * Adds a `where` expression to the query.
434
383
  *
435
- * Also see {@link orWhere}, {@link whereExists} and {@link whereRef}.
384
+ * Calling this method multiple times will combine the expressions using `and`.
436
385
  *
437
- * ### Examples
386
+ * Also see {@link whereRef}
438
387
  *
439
- * Find a row by column value:
388
+ * ### Examples
440
389
  *
441
390
  * ```ts
442
391
  * const person = await db
443
392
  * .selectFrom('person')
444
393
  * .selectAll()
445
- * .where('id', '=', 100)
394
+ * .where('first_name', '=', 'Jennifer')
395
+ * .where('age', '>', 40)
446
396
  * .executeTakeFirst()
447
397
  * ```
448
398
  *
449
399
  * The generated SQL (PostgreSQL):
450
400
  *
451
401
  * ```sql
452
- * select * from "person" where "id" = $1
402
+ * select * from "person" where "first_name" = $1 and "age" > $2
453
403
  * ```
454
404
  *
455
405
  * Operator can be any supported operator or if the typings don't support it
456
- * you can always use
406
+ * you can always use:
457
407
  *
458
408
  * ```ts
459
409
  * sql`your operator`
460
410
  * ```
461
411
  *
462
- * The next example uses the `>` operator:
463
- *
464
- * ```ts
465
- * const persons = await db
466
- * .selectFrom('person')
467
- * .selectAll()
468
- * .where('id', '>', 100)
469
- * .execute()
470
- * ```
471
- *
472
- * The generated SQL (PostgreSQL):
473
- *
474
- * ```sql
475
- * select * from "person" where "id" > $1
476
- * ```
477
- *
478
- * `where` methods don't change the type of the query. You can add
479
- * conditional statements easily by doing something like this:
412
+ * You can add expressions conditionally like this:
480
413
  *
481
414
  * ```ts
482
415
  * let query = db
@@ -489,16 +422,16 @@ export declare class OnConflictUpdateBuilder<DB, TB extends keyof DB> implements
489
422
  * query = query.where('first_name', '=', firstName)
490
423
  * }
491
424
  *
425
+ * if (lastName) {
426
+ * query = query.where('last_name', '=', lastName)
427
+ * }
428
+ *
492
429
  * const persons = await query.execute()
493
430
  * ```
494
431
  *
495
- * This is true for basically all methods execpt the `select` and
496
- * `returning`, that __do__ change the return type of the query.
497
- *
498
- * Both the first and third argument can also be subqueries.
499
- * A subquery is defined by passing a function and calling
500
- * the `selectFrom` method of the object passed into the
501
- * function:
432
+ * Both the first and third argument can also be arbitrary expressions like
433
+ * subqueries. An expression can defined by passing a function and calling
434
+ * the methods of the {@link ExpressionBuilder} passed to the callback:
502
435
  *
503
436
  * ```ts
504
437
  * const persons = await db
@@ -529,8 +462,7 @@ export declare class OnConflictUpdateBuilder<DB, TB extends keyof DB> implements
529
462
  * ```
530
463
  *
531
464
  * A `where in` query can be built by using the `in` operator and an array
532
- * of values. The values in the array can also be subqueries or raw
533
- * {@link sql} expressions.
465
+ * of values. The values in the array can also be expressions:
534
466
  *
535
467
  * ```ts
536
468
  * const persons = await db
@@ -546,40 +478,53 @@ export declare class OnConflictUpdateBuilder<DB, TB extends keyof DB> implements
546
478
  * select * from "person" where "id" in ($1, $2, $3)
547
479
  * ```
548
480
  *
549
- * If everything else fails, you can always use the {@link sql} tag
550
- * as any of the arguments, including the operator:
481
+ * For complex `where` expressions you can pass in a single callback and
482
+ * use the {@link ExpressionBuilder} to build your expression:
551
483
  *
552
484
  * ```ts
553
- * import { sql } from 'kysely'
554
- *
555
485
  * const persons = await db
556
486
  * .selectFrom('person')
557
- * .selectAll()
558
- * .where(
559
- * sql`coalesce(first_name, last_name)`,
560
- * 'like',
561
- * '%' + name + '%',
562
- * )
563
- * .execute()
487
+ * .selectAll('person')
488
+ * .where(({ cmpr, or, and, not, exists, selectFrom, val }) => and([
489
+ * or([
490
+ * cmpr('first_name', '=', firstName),
491
+ * cmpr('age', '<', maxAge)
492
+ * ]),
493
+ * not(exists(
494
+ * selectFrom('pet').select('pet.id').whereRef('pet.owner_id', '=', 'person.id')
495
+ * ))
496
+ * ]))
564
497
  * ```
565
498
  *
566
499
  * The generated SQL (PostgreSQL):
567
500
  *
568
501
  * ```sql
569
- * select * from "person"
570
- * where coalesce(first_name, last_name) like $1
502
+ * select "person".*
503
+ * from "person"
504
+ * where (
505
+ * (
506
+ * "first_name" = $1
507
+ * or "age" < $2
508
+ * )
509
+ * and not exists (
510
+ * select "pet"."id" from "pet" where "pet"."owner_id" = "person"."id"
511
+ * )
512
+ * )
571
513
  * ```
572
514
  *
573
- * If you only pass one function argument to this method, it can be
574
- * used to create parentheses around other where statements:
515
+ * If everything else fails, you can always use the {@link sql} tag
516
+ * as any of the arguments, including the operator:
575
517
  *
576
518
  * ```ts
519
+ * import { sql } from 'kysely'
520
+ *
577
521
  * const persons = await db
578
522
  * .selectFrom('person')
579
523
  * .selectAll()
580
- * .where((qb) => qb
581
- * .where('id', '=', 1)
582
- * .orWhere('id', '=', 2)
524
+ * .where(
525
+ * sql`coalesce(first_name, last_name)`,
526
+ * 'like',
527
+ * '%' + name + '%',
583
528
  * )
584
529
  * .execute()
585
530
  * ```
@@ -587,7 +532,8 @@ export declare class OnConflictUpdateBuilder<DB, TB extends keyof DB> implements
587
532
  * The generated SQL (PostgreSQL):
588
533
  *
589
534
  * ```sql
590
- * select * from "person" (where "id" = 1 or "id" = 2)
535
+ * select * from "person"
536
+ * where coalesce(first_name, last_name) like $1
591
537
  * ```
592
538
  *
593
539
  * In all examples above the columns were known at compile time
@@ -609,11 +555,11 @@ export declare class OnConflictUpdateBuilder<DB, TB extends keyof DB> implements
609
555
  * .selectFrom('person')
610
556
  * .selectAll()
611
557
  * .where(ref(columnFromUserInput), '=', 1)
612
- * .orWhere(sql.id(columnFromUserInput), '=', 2)
558
+ * .where(sql.id(columnFromUserInput), '=', 2)
613
559
  * .execute()
614
560
  * ```
615
561
  */
616
- where(grouper: WhereGrouper<DB, TB>): OnConflictUpdateBuilder<DB, TB>;
562
+ where(factory: WhereExpressionFactory<DB, TB>): OnConflictUpdateBuilder<DB, TB>;
617
563
  where(expression: Expression<any>): OnConflictUpdateBuilder<DB, TB>;
618
564
  /**
619
565
  * Specify a where condition for the update operation.
@@ -622,108 +568,39 @@ export declare class OnConflictUpdateBuilder<DB, TB extends keyof DB> implements
622
568
  */
623
569
  whereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): OnConflictUpdateBuilder<DB, TB>;
624
570
  /**
625
- * Specify a where condition for the update operation.
626
- *
627
- * See {@link WhereInterface.orWhere} for more info.
571
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
628
572
  */
629
573
  orWhere<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): OnConflictUpdateBuilder<DB, TB>;
630
574
  /**
631
- * Adds an `or where` clause to the query. Otherwise works just like {@link where}.
632
- *
633
- * It's often necessary to wrap `or where` clauses in parentheses to control
634
- * precendence. You can use the one argument version of the `where` method
635
- * for that. See the examples.
636
- *
637
- * ### Examples
638
- *
639
- * ```ts
640
- * const persons = await db
641
- * .selectFrom('person')
642
- * .selectAll()
643
- * .where('id', '=', 1)
644
- * .orWhere('id', '=', 2)
645
- * .execute()
646
- * ```
647
- *
648
- * The generated SQL (PostgreSQL):
649
- *
650
- * ```sql
651
- * select * from "person" where "id" = 1 or "id" = 2
652
- * ```
653
- *
654
- * Grouping with parentheses:
655
- *
656
- * ```ts
657
- * const persons = await db
658
- * .selectFrom('person')
659
- * .selectAll()
660
- * .where((qb) => qb
661
- * .where('id', '=', 1)
662
- * .orWhere('id', '=', 2)
663
- * )
664
- * .execute()
665
- * ```
666
- *
667
- * The generated SQL (PostgreSQL):
668
- *
669
- * ```sql
670
- * select * from "person" (where "id" = 1 or "id" = 2)
671
- * ```
672
- *
673
- * Even the first `where` can be an `orWhere`. This is useful
674
- * if you are looping through a set of conditions:
675
- *
676
- * ```ts
677
- * const persons = await db
678
- * .selectFrom('person')
679
- * .selectAll()
680
- * .where((qb) => qb
681
- * .orWhere('id', '=', 1)
682
- * .orWhere('id', '=', 2)
683
- * )
684
- * .execute()
685
- * ```
686
- *
687
- * The generated SQL (PostgreSQL):
688
- *
689
- * ```sql
690
- * select * from "person" (where "id" = 1 or "id" = 2)
691
- * ```
575
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
576
+ */
577
+ orWhere(factory: WhereExpressionFactory<DB, TB>): OnConflictUpdateBuilder<DB, TB>;
578
+ /**
579
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
692
580
  */
693
- orWhere(grouper: WhereGrouper<DB, TB>): OnConflictUpdateBuilder<DB, TB>;
694
581
  orWhere(expression: Expression<any>): OnConflictUpdateBuilder<DB, TB>;
695
582
  /**
696
- * Specify a where condition for the update operation.
697
- *
698
- * See {@link WhereInterface.orWhereRef} for more info.
583
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
699
584
  */
700
585
  orWhereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): OnConflictUpdateBuilder<DB, TB>;
701
586
  /**
702
- * Specify a where condition for the update operation.
703
- *
704
- * See {@link WhereInterface.whereExists} for more info.
587
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
705
588
  */
706
589
  whereExists(arg: ExpressionOrFactory<DB, TB, any>): OnConflictUpdateBuilder<DB, TB>;
707
590
  /**
708
- * Specify a where condition for the update operation.
709
- *
710
- * See {@link WhereInterface.whereNotExists} for more info.
591
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
711
592
  */
712
593
  whereNotExists(arg: ExpressionOrFactory<DB, TB, any>): OnConflictUpdateBuilder<DB, TB>;
713
594
  /**
714
- * Specify a where condition for the update operation.
715
- *
716
- * See {@link WhereInterface.orWhereExists} for more info.
595
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
717
596
  */
718
597
  orWhereExists(arg: ExpressionOrFactory<DB, TB, any>): OnConflictUpdateBuilder<DB, TB>;
719
598
  /**
720
- * Specify a where condition for the update operation.
721
- *
722
- * See {@link WhereInterface.orWhereNotExists} for more info.
599
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
723
600
  */
724
601
  orWhereNotExists(arg: ExpressionOrFactory<DB, TB, any>): OnConflictUpdateBuilder<DB, TB>;
725
602
  /**
726
- * Clears all where clauses from the query.
603
+ * Clears all where expressions from the query.
727
604
  *
728
605
  * ### Examples
729
606
  *
@@ -741,5 +618,10 @@ export declare class OnConflictUpdateBuilder<DB, TB extends keyof DB> implements
741
618
  * ```
742
619
  */
743
620
  clearWhere(): OnConflictUpdateBuilder<DB, TB>;
621
+ /**
622
+ * Simply calls the provided function passing `this` as the only argument. `$call` returns
623
+ * what the provided function returns.
624
+ */
625
+ $call<T>(func: (qb: this) => T): T;
744
626
  toOperationNode(): OnConflictNode;
745
627
  }