kysely 0.25.0 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +84 -59
  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 +58 -47
  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 +144 -73
  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 +139 -134
  124. package/dist/cjs/query-builder/select-query-builder.js +24 -133
  125. package/dist/cjs/query-builder/update-query-builder.d.ts +89 -62
  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 +73 -38
  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 +84 -59
  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 +58 -47
  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 +144 -73
  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 +139 -134
  274. package/dist/esm/query-builder/select-query-builder.js +25 -134
  275. package/dist/esm/query-builder/update-query-builder.d.ts +89 -62
  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 +73 -38
  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
@@ -9,8 +9,7 @@ import { preventAwait } from '../util/prevent-await.js';
9
9
  import { freeze } from '../util/object-utils.js';
10
10
  import { UpdateResult } from './update-result.js';
11
11
  import { isNoResultErrorConstructor, NoResultError, } from './no-result-error.js';
12
- import { parseReferentialComparison, parseWhere, } from '../parser/binary-operation-parser.js';
13
- import { parseExists, parseNotExists, } from '../parser/unary-operation-parser.js';
12
+ import { parseReferentialComparison, parseFilter, } from '../parser/binary-operation-parser.js';
14
13
  export class UpdateQueryBuilder {
15
14
  #props;
16
15
  constructor(props) {
@@ -19,7 +18,7 @@ export class UpdateQueryBuilder {
19
18
  where(...args) {
20
19
  return new UpdateQueryBuilder({
21
20
  ...this.#props,
22
- queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, parseWhere(args)),
21
+ queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, parseFilter(args)),
23
22
  });
24
23
  }
25
24
  whereRef(lhs, op, rhs) {
@@ -28,42 +27,6 @@ export class UpdateQueryBuilder {
28
27
  queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, parseReferentialComparison(lhs, op, rhs)),
29
28
  });
30
29
  }
31
- orWhere(...args) {
32
- return new UpdateQueryBuilder({
33
- ...this.#props,
34
- queryNode: QueryNode.cloneWithOrWhere(this.#props.queryNode, parseWhere(args)),
35
- });
36
- }
37
- orWhereRef(lhs, op, rhs) {
38
- return new UpdateQueryBuilder({
39
- ...this.#props,
40
- queryNode: QueryNode.cloneWithOrWhere(this.#props.queryNode, parseReferentialComparison(lhs, op, rhs)),
41
- });
42
- }
43
- whereExists(arg) {
44
- return new UpdateQueryBuilder({
45
- ...this.#props,
46
- queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, parseExists(arg)),
47
- });
48
- }
49
- whereNotExists(arg) {
50
- return new UpdateQueryBuilder({
51
- ...this.#props,
52
- queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, parseNotExists(arg)),
53
- });
54
- }
55
- orWhereExists(arg) {
56
- return new UpdateQueryBuilder({
57
- ...this.#props,
58
- queryNode: QueryNode.cloneWithOrWhere(this.#props.queryNode, parseExists(arg)),
59
- });
60
- }
61
- orWhereNotExists(arg) {
62
- return new UpdateQueryBuilder({
63
- ...this.#props,
64
- queryNode: QueryNode.cloneWithOrWhere(this.#props.queryNode, parseNotExists(arg)),
65
- });
66
- }
67
30
  clearWhere() {
68
31
  return new UpdateQueryBuilder({
69
32
  ...this.#props,
@@ -144,12 +107,6 @@ export class UpdateQueryBuilder {
144
107
  $call(func) {
145
108
  return func(this);
146
109
  }
147
- /**
148
- * @deprecated Use `$call` instead
149
- */
150
- call(func) {
151
- return this.$call(func);
152
- }
153
110
  /**
154
111
  * Call `func(this)` if `condition` is true.
155
112
  *
@@ -194,12 +151,6 @@ export class UpdateQueryBuilder {
194
151
  ...this.#props,
195
152
  });
196
153
  }
197
- /**
198
- * @deprecated Use `$if` instead
199
- */
200
- if(condition, func) {
201
- return this.$if(condition, func);
202
- }
203
154
  /**
204
155
  * Change the output type of the query.
205
156
  *
@@ -209,12 +160,6 @@ export class UpdateQueryBuilder {
209
160
  $castTo() {
210
161
  return new UpdateQueryBuilder(this.#props);
211
162
  }
212
- /**
213
- * @deprecated Use `$castTo` instead.
214
- */
215
- castTo() {
216
- return this.$castTo();
217
- }
218
163
  /**
219
164
  * Narrows (parts of) the output type of the query.
220
165
  *
@@ -308,12 +253,6 @@ export class UpdateQueryBuilder {
308
253
  $assertType() {
309
254
  return new UpdateQueryBuilder(this.#props);
310
255
  }
311
- /**
312
- * @deprecated Use `$assertType` instead.
313
- */
314
- assertType() {
315
- return new UpdateQueryBuilder(this.#props);
316
- }
317
256
  /**
318
257
  * Returns a copy of this UpdateQueryBuilder instance with the given plugin installed.
319
258
  */
@@ -344,7 +283,8 @@ export class UpdateQueryBuilder {
344
283
  return [
345
284
  new UpdateResult(
346
285
  // TODO: remove numUpdatedOrDeletedRows.
347
- result.numAffectedRows ?? result.numUpdatedOrDeletedRows ?? BigInt(0)),
286
+ // TODO: https://github.com/kysely-org/kysely/pull/431#discussion_r1172330899
287
+ result.numAffectedRows ?? result.numUpdatedOrDeletedRows ?? BigInt(0), result.numChangedRows),
348
288
  ];
349
289
  }
350
290
  /**
@@ -1,5 +1,5 @@
1
1
  export declare class UpdateResult {
2
- #private;
3
- constructor(numUpdatedRows: bigint);
4
- get numUpdatedRows(): bigint;
2
+ readonly numUpdatedRows: bigint;
3
+ readonly numChangedRows?: bigint;
4
+ constructor(numUpdatedRows: bigint, numChangedRows: bigint | undefined);
5
5
  }
@@ -1,13 +1,9 @@
1
1
  /// <reference types="./update-result.d.ts" />
2
2
  export class UpdateResult {
3
- #numUpdatedRows;
4
- constructor(numUpdatedRows) {
5
- this.#numUpdatedRows = numUpdatedRows;
6
- }
7
- get numUpdatedRows() {
8
- return this.#numUpdatedRows;
3
+ numUpdatedRows;
4
+ numChangedRows;
5
+ constructor(numUpdatedRows, numChangedRows) {
6
+ this.numUpdatedRows = numUpdatedRows;
7
+ this.numChangedRows = numChangedRows;
9
8
  }
10
9
  }
11
- Object.defineProperty(UpdateResult.prototype, 'numUpdatedRows', {
12
- enumerable: true,
13
- });
@@ -1,9 +1,8 @@
1
1
  import { Expression } from '../expression/expression.js';
2
2
  import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js';
3
3
  import { ReferenceExpression } from '../parser/reference-parser.js';
4
- import { ExistsExpression } from '../parser/unary-operation-parser.js';
5
4
  import { SqlBool } from '../util/type-utils.js';
6
- import { WhereExpressionBuilder } from './deprecated-where-expression-builder.js';
5
+ import { ExpressionBuilder } from '../expression/expression-builder.js';
7
6
  export interface WhereInterface<DB, TB extends keyof DB> {
8
7
  /**
9
8
  * Adds a `where` expression to the query.
@@ -14,6 +13,10 @@ export interface WhereInterface<DB, TB extends keyof DB> {
14
13
  *
15
14
  * ### Examples
16
15
  *
16
+ * <!-- siteExample("where", "Simple where clause", 10) -->
17
+ *
18
+ * `where` method calls are combined with `AND`:
19
+ *
17
20
  * ```ts
18
21
  * const person = await db
19
22
  * .selectFrom('person')
@@ -36,9 +39,65 @@ export interface WhereInterface<DB, TB extends keyof DB> {
36
39
  * sql`your operator`
37
40
  * ```
38
41
  *
42
+ * <!-- siteExample("where", "Where in", 20) -->
43
+ *
44
+ * Find multiple items using a list of identifiers:
45
+ *
46
+ * ```ts
47
+ * const persons = await db
48
+ * .selectFrom('person')
49
+ * .selectAll()
50
+ * .where('id', 'in', ['1', '2', '3'])
51
+ * .execute()
52
+ * ```
53
+ *
54
+ * The generated SQL (PostgreSQL):
55
+ *
56
+ * ```sql
57
+ * select * from "person" where "id" in ($1, $2, $3)
58
+ * ```
59
+ *
60
+ * <!-- siteExample("where", "OR where", 30) -->
61
+ *
62
+ * To combine conditions using `OR`, you can use the expression builder:
63
+ *
64
+ * ```ts
65
+ * const persons = await db
66
+ * .selectFrom('person')
67
+ * .selectAll()
68
+ * .where(({ or, and, cmpr }) => or([
69
+ * and([
70
+ * cmpr('first_name', '=', 'Jennifer'),
71
+ * cmpr('last_name', '=', 'Aniston')
72
+ * ]),
73
+ * and([
74
+ * cmpr('first_name', '=', 'Sylvester'),
75
+ * cmpr('last_name', '=', 'Stallone')
76
+ * ])
77
+ * ]))
78
+ * .execute()
79
+ * ```
80
+ *
81
+ * The generated SQL (PostgreSQL):
82
+ *
83
+ * ```sql
84
+ * select *
85
+ * from "person"
86
+ * where (
87
+ * ("first_name" = $1 AND "last_name" = $2)
88
+ * OR
89
+ * ("first_name" = $3 AND "last_name" = $4)
90
+ * )
91
+ * ```
92
+ *
93
+ * <!-- siteExample("where", "Conditional where calls", 40) -->
94
+ *
39
95
  * You can add expressions conditionally like this:
40
96
  *
41
97
  * ```ts
98
+ * const firstName: string | undefined = 'Jennifer'
99
+ * const lastName: string | undefined = 'Aniston'
100
+ *
42
101
  * let query = db
43
102
  * .selectFrom('person')
44
103
  * .selectAll()
@@ -105,22 +164,30 @@ export interface WhereInterface<DB, TB extends keyof DB> {
105
164
  * select * from "person" where "id" in ($1, $2, $3)
106
165
  * ```
107
166
  *
167
+ * <!-- siteExample("where", "Complex where clause", 50) -->
168
+ *
108
169
  * For complex `where` expressions you can pass in a single callback and
109
- * use the {@link ExpressionBuilder} to build your expression:
170
+ * use the `ExpressionBuilder` to build your expression:
110
171
  *
111
172
  * ```ts
173
+ * const firstName = 'Jennifer'
174
+ * const maxAge = 60
175
+ *
112
176
  * const persons = await db
113
177
  * .selectFrom('person')
114
178
  * .selectAll('person')
115
- * .where(({ cmpr, or, and, not, exists, selectFrom, val }) => and([
179
+ * .where(({ cmpr, or, and, not, exists, selectFrom }) => and([
116
180
  * or([
117
181
  * cmpr('first_name', '=', firstName),
118
182
  * cmpr('age', '<', maxAge)
119
183
  * ]),
120
184
  * not(exists(
121
- * selectFrom('pet').select('pet.id').whereRef('pet.owner_id', '=', 'person.id')
185
+ * selectFrom('pet')
186
+ * .select('pet.id')
187
+ * .whereRef('pet.owner_id', '=', 'person.id')
122
188
  * ))
123
189
  * ]))
190
+ * .execute()
124
191
  * ```
125
192
  *
126
193
  * The generated SQL (PostgreSQL):
@@ -241,38 +308,6 @@ export interface WhereInterface<DB, TB extends keyof DB> {
241
308
  * from "person"
242
309
  */
243
310
  whereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): WhereInterface<DB, TB>;
244
- /**
245
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
246
- */
247
- orWhere<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): WhereInterface<DB, TB>;
248
- /**
249
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
250
- */
251
- orWhere(factory: WhereExpressionFactory<DB, TB>): WhereInterface<DB, TB>;
252
- /**
253
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
254
- */
255
- orWhere(expression: Expression<any>): WhereInterface<DB, TB>;
256
- /**
257
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
258
- */
259
- orWhereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): WhereInterface<DB, TB>;
260
- /**
261
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
262
- */
263
- whereExists(arg: ExistsExpression<DB, TB>): WhereInterface<DB, TB>;
264
- /**
265
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
266
- */
267
- whereNotExists(arg: ExistsExpression<DB, TB>): WhereInterface<DB, TB>;
268
- /**
269
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
270
- */
271
- orWhereExists(arg: ExistsExpression<DB, TB>): WhereInterface<DB, TB>;
272
- /**
273
- * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
274
- */
275
- orWhereNotExists(arg: ExistsExpression<DB, TB>): WhereInterface<DB, TB>;
276
311
  /**
277
312
  * Clears all where expressions from the query.
278
313
  *
@@ -293,4 +328,4 @@ export interface WhereInterface<DB, TB extends keyof DB> {
293
328
  */
294
329
  clearWhere(): WhereInterface<DB, TB>;
295
330
  }
296
- export declare type WhereExpressionFactory<DB, TB extends keyof DB> = (eb: WhereExpressionBuilder<DB, TB>) => Expression<SqlBool> | WhereExpressionBuilder<DB, TB>;
331
+ export type WhereExpressionFactory<DB, TB extends keyof DB> = (eb: ExpressionBuilder<DB, TB>) => Expression<SqlBool>;
@@ -5,5 +5,5 @@ export interface CompiledQuery<O = unknown> {
5
5
  readonly parameters: ReadonlyArray<unknown>;
6
6
  }
7
7
  export declare const CompiledQuery: Readonly<{
8
- raw(sql: string): CompiledQuery;
8
+ raw(sql: string, parameters?: unknown[]): CompiledQuery;
9
9
  }>;
@@ -2,11 +2,11 @@
2
2
  import { RawNode } from '../operation-node/raw-node.js';
3
3
  import { freeze } from '../util/object-utils.js';
4
4
  export const CompiledQuery = freeze({
5
- raw(sql) {
5
+ raw(sql, parameters = []) {
6
6
  return freeze({
7
7
  sql,
8
8
  query: RawNode.createWithSql(sql),
9
- parameters: freeze([]),
9
+ parameters: freeze(parameters),
10
10
  });
11
11
  },
12
12
  });
@@ -83,6 +83,10 @@ import { UsingNode } from '../operation-node/using-node.js';
83
83
  import { FunctionNode } from '../operation-node/function-node.js';
84
84
  import { CaseNode } from '../operation-node/case-node.js';
85
85
  import { WhenNode } from '../operation-node/when-node.js';
86
+ import { JSONReferenceNode } from '../operation-node/json-reference-node.js';
87
+ import { JSONPathNode } from '../operation-node/json-path-node.js';
88
+ import { JSONPathLegNode } from '../operation-node/json-path-leg-node.js';
89
+ import { JSONOperatorChainNode } from '../operation-node/json-operator-chain-node.js';
86
90
  export declare class DefaultQueryCompiler extends OperationNodeVisitor implements QueryCompiler {
87
91
  #private;
88
92
  protected get numParameters(): number;
@@ -174,6 +178,10 @@ export declare class DefaultQueryCompiler extends OperationNodeVisitor implement
174
178
  protected visitFunction(node: FunctionNode): void;
175
179
  protected visitCase(node: CaseNode): void;
176
180
  protected visitWhen(node: WhenNode): void;
181
+ protected visitJSONReference(node: JSONReferenceNode): void;
182
+ protected visitJSONPath(node: JSONPathNode): void;
183
+ protected visitJSONPathLeg(node: JSONPathLegNode): void;
184
+ protected visitJSONOperatorChain(node: JSONOperatorChainNode): void;
177
185
  protected append(str: string): void;
178
186
  protected appendValue(parameter: unknown): void;
179
187
  protected getLeftIdentifierWrapper(): string;
@@ -228,8 +228,10 @@ export class DefaultQueryCompiler extends OperationNodeVisitor {
228
228
  this.visitNode(node.alias);
229
229
  }
230
230
  visitReference(node) {
231
- this.visitNode(node.table);
232
- this.append('.');
231
+ if (node.table) {
232
+ this.visitNode(node.table);
233
+ this.append('.');
234
+ }
233
235
  this.visitNode(node.column);
234
236
  }
235
237
  visitSelectAll(_) {
@@ -953,6 +955,39 @@ export class DefaultQueryCompiler extends OperationNodeVisitor {
953
955
  this.visitNode(node.result);
954
956
  }
955
957
  }
958
+ visitJSONReference(node) {
959
+ this.visitNode(node.reference);
960
+ this.visitNode(node.traversal);
961
+ }
962
+ visitJSONPath(node) {
963
+ if (node.inOperator) {
964
+ this.visitNode(node.inOperator);
965
+ }
966
+ this.append("'$");
967
+ for (const pathLeg of node.pathLegs) {
968
+ this.visitNode(pathLeg);
969
+ }
970
+ this.append("'");
971
+ }
972
+ visitJSONPathLeg(node) {
973
+ const isArrayLocation = node.type === 'ArrayLocation';
974
+ this.append(isArrayLocation ? '[' : '.');
975
+ this.append(String(node.value));
976
+ if (isArrayLocation) {
977
+ this.append(']');
978
+ }
979
+ }
980
+ visitJSONOperatorChain(node) {
981
+ for (let i = 0, len = node.values.length; i < len; i++) {
982
+ if (i === len - 1) {
983
+ this.visitNode(node.operator);
984
+ }
985
+ else {
986
+ this.append('->');
987
+ }
988
+ this.visitNode(node.values[i]);
989
+ }
990
+ }
956
991
  append(str) {
957
992
  this.#sql += str;
958
993
  }
@@ -12,7 +12,7 @@ import { DropViewNode } from '../operation-node/drop-view-node.js';
12
12
  import { QueryNode } from '../operation-node/query-node.js';
13
13
  import { RawNode } from '../operation-node/raw-node.js';
14
14
  import { CompiledQuery } from './compiled-query.js';
15
- export declare type RootOperationNode = QueryNode | CreateTableNode | CreateIndexNode | CreateSchemaNode | CreateViewNode | DropTableNode | DropIndexNode | DropSchemaNode | DropViewNode | AlterTableNode | RawNode | CreateTypeNode | DropTypeNode;
15
+ export type RootOperationNode = QueryNode | CreateTableNode | CreateIndexNode | CreateSchemaNode | CreateViewNode | DropTableNode | DropIndexNode | DropSchemaNode | DropViewNode | AlterTableNode | RawNode | CreateTypeNode | DropTypeNode;
16
16
  /**
17
17
  * a `QueryCompiler` compiles a query expressed as a tree of `OperationNodes` into SQL.
18
18
  */
@@ -201,12 +201,14 @@ export declare class QueryCreator<DB> {
201
201
  *
202
202
  * ### Examples
203
203
  *
204
- * Deleting person with id 1:
204
+ * <!-- siteExample("delete", "Single row", 10) -->
205
+ *
206
+ * Delete a single row:
205
207
  *
206
208
  * ```ts
207
209
  * const result = await db
208
210
  * .deleteFrom('person')
209
- * .where('person.id', '=', 1)
211
+ * .where('person.id', '=', '1')
210
212
  * .executeTakeFirst()
211
213
  *
212
214
  * console.log(result.numDeletedRows)
@@ -3,8 +3,8 @@ import { OperationNodeSource } from '../operation-node/operation-node-source.js'
3
3
  import { DataTypeExpression } from '../parser/data-type-parser.js';
4
4
  import { DefaultValueExpression } from '../parser/default-value-parser.js';
5
5
  export declare class AlterColumnBuilder {
6
- protected readonly alterColumnNode: AlterColumnNode;
7
- constructor(alterColumnNode: AlterColumnNode);
6
+ #private;
7
+ constructor(column: string);
8
8
  setDataType(dataType: DataTypeExpression): AlteredColumnBuilder;
9
9
  setDefault(value: DefaultValueExpression): AlteredColumnBuilder;
10
10
  dropDefault(): AlteredColumnBuilder;
@@ -17,7 +17,7 @@ export declare class AlterColumnBuilder {
17
17
  $call<T>(func: (qb: this) => T): T;
18
18
  }
19
19
  /**
20
- * Allows us to force consumers to do something, anything, when altering a column.
20
+ * Allows us to force consumers to do exactly one alteration to a column.
21
21
  *
22
22
  * Basically, deny the following:
23
23
  *
@@ -25,9 +25,15 @@ export declare class AlterColumnBuilder {
25
25
  * db.schema.alterTable('person').alterColumn('age', (ac) => ac)
26
26
  * ```
27
27
  *
28
+ * ```ts
29
+ * db.schema.alterTable('person').alterColumn('age', (ac) => ac.dropNotNull().setNotNull())
30
+ * ```
31
+ *
28
32
  * Which would now throw a compilation error, instead of a runtime error.
29
33
  */
30
- export declare class AlteredColumnBuilder extends AlterColumnBuilder implements OperationNodeSource {
34
+ export declare class AlteredColumnBuilder implements OperationNodeSource {
35
+ #private;
36
+ constructor(alterColumnNode: AlterColumnNode);
31
37
  toOperationNode(): AlterColumnNode;
32
38
  }
33
- export declare type AlterColumnBuilderCallback = (builder: AlterColumnBuilder) => AlteredColumnBuilder;
39
+ export type AlterColumnBuilderCallback = (builder: AlterColumnBuilder) => AlteredColumnBuilder;
@@ -3,34 +3,24 @@ import { AlterColumnNode } from '../operation-node/alter-column-node.js';
3
3
  import { parseDataTypeExpression, } from '../parser/data-type-parser.js';
4
4
  import { parseDefaultValueExpression, } from '../parser/default-value-parser.js';
5
5
  export class AlterColumnBuilder {
6
- alterColumnNode;
7
- constructor(alterColumnNode) {
8
- this.alterColumnNode = alterColumnNode;
6
+ #column;
7
+ constructor(column) {
8
+ this.#column = column;
9
9
  }
10
10
  setDataType(dataType) {
11
- return new AlteredColumnBuilder(AlterColumnNode.cloneWith(this.alterColumnNode, {
12
- dataType: parseDataTypeExpression(dataType),
13
- }));
11
+ return new AlteredColumnBuilder(AlterColumnNode.create(this.#column, 'dataType', parseDataTypeExpression(dataType)));
14
12
  }
15
13
  setDefault(value) {
16
- return new AlteredColumnBuilder(AlterColumnNode.cloneWith(this.alterColumnNode, {
17
- setDefault: parseDefaultValueExpression(value),
18
- }));
14
+ return new AlteredColumnBuilder(AlterColumnNode.create(this.#column, 'setDefault', parseDefaultValueExpression(value)));
19
15
  }
20
16
  dropDefault() {
21
- return new AlteredColumnBuilder(AlterColumnNode.cloneWith(this.alterColumnNode, {
22
- dropDefault: true,
23
- }));
17
+ return new AlteredColumnBuilder(AlterColumnNode.create(this.#column, 'dropDefault', true));
24
18
  }
25
19
  setNotNull() {
26
- return new AlteredColumnBuilder(AlterColumnNode.cloneWith(this.alterColumnNode, {
27
- setNotNull: true,
28
- }));
20
+ return new AlteredColumnBuilder(AlterColumnNode.create(this.#column, 'setNotNull', true));
29
21
  }
30
22
  dropNotNull() {
31
- return new AlteredColumnBuilder(AlterColumnNode.cloneWith(this.alterColumnNode, {
32
- dropNotNull: true,
33
- }));
23
+ return new AlteredColumnBuilder(AlterColumnNode.create(this.#column, 'dropNotNull', true));
34
24
  }
35
25
  /**
36
26
  * Simply calls the provided function passing `this` as the only argument. `$call` returns
@@ -41,7 +31,7 @@ export class AlterColumnBuilder {
41
31
  }
42
32
  }
43
33
  /**
44
- * Allows us to force consumers to do something, anything, when altering a column.
34
+ * Allows us to force consumers to do exactly one alteration to a column.
45
35
  *
46
36
  * Basically, deny the following:
47
37
  *
@@ -49,10 +39,18 @@ export class AlterColumnBuilder {
49
39
  * db.schema.alterTable('person').alterColumn('age', (ac) => ac)
50
40
  * ```
51
41
  *
42
+ * ```ts
43
+ * db.schema.alterTable('person').alterColumn('age', (ac) => ac.dropNotNull().setNotNull())
44
+ * ```
45
+ *
52
46
  * Which would now throw a compilation error, instead of a runtime error.
53
47
  */
54
- export class AlteredColumnBuilder extends AlterColumnBuilder {
48
+ export class AlteredColumnBuilder {
49
+ #alterColumnNode;
50
+ constructor(alterColumnNode) {
51
+ this.#alterColumnNode = alterColumnNode;
52
+ }
55
53
  toOperationNode() {
56
- return this.alterColumnNode;
54
+ return this.#alterColumnNode;
57
55
  }
58
56
  }
@@ -55,10 +55,6 @@ export declare class AlterTableBuilder implements ColumnAlteringInterface {
55
55
  * See {@link CreateTableBuilder.$call}
56
56
  */
57
57
  $call<T>(func: (qb: this) => T): T;
58
- /**
59
- * @deprecated Use `$call` instead
60
- */
61
- call<T>(func: (qb: this) => T): T;
62
58
  }
63
59
  export interface AlterTableBuilderProps {
64
60
  readonly queryId: QueryId;
@@ -1,6 +1,5 @@
1
1
  /// <reference types="./alter-table-builder.d.ts" />
2
2
  import { AddColumnNode } from '../operation-node/add-column-node.js';
3
- import { AlterColumnNode } from '../operation-node/alter-column-node.js';
4
3
  import { AlterTableNode } from '../operation-node/alter-table-node.js';
5
4
  import { ColumnDefinitionNode } from '../operation-node/column-definition-node.js';
6
5
  import { DropColumnNode } from '../operation-node/drop-column-node.js';
@@ -48,7 +47,7 @@ export class AlterTableBuilder {
48
47
  });
49
48
  }
50
49
  alterColumn(column, alteration) {
51
- const builder = alteration(new AlterColumnBuilder(AlterColumnNode.create(column)));
50
+ const builder = alteration(new AlterColumnBuilder(column));
52
51
  return new AlterTableColumnAlteringBuilder({
53
52
  ...this.#props,
54
53
  node: AlterTableNode.cloneWithColumnAlteration(this.#props.node, builder.toOperationNode()),
@@ -131,12 +130,6 @@ export class AlterTableBuilder {
131
130
  $call(func) {
132
131
  return func(this);
133
132
  }
134
- /**
135
- * @deprecated Use `$call` instead
136
- */
137
- call(func) {
138
- return this.$call(func);
139
- }
140
133
  }
141
134
  export class AlterTableColumnAlteringBuilder {
142
135
  #props;
@@ -144,7 +137,7 @@ export class AlterTableColumnAlteringBuilder {
144
137
  this.#props = freeze(props);
145
138
  }
146
139
  alterColumn(column, alteration) {
147
- const builder = alteration(new AlterColumnBuilder(AlterColumnNode.create(column)));
140
+ const builder = alteration(new AlterColumnBuilder(column));
148
141
  return new AlterTableColumnAlteringBuilder({
149
142
  ...this.#props,
150
143
  node: AlterTableNode.cloneWithColumnAlteration(this.#props.node, builder.toOperationNode()),
@@ -212,4 +212,4 @@ export declare class ColumnDefinitionBuilder implements OperationNodeSource {
212
212
  $call<T>(func: (qb: this) => T): T;
213
213
  toOperationNode(): ColumnDefinitionNode;
214
214
  }
215
- export declare type ColumnDefinitionBuilderCallback = (builder: ColumnDefinitionBuilder) => ColumnDefinitionBuilder;
215
+ export type ColumnDefinitionBuilderCallback = (builder: ColumnDefinitionBuilder) => ColumnDefinitionBuilder;
@@ -1,6 +1,5 @@
1
1
  /// <reference types="./column-definition-builder.d.ts" />
2
2
  import { CheckConstraintNode } from '../operation-node/check-constraint-node.js';
3
- import { ReferenceNode } from '../operation-node/reference-node.js';
4
3
  import { ReferencesNode, } from '../operation-node/references-node.js';
5
4
  import { SelectAllNode } from '../operation-node/select-all-node.js';
6
5
  import { parseStringReference } from '../parser/reference-parser.js';
@@ -49,7 +48,7 @@ export class ColumnDefinitionBuilder {
49
48
  */
50
49
  references(ref) {
51
50
  const references = parseStringReference(ref);
52
- if (!ReferenceNode.is(references) || SelectAllNode.is(references.column)) {
51
+ if (!references.table || SelectAllNode.is(references.column)) {
53
52
  throw new Error(`invalid call references('${ref}'). The reference must have format table.column or schema.table.column`);
54
53
  }
55
54
  return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, {
@@ -5,7 +5,7 @@ import { parseOrderedColumnName, } from '../parser/reference-parser.js';
5
5
  import { parseTable } from '../parser/table-parser.js';
6
6
  import { preventAwait } from '../util/prevent-await.js';
7
7
  import { freeze } from '../util/object-utils.js';
8
- import { parseWhere, } from '../parser/binary-operation-parser.js';
8
+ import { parseFilter, } from '../parser/binary-operation-parser.js';
9
9
  import { QueryNode } from '../operation-node/query-node.js';
10
10
  import { ImmediateValueTransformer } from '../plugin/immediate-value/immediate-value-transformer.js';
11
11
  export class CreateIndexBuilder {
@@ -148,7 +148,7 @@ export class CreateIndexBuilder {
148
148
  const transformer = new ImmediateValueTransformer();
149
149
  return new CreateIndexBuilder({
150
150
  ...this.#props,
151
- node: QueryNode.cloneWithWhere(this.#props.node, transformer.transformNode(parseWhere(args))),
151
+ node: QueryNode.cloneWithWhere(this.#props.node, transformer.transformNode(parseFilter(args))),
152
152
  });
153
153
  }
154
154
  /**
@@ -238,10 +238,6 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
238
238
  * ```
239
239
  */
240
240
  $call<T>(func: (qb: this) => T): T;
241
- /**
242
- * @deprecated Use `$call` instead
243
- */
244
- call<T>(func: (qb: this) => T): T;
245
241
  toOperationNode(): CreateTableNode;
246
242
  compile(): CompiledQuery;
247
243
  execute(): Promise<void>;
@@ -251,5 +247,5 @@ export interface CreateTableBuilderProps {
251
247
  readonly executor: QueryExecutor;
252
248
  readonly node: CreateTableNode;
253
249
  }
254
- export declare type ColumnBuilderCallback = (builder: ColumnDefinitionBuilder) => ColumnDefinitionBuilder;
255
- export declare type ForeignKeyConstraintBuilderCallback = (builder: ForeignKeyConstraintBuilder) => ForeignKeyConstraintBuilder;
250
+ export type ColumnBuilderCallback = (builder: ColumnDefinitionBuilder) => ColumnDefinitionBuilder;
251
+ export type ForeignKeyConstraintBuilderCallback = (builder: ForeignKeyConstraintBuilder) => ForeignKeyConstraintBuilder;