kysely 0.25.0 → 0.26.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 (315) hide show
  1. package/README.md +10 -563
  2. package/dist/cjs/dialect/database-introspector.d.ts +1 -1
  3. package/dist/cjs/dialect/mysql/mysql-dialect-config.d.ts +2 -2
  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 -4
  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/expression/expression-builder.d.ts +207 -108
  11. package/dist/cjs/expression/expression-builder.js +28 -7
  12. package/dist/cjs/expression/expression-wrapper.d.ts +296 -5
  13. package/dist/cjs/expression/expression-wrapper.js +70 -2
  14. package/dist/cjs/helpers/postgres.d.ts +30 -18
  15. package/dist/cjs/helpers/postgres.js +30 -18
  16. package/dist/cjs/index.d.ts +6 -0
  17. package/dist/cjs/index.js +6 -0
  18. package/dist/cjs/kysely.d.ts +23 -13
  19. package/dist/cjs/kysely.js +13 -9
  20. package/dist/cjs/migration/file-migration-provider.js +2 -2
  21. package/dist/cjs/operation-node/alter-column-node.d.ts +2 -3
  22. package/dist/cjs/operation-node/alter-column-node.js +2 -7
  23. package/dist/cjs/operation-node/alter-table-node.d.ts +2 -2
  24. package/dist/cjs/operation-node/column-definition-node.d.ts +1 -1
  25. package/dist/cjs/operation-node/constraint-node.d.ts +1 -1
  26. package/dist/cjs/operation-node/create-index-node.d.ts +2 -2
  27. package/dist/cjs/operation-node/create-schema-node.d.ts +1 -1
  28. package/dist/cjs/operation-node/create-table-node.d.ts +2 -2
  29. package/dist/cjs/operation-node/create-type-node.d.ts +1 -1
  30. package/dist/cjs/operation-node/create-view-node.d.ts +1 -1
  31. package/dist/cjs/operation-node/data-type-node.d.ts +2 -2
  32. package/dist/cjs/operation-node/drop-constraint-node.d.ts +1 -1
  33. package/dist/cjs/operation-node/drop-index-node.d.ts +1 -1
  34. package/dist/cjs/operation-node/drop-schema-node.d.ts +1 -1
  35. package/dist/cjs/operation-node/drop-table-node.d.ts +1 -1
  36. package/dist/cjs/operation-node/drop-type-node.d.ts +1 -1
  37. package/dist/cjs/operation-node/drop-view-node.d.ts +1 -1
  38. package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +1 -1
  39. package/dist/cjs/operation-node/generated-node.d.ts +1 -1
  40. package/dist/cjs/operation-node/insert-query-node.d.ts +1 -1
  41. package/dist/cjs/operation-node/join-node.d.ts +1 -2
  42. package/dist/cjs/operation-node/join-node.js +0 -8
  43. package/dist/cjs/operation-node/json-operator-chain-node.d.ts +16 -0
  44. package/dist/cjs/operation-node/json-operator-chain-node.js +25 -0
  45. package/dist/cjs/operation-node/json-path-leg-node.d.ts +14 -0
  46. package/dist/cjs/operation-node/json-path-leg-node.js +19 -0
  47. package/dist/cjs/operation-node/json-path-node.d.ts +16 -0
  48. package/dist/cjs/operation-node/json-path-node.js +25 -0
  49. package/dist/cjs/operation-node/json-reference-node.d.ts +17 -0
  50. package/dist/cjs/operation-node/json-reference-node.js +25 -0
  51. package/dist/cjs/operation-node/on-conflict-node.d.ts +1 -1
  52. package/dist/cjs/operation-node/on-duplicate-key-node.d.ts +1 -1
  53. package/dist/cjs/operation-node/operation-node-transformer.d.ts +8 -0
  54. package/dist/cjs/operation-node/operation-node-transformer.js +33 -1
  55. package/dist/cjs/operation-node/operation-node-visitor.d.ts +8 -0
  56. package/dist/cjs/operation-node/operation-node-visitor.js +4 -0
  57. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  58. package/dist/cjs/operation-node/operator-node.d.ts +13 -9
  59. package/dist/cjs/operation-node/operator-node.js +12 -2
  60. package/dist/cjs/operation-node/query-node.d.ts +9 -10
  61. package/dist/cjs/operation-node/query-node.js +0 -8
  62. package/dist/cjs/operation-node/reference-node.d.ts +2 -2
  63. package/dist/cjs/operation-node/reference-node.js +1 -1
  64. package/dist/cjs/operation-node/references-node.d.ts +1 -1
  65. package/dist/cjs/operation-node/select-modifier-node.d.ts +1 -1
  66. package/dist/cjs/operation-node/select-query-node.d.ts +0 -1
  67. package/dist/cjs/operation-node/select-query-node.js +0 -8
  68. package/dist/cjs/operation-node/selection-node.d.ts +1 -1
  69. package/dist/cjs/operation-node/set-operation-node.d.ts +1 -1
  70. package/dist/cjs/operation-node/simple-reference-expression-node.d.ts +1 -1
  71. package/dist/cjs/operation-node/update-query-node.d.ts +1 -1
  72. package/dist/cjs/operation-node/values-node.d.ts +1 -1
  73. package/dist/cjs/operation-node/with-node.d.ts +1 -1
  74. package/dist/cjs/parser/binary-operation-parser.d.ts +9 -12
  75. package/dist/cjs/parser/binary-operation-parser.js +40 -119
  76. package/dist/cjs/parser/coalesce-parser.d.ts +1 -1
  77. package/dist/cjs/parser/data-type-parser.d.ts +1 -1
  78. package/dist/cjs/parser/default-value-parser.d.ts +1 -1
  79. package/dist/cjs/parser/expression-parser.d.ts +5 -5
  80. package/dist/cjs/parser/group-by-parser.d.ts +2 -2
  81. package/dist/cjs/parser/insert-values-parser.d.ts +4 -4
  82. package/dist/cjs/parser/join-parser.d.ts +4 -4
  83. package/dist/cjs/parser/order-by-parser.d.ts +3 -3
  84. package/dist/cjs/parser/partition-by-parser.d.ts +2 -2
  85. package/dist/cjs/parser/reference-parser.d.ts +13 -9
  86. package/dist/cjs/parser/reference-parser.js +28 -16
  87. package/dist/cjs/parser/returning-parser.d.ts +2 -2
  88. package/dist/cjs/parser/select-parser.d.ts +10 -10
  89. package/dist/cjs/parser/table-parser.d.ts +12 -12
  90. package/dist/cjs/parser/unary-operation-parser.d.ts +1 -1
  91. package/dist/cjs/parser/update-set-parser.d.ts +3 -3
  92. package/dist/cjs/parser/update-set-parser.js +1 -3
  93. package/dist/cjs/parser/value-parser.d.ts +4 -4
  94. package/dist/cjs/parser/with-parser.d.ts +12 -8
  95. package/dist/cjs/plugin/camel-case/camel-case.d.ts +1 -1
  96. package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.d.ts +42 -0
  97. package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.js +32 -0
  98. package/dist/cjs/plugin/with-schema/with-schema-transformer.js +22 -6
  99. package/dist/cjs/query-builder/aggregate-function-builder.d.ts +5 -38
  100. package/dist/cjs/query-builder/aggregate-function-builder.js +4 -59
  101. package/dist/cjs/query-builder/case-builder.d.ts +11 -11
  102. package/dist/cjs/query-builder/case-builder.js +2 -2
  103. package/dist/cjs/query-builder/delete-query-builder.d.ts +110 -62
  104. package/dist/cjs/query-builder/delete-query-builder.js +1 -62
  105. package/dist/cjs/query-builder/delete-result.d.ts +1 -2
  106. package/dist/cjs/query-builder/delete-result.js +2 -8
  107. package/dist/cjs/query-builder/function-module.d.ts +44 -66
  108. package/dist/cjs/query-builder/having-interface.d.ts +2 -35
  109. package/dist/cjs/query-builder/insert-query-builder.d.ts +59 -48
  110. package/dist/cjs/query-builder/insert-query-builder.js +17 -34
  111. package/dist/cjs/query-builder/insert-result.d.ts +3 -4
  112. package/dist/cjs/query-builder/insert-result.js +5 -14
  113. package/dist/cjs/query-builder/join-builder.d.ts +2 -35
  114. package/dist/cjs/query-builder/join-builder.js +1 -56
  115. package/dist/cjs/query-builder/json-path-builder.d.ts +212 -0
  116. package/dist/cjs/query-builder/json-path-builder.js +191 -0
  117. package/dist/cjs/query-builder/no-result-error.d.ts +1 -1
  118. package/dist/cjs/query-builder/on-conflict-builder.d.ts +194 -77
  119. package/dist/cjs/query-builder/on-conflict-builder.js +2 -111
  120. package/dist/cjs/query-builder/over-builder.d.ts +2 -2
  121. package/dist/cjs/query-builder/over-builder.js +1 -1
  122. package/dist/cjs/query-builder/returning-interface.d.ts +1 -1
  123. package/dist/cjs/query-builder/select-query-builder.d.ts +169 -141
  124. package/dist/cjs/query-builder/select-query-builder.js +27 -136
  125. package/dist/cjs/query-builder/update-query-builder.d.ts +147 -66
  126. package/dist/cjs/query-builder/update-query-builder.js +3 -63
  127. package/dist/cjs/query-builder/update-result.d.ts +3 -3
  128. package/dist/cjs/query-builder/update-result.js +5 -9
  129. package/dist/cjs/query-builder/where-interface.d.ts +98 -40
  130. package/dist/cjs/query-compiler/compiled-query.d.ts +1 -1
  131. package/dist/cjs/query-compiler/compiled-query.js +2 -2
  132. package/dist/cjs/query-compiler/default-query-compiler.d.ts +8 -0
  133. package/dist/cjs/query-compiler/default-query-compiler.js +37 -2
  134. package/dist/cjs/query-compiler/query-compiler.d.ts +1 -1
  135. package/dist/cjs/query-creator.d.ts +4 -2
  136. package/dist/cjs/schema/alter-column-builder.d.ts +11 -5
  137. package/dist/cjs/schema/alter-column-builder.js +19 -21
  138. package/dist/cjs/schema/alter-table-builder.d.ts +0 -4
  139. package/dist/cjs/schema/alter-table-builder.js +2 -9
  140. package/dist/cjs/schema/column-definition-builder.d.ts +1 -1
  141. package/dist/cjs/schema/column-definition-builder.js +1 -2
  142. package/dist/cjs/schema/create-index-builder.js +1 -1
  143. package/dist/cjs/schema/create-table-builder.d.ts +2 -6
  144. package/dist/cjs/schema/create-table-builder.js +0 -6
  145. package/dist/cjs/schema/schema.d.ts +1 -2
  146. package/dist/cjs/schema/schema.js +1 -2
  147. package/dist/cjs/util/column-type.d.ts +22 -18
  148. package/dist/cjs/util/explainable.d.ts +1 -1
  149. package/dist/cjs/util/infer-result.d.ts +2 -2
  150. package/dist/cjs/util/log.d.ts +4 -4
  151. package/dist/cjs/util/require-all-props.d.ts +1 -1
  152. package/dist/cjs/util/type-utils.d.ts +19 -19
  153. package/dist/esm/dialect/database-introspector.d.ts +1 -1
  154. package/dist/esm/dialect/mysql/mysql-dialect-config.d.ts +2 -2
  155. package/dist/esm/dialect/mysql/mysql-driver.js +5 -1
  156. package/dist/esm/dialect/postgres/postgres-dialect-config.d.ts +1 -1
  157. package/dist/esm/dialect/postgres/postgres-introspector.js +1 -4
  158. package/dist/esm/dialect/sqlite/sqlite-introspector.js +1 -1
  159. package/dist/esm/driver/database-connection.d.ts +6 -0
  160. package/dist/esm/driver/driver.d.ts +1 -1
  161. package/dist/esm/expression/expression-builder.d.ts +207 -108
  162. package/dist/esm/expression/expression-builder.js +30 -9
  163. package/dist/esm/expression/expression-wrapper.d.ts +296 -5
  164. package/dist/esm/expression/expression-wrapper.js +67 -1
  165. package/dist/esm/helpers/postgres.d.ts +30 -18
  166. package/dist/esm/helpers/postgres.js +30 -18
  167. package/dist/esm/index.d.ts +6 -0
  168. package/dist/esm/index.js +6 -0
  169. package/dist/esm/kysely.d.ts +23 -13
  170. package/dist/esm/kysely.js +13 -9
  171. package/dist/esm/operation-node/alter-column-node.d.ts +2 -3
  172. package/dist/esm/operation-node/alter-column-node.js +2 -7
  173. package/dist/esm/operation-node/alter-table-node.d.ts +2 -2
  174. package/dist/esm/operation-node/column-definition-node.d.ts +1 -1
  175. package/dist/esm/operation-node/constraint-node.d.ts +1 -1
  176. package/dist/esm/operation-node/create-index-node.d.ts +2 -2
  177. package/dist/esm/operation-node/create-schema-node.d.ts +1 -1
  178. package/dist/esm/operation-node/create-table-node.d.ts +2 -2
  179. package/dist/esm/operation-node/create-type-node.d.ts +1 -1
  180. package/dist/esm/operation-node/create-view-node.d.ts +1 -1
  181. package/dist/esm/operation-node/data-type-node.d.ts +2 -2
  182. package/dist/esm/operation-node/drop-constraint-node.d.ts +1 -1
  183. package/dist/esm/operation-node/drop-index-node.d.ts +1 -1
  184. package/dist/esm/operation-node/drop-schema-node.d.ts +1 -1
  185. package/dist/esm/operation-node/drop-table-node.d.ts +1 -1
  186. package/dist/esm/operation-node/drop-type-node.d.ts +1 -1
  187. package/dist/esm/operation-node/drop-view-node.d.ts +1 -1
  188. package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +1 -1
  189. package/dist/esm/operation-node/generated-node.d.ts +1 -1
  190. package/dist/esm/operation-node/insert-query-node.d.ts +1 -1
  191. package/dist/esm/operation-node/join-node.d.ts +1 -2
  192. package/dist/esm/operation-node/join-node.js +0 -8
  193. package/dist/esm/operation-node/json-operator-chain-node.d.ts +16 -0
  194. package/dist/esm/operation-node/json-operator-chain-node.js +23 -0
  195. package/dist/esm/operation-node/json-path-leg-node.d.ts +14 -0
  196. package/dist/esm/operation-node/json-path-leg-node.js +17 -0
  197. package/dist/esm/operation-node/json-path-node.d.ts +16 -0
  198. package/dist/esm/operation-node/json-path-node.js +23 -0
  199. package/dist/esm/operation-node/json-reference-node.d.ts +17 -0
  200. package/dist/esm/operation-node/json-reference-node.js +23 -0
  201. package/dist/esm/operation-node/on-conflict-node.d.ts +1 -1
  202. package/dist/esm/operation-node/on-duplicate-key-node.d.ts +1 -1
  203. package/dist/esm/operation-node/operation-node-transformer.d.ts +8 -0
  204. package/dist/esm/operation-node/operation-node-transformer.js +33 -1
  205. package/dist/esm/operation-node/operation-node-visitor.d.ts +8 -0
  206. package/dist/esm/operation-node/operation-node-visitor.js +4 -0
  207. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  208. package/dist/esm/operation-node/operator-node.d.ts +13 -9
  209. package/dist/esm/operation-node/operator-node.js +10 -1
  210. package/dist/esm/operation-node/query-node.d.ts +9 -10
  211. package/dist/esm/operation-node/query-node.js +0 -8
  212. package/dist/esm/operation-node/reference-node.d.ts +2 -2
  213. package/dist/esm/operation-node/reference-node.js +1 -1
  214. package/dist/esm/operation-node/references-node.d.ts +1 -1
  215. package/dist/esm/operation-node/select-modifier-node.d.ts +1 -1
  216. package/dist/esm/operation-node/select-query-node.d.ts +0 -1
  217. package/dist/esm/operation-node/select-query-node.js +0 -8
  218. package/dist/esm/operation-node/selection-node.d.ts +1 -1
  219. package/dist/esm/operation-node/set-operation-node.d.ts +1 -1
  220. package/dist/esm/operation-node/simple-reference-expression-node.d.ts +1 -1
  221. package/dist/esm/operation-node/update-query-node.d.ts +1 -1
  222. package/dist/esm/operation-node/values-node.d.ts +1 -1
  223. package/dist/esm/operation-node/with-node.d.ts +1 -1
  224. package/dist/esm/parser/binary-operation-parser.d.ts +9 -12
  225. package/dist/esm/parser/binary-operation-parser.js +38 -114
  226. package/dist/esm/parser/coalesce-parser.d.ts +1 -1
  227. package/dist/esm/parser/data-type-parser.d.ts +1 -1
  228. package/dist/esm/parser/default-value-parser.d.ts +1 -1
  229. package/dist/esm/parser/expression-parser.d.ts +5 -5
  230. package/dist/esm/parser/group-by-parser.d.ts +2 -2
  231. package/dist/esm/parser/insert-values-parser.d.ts +4 -4
  232. package/dist/esm/parser/join-parser.d.ts +4 -4
  233. package/dist/esm/parser/order-by-parser.d.ts +3 -3
  234. package/dist/esm/parser/partition-by-parser.d.ts +2 -2
  235. package/dist/esm/parser/reference-parser.d.ts +13 -9
  236. package/dist/esm/parser/reference-parser.js +26 -15
  237. package/dist/esm/parser/returning-parser.d.ts +2 -2
  238. package/dist/esm/parser/select-parser.d.ts +10 -10
  239. package/dist/esm/parser/table-parser.d.ts +12 -12
  240. package/dist/esm/parser/unary-operation-parser.d.ts +1 -1
  241. package/dist/esm/parser/update-set-parser.d.ts +3 -3
  242. package/dist/esm/parser/update-set-parser.js +2 -4
  243. package/dist/esm/parser/value-parser.d.ts +4 -4
  244. package/dist/esm/parser/with-parser.d.ts +12 -8
  245. package/dist/esm/plugin/camel-case/camel-case.d.ts +1 -1
  246. package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.d.ts +42 -0
  247. package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.js +29 -0
  248. package/dist/esm/plugin/with-schema/with-schema-transformer.js +22 -6
  249. package/dist/esm/query-builder/aggregate-function-builder.d.ts +5 -38
  250. package/dist/esm/query-builder/aggregate-function-builder.js +5 -60
  251. package/dist/esm/query-builder/case-builder.d.ts +11 -11
  252. package/dist/esm/query-builder/case-builder.js +3 -3
  253. package/dist/esm/query-builder/delete-query-builder.d.ts +110 -62
  254. package/dist/esm/query-builder/delete-query-builder.js +2 -63
  255. package/dist/esm/query-builder/delete-result.d.ts +1 -2
  256. package/dist/esm/query-builder/delete-result.js +2 -8
  257. package/dist/esm/query-builder/function-module.d.ts +44 -66
  258. package/dist/esm/query-builder/having-interface.d.ts +2 -35
  259. package/dist/esm/query-builder/insert-query-builder.d.ts +59 -48
  260. package/dist/esm/query-builder/insert-query-builder.js +17 -34
  261. package/dist/esm/query-builder/insert-result.d.ts +3 -4
  262. package/dist/esm/query-builder/insert-result.js +5 -14
  263. package/dist/esm/query-builder/join-builder.d.ts +2 -35
  264. package/dist/esm/query-builder/join-builder.js +2 -57
  265. package/dist/esm/query-builder/json-path-builder.d.ts +212 -0
  266. package/dist/esm/query-builder/json-path-builder.js +186 -0
  267. package/dist/esm/query-builder/no-result-error.d.ts +1 -1
  268. package/dist/esm/query-builder/on-conflict-builder.d.ts +194 -77
  269. package/dist/esm/query-builder/on-conflict-builder.js +3 -112
  270. package/dist/esm/query-builder/over-builder.d.ts +2 -2
  271. package/dist/esm/query-builder/over-builder.js +1 -1
  272. package/dist/esm/query-builder/returning-interface.d.ts +1 -1
  273. package/dist/esm/query-builder/select-query-builder.d.ts +169 -141
  274. package/dist/esm/query-builder/select-query-builder.js +28 -137
  275. package/dist/esm/query-builder/update-query-builder.d.ts +147 -66
  276. package/dist/esm/query-builder/update-query-builder.js +4 -64
  277. package/dist/esm/query-builder/update-result.d.ts +3 -3
  278. package/dist/esm/query-builder/update-result.js +5 -9
  279. package/dist/esm/query-builder/where-interface.d.ts +98 -40
  280. package/dist/esm/query-compiler/compiled-query.d.ts +1 -1
  281. package/dist/esm/query-compiler/compiled-query.js +2 -2
  282. package/dist/esm/query-compiler/default-query-compiler.d.ts +8 -0
  283. package/dist/esm/query-compiler/default-query-compiler.js +37 -2
  284. package/dist/esm/query-compiler/query-compiler.d.ts +1 -1
  285. package/dist/esm/query-creator.d.ts +4 -2
  286. package/dist/esm/schema/alter-column-builder.d.ts +11 -5
  287. package/dist/esm/schema/alter-column-builder.js +19 -21
  288. package/dist/esm/schema/alter-table-builder.d.ts +0 -4
  289. package/dist/esm/schema/alter-table-builder.js +2 -9
  290. package/dist/esm/schema/column-definition-builder.d.ts +1 -1
  291. package/dist/esm/schema/column-definition-builder.js +1 -2
  292. package/dist/esm/schema/create-index-builder.js +2 -2
  293. package/dist/esm/schema/create-table-builder.d.ts +2 -6
  294. package/dist/esm/schema/create-table-builder.js +0 -6
  295. package/dist/esm/schema/schema.d.ts +1 -2
  296. package/dist/esm/schema/schema.js +1 -2
  297. package/dist/esm/util/column-type.d.ts +22 -18
  298. package/dist/esm/util/explainable.d.ts +1 -1
  299. package/dist/esm/util/infer-result.d.ts +2 -2
  300. package/dist/esm/util/log.d.ts +4 -4
  301. package/dist/esm/util/require-all-props.d.ts +1 -1
  302. package/dist/esm/util/type-utils.d.ts +19 -19
  303. package/package.json +25 -23
  304. package/dist/cjs/query-builder/deprecated-having-expression-builder.d.ts +0 -62
  305. package/dist/cjs/query-builder/deprecated-having-expression-builder.js +0 -2
  306. package/dist/cjs/query-builder/deprecated-on-expression-builder.d.ts +0 -62
  307. package/dist/cjs/query-builder/deprecated-on-expression-builder.js +0 -2
  308. package/dist/cjs/query-builder/deprecated-where-expression-builder.d.ts +0 -62
  309. package/dist/cjs/query-builder/deprecated-where-expression-builder.js +0 -2
  310. package/dist/esm/query-builder/deprecated-having-expression-builder.d.ts +0 -62
  311. package/dist/esm/query-builder/deprecated-having-expression-builder.js +0 -2
  312. package/dist/esm/query-builder/deprecated-on-expression-builder.d.ts +0 -62
  313. package/dist/esm/query-builder/deprecated-on-expression-builder.js +0 -2
  314. package/dist/esm/query-builder/deprecated-where-expression-builder.d.ts +0 -62
  315. package/dist/esm/query-builder/deprecated-where-expression-builder.js +0 -2
@@ -18,7 +18,6 @@ const no_result_error_js_1 = require("./no-result-error.js");
18
18
  const identifier_node_js_1 = require("../operation-node/identifier-node.js");
19
19
  const set_operation_parser_js_1 = require("../parser/set-operation-parser.js");
20
20
  const binary_operation_parser_js_1 = require("../parser/binary-operation-parser.js");
21
- const unary_operation_parser_js_1 = require("../parser/unary-operation-parser.js");
22
21
  class SelectQueryBuilder {
23
22
  #props;
24
23
  constructor(props) {
@@ -31,7 +30,7 @@ class SelectQueryBuilder {
31
30
  where(...args) {
32
31
  return new SelectQueryBuilder({
33
32
  ...this.#props,
34
- queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, (0, binary_operation_parser_js_1.parseWhere)(args)),
33
+ queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, (0, binary_operation_parser_js_1.parseFilter)(args)),
35
34
  });
36
35
  }
37
36
  whereRef(lhs, op, rhs) {
@@ -40,46 +39,10 @@ class SelectQueryBuilder {
40
39
  queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, (0, binary_operation_parser_js_1.parseReferentialComparison)(lhs, op, rhs)),
41
40
  });
42
41
  }
43
- orWhere(...args) {
44
- return new SelectQueryBuilder({
45
- ...this.#props,
46
- queryNode: query_node_js_1.QueryNode.cloneWithOrWhere(this.#props.queryNode, (0, binary_operation_parser_js_1.parseWhere)(args)),
47
- });
48
- }
49
- orWhereRef(lhs, op, rhs) {
50
- return new SelectQueryBuilder({
51
- ...this.#props,
52
- queryNode: query_node_js_1.QueryNode.cloneWithOrWhere(this.#props.queryNode, (0, binary_operation_parser_js_1.parseReferentialComparison)(lhs, op, rhs)),
53
- });
54
- }
55
- whereExists(arg) {
56
- return new SelectQueryBuilder({
57
- ...this.#props,
58
- queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, (0, unary_operation_parser_js_1.parseExists)(arg)),
59
- });
60
- }
61
- whereNotExists(arg) {
62
- return new SelectQueryBuilder({
63
- ...this.#props,
64
- queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, (0, unary_operation_parser_js_1.parseNotExists)(arg)),
65
- });
66
- }
67
- orWhereExists(arg) {
68
- return new SelectQueryBuilder({
69
- ...this.#props,
70
- queryNode: query_node_js_1.QueryNode.cloneWithOrWhere(this.#props.queryNode, (0, unary_operation_parser_js_1.parseExists)(arg)),
71
- });
72
- }
73
- orWhereNotExists(arg) {
74
- return new SelectQueryBuilder({
75
- ...this.#props,
76
- queryNode: query_node_js_1.QueryNode.cloneWithOrWhere(this.#props.queryNode, (0, unary_operation_parser_js_1.parseNotExists)(arg)),
77
- });
78
- }
79
42
  having(...args) {
80
43
  return new SelectQueryBuilder({
81
44
  ...this.#props,
82
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, (0, binary_operation_parser_js_1.parseHaving)(args)),
45
+ queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, (0, binary_operation_parser_js_1.parseFilter)(args)),
83
46
  });
84
47
  }
85
48
  havingRef(lhs, op, rhs) {
@@ -88,51 +51,6 @@ class SelectQueryBuilder {
88
51
  queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, (0, binary_operation_parser_js_1.parseReferentialComparison)(lhs, op, rhs)),
89
52
  });
90
53
  }
91
- orHaving(...args) {
92
- return new SelectQueryBuilder({
93
- ...this.#props,
94
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithOrHaving(this.#props.queryNode, (0, binary_operation_parser_js_1.parseHaving)(args)),
95
- });
96
- }
97
- orHavingRef(lhs, op, rhs) {
98
- return new SelectQueryBuilder({
99
- ...this.#props,
100
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithOrHaving(this.#props.queryNode, (0, binary_operation_parser_js_1.parseReferentialComparison)(lhs, op, rhs)),
101
- });
102
- }
103
- havingExists(arg) {
104
- return new SelectQueryBuilder({
105
- ...this.#props,
106
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, (0, unary_operation_parser_js_1.parseExists)(arg)),
107
- });
108
- }
109
- /**
110
- * @deprecated Use {@link havingNotExists} instead.
111
- */
112
- havingNotExist(arg) {
113
- return new SelectQueryBuilder({
114
- ...this.#props,
115
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, (0, unary_operation_parser_js_1.parseNotExists)(arg)),
116
- });
117
- }
118
- havingNotExists(arg) {
119
- return new SelectQueryBuilder({
120
- ...this.#props,
121
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, (0, unary_operation_parser_js_1.parseNotExists)(arg)),
122
- });
123
- }
124
- orHavingExists(arg) {
125
- return new SelectQueryBuilder({
126
- ...this.#props,
127
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithOrHaving(this.#props.queryNode, (0, unary_operation_parser_js_1.parseExists)(arg)),
128
- });
129
- }
130
- orHavingNotExists(arg) {
131
- return new SelectQueryBuilder({
132
- ...this.#props,
133
- queryNode: select_query_node_js_1.SelectQueryNode.cloneWithOrHaving(this.#props.queryNode, (0, unary_operation_parser_js_1.parseNotExists)(arg)),
134
- });
135
- }
136
54
  /**
137
55
  * Adds a select statement to the query.
138
56
  *
@@ -157,6 +75,8 @@ class SelectQueryBuilder {
157
75
  *
158
76
  * ### Examples
159
77
  *
78
+ * <!-- siteExample("select", "A single column", 10) -->
79
+ *
160
80
  * Select a single column:
161
81
  *
162
82
  * ```ts
@@ -165,8 +85,6 @@ class SelectQueryBuilder {
165
85
  * .select('id')
166
86
  * .where('first_name', '=', 'Arnold')
167
87
  * .execute()
168
- *
169
- * persons[0].id
170
88
  * ```
171
89
  *
172
90
  * The generated SQL (PostgreSQL):
@@ -175,6 +93,8 @@ class SelectQueryBuilder {
175
93
  * select "id" from "person" where "first_name" = $1
176
94
  * ```
177
95
  *
96
+ * <!-- siteExample("select", "Column with a table", 20) -->
97
+ *
178
98
  * Select a single column and specify a table:
179
99
  *
180
100
  * ```ts
@@ -182,8 +102,6 @@ class SelectQueryBuilder {
182
102
  * .selectFrom(['person', 'pet'])
183
103
  * .select('person.id')
184
104
  * .execute()
185
- *
186
- * persons[0].id
187
105
  * ```
188
106
  *
189
107
  * The generated SQL (PostgreSQL):
@@ -192,6 +110,8 @@ class SelectQueryBuilder {
192
110
  * select "person"."id" from "person", "pet"
193
111
  * ```
194
112
  *
113
+ * <!-- siteExample("select", "Multiple columns", 30) -->
114
+ *
195
115
  * Select multiple columns:
196
116
  *
197
117
  * ```ts
@@ -199,9 +119,6 @@ class SelectQueryBuilder {
199
119
  * .selectFrom('person')
200
120
  * .select(['person.id', 'first_name'])
201
121
  * .execute()
202
- *
203
- * persons[0].id
204
- * persons[0].first_name
205
122
  * ```
206
123
  *
207
124
  * The generated SQL (PostgreSQL):
@@ -210,38 +127,39 @@ class SelectQueryBuilder {
210
127
  * select "person"."id", "first_name" from "person"
211
128
  * ```
212
129
  *
213
- * Aliased selections:
130
+ * <!-- siteExample("select", "Aliases", 40) -->
131
+ *
132
+ * You can provide an alias for the selections by appending `as the_alias` to the selection.
214
133
  *
215
134
  * ```ts
216
135
  * const persons = await db
217
136
  * .selectFrom('person')
218
137
  * .select([
219
- * 'person.first_name as fn',
138
+ * 'first_name as fn',
220
139
  * 'person.last_name as ln'
221
140
  * ])
222
141
  * .execute()
223
- *
224
- * persons[0].fn
225
- * persons[0].ln
226
142
  * ```
227
143
  *
228
144
  * The generated SQL (PostgreSQL):
229
145
  *
230
146
  * ```sql
231
147
  * select
232
- * "person"."first_name" as "fn",
148
+ * "first_name" as "fn",
233
149
  * "person"."last_name" as "ln"
234
150
  * from "person"
235
151
  * ```
236
152
  *
237
- * You can also select arbitrary expression including subqueries and raw sql snippets.
238
- * When you do that, you need to give a name for the selections using the {@link as} method:
153
+ * <!-- siteExample("select", "Complex selections", 50) -->
154
+ *
155
+ * You can select arbitrary expression including subqueries and raw sql snippets.
156
+ * When you do that, you need to give a name for the selections using the `as` method:
239
157
  *
240
158
  * ```ts
241
- * import { sql } from 'kysely'
159
+ * import { sql } from 'kysely'
242
160
  *
243
161
  * const persons = await db.selectFrom('person')
244
- * .select(({ selectFrom, or, cmpr }) => [
162
+ * .select(({ eb, selectFrom, or }) => [
245
163
  * // Select a correlated subquery
246
164
  * selectFrom('pet')
247
165
  * .whereRef('person.id', '=', 'pet.owner_id')
@@ -250,20 +168,17 @@ class SelectQueryBuilder {
250
168
  * .limit(1)
251
169
  * .as('first_pet_name'),
252
170
  *
253
- * // Build and select an expression using the expression builder
171
+ * // Build and select an expression using
172
+ * // the expression builder
254
173
  * or([
255
- * cmpr('first_name', '=', 'Jennifer'),
256
- * cmpr('first_name', '=', 'Arnold')
174
+ * eb('first_name', '=', 'Jennifer'),
175
+ * eb('first_name', '=', 'Arnold')
257
176
  * ]).as('is_jennifer_or_arnold'),
258
177
  *
259
178
  * // Select a raw sql expression
260
179
  * sql<string>`concat(first_name, ' ', last_name)`.as('full_name')
261
180
  * ])
262
181
  * .execute()
263
- *
264
- * persons[0].first_pet_name
265
- * persons[0].is_jennifer_or_arnold
266
- * persons[0].full_name
267
182
  * ```
268
183
  *
269
184
  * The generated SQL (PostgreSQL):
@@ -391,10 +306,12 @@ class SelectQueryBuilder {
391
306
  /**
392
307
  * Makes the selection distinct.
393
308
  *
309
+ * <!-- siteExample("select", "Distinct", 70) -->
310
+ *
394
311
  * ### Examples
395
312
  *
396
313
  * ```ts
397
- * await db.selectFrom('person')
314
+ * const persons = await db.selectFrom('person')
398
315
  * .select('first_name')
399
316
  * .distinct()
400
317
  * .execute()
@@ -1027,12 +944,6 @@ class SelectQueryBuilder {
1027
944
  $call(func) {
1028
945
  return func(this);
1029
946
  }
1030
- /**
1031
- * @deprecated Use `$call` instead
1032
- */
1033
- call(func) {
1034
- return this.$call(func);
1035
- }
1036
947
  /**
1037
948
  * Call `func(this)` if `condition` is true.
1038
949
  *
@@ -1088,14 +999,12 @@ class SelectQueryBuilder {
1088
999
  * You can also call any other methods inside the callback:
1089
1000
  *
1090
1001
  * ```ts
1091
- * const { count } = db.fn
1092
- *
1093
1002
  * db.selectFrom('person')
1094
1003
  * .select('person.id')
1095
1004
  * .$if(filterByFirstName, (qb) => qb.where('first_name', '=', firstName))
1096
1005
  * .$if(filterByPetCount, (qb) => qb
1097
1006
  * .innerJoin('pet', 'pet.owner_id', 'person.id')
1098
- * .having(count('pet.id'), '>', petCountLimit)
1007
+ * .having((eb) => eb.fn.count('pet.id'), '>', petCountLimit)
1099
1008
  * .groupBy('person.id')
1100
1009
  * )
1101
1010
  * ```
@@ -1108,12 +1017,6 @@ class SelectQueryBuilder {
1108
1017
  ...this.#props,
1109
1018
  });
1110
1019
  }
1111
- /**
1112
- * @deprecated Use `$if` instead
1113
- */
1114
- if(condition, func) {
1115
- return this.$if(condition, func);
1116
- }
1117
1020
  /**
1118
1021
  * Change the output type of the query.
1119
1022
  *
@@ -1123,12 +1026,6 @@ class SelectQueryBuilder {
1123
1026
  $castTo() {
1124
1027
  return new SelectQueryBuilder(this.#props);
1125
1028
  }
1126
- /**
1127
- * @deprecated Use `$castTo` instead.
1128
- */
1129
- castTo() {
1130
- return this.$castTo();
1131
- }
1132
1029
  /**
1133
1030
  * Narrows (parts of) the output type of the query.
1134
1031
  *
@@ -1214,12 +1111,6 @@ class SelectQueryBuilder {
1214
1111
  $assertType() {
1215
1112
  return new SelectQueryBuilder(this.#props);
1216
1113
  }
1217
- /**
1218
- * @deprecated Use `$assertType` instead.
1219
- */
1220
- assertType() {
1221
- return new SelectQueryBuilder(this.#props);
1222
- }
1223
1114
  /**
1224
1115
  * Returns a copy of this SelectQueryBuilder instance with the given plugin installed.
1225
1116
  */
@@ -21,7 +21,6 @@ import { Selectable } from '../util/column-type.js';
21
21
  import { Explainable, ExplainFormat } from '../util/explainable.js';
22
22
  import { AliasedExpression, Expression } from '../expression/expression.js';
23
23
  import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js';
24
- import { ExistsExpression } from '../parser/unary-operation-parser.js';
25
24
  import { KyselyTypeError } from '../util/type-error.js';
26
25
  import { Streamable } from '../util/streamable.js';
27
26
  export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyof DB, O> implements WhereInterface<DB, TB>, ReturningInterface<DB, TB, O>, OperationNodeSource, Compilable<O>, Explainable, Streamable<O> {
@@ -36,6 +35,10 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
36
35
  *
37
36
  * ### Examples
38
37
  *
38
+ * <!-- siteExample("where", "Simple where clause", 10) -->
39
+ *
40
+ * `where` method calls are combined with `AND`:
41
+ *
39
42
  * ```ts
40
43
  * const person = await db
41
44
  * .selectFrom('person')
@@ -58,9 +61,71 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
58
61
  * sql`your operator`
59
62
  * ```
60
63
  *
64
+ * <!-- siteExample("where", "Where in", 20) -->
65
+ *
66
+ * Find multiple items using a list of identifiers:
67
+ *
68
+ * ```ts
69
+ * const persons = await db
70
+ * .selectFrom('person')
71
+ * .selectAll()
72
+ * .where('id', 'in', ['1', '2', '3'])
73
+ * .execute()
74
+ * ```
75
+ *
76
+ * The generated SQL (PostgreSQL):
77
+ *
78
+ * ```sql
79
+ * select * from "person" where "id" in ($1, $2, $3)
80
+ * ```
81
+ *
82
+ * <!-- siteExample("where", "OR where", 30) -->
83
+ *
84
+ * To combine conditions using `OR`, you can use the expression builder.
85
+ * There are two ways to create `OR` expressions. Both are shown in this
86
+ * example:
87
+ *
88
+ * ```ts
89
+ * const persons = await db
90
+ * .selectFrom('person')
91
+ * .selectAll()
92
+ * // 1. Using the `or` method on the expression builder:
93
+ * .where((eb) => eb.or([
94
+ * eb('first_name', '=', 'Jennifer'),
95
+ * eb('first_name', '=', 'Sylvester')
96
+ * ]))
97
+ * // 2. Chaining expressions using the `or` method on the
98
+ * // created expressions:
99
+ * .where((eb) =>
100
+ * eb('last_name', '=', 'Aniston').or('last_name', '=', 'Stallone')
101
+ * )
102
+ * .execute()
103
+ * ```
104
+ *
105
+ * The generated SQL (PostgreSQL):
106
+ *
107
+ * ```sql
108
+ * select *
109
+ * from "person"
110
+ * where (
111
+ * ("first_name" = $1 or "first_name" = $2)
112
+ * and
113
+ * ("last_name" = $3 or "last_name" = $4)
114
+ * )
115
+ * ```
116
+ *
117
+ * <!-- siteExample("where", "Conditional where calls", 40) -->
118
+ *
61
119
  * You can add expressions conditionally like this:
62
120
  *
63
121
  * ```ts
122
+ * import { Expression, SqlBool } from 'kysely'
123
+ *
124
+ * const firstName: string | undefined = 'Jennifer'
125
+ * const lastName: string | undefined = 'Aniston'
126
+ * const under18 = true
127
+ * const over60 = true
128
+ *
64
129
  * let query = db
65
130
  * .selectFrom('person')
66
131
  * .selectAll()
@@ -75,6 +140,23 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
75
140
  * query = query.where('last_name', '=', lastName)
76
141
  * }
77
142
  *
143
+ * if (under18 || over60) {
144
+ * // Conditional OR expressions can be added like this.
145
+ * query = query.where((eb) => {
146
+ * const ors: Expression<SqlBool>[] = []
147
+ *
148
+ * if (under18) {
149
+ * ors.push(eb('age', '<', 18))
150
+ * }
151
+ *
152
+ * if (over60) {
153
+ * ors.push(eb('age', '>', 60))
154
+ * }
155
+ *
156
+ * return eb.or(ors)
157
+ * })
158
+ * }
159
+ *
78
160
  * const persons = await query.execute()
79
161
  * ```
80
162
  *
@@ -127,22 +209,30 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
127
209
  * select * from "person" where "id" in ($1, $2, $3)
128
210
  * ```
129
211
  *
212
+ * <!-- siteExample("where", "Complex where clause", 50) -->
213
+ *
130
214
  * For complex `where` expressions you can pass in a single callback and
131
- * use the {@link ExpressionBuilder} to build your expression:
215
+ * use the `ExpressionBuilder` to build your expression:
132
216
  *
133
217
  * ```ts
218
+ * const firstName = 'Jennifer'
219
+ * const maxAge = 60
220
+ *
134
221
  * const persons = await db
135
222
  * .selectFrom('person')
136
223
  * .selectAll('person')
137
- * .where(({ cmpr, or, and, not, exists, selectFrom, val }) => and([
224
+ * .where(({ eb, or, and, not, exists, selectFrom }) => and([
138
225
  * or([
139
- * cmpr('first_name', '=', firstName),
140
- * cmpr('age', '<', maxAge)
226
+ * eb('first_name', '=', firstName),
227
+ * eb('age', '<', maxAge)
141
228
  * ]),
142
229
  * not(exists(
143
- * selectFrom('pet').select('pet.id').whereRef('pet.owner_id', '=', 'person.id')
230
+ * selectFrom('pet')
231
+ * .select('pet.id')
232
+ * .whereRef('pet.owner_id', '=', 'person.id')
144
233
  * ))
145
234
  * ]))
235
+ * .execute()
146
236
  * ```
147
237
  *
148
238
  * The generated SQL (PostgreSQL):
@@ -263,32 +353,6 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
263
353
  * from "person"
264
354
  */
265
355
  whereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): UpdateQueryBuilder<DB, UT, TB, O>;
266
- /**
267
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
268
- */
269
- orWhere<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): UpdateQueryBuilder<DB, UT, TB, O>;
270
- orWhere(factory: WhereExpressionFactory<DB, TB>): UpdateQueryBuilder<DB, UT, TB, O>;
271
- orWhere(expression: Expression<any>): UpdateQueryBuilder<DB, UT, TB, O>;
272
- /**
273
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
274
- */
275
- orWhereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): UpdateQueryBuilder<DB, UT, TB, O>;
276
- /**
277
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
278
- */
279
- whereExists(arg: ExistsExpression<DB, TB>): UpdateQueryBuilder<DB, UT, TB, O>;
280
- /**
281
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
282
- */
283
- whereNotExists(arg: ExistsExpression<DB, TB>): UpdateQueryBuilder<DB, UT, TB, O>;
284
- /**
285
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
286
- */
287
- orWhereExists(arg: ExistsExpression<DB, TB>): UpdateQueryBuilder<DB, UT, TB, O>;
288
- /**
289
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
290
- */
291
- orWhereNotExists(arg: ExistsExpression<DB, TB>): UpdateQueryBuilder<DB, UT, TB, O>;
292
356
  /**
293
357
  * Clears all where expressions from the query.
294
358
  *
@@ -480,6 +544,8 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
480
544
  *
481
545
  * ### Examples
482
546
  *
547
+ * <!-- siteExample("update", "Single row", 10) -->
548
+ *
483
549
  * Update a row in `person` table:
484
550
  *
485
551
  * ```ts
@@ -489,7 +555,7 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
489
555
  * first_name: 'Jennifer',
490
556
  * last_name: 'Aniston'
491
557
  * })
492
- * .where('id', '=', 1)
558
+ * .where('id', '=', '1')
493
559
  * .executeTakeFirst()
494
560
  *
495
561
  * console.log(result.numUpdatedRows)
@@ -501,7 +567,38 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
501
567
  * update "person" set "first_name" = $1, "last_name" = $2 where "id" = $3
502
568
  * ```
503
569
  *
504
- * On PostgreSQL you ca chain `returning` to the query to get
570
+ * <!-- siteExample("update", "Complex values", 20) -->
571
+ *
572
+ * As always, you can provide a callback to the `set` method to get access
573
+ * to an expression builder:
574
+ *
575
+ * ```ts
576
+ * const result = await db
577
+ * .updateTable('person')
578
+ * .set((eb) => ({
579
+ * age: eb('age', '+', 1),
580
+ * first_name: eb.selectFrom('pet').select('name').limit(1),
581
+ * last_name: 'updated',
582
+ * }))
583
+ * .where('id', '=', '1')
584
+ * .executeTakeFirst()
585
+ *
586
+ * console.log(result.numUpdatedRows)
587
+ * ```
588
+ *
589
+ * The generated SQL (PostgreSQL):
590
+ *
591
+ * ```sql
592
+ * update "person"
593
+ * set
594
+ * "first_name" = (select "name" from "pet" limit $1),
595
+ * "age" = "age" + $2,
596
+ * "last_name" = $3
597
+ * where
598
+ * "id" = $4
599
+ * ```
600
+ *
601
+ * On PostgreSQL you can chain `returning` to the query to get
505
602
  * the updated rows' columns (or any other expression) as the
506
603
  * return value:
507
604
  *
@@ -533,10 +630,10 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
533
630
  *
534
631
  * const result = await db
535
632
  * .updateTable('person')
536
- * .set(({ selectFrom, ref, fn, bxp }) => ({
633
+ * .set(({ selectFrom, ref, fn, eb }) => ({
537
634
  * first_name: selectFrom('person').select('first_name').limit(1),
538
635
  * middle_name: ref('first_name'),
539
- * age: bxp('age', '+', 1),
636
+ * age: eb('age', '+', 1),
540
637
  * last_name: sql`${'Ani'} || ${'ston'}`,
541
638
  * }))
542
639
  * .where('id', '=', 1)
@@ -609,7 +706,7 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
609
706
  * first_name: 'Jennifer',
610
707
  * last_name: 'Aniston'
611
708
  * })
612
- * .returning(eb => [
709
+ * .returning((eb) => [
613
710
  * 'id as id',
614
711
  * sql<string>`concat(first_name, ' ', last_name)`.as('full_name'),
615
712
  * eb.selectFrom('pets').select('pet.id').limit(1).as('first_pet_id')
@@ -647,10 +744,6 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
647
744
  * ```
648
745
  */
649
746
  $call<T>(func: (qb: this) => T): T;
650
- /**
651
- * @deprecated Use `$call` instead
652
- */
653
- call<T>(func: (qb: this) => T): T;
654
747
  /**
655
748
  * Call `func(this)` if `condition` is true.
656
749
  *
@@ -687,11 +780,7 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
687
780
  * }
688
781
  * ```
689
782
  */
690
- $if<O2>(condition: boolean, func: (qb: this) => UpdateQueryBuilder<DB, UT, TB, O2>): O2 extends UpdateResult ? UpdateQueryBuilder<DB, UT, TB, UpdateResult> : O2 extends O & infer E ? UpdateQueryBuilder<DB, UT, TB, O & Partial<E>> : UpdateQueryBuilder<DB, UT, TB, Partial<O2>>;
691
- /**
692
- * @deprecated Use `$if` instead
693
- */
694
- if<O2>(condition: boolean, func: (qb: this) => UpdateQueryBuilder<DB, UT, TB, O2>): O2 extends UpdateResult ? UpdateQueryBuilder<DB, UT, TB, UpdateResult> : O2 extends O & infer E ? UpdateQueryBuilder<DB, UT, TB, O & Partial<E>> : UpdateQueryBuilder<DB, UT, TB, Partial<O2>>;
783
+ $if<O2>(condition: boolean, func: (qb: this) => UpdateQueryBuilder<any, any, any, O2>): O2 extends UpdateResult ? UpdateQueryBuilder<DB, UT, TB, UpdateResult> : O2 extends O & infer E ? UpdateQueryBuilder<DB, UT, TB, O & Partial<E>> : UpdateQueryBuilder<DB, UT, TB, Partial<O2>>;
695
784
  /**
696
785
  * Change the output type of the query.
697
786
  *
@@ -699,10 +788,6 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
699
788
  * don't support your use case.
700
789
  */
701
790
  $castTo<T>(): UpdateQueryBuilder<DB, UT, TB, T>;
702
- /**
703
- * @deprecated Use `$castTo` instead.
704
- */
705
- castTo<T>(): UpdateQueryBuilder<DB, UT, TB, T>;
706
791
  /**
707
792
  * Narrows (parts of) the output type of the query.
708
793
  *
@@ -792,10 +877,6 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
792
877
  * ```
793
878
  */
794
879
  $assertType<T extends O>(): O extends T ? UpdateQueryBuilder<DB, UT, TB, T> : KyselyTypeError<`$assertType() call failed: The type passed in is not equal to the output type of the query.`>;
795
- /**
796
- * @deprecated Use `$assertType` instead.
797
- */
798
- assertType<T extends O>(): O extends T ? UpdateQueryBuilder<DB, UT, TB, T> : KyselyTypeError<`assertType() call failed: The type passed in is not equal to the output type of the query.`>;
799
880
  /**
800
881
  * Returns a copy of this UpdateQueryBuilder instance with the given plugin installed.
801
882
  */
@@ -891,24 +972,24 @@ export interface UpdateQueryBuilderProps {
891
972
  readonly queryNode: UpdateQueryNode;
892
973
  readonly executor: QueryExecutor;
893
974
  }
894
- export declare type UpdateQueryBuilderWithInnerJoin<DB, UT extends keyof DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? InnerJoinedBuilder<DB, UT, TB, O, A, DB[T]> : never : TE extends keyof DB ? UpdateQueryBuilder<DB, UT, TB | TE, O> : TE extends AliasedExpression<infer QO, infer QA> ? InnerJoinedBuilder<DB, UT, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? InnerJoinedBuilder<DB, UT, TB, O, QA, QO> : never;
895
- declare type InnerJoinedBuilder<DB, UT extends keyof DB, TB extends keyof DB, O, A extends string, R> = A extends keyof DB ? UpdateQueryBuilder<InnerJoinedDB<DB, A, R>, UT, TB | A, O> : UpdateQueryBuilder<DB & ShallowRecord<A, R>, UT, TB | A, O>;
896
- declare type InnerJoinedDB<DB, A extends string, R> = DrainOuterGeneric<{
975
+ export type UpdateQueryBuilderWithInnerJoin<DB, UT extends keyof DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? InnerJoinedBuilder<DB, UT, TB, O, A, DB[T]> : never : TE extends keyof DB ? UpdateQueryBuilder<DB, UT, TB | TE, O> : TE extends AliasedExpression<infer QO, infer QA> ? InnerJoinedBuilder<DB, UT, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? InnerJoinedBuilder<DB, UT, TB, O, QA, QO> : never;
976
+ type InnerJoinedBuilder<DB, UT extends keyof DB, TB extends keyof DB, O, A extends string, R> = A extends keyof DB ? UpdateQueryBuilder<InnerJoinedDB<DB, A, R>, UT, TB | A, O> : UpdateQueryBuilder<DB & ShallowRecord<A, R>, UT, TB | A, O>;
977
+ type InnerJoinedDB<DB, A extends string, R> = DrainOuterGeneric<{
897
978
  [C in keyof DB | A]: C extends A ? R : C extends keyof DB ? DB[C] : never;
898
979
  }>;
899
- export declare type UpdateQueryBuilderWithLeftJoin<DB, UT extends keyof DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? LeftJoinedBuilder<DB, UT, TB, O, A, DB[T]> : never : TE extends keyof DB ? LeftJoinedBuilder<DB, UT, TB, O, TE, DB[TE]> : TE extends AliasedExpression<infer QO, infer QA> ? LeftJoinedBuilder<DB, UT, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? LeftJoinedBuilder<DB, UT, TB, O, QA, QO> : never;
900
- declare type LeftJoinedBuilder<DB, UT extends keyof DB, TB extends keyof DB, O, A extends keyof any, R> = A extends keyof DB ? UpdateQueryBuilder<LeftJoinedDB<DB, A, R>, UT, TB | A, O> : UpdateQueryBuilder<DB & ShallowRecord<A, Nullable<R>>, UT, TB | A, O>;
901
- declare type LeftJoinedDB<DB, A extends keyof any, R> = DrainOuterGeneric<{
980
+ export type UpdateQueryBuilderWithLeftJoin<DB, UT extends keyof DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? LeftJoinedBuilder<DB, UT, TB, O, A, DB[T]> : never : TE extends keyof DB ? LeftJoinedBuilder<DB, UT, TB, O, TE, DB[TE]> : TE extends AliasedExpression<infer QO, infer QA> ? LeftJoinedBuilder<DB, UT, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? LeftJoinedBuilder<DB, UT, TB, O, QA, QO> : never;
981
+ type LeftJoinedBuilder<DB, UT extends keyof DB, TB extends keyof DB, O, A extends keyof any, R> = A extends keyof DB ? UpdateQueryBuilder<LeftJoinedDB<DB, A, R>, UT, TB | A, O> : UpdateQueryBuilder<DB & ShallowRecord<A, Nullable<R>>, UT, TB | A, O>;
982
+ type LeftJoinedDB<DB, A extends keyof any, R> = DrainOuterGeneric<{
902
983
  [C in keyof DB | A]: C extends A ? Nullable<R> : C extends keyof DB ? DB[C] : never;
903
984
  }>;
904
- export declare type UpdateQueryBuilderWithRightJoin<DB, UT extends keyof DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? RightJoinedBuilder<DB, UT, TB, O, A, DB[T]> : never : TE extends keyof DB ? RightJoinedBuilder<DB, UT, TB, O, TE, DB[TE]> : TE extends AliasedExpression<infer QO, infer QA> ? RightJoinedBuilder<DB, UT, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? RightJoinedBuilder<DB, UT, TB, O, QA, QO> : never;
905
- declare type RightJoinedBuilder<DB, UT extends keyof DB, TB extends keyof DB, O, A extends keyof any, R> = UpdateQueryBuilder<RightJoinedDB<DB, TB, A, R>, UT, TB | A, O>;
906
- declare type RightJoinedDB<DB, TB extends keyof DB, A extends keyof any, R> = DrainOuterGeneric<{
985
+ export type UpdateQueryBuilderWithRightJoin<DB, UT extends keyof DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? RightJoinedBuilder<DB, UT, TB, O, A, DB[T]> : never : TE extends keyof DB ? RightJoinedBuilder<DB, UT, TB, O, TE, DB[TE]> : TE extends AliasedExpression<infer QO, infer QA> ? RightJoinedBuilder<DB, UT, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? RightJoinedBuilder<DB, UT, TB, O, QA, QO> : never;
986
+ type RightJoinedBuilder<DB, UT extends keyof DB, TB extends keyof DB, O, A extends keyof any, R> = UpdateQueryBuilder<RightJoinedDB<DB, TB, A, R>, UT, TB | A, O>;
987
+ type RightJoinedDB<DB, TB extends keyof DB, A extends keyof any, R> = DrainOuterGeneric<{
907
988
  [C in keyof DB | A]: C extends A ? R : C extends TB ? Nullable<DB[C]> : C extends keyof DB ? DB[C] : never;
908
989
  }>;
909
- export declare type UpdateQueryBuilderWithFullJoin<DB, UT extends keyof DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? OuterJoinedBuilder<DB, UT, TB, O, A, DB[T]> : never : TE extends keyof DB ? OuterJoinedBuilder<DB, UT, TB, O, TE, DB[TE]> : TE extends AliasedExpression<infer QO, infer QA> ? OuterJoinedBuilder<DB, UT, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? OuterJoinedBuilder<DB, UT, TB, O, QA, QO> : never;
910
- declare type OuterJoinedBuilder<DB, UT extends keyof DB, TB extends keyof DB, O, A extends keyof any, R> = UpdateQueryBuilder<OuterJoinedBuilderDB<DB, TB, A, R>, UT, TB | A, O>;
911
- declare type OuterJoinedBuilderDB<DB, TB extends keyof DB, A extends keyof any, R> = DrainOuterGeneric<{
990
+ export type UpdateQueryBuilderWithFullJoin<DB, UT extends keyof DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? OuterJoinedBuilder<DB, UT, TB, O, A, DB[T]> : never : TE extends keyof DB ? OuterJoinedBuilder<DB, UT, TB, O, TE, DB[TE]> : TE extends AliasedExpression<infer QO, infer QA> ? OuterJoinedBuilder<DB, UT, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? OuterJoinedBuilder<DB, UT, TB, O, QA, QO> : never;
991
+ type OuterJoinedBuilder<DB, UT extends keyof DB, TB extends keyof DB, O, A extends keyof any, R> = UpdateQueryBuilder<OuterJoinedBuilderDB<DB, TB, A, R>, UT, TB | A, O>;
992
+ type OuterJoinedBuilderDB<DB, TB extends keyof DB, A extends keyof any, R> = DrainOuterGeneric<{
912
993
  [C in keyof DB | A]: C extends A ? Nullable<R> : C extends TB ? Nullable<DB[C]> : C extends keyof DB ? DB[C] : never;
913
994
  }>;
914
995
  export {};