@quereus/quereus 3.2.1 → 4.0.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 (935) hide show
  1. package/README.md +7 -0
  2. package/dist/src/common/datatype.d.ts +12 -0
  3. package/dist/src/common/datatype.d.ts.map +1 -1
  4. package/dist/src/common/datatype.js.map +1 -1
  5. package/dist/src/common/types.d.ts +24 -0
  6. package/dist/src/common/types.d.ts.map +1 -1
  7. package/dist/src/common/types.js.map +1 -1
  8. package/dist/src/core/database-assertions.d.ts +37 -9
  9. package/dist/src/core/database-assertions.d.ts.map +1 -1
  10. package/dist/src/core/database-assertions.js +62 -106
  11. package/dist/src/core/database-assertions.js.map +1 -1
  12. package/dist/src/core/database-events.d.ts +163 -0
  13. package/dist/src/core/database-events.d.ts.map +1 -1
  14. package/dist/src/core/database-events.js +235 -21
  15. package/dist/src/core/database-events.js.map +1 -1
  16. package/dist/src/core/database-external-changes.d.ts +28 -0
  17. package/dist/src/core/database-external-changes.d.ts.map +1 -0
  18. package/dist/src/core/database-external-changes.js +242 -0
  19. package/dist/src/core/database-external-changes.js.map +1 -0
  20. package/dist/src/core/database-internal.d.ts +50 -1
  21. package/dist/src/core/database-internal.d.ts.map +1 -1
  22. package/dist/src/core/database-materialized-views.d.ts +1253 -0
  23. package/dist/src/core/database-materialized-views.d.ts.map +1 -0
  24. package/dist/src/core/database-materialized-views.js +3064 -0
  25. package/dist/src/core/database-materialized-views.js.map +1 -0
  26. package/dist/src/core/database-options.d.ts +4 -0
  27. package/dist/src/core/database-options.d.ts.map +1 -1
  28. package/dist/src/core/database-options.js +10 -0
  29. package/dist/src/core/database-options.js.map +1 -1
  30. package/dist/src/core/database-transaction.d.ts +19 -3
  31. package/dist/src/core/database-transaction.d.ts.map +1 -1
  32. package/dist/src/core/database-transaction.js +30 -3
  33. package/dist/src/core/database-transaction.js.map +1 -1
  34. package/dist/src/core/database-watchers.d.ts +19 -0
  35. package/dist/src/core/database-watchers.d.ts.map +1 -1
  36. package/dist/src/core/database-watchers.js +63 -3
  37. package/dist/src/core/database-watchers.js.map +1 -1
  38. package/dist/src/core/database.d.ts +203 -11
  39. package/dist/src/core/database.d.ts.map +1 -1
  40. package/dist/src/core/database.js +493 -29
  41. package/dist/src/core/database.js.map +1 -1
  42. package/dist/src/core/derived-row-validator.d.ts +137 -0
  43. package/dist/src/core/derived-row-validator.d.ts.map +1 -0
  44. package/dist/src/core/derived-row-validator.js +314 -0
  45. package/dist/src/core/derived-row-validator.js.map +1 -0
  46. package/dist/src/core/statement.d.ts.map +1 -1
  47. package/dist/src/core/statement.js +30 -9
  48. package/dist/src/core/statement.js.map +1 -1
  49. package/dist/src/emit/ast-stringify.d.ts +135 -1
  50. package/dist/src/emit/ast-stringify.d.ts.map +1 -1
  51. package/dist/src/emit/ast-stringify.js +795 -120
  52. package/dist/src/emit/ast-stringify.js.map +1 -1
  53. package/dist/src/func/builtins/aggregate.d.ts.map +1 -1
  54. package/dist/src/func/builtins/aggregate.js +11 -10
  55. package/dist/src/func/builtins/aggregate.js.map +1 -1
  56. package/dist/src/func/builtins/builtin-window-functions.d.ts.map +1 -1
  57. package/dist/src/func/builtins/builtin-window-functions.js +32 -0
  58. package/dist/src/func/builtins/builtin-window-functions.js.map +1 -1
  59. package/dist/src/func/builtins/explain.d.ts +3 -0
  60. package/dist/src/func/builtins/explain.d.ts.map +1 -1
  61. package/dist/src/func/builtins/explain.js +229 -0
  62. package/dist/src/func/builtins/explain.js.map +1 -1
  63. package/dist/src/func/builtins/index.d.ts.map +1 -1
  64. package/dist/src/func/builtins/index.js +10 -2
  65. package/dist/src/func/builtins/index.js.map +1 -1
  66. package/dist/src/func/builtins/json.d.ts.map +1 -1
  67. package/dist/src/func/builtins/json.js +3 -2
  68. package/dist/src/func/builtins/json.js.map +1 -1
  69. package/dist/src/func/builtins/mutation.d.ts +2 -0
  70. package/dist/src/func/builtins/mutation.d.ts.map +1 -0
  71. package/dist/src/func/builtins/mutation.js +53 -0
  72. package/dist/src/func/builtins/mutation.js.map +1 -0
  73. package/dist/src/func/builtins/schema.d.ts +2 -0
  74. package/dist/src/func/builtins/schema.d.ts.map +1 -1
  75. package/dist/src/func/builtins/schema.js +713 -26
  76. package/dist/src/func/builtins/schema.js.map +1 -1
  77. package/dist/src/func/builtins/string.js +1 -1
  78. package/dist/src/func/builtins/string.js.map +1 -1
  79. package/dist/src/func/registration.d.ts +9 -0
  80. package/dist/src/func/registration.d.ts.map +1 -1
  81. package/dist/src/func/registration.js +4 -0
  82. package/dist/src/func/registration.js.map +1 -1
  83. package/dist/src/index.d.ts +25 -6
  84. package/dist/src/index.d.ts.map +1 -1
  85. package/dist/src/index.js +27 -3
  86. package/dist/src/index.js.map +1 -1
  87. package/dist/src/parser/ast.d.ts +353 -21
  88. package/dist/src/parser/ast.d.ts.map +1 -1
  89. package/dist/src/parser/index.d.ts +14 -1
  90. package/dist/src/parser/index.d.ts.map +1 -1
  91. package/dist/src/parser/index.js +19 -0
  92. package/dist/src/parser/index.js.map +1 -1
  93. package/dist/src/parser/lexer.d.ts +9 -0
  94. package/dist/src/parser/lexer.d.ts.map +1 -1
  95. package/dist/src/parser/lexer.js +9 -0
  96. package/dist/src/parser/lexer.js.map +1 -1
  97. package/dist/src/parser/parser.d.ts +277 -8
  98. package/dist/src/parser/parser.d.ts.map +1 -1
  99. package/dist/src/parser/parser.js +1393 -471
  100. package/dist/src/parser/parser.js.map +1 -1
  101. package/dist/src/parser/visitor.d.ts.map +1 -1
  102. package/dist/src/parser/visitor.js +12 -8
  103. package/dist/src/parser/visitor.js.map +1 -1
  104. package/dist/src/planner/analysis/assertion-classifier.d.ts.map +1 -1
  105. package/dist/src/planner/analysis/assertion-classifier.js +4 -0
  106. package/dist/src/planner/analysis/assertion-classifier.js.map +1 -1
  107. package/dist/src/planner/analysis/assertion-hoist-cache.d.ts.map +1 -1
  108. package/dist/src/planner/analysis/assertion-hoist-cache.js +8 -4
  109. package/dist/src/planner/analysis/assertion-hoist-cache.js.map +1 -1
  110. package/dist/src/planner/analysis/authored-inverse.d.ts +22 -0
  111. package/dist/src/planner/analysis/authored-inverse.d.ts.map +1 -0
  112. package/dist/src/planner/analysis/authored-inverse.js +267 -0
  113. package/dist/src/planner/analysis/authored-inverse.js.map +1 -0
  114. package/dist/src/planner/analysis/binding-extractor.d.ts.map +1 -1
  115. package/dist/src/planner/analysis/binding-extractor.js +9 -6
  116. package/dist/src/planner/analysis/binding-extractor.js.map +1 -1
  117. package/dist/src/planner/analysis/change-scope.d.ts +34 -4
  118. package/dist/src/planner/analysis/change-scope.d.ts.map +1 -1
  119. package/dist/src/planner/analysis/change-scope.js +115 -7
  120. package/dist/src/planner/analysis/change-scope.js.map +1 -1
  121. package/dist/src/planner/analysis/check-extraction.d.ts +36 -2
  122. package/dist/src/planner/analysis/check-extraction.d.ts.map +1 -1
  123. package/dist/src/planner/analysis/check-extraction.js +174 -46
  124. package/dist/src/planner/analysis/check-extraction.js.map +1 -1
  125. package/dist/src/planner/analysis/coarsened-key.d.ts +109 -0
  126. package/dist/src/planner/analysis/coarsened-key.d.ts.map +1 -0
  127. package/dist/src/planner/analysis/coarsened-key.js +228 -0
  128. package/dist/src/planner/analysis/coarsened-key.js.map +1 -0
  129. package/dist/src/planner/analysis/comparison-collation.d.ts +216 -0
  130. package/dist/src/planner/analysis/comparison-collation.d.ts.map +1 -0
  131. package/dist/src/planner/analysis/comparison-collation.js +341 -0
  132. package/dist/src/planner/analysis/comparison-collation.js.map +1 -0
  133. package/dist/src/planner/analysis/constraint-extractor.d.ts +13 -1
  134. package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
  135. package/dist/src/planner/analysis/constraint-extractor.js +220 -21
  136. package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
  137. package/dist/src/planner/analysis/coverage-prover.d.ts +321 -0
  138. package/dist/src/planner/analysis/coverage-prover.d.ts.map +1 -0
  139. package/dist/src/planner/analysis/coverage-prover.js +1038 -0
  140. package/dist/src/planner/analysis/coverage-prover.js.map +1 -0
  141. package/dist/src/planner/analysis/key-filter.d.ts +22 -0
  142. package/dist/src/planner/analysis/key-filter.d.ts.map +1 -0
  143. package/dist/src/planner/analysis/key-filter.js +105 -0
  144. package/dist/src/planner/analysis/key-filter.js.map +1 -0
  145. package/dist/src/planner/analysis/partial-unique-extraction.d.ts +36 -1
  146. package/dist/src/planner/analysis/partial-unique-extraction.d.ts.map +1 -1
  147. package/dist/src/planner/analysis/partial-unique-extraction.js +148 -22
  148. package/dist/src/planner/analysis/partial-unique-extraction.js.map +1 -1
  149. package/dist/src/planner/analysis/predicate-normalizer.d.ts.map +1 -1
  150. package/dist/src/planner/analysis/predicate-normalizer.js +30 -1
  151. package/dist/src/planner/analysis/predicate-normalizer.js.map +1 -1
  152. package/dist/src/planner/analysis/predicate-shape.d.ts +36 -1
  153. package/dist/src/planner/analysis/predicate-shape.d.ts.map +1 -1
  154. package/dist/src/planner/analysis/predicate-shape.js +51 -13
  155. package/dist/src/planner/analysis/predicate-shape.js.map +1 -1
  156. package/dist/src/planner/analysis/query-rewrite-matcher.d.ts +314 -0
  157. package/dist/src/planner/analysis/query-rewrite-matcher.d.ts.map +1 -0
  158. package/dist/src/planner/analysis/query-rewrite-matcher.js +1081 -0
  159. package/dist/src/planner/analysis/query-rewrite-matcher.js.map +1 -0
  160. package/dist/src/planner/analysis/scalar-invertibility.d.ts +92 -0
  161. package/dist/src/planner/analysis/scalar-invertibility.d.ts.map +1 -0
  162. package/dist/src/planner/analysis/scalar-invertibility.js +129 -0
  163. package/dist/src/planner/analysis/scalar-invertibility.js.map +1 -0
  164. package/dist/src/planner/analysis/update-lineage.d.ts +196 -0
  165. package/dist/src/planner/analysis/update-lineage.d.ts.map +1 -0
  166. package/dist/src/planner/analysis/update-lineage.js +322 -0
  167. package/dist/src/planner/analysis/update-lineage.js.map +1 -0
  168. package/dist/src/planner/analysis/view-complement.d.ts +42 -0
  169. package/dist/src/planner/analysis/view-complement.d.ts.map +1 -0
  170. package/dist/src/planner/analysis/view-complement.js +54 -0
  171. package/dist/src/planner/analysis/view-complement.js.map +1 -0
  172. package/dist/src/planner/building/alter-table.d.ts +1 -1
  173. package/dist/src/planner/building/alter-table.d.ts.map +1 -1
  174. package/dist/src/planner/building/alter-table.js +211 -2
  175. package/dist/src/planner/building/alter-table.js.map +1 -1
  176. package/dist/src/planner/building/block.d.ts.map +1 -1
  177. package/dist/src/planner/building/block.js +18 -1
  178. package/dist/src/planner/building/block.js.map +1 -1
  179. package/dist/src/planner/building/constraint-builder.d.ts +33 -5
  180. package/dist/src/planner/building/constraint-builder.d.ts.map +1 -1
  181. package/dist/src/planner/building/constraint-builder.js +63 -28
  182. package/dist/src/planner/building/constraint-builder.js.map +1 -1
  183. package/dist/src/planner/building/create-view.d.ts +9 -0
  184. package/dist/src/planner/building/create-view.d.ts.map +1 -1
  185. package/dist/src/planner/building/create-view.js +41 -12
  186. package/dist/src/planner/building/create-view.js.map +1 -1
  187. package/dist/src/planner/building/ddl.d.ts.map +1 -1
  188. package/dist/src/planner/building/ddl.js +94 -0
  189. package/dist/src/planner/building/ddl.js.map +1 -1
  190. package/dist/src/planner/building/declare-schema.d.ts +1 -0
  191. package/dist/src/planner/building/declare-schema.d.ts.map +1 -1
  192. package/dist/src/planner/building/declare-schema.js +4 -1
  193. package/dist/src/planner/building/declare-schema.js.map +1 -1
  194. package/dist/src/planner/building/default-scope.d.ts +26 -0
  195. package/dist/src/planner/building/default-scope.d.ts.map +1 -0
  196. package/dist/src/planner/building/default-scope.js +41 -0
  197. package/dist/src/planner/building/default-scope.js.map +1 -0
  198. package/dist/src/planner/building/delete.d.ts +19 -1
  199. package/dist/src/planner/building/delete.d.ts.map +1 -1
  200. package/dist/src/planner/building/delete.js +116 -34
  201. package/dist/src/planner/building/delete.js.map +1 -1
  202. package/dist/src/planner/building/dml-target.d.ts +118 -0
  203. package/dist/src/planner/building/dml-target.d.ts.map +1 -0
  204. package/dist/src/planner/building/dml-target.js +282 -0
  205. package/dist/src/planner/building/dml-target.js.map +1 -0
  206. package/dist/src/planner/building/drop-index.d.ts.map +1 -1
  207. package/dist/src/planner/building/drop-index.js +4 -1
  208. package/dist/src/planner/building/drop-index.js.map +1 -1
  209. package/dist/src/planner/building/drop-view.d.ts.map +1 -1
  210. package/dist/src/planner/building/drop-view.js +4 -2
  211. package/dist/src/planner/building/drop-view.js.map +1 -1
  212. package/dist/src/planner/building/expression.d.ts.map +1 -1
  213. package/dist/src/planner/building/expression.js +60 -21
  214. package/dist/src/planner/building/expression.js.map +1 -1
  215. package/dist/src/planner/building/foreign-key-builder.d.ts +30 -0
  216. package/dist/src/planner/building/foreign-key-builder.d.ts.map +1 -1
  217. package/dist/src/planner/building/foreign-key-builder.js +160 -129
  218. package/dist/src/planner/building/foreign-key-builder.js.map +1 -1
  219. package/dist/src/planner/building/insert.d.ts +45 -2
  220. package/dist/src/planner/building/insert.d.ts.map +1 -1
  221. package/dist/src/planner/building/insert.js +257 -88
  222. package/dist/src/planner/building/insert.js.map +1 -1
  223. package/dist/src/planner/building/lens-auxiliary-access.d.ts +22 -0
  224. package/dist/src/planner/building/lens-auxiliary-access.d.ts.map +1 -0
  225. package/dist/src/planner/building/lens-auxiliary-access.js +132 -0
  226. package/dist/src/planner/building/lens-auxiliary-access.js.map +1 -0
  227. package/dist/src/planner/building/materialized-view.d.ts +16 -0
  228. package/dist/src/planner/building/materialized-view.d.ts.map +1 -0
  229. package/dist/src/planner/building/materialized-view.js +57 -0
  230. package/dist/src/planner/building/materialized-view.js.map +1 -0
  231. package/dist/src/planner/building/returning-star.d.ts +32 -0
  232. package/dist/src/planner/building/returning-star.d.ts.map +1 -0
  233. package/dist/src/planner/building/returning-star.js +45 -0
  234. package/dist/src/planner/building/returning-star.js.map +1 -0
  235. package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
  236. package/dist/src/planner/building/select-aggregates.js +51 -13
  237. package/dist/src/planner/building/select-aggregates.js.map +1 -1
  238. package/dist/src/planner/building/select-compound.d.ts.map +1 -1
  239. package/dist/src/planner/building/select-compound.js +84 -11
  240. package/dist/src/planner/building/select-compound.js.map +1 -1
  241. package/dist/src/planner/building/select-context.d.ts +10 -2
  242. package/dist/src/planner/building/select-context.d.ts.map +1 -1
  243. package/dist/src/planner/building/select-context.js +7 -1
  244. package/dist/src/planner/building/select-context.js.map +1 -1
  245. package/dist/src/planner/building/select-modifiers.js +6 -0
  246. package/dist/src/planner/building/select-modifiers.js.map +1 -1
  247. package/dist/src/planner/building/select-ordinal.d.ts +18 -0
  248. package/dist/src/planner/building/select-ordinal.d.ts.map +1 -1
  249. package/dist/src/planner/building/select-ordinal.js +30 -0
  250. package/dist/src/planner/building/select-ordinal.js.map +1 -1
  251. package/dist/src/planner/building/select-projections.d.ts +8 -2
  252. package/dist/src/planner/building/select-projections.d.ts.map +1 -1
  253. package/dist/src/planner/building/select-projections.js +26 -4
  254. package/dist/src/planner/building/select-projections.js.map +1 -1
  255. package/dist/src/planner/building/select-window.d.ts.map +1 -1
  256. package/dist/src/planner/building/select-window.js +8 -5
  257. package/dist/src/planner/building/select-window.js.map +1 -1
  258. package/dist/src/planner/building/select.d.ts.map +1 -1
  259. package/dist/src/planner/building/select.js +164 -59
  260. package/dist/src/planner/building/select.js.map +1 -1
  261. package/dist/src/planner/building/set-object-tags.d.ts +7 -0
  262. package/dist/src/planner/building/set-object-tags.d.ts.map +1 -0
  263. package/dist/src/planner/building/set-object-tags.js +38 -0
  264. package/dist/src/planner/building/set-object-tags.js.map +1 -0
  265. package/dist/src/planner/building/tag-diagnostics.d.ts +27 -0
  266. package/dist/src/planner/building/tag-diagnostics.d.ts.map +1 -0
  267. package/dist/src/planner/building/tag-diagnostics.js +37 -0
  268. package/dist/src/planner/building/tag-diagnostics.js.map +1 -0
  269. package/dist/src/planner/building/update.d.ts +18 -1
  270. package/dist/src/planner/building/update.d.ts.map +1 -1
  271. package/dist/src/planner/building/update.js +134 -58
  272. package/dist/src/planner/building/update.js.map +1 -1
  273. package/dist/src/planner/building/view-mutation-builder.d.ts +15 -0
  274. package/dist/src/planner/building/view-mutation-builder.d.ts.map +1 -0
  275. package/dist/src/planner/building/view-mutation-builder.js +1158 -0
  276. package/dist/src/planner/building/view-mutation-builder.js.map +1 -0
  277. package/dist/src/planner/building/with.d.ts +11 -0
  278. package/dist/src/planner/building/with.d.ts.map +1 -1
  279. package/dist/src/planner/building/with.js +48 -10
  280. package/dist/src/planner/building/with.js.map +1 -1
  281. package/dist/src/planner/cost/index.d.ts +83 -0
  282. package/dist/src/planner/cost/index.d.ts.map +1 -1
  283. package/dist/src/planner/cost/index.js +114 -0
  284. package/dist/src/planner/cost/index.js.map +1 -1
  285. package/dist/src/planner/framework/characteristics.d.ts +38 -4
  286. package/dist/src/planner/framework/characteristics.d.ts.map +1 -1
  287. package/dist/src/planner/framework/characteristics.js +50 -6
  288. package/dist/src/planner/framework/characteristics.js.map +1 -1
  289. package/dist/src/planner/framework/pass.d.ts.map +1 -1
  290. package/dist/src/planner/framework/pass.js +2 -1
  291. package/dist/src/planner/framework/pass.js.map +1 -1
  292. package/dist/src/planner/framework/physical-utils.d.ts.map +1 -1
  293. package/dist/src/planner/framework/physical-utils.js +7 -1
  294. package/dist/src/planner/framework/physical-utils.js.map +1 -1
  295. package/dist/src/planner/framework/registry.d.ts +39 -1
  296. package/dist/src/planner/framework/registry.d.ts.map +1 -1
  297. package/dist/src/planner/framework/registry.js +18 -2
  298. package/dist/src/planner/framework/registry.js.map +1 -1
  299. package/dist/src/planner/mutation/backward-body.d.ts +131 -0
  300. package/dist/src/planner/mutation/backward-body.d.ts.map +1 -0
  301. package/dist/src/planner/mutation/backward-body.js +135 -0
  302. package/dist/src/planner/mutation/backward-body.js.map +1 -0
  303. package/dist/src/planner/mutation/cte-flatten.d.ts +17 -0
  304. package/dist/src/planner/mutation/cte-flatten.d.ts.map +1 -0
  305. package/dist/src/planner/mutation/cte-flatten.js +364 -0
  306. package/dist/src/planner/mutation/cte-flatten.js.map +1 -0
  307. package/dist/src/planner/mutation/decomposition.d.ts +273 -0
  308. package/dist/src/planner/mutation/decomposition.d.ts.map +1 -0
  309. package/dist/src/planner/mutation/decomposition.js +1719 -0
  310. package/dist/src/planner/mutation/decomposition.js.map +1 -0
  311. package/dist/src/planner/mutation/lens-enforcement.d.ts +165 -0
  312. package/dist/src/planner/mutation/lens-enforcement.d.ts.map +1 -0
  313. package/dist/src/planner/mutation/lens-enforcement.js +745 -0
  314. package/dist/src/planner/mutation/lens-enforcement.js.map +1 -0
  315. package/dist/src/planner/mutation/multi-source.d.ts +568 -0
  316. package/dist/src/planner/mutation/multi-source.d.ts.map +1 -0
  317. package/dist/src/planner/mutation/multi-source.js +2915 -0
  318. package/dist/src/planner/mutation/multi-source.js.map +1 -0
  319. package/dist/src/planner/mutation/mutation-diagnostic.d.ts +37 -0
  320. package/dist/src/planner/mutation/mutation-diagnostic.d.ts.map +1 -0
  321. package/dist/src/planner/mutation/mutation-diagnostic.js +24 -0
  322. package/dist/src/planner/mutation/mutation-diagnostic.js.map +1 -0
  323. package/dist/src/planner/mutation/mutation-tags.d.ts +33 -0
  324. package/dist/src/planner/mutation/mutation-tags.d.ts.map +1 -0
  325. package/dist/src/planner/mutation/mutation-tags.js +31 -0
  326. package/dist/src/planner/mutation/mutation-tags.js.map +1 -0
  327. package/dist/src/planner/mutation/propagate.d.ts +97 -0
  328. package/dist/src/planner/mutation/propagate.d.ts.map +1 -0
  329. package/dist/src/planner/mutation/propagate.js +220 -0
  330. package/dist/src/planner/mutation/propagate.js.map +1 -0
  331. package/dist/src/planner/mutation/scope-transform.d.ts +181 -0
  332. package/dist/src/planner/mutation/scope-transform.d.ts.map +1 -0
  333. package/dist/src/planner/mutation/scope-transform.js +574 -0
  334. package/dist/src/planner/mutation/scope-transform.js.map +1 -0
  335. package/dist/src/planner/mutation/set-op.d.ts +242 -0
  336. package/dist/src/planner/mutation/set-op.d.ts.map +1 -0
  337. package/dist/src/planner/mutation/set-op.js +1687 -0
  338. package/dist/src/planner/mutation/set-op.js.map +1 -0
  339. package/dist/src/planner/mutation/single-source.d.ts +261 -0
  340. package/dist/src/planner/mutation/single-source.d.ts.map +1 -0
  341. package/dist/src/planner/mutation/single-source.js +1096 -0
  342. package/dist/src/planner/mutation/single-source.js.map +1 -0
  343. package/dist/src/planner/nodes/aggregate-node.d.ts +6 -4
  344. package/dist/src/planner/nodes/aggregate-node.d.ts.map +1 -1
  345. package/dist/src/planner/nodes/aggregate-node.js +11 -9
  346. package/dist/src/planner/nodes/aggregate-node.js.map +1 -1
  347. package/dist/src/planner/nodes/alias-node.d.ts.map +1 -1
  348. package/dist/src/planner/nodes/alias-node.js +5 -1
  349. package/dist/src/planner/nodes/alias-node.js.map +1 -1
  350. package/dist/src/planner/nodes/alter-table-node.d.ts +124 -1
  351. package/dist/src/planner/nodes/alter-table-node.d.ts.map +1 -1
  352. package/dist/src/planner/nodes/alter-table-node.js +27 -0
  353. package/dist/src/planner/nodes/alter-table-node.js.map +1 -1
  354. package/dist/src/planner/nodes/analyze-node.d.ts +2 -1
  355. package/dist/src/planner/nodes/analyze-node.d.ts.map +1 -1
  356. package/dist/src/planner/nodes/analyze-node.js +21 -1
  357. package/dist/src/planner/nodes/analyze-node.js.map +1 -1
  358. package/dist/src/planner/nodes/asserted-keys-node.d.ts +43 -0
  359. package/dist/src/planner/nodes/asserted-keys-node.d.ts.map +1 -0
  360. package/dist/src/planner/nodes/asserted-keys-node.js +99 -0
  361. package/dist/src/planner/nodes/asserted-keys-node.js.map +1 -0
  362. package/dist/src/planner/nodes/async-gather-node.d.ts.map +1 -1
  363. package/dist/src/planner/nodes/async-gather-node.js +33 -8
  364. package/dist/src/planner/nodes/async-gather-node.js.map +1 -1
  365. package/dist/src/planner/nodes/bloom-join-node.d.ts.map +1 -1
  366. package/dist/src/planner/nodes/bloom-join-node.js +2 -1
  367. package/dist/src/planner/nodes/bloom-join-node.js.map +1 -1
  368. package/dist/src/planner/nodes/create-view-node.d.ts +7 -2
  369. package/dist/src/planner/nodes/create-view-node.d.ts.map +1 -1
  370. package/dist/src/planner/nodes/create-view-node.js +4 -1
  371. package/dist/src/planner/nodes/create-view-node.js.map +1 -1
  372. package/dist/src/planner/nodes/declarative-schema.d.ts +13 -1
  373. package/dist/src/planner/nodes/declarative-schema.d.ts.map +1 -1
  374. package/dist/src/planner/nodes/declarative-schema.js +32 -0
  375. package/dist/src/planner/nodes/declarative-schema.js.map +1 -1
  376. package/dist/src/planner/nodes/distinct-node.d.ts.map +1 -1
  377. package/dist/src/planner/nodes/distinct-node.js +2 -0
  378. package/dist/src/planner/nodes/distinct-node.js.map +1 -1
  379. package/dist/src/planner/nodes/dml-executor-node.d.ts +29 -1
  380. package/dist/src/planner/nodes/dml-executor-node.d.ts.map +1 -1
  381. package/dist/src/planner/nodes/dml-executor-node.js +27 -3
  382. package/dist/src/planner/nodes/dml-executor-node.js.map +1 -1
  383. package/dist/src/planner/nodes/eager-prefetch-node.d.ts.map +1 -1
  384. package/dist/src/planner/nodes/eager-prefetch-node.js +2 -0
  385. package/dist/src/planner/nodes/eager-prefetch-node.js.map +1 -1
  386. package/dist/src/planner/nodes/envelope-scan-node.d.ts +42 -0
  387. package/dist/src/planner/nodes/envelope-scan-node.d.ts.map +1 -0
  388. package/dist/src/planner/nodes/envelope-scan-node.js +62 -0
  389. package/dist/src/planner/nodes/envelope-scan-node.js.map +1 -0
  390. package/dist/src/planner/nodes/fanout-lookup-join-node.d.ts.map +1 -1
  391. package/dist/src/planner/nodes/fanout-lookup-join-node.js +11 -1
  392. package/dist/src/planner/nodes/fanout-lookup-join-node.js.map +1 -1
  393. package/dist/src/planner/nodes/filter.d.ts.map +1 -1
  394. package/dist/src/planner/nodes/filter.js +63 -13
  395. package/dist/src/planner/nodes/filter.js.map +1 -1
  396. package/dist/src/planner/nodes/hash-aggregate.d.ts.map +1 -1
  397. package/dist/src/planner/nodes/hash-aggregate.js +6 -16
  398. package/dist/src/planner/nodes/hash-aggregate.js.map +1 -1
  399. package/dist/src/planner/nodes/join-node.d.ts +41 -1
  400. package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
  401. package/dist/src/planner/nodes/join-node.js +78 -8
  402. package/dist/src/planner/nodes/join-node.js.map +1 -1
  403. package/dist/src/planner/nodes/join-utils.d.ts +33 -6
  404. package/dist/src/planner/nodes/join-utils.d.ts.map +1 -1
  405. package/dist/src/planner/nodes/join-utils.js +131 -10
  406. package/dist/src/planner/nodes/join-utils.js.map +1 -1
  407. package/dist/src/planner/nodes/lens-auxiliary-access-node.d.ts +104 -0
  408. package/dist/src/planner/nodes/lens-auxiliary-access-node.d.ts.map +1 -0
  409. package/dist/src/planner/nodes/lens-auxiliary-access-node.js +91 -0
  410. package/dist/src/planner/nodes/lens-auxiliary-access-node.js.map +1 -0
  411. package/dist/src/planner/nodes/limit-offset.d.ts +12 -0
  412. package/dist/src/planner/nodes/limit-offset.d.ts.map +1 -1
  413. package/dist/src/planner/nodes/limit-offset.js +52 -3
  414. package/dist/src/planner/nodes/limit-offset.js.map +1 -1
  415. package/dist/src/planner/nodes/materialized-view-nodes.d.ts +69 -0
  416. package/dist/src/planner/nodes/materialized-view-nodes.d.ts.map +1 -0
  417. package/dist/src/planner/nodes/materialized-view-nodes.js +111 -0
  418. package/dist/src/planner/nodes/materialized-view-nodes.js.map +1 -0
  419. package/dist/src/planner/nodes/merge-join-node.d.ts.map +1 -1
  420. package/dist/src/planner/nodes/merge-join-node.js +2 -1
  421. package/dist/src/planner/nodes/merge-join-node.js.map +1 -1
  422. package/dist/src/planner/nodes/ordinal-slice-node.d.ts.map +1 -1
  423. package/dist/src/planner/nodes/ordinal-slice-node.js +2 -0
  424. package/dist/src/planner/nodes/ordinal-slice-node.js.map +1 -1
  425. package/dist/src/planner/nodes/plan-node-type.d.ts +9 -0
  426. package/dist/src/planner/nodes/plan-node-type.d.ts.map +1 -1
  427. package/dist/src/planner/nodes/plan-node-type.js +9 -0
  428. package/dist/src/planner/nodes/plan-node-type.js.map +1 -1
  429. package/dist/src/planner/nodes/plan-node.d.ts +265 -5
  430. package/dist/src/planner/nodes/plan-node.d.ts.map +1 -1
  431. package/dist/src/planner/nodes/plan-node.js.map +1 -1
  432. package/dist/src/planner/nodes/pragma.d.ts +2 -1
  433. package/dist/src/planner/nodes/pragma.d.ts.map +1 -1
  434. package/dist/src/planner/nodes/pragma.js +12 -0
  435. package/dist/src/planner/nodes/pragma.js.map +1 -1
  436. package/dist/src/planner/nodes/project-node.d.ts +14 -1
  437. package/dist/src/planner/nodes/project-node.d.ts.map +1 -1
  438. package/dist/src/planner/nodes/project-node.js +103 -16
  439. package/dist/src/planner/nodes/project-node.js.map +1 -1
  440. package/dist/src/planner/nodes/reference.d.ts.map +1 -1
  441. package/dist/src/planner/nodes/reference.js +63 -30
  442. package/dist/src/planner/nodes/reference.js.map +1 -1
  443. package/dist/src/planner/nodes/retrieve-node.d.ts.map +1 -1
  444. package/dist/src/planner/nodes/retrieve-node.js +7 -0
  445. package/dist/src/planner/nodes/retrieve-node.js.map +1 -1
  446. package/dist/src/planner/nodes/returning-node.d.ts.map +1 -1
  447. package/dist/src/planner/nodes/returning-node.js +10 -3
  448. package/dist/src/planner/nodes/returning-node.js.map +1 -1
  449. package/dist/src/planner/nodes/scalar.d.ts +20 -0
  450. package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
  451. package/dist/src/planner/nodes/scalar.js +71 -14
  452. package/dist/src/planner/nodes/scalar.js.map +1 -1
  453. package/dist/src/planner/nodes/set-object-tags-node.d.ts +39 -0
  454. package/dist/src/planner/nodes/set-object-tags-node.d.ts.map +1 -0
  455. package/dist/src/planner/nodes/set-object-tags-node.js +41 -0
  456. package/dist/src/planner/nodes/set-object-tags-node.js.map +1 -0
  457. package/dist/src/planner/nodes/set-operation-node.d.ts +123 -1
  458. package/dist/src/planner/nodes/set-operation-node.d.ts.map +1 -1
  459. package/dist/src/planner/nodes/set-operation-node.js +302 -18
  460. package/dist/src/planner/nodes/set-operation-node.js.map +1 -1
  461. package/dist/src/planner/nodes/single-row.d.ts.map +1 -1
  462. package/dist/src/planner/nodes/single-row.js +3 -0
  463. package/dist/src/planner/nodes/single-row.js.map +1 -1
  464. package/dist/src/planner/nodes/sort.d.ts.map +1 -1
  465. package/dist/src/planner/nodes/sort.js +8 -7
  466. package/dist/src/planner/nodes/sort.js.map +1 -1
  467. package/dist/src/planner/nodes/stream-aggregate.d.ts.map +1 -1
  468. package/dist/src/planner/nodes/stream-aggregate.js +8 -23
  469. package/dist/src/planner/nodes/stream-aggregate.js.map +1 -1
  470. package/dist/src/planner/nodes/subquery.d.ts +2 -0
  471. package/dist/src/planner/nodes/subquery.d.ts.map +1 -1
  472. package/dist/src/planner/nodes/subquery.js +18 -2
  473. package/dist/src/planner/nodes/subquery.js.map +1 -1
  474. package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
  475. package/dist/src/planner/nodes/table-access-nodes.js +23 -3
  476. package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
  477. package/dist/src/planner/nodes/table-function-call.js +6 -0
  478. package/dist/src/planner/nodes/table-function-call.js.map +1 -1
  479. package/dist/src/planner/nodes/values-node.d.ts +3 -1
  480. package/dist/src/planner/nodes/values-node.d.ts.map +1 -1
  481. package/dist/src/planner/nodes/values-node.js +26 -0
  482. package/dist/src/planner/nodes/values-node.js.map +1 -1
  483. package/dist/src/planner/nodes/view-mutation-node.d.ts +259 -0
  484. package/dist/src/planner/nodes/view-mutation-node.d.ts.map +1 -0
  485. package/dist/src/planner/nodes/view-mutation-node.js +273 -0
  486. package/dist/src/planner/nodes/view-mutation-node.js.map +1 -0
  487. package/dist/src/planner/nodes/window-function.d.ts +17 -1
  488. package/dist/src/planner/nodes/window-function.d.ts.map +1 -1
  489. package/dist/src/planner/nodes/window-function.js +15 -1
  490. package/dist/src/planner/nodes/window-function.js.map +1 -1
  491. package/dist/src/planner/nodes/window-node.js +3 -3
  492. package/dist/src/planner/nodes/window-node.js.map +1 -1
  493. package/dist/src/planner/optimizer.d.ts.map +1 -1
  494. package/dist/src/planner/optimizer.js +372 -39
  495. package/dist/src/planner/optimizer.js.map +1 -1
  496. package/dist/src/planner/planning-context.d.ts +1 -1
  497. package/dist/src/planner/planning-context.d.ts.map +1 -1
  498. package/dist/src/planner/rules/access/lens-access-form-matcher.d.ts +70 -0
  499. package/dist/src/planner/rules/access/lens-access-form-matcher.d.ts.map +1 -0
  500. package/dist/src/planner/rules/access/lens-access-form-matcher.js +156 -0
  501. package/dist/src/planner/rules/access/lens-access-form-matcher.js.map +1 -0
  502. package/dist/src/planner/rules/access/rule-lens-auxiliary-access.d.ts +31 -0
  503. package/dist/src/planner/rules/access/rule-lens-auxiliary-access.d.ts.map +1 -0
  504. package/dist/src/planner/rules/access/rule-lens-auxiliary-access.js +176 -0
  505. package/dist/src/planner/rules/access/rule-lens-auxiliary-access.js.map +1 -0
  506. package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
  507. package/dist/src/planner/rules/access/rule-select-access-path.js +435 -37
  508. package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
  509. package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.d.ts.map +1 -1
  510. package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.js +8 -27
  511. package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.js.map +1 -1
  512. package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.d.ts +9 -3
  513. package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.d.ts.map +1 -1
  514. package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.js +56 -5
  515. package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.js.map +1 -1
  516. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.d.ts +39 -0
  517. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.d.ts.map +1 -0
  518. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js +616 -0
  519. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js.map +1 -0
  520. package/dist/src/planner/rules/cache/rule-scalar-cse.d.ts.map +1 -1
  521. package/dist/src/planner/rules/cache/rule-scalar-cse.js +8 -1
  522. package/dist/src/planner/rules/cache/rule-scalar-cse.js.map +1 -1
  523. package/dist/src/planner/rules/distinct/rule-distinct-elimination.d.ts +8 -7
  524. package/dist/src/planner/rules/distinct/rule-distinct-elimination.d.ts.map +1 -1
  525. package/dist/src/planner/rules/distinct/rule-distinct-elimination.js +14 -21
  526. package/dist/src/planner/rules/distinct/rule-distinct-elimination.js.map +1 -1
  527. package/dist/src/planner/rules/join/equi-pair-extractor.d.ts +36 -0
  528. package/dist/src/planner/rules/join/equi-pair-extractor.d.ts.map +1 -1
  529. package/dist/src/planner/rules/join/equi-pair-extractor.js +42 -5
  530. package/dist/src/planner/rules/join/equi-pair-extractor.js.map +1 -1
  531. package/dist/src/planner/rules/join/rule-fanout-batched-outer.d.ts.map +1 -1
  532. package/dist/src/planner/rules/join/rule-fanout-batched-outer.js +10 -0
  533. package/dist/src/planner/rules/join/rule-fanout-batched-outer.js.map +1 -1
  534. package/dist/src/planner/rules/join/rule-fanout-lookup-join.js +25 -9
  535. package/dist/src/planner/rules/join/rule-fanout-lookup-join.js.map +1 -1
  536. package/dist/src/planner/rules/join/rule-inner-join-existence-recovery.d.ts +130 -0
  537. package/dist/src/planner/rules/join/rule-inner-join-existence-recovery.d.ts.map +1 -0
  538. package/dist/src/planner/rules/join/rule-inner-join-existence-recovery.js +206 -0
  539. package/dist/src/planner/rules/join/rule-inner-join-existence-recovery.js.map +1 -0
  540. package/dist/src/planner/rules/join/rule-join-elimination.d.ts +67 -14
  541. package/dist/src/planner/rules/join/rule-join-elimination.d.ts.map +1 -1
  542. package/dist/src/planner/rules/join/rule-join-elimination.js +81 -25
  543. package/dist/src/planner/rules/join/rule-join-elimination.js.map +1 -1
  544. package/dist/src/planner/rules/join/rule-join-existence-pruning.d.ts +84 -0
  545. package/dist/src/planner/rules/join/rule-join-existence-pruning.d.ts.map +1 -0
  546. package/dist/src/planner/rules/join/rule-join-existence-pruning.js +138 -0
  547. package/dist/src/planner/rules/join/rule-join-existence-pruning.js.map +1 -0
  548. package/dist/src/planner/rules/join/rule-join-greedy-commute.d.ts.map +1 -1
  549. package/dist/src/planner/rules/join/rule-join-greedy-commute.js +19 -1
  550. package/dist/src/planner/rules/join/rule-join-greedy-commute.js.map +1 -1
  551. package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts.map +1 -1
  552. package/dist/src/planner/rules/join/rule-join-physical-selection.js +14 -2
  553. package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -1
  554. package/dist/src/planner/rules/join/rule-lateral-top1-asof.d.ts.map +1 -1
  555. package/dist/src/planner/rules/join/rule-lateral-top1-asof.js +5 -2
  556. package/dist/src/planner/rules/join/rule-lateral-top1-asof.js.map +1 -1
  557. package/dist/src/planner/rules/join/rule-monotonic-merge-join.d.ts.map +1 -1
  558. package/dist/src/planner/rules/join/rule-monotonic-merge-join.js +4 -0
  559. package/dist/src/planner/rules/join/rule-monotonic-merge-join.js.map +1 -1
  560. package/dist/src/planner/rules/join/rule-quickpick-enumeration.d.ts.map +1 -1
  561. package/dist/src/planner/rules/join/rule-quickpick-enumeration.js +10 -0
  562. package/dist/src/planner/rules/join/rule-quickpick-enumeration.js.map +1 -1
  563. package/dist/src/planner/rules/join/rule-semijoin-existence-recovery.d.ts +286 -0
  564. package/dist/src/planner/rules/join/rule-semijoin-existence-recovery.d.ts.map +1 -0
  565. package/dist/src/planner/rules/join/rule-semijoin-existence-recovery.js +548 -0
  566. package/dist/src/planner/rules/join/rule-semijoin-existence-recovery.js.map +1 -0
  567. package/dist/src/planner/rules/parallel/rule-async-gather-union-all.d.ts.map +1 -1
  568. package/dist/src/planner/rules/parallel/rule-async-gather-union-all.js +9 -1
  569. package/dist/src/planner/rules/parallel/rule-async-gather-union-all.js.map +1 -1
  570. package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.d.ts.map +1 -1
  571. package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.js +7 -0
  572. package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.js.map +1 -1
  573. package/dist/src/planner/rules/parallel/rule-eager-prefetch-probe.d.ts.map +1 -1
  574. package/dist/src/planner/rules/parallel/rule-eager-prefetch-probe.js +10 -1
  575. package/dist/src/planner/rules/parallel/rule-eager-prefetch-probe.js.map +1 -1
  576. package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.d.ts.map +1 -1
  577. package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.js +10 -1
  578. package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.js.map +1 -1
  579. package/dist/src/planner/rules/predicate/rule-empty-relation-folding.d.ts.map +1 -1
  580. package/dist/src/planner/rules/predicate/rule-empty-relation-folding.js +18 -0
  581. package/dist/src/planner/rules/predicate/rule-empty-relation-folding.js.map +1 -1
  582. package/dist/src/planner/rules/predicate/rule-filter-contradiction.d.ts.map +1 -1
  583. package/dist/src/planner/rules/predicate/rule-filter-contradiction.js +7 -0
  584. package/dist/src/planner/rules/predicate/rule-filter-contradiction.js.map +1 -1
  585. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.d.ts.map +1 -1
  586. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js +9 -0
  587. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js.map +1 -1
  588. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js +13 -3
  589. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js.map +1 -1
  590. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +2 -2
  591. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
  592. package/dist/src/planner/rules/retrieve/rule-projection-pruning.d.ts.map +1 -1
  593. package/dist/src/planner/rules/retrieve/rule-projection-pruning.js +14 -0
  594. package/dist/src/planner/rules/retrieve/rule-projection-pruning.js.map +1 -1
  595. package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.d.ts +16 -0
  596. package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.d.ts.map +1 -1
  597. package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.js +47 -4
  598. package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.js.map +1 -1
  599. package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.d.ts.map +1 -1
  600. package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.js +8 -0
  601. package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.js.map +1 -1
  602. package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.d.ts.map +1 -1
  603. package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.js +7 -0
  604. package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.js.map +1 -1
  605. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts.map +1 -1
  606. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js +12 -0
  607. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js.map +1 -1
  608. package/dist/src/planner/rules/window/rule-monotonic-window.js +1 -1
  609. package/dist/src/planner/rules/window/rule-monotonic-window.js.map +1 -1
  610. package/dist/src/planner/type-utils.d.ts +14 -0
  611. package/dist/src/planner/type-utils.d.ts.map +1 -1
  612. package/dist/src/planner/type-utils.js +66 -21
  613. package/dist/src/planner/type-utils.js.map +1 -1
  614. package/dist/src/planner/util/fd-utils.d.ts +228 -36
  615. package/dist/src/planner/util/fd-utils.d.ts.map +1 -1
  616. package/dist/src/planner/util/fd-utils.js +501 -84
  617. package/dist/src/planner/util/fd-utils.js.map +1 -1
  618. package/dist/src/planner/util/ind-utils.d.ts +27 -1
  619. package/dist/src/planner/util/ind-utils.d.ts.map +1 -1
  620. package/dist/src/planner/util/ind-utils.js +80 -6
  621. package/dist/src/planner/util/ind-utils.js.map +1 -1
  622. package/dist/src/planner/util/key-utils.d.ts +26 -3
  623. package/dist/src/planner/util/key-utils.d.ts.map +1 -1
  624. package/dist/src/planner/util/key-utils.js +182 -33
  625. package/dist/src/planner/util/key-utils.js.map +1 -1
  626. package/dist/src/planner/util/set-op-wrapper.d.ts +37 -0
  627. package/dist/src/planner/util/set-op-wrapper.d.ts.map +1 -0
  628. package/dist/src/planner/util/set-op-wrapper.js +82 -0
  629. package/dist/src/planner/util/set-op-wrapper.js.map +1 -0
  630. package/dist/src/planner/validation/plan-validator.d.ts.map +1 -1
  631. package/dist/src/planner/validation/plan-validator.js +1 -0
  632. package/dist/src/planner/validation/plan-validator.js.map +1 -1
  633. package/dist/src/runtime/context-helpers.d.ts +13 -1
  634. package/dist/src/runtime/context-helpers.d.ts.map +1 -1
  635. package/dist/src/runtime/context-helpers.js +7 -1
  636. package/dist/src/runtime/context-helpers.js.map +1 -1
  637. package/dist/src/runtime/delta-executor.d.ts +30 -1
  638. package/dist/src/runtime/delta-executor.d.ts.map +1 -1
  639. package/dist/src/runtime/delta-executor.js +38 -4
  640. package/dist/src/runtime/delta-executor.js.map +1 -1
  641. package/dist/src/runtime/emit/add-constraint.d.ts.map +1 -1
  642. package/dist/src/runtime/emit/add-constraint.js +38 -5
  643. package/dist/src/runtime/emit/add-constraint.js.map +1 -1
  644. package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
  645. package/dist/src/runtime/emit/aggregate.js +10 -8
  646. package/dist/src/runtime/emit/aggregate.js.map +1 -1
  647. package/dist/src/runtime/emit/alter-table.d.ts +1 -1
  648. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  649. package/dist/src/runtime/emit/alter-table.js +664 -108
  650. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  651. package/dist/src/runtime/emit/analyze.d.ts.map +1 -1
  652. package/dist/src/runtime/emit/analyze.js +2 -1
  653. package/dist/src/runtime/emit/analyze.js.map +1 -1
  654. package/dist/src/runtime/emit/asof-scan.d.ts.map +1 -1
  655. package/dist/src/runtime/emit/asof-scan.js +24 -9
  656. package/dist/src/runtime/emit/asof-scan.js.map +1 -1
  657. package/dist/src/runtime/emit/asserted-keys.d.ts +13 -0
  658. package/dist/src/runtime/emit/asserted-keys.d.ts.map +1 -0
  659. package/dist/src/runtime/emit/asserted-keys.js +13 -0
  660. package/dist/src/runtime/emit/asserted-keys.js.map +1 -0
  661. package/dist/src/runtime/emit/between.d.ts.map +1 -1
  662. package/dist/src/runtime/emit/between.js +24 -19
  663. package/dist/src/runtime/emit/between.js.map +1 -1
  664. package/dist/src/runtime/emit/binary.d.ts.map +1 -1
  665. package/dist/src/runtime/emit/binary.js +24 -36
  666. package/dist/src/runtime/emit/binary.js.map +1 -1
  667. package/dist/src/runtime/emit/block.d.ts.map +1 -1
  668. package/dist/src/runtime/emit/block.js +11 -2
  669. package/dist/src/runtime/emit/block.js.map +1 -1
  670. package/dist/src/runtime/emit/bloom-join.d.ts.map +1 -1
  671. package/dist/src/runtime/emit/bloom-join.js +12 -4
  672. package/dist/src/runtime/emit/bloom-join.js.map +1 -1
  673. package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
  674. package/dist/src/runtime/emit/constraint-check.js +50 -1
  675. package/dist/src/runtime/emit/constraint-check.js.map +1 -1
  676. package/dist/src/runtime/emit/create-table.d.ts.map +1 -1
  677. package/dist/src/runtime/emit/create-table.js +8 -0
  678. package/dist/src/runtime/emit/create-table.js.map +1 -1
  679. package/dist/src/runtime/emit/create-view.d.ts.map +1 -1
  680. package/dist/src/runtime/emit/create-view.js +16 -1
  681. package/dist/src/runtime/emit/create-view.js.map +1 -1
  682. package/dist/src/runtime/emit/delete.d.ts.map +1 -1
  683. package/dist/src/runtime/emit/delete.js +15 -5
  684. package/dist/src/runtime/emit/delete.js.map +1 -1
  685. package/dist/src/runtime/emit/dml-executor.d.ts +27 -0
  686. package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
  687. package/dist/src/runtime/emit/dml-executor.js +413 -193
  688. package/dist/src/runtime/emit/dml-executor.js.map +1 -1
  689. package/dist/src/runtime/emit/drop-table.d.ts.map +1 -1
  690. package/dist/src/runtime/emit/drop-table.js +10 -0
  691. package/dist/src/runtime/emit/drop-table.js.map +1 -1
  692. package/dist/src/runtime/emit/drop-view.d.ts.map +1 -1
  693. package/dist/src/runtime/emit/drop-view.js +17 -0
  694. package/dist/src/runtime/emit/drop-view.js.map +1 -1
  695. package/dist/src/runtime/emit/envelope-scan.d.ts +13 -0
  696. package/dist/src/runtime/emit/envelope-scan.d.ts.map +1 -0
  697. package/dist/src/runtime/emit/envelope-scan.js +22 -0
  698. package/dist/src/runtime/emit/envelope-scan.js.map +1 -0
  699. package/dist/src/runtime/emit/join.d.ts +10 -2
  700. package/dist/src/runtime/emit/join.d.ts.map +1 -1
  701. package/dist/src/runtime/emit/join.js +128 -38
  702. package/dist/src/runtime/emit/join.js.map +1 -1
  703. package/dist/src/runtime/emit/lens-auxiliary-access.d.ts +16 -0
  704. package/dist/src/runtime/emit/lens-auxiliary-access.d.ts.map +1 -0
  705. package/dist/src/runtime/emit/lens-auxiliary-access.js +16 -0
  706. package/dist/src/runtime/emit/lens-auxiliary-access.js.map +1 -0
  707. package/dist/src/runtime/emit/materialized-view-helpers.d.ts +640 -0
  708. package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -0
  709. package/dist/src/runtime/emit/materialized-view-helpers.js +2576 -0
  710. package/dist/src/runtime/emit/materialized-view-helpers.js.map +1 -0
  711. package/dist/src/runtime/emit/materialized-view.d.ts +31 -0
  712. package/dist/src/runtime/emit/materialized-view.d.ts.map +1 -0
  713. package/dist/src/runtime/emit/materialized-view.js +187 -0
  714. package/dist/src/runtime/emit/materialized-view.js.map +1 -0
  715. package/dist/src/runtime/emit/merge-join.d.ts.map +1 -1
  716. package/dist/src/runtime/emit/merge-join.js +19 -5
  717. package/dist/src/runtime/emit/merge-join.js.map +1 -1
  718. package/dist/src/runtime/emit/project.d.ts.map +1 -1
  719. package/dist/src/runtime/emit/project.js +10 -5
  720. package/dist/src/runtime/emit/project.js.map +1 -1
  721. package/dist/src/runtime/emit/schema-declarative.d.ts +1 -0
  722. package/dist/src/runtime/emit/schema-declarative.d.ts.map +1 -1
  723. package/dist/src/runtime/emit/schema-declarative.js +101 -5
  724. package/dist/src/runtime/emit/schema-declarative.js.map +1 -1
  725. package/dist/src/runtime/emit/set-object-tags.d.ts +16 -0
  726. package/dist/src/runtime/emit/set-object-tags.d.ts.map +1 -0
  727. package/dist/src/runtime/emit/set-object-tags.js +57 -0
  728. package/dist/src/runtime/emit/set-object-tags.js.map +1 -0
  729. package/dist/src/runtime/emit/set-operation.d.ts.map +1 -1
  730. package/dist/src/runtime/emit/set-operation.js +140 -24
  731. package/dist/src/runtime/emit/set-operation.js.map +1 -1
  732. package/dist/src/runtime/emit/subquery.d.ts.map +1 -1
  733. package/dist/src/runtime/emit/subquery.js +110 -5
  734. package/dist/src/runtime/emit/subquery.js.map +1 -1
  735. package/dist/src/runtime/emit/unary.d.ts.map +1 -1
  736. package/dist/src/runtime/emit/unary.js +34 -6
  737. package/dist/src/runtime/emit/unary.js.map +1 -1
  738. package/dist/src/runtime/emit/view-mutation.d.ts +70 -0
  739. package/dist/src/runtime/emit/view-mutation.d.ts.map +1 -0
  740. package/dist/src/runtime/emit/view-mutation.js +299 -0
  741. package/dist/src/runtime/emit/view-mutation.js.map +1 -0
  742. package/dist/src/runtime/emit/window.js +29 -5
  743. package/dist/src/runtime/emit/window.js.map +1 -1
  744. package/dist/src/runtime/foreign-key-actions.d.ts +66 -3
  745. package/dist/src/runtime/foreign-key-actions.d.ts.map +1 -1
  746. package/dist/src/runtime/foreign-key-actions.js +580 -172
  747. package/dist/src/runtime/foreign-key-actions.js.map +1 -1
  748. package/dist/src/runtime/parallel-driver.d.ts +4 -1
  749. package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
  750. package/dist/src/runtime/parallel-driver.js +5 -1
  751. package/dist/src/runtime/parallel-driver.js.map +1 -1
  752. package/dist/src/runtime/register.d.ts.map +1 -1
  753. package/dist/src/runtime/register.js +17 -1
  754. package/dist/src/runtime/register.js.map +1 -1
  755. package/dist/src/runtime/types.d.ts +10 -0
  756. package/dist/src/runtime/types.d.ts.map +1 -1
  757. package/dist/src/runtime/types.js.map +1 -1
  758. package/dist/src/schema/basis-backfill.d.ts +63 -0
  759. package/dist/src/schema/basis-backfill.d.ts.map +1 -0
  760. package/dist/src/schema/basis-backfill.js +161 -0
  761. package/dist/src/schema/basis-backfill.js.map +1 -0
  762. package/dist/src/schema/catalog.d.ts +115 -1
  763. package/dist/src/schema/catalog.d.ts.map +1 -1
  764. package/dist/src/schema/catalog.js +249 -22
  765. package/dist/src/schema/catalog.js.map +1 -1
  766. package/dist/src/schema/change-events.d.ts +42 -1
  767. package/dist/src/schema/change-events.d.ts.map +1 -1
  768. package/dist/src/schema/change-events.js.map +1 -1
  769. package/dist/src/schema/column.d.ts +16 -0
  770. package/dist/src/schema/column.d.ts.map +1 -1
  771. package/dist/src/schema/column.js.map +1 -1
  772. package/dist/src/schema/constraint-builder.d.ts +182 -0
  773. package/dist/src/schema/constraint-builder.d.ts.map +1 -0
  774. package/dist/src/schema/constraint-builder.js +424 -0
  775. package/dist/src/schema/constraint-builder.js.map +1 -0
  776. package/dist/src/schema/ddl-generator.d.ts +86 -1
  777. package/dist/src/schema/ddl-generator.d.ts.map +1 -1
  778. package/dist/src/schema/ddl-generator.js +316 -20
  779. package/dist/src/schema/ddl-generator.js.map +1 -1
  780. package/dist/src/schema/declared-schema-manager.d.ts +51 -0
  781. package/dist/src/schema/declared-schema-manager.d.ts.map +1 -1
  782. package/dist/src/schema/declared-schema-manager.js +61 -0
  783. package/dist/src/schema/declared-schema-manager.js.map +1 -1
  784. package/dist/src/schema/derivation.d.ts +106 -0
  785. package/dist/src/schema/derivation.d.ts.map +1 -0
  786. package/dist/src/schema/derivation.js +25 -0
  787. package/dist/src/schema/derivation.js.map +1 -0
  788. package/dist/src/schema/function.d.ts +13 -0
  789. package/dist/src/schema/function.d.ts.map +1 -1
  790. package/dist/src/schema/function.js.map +1 -1
  791. package/dist/src/schema/lens-ack.d.ts +90 -0
  792. package/dist/src/schema/lens-ack.d.ts.map +1 -0
  793. package/dist/src/schema/lens-ack.js +361 -0
  794. package/dist/src/schema/lens-ack.js.map +1 -0
  795. package/dist/src/schema/lens-compiler.d.ts +62 -0
  796. package/dist/src/schema/lens-compiler.d.ts.map +1 -0
  797. package/dist/src/schema/lens-compiler.js +1594 -0
  798. package/dist/src/schema/lens-compiler.js.map +1 -0
  799. package/dist/src/schema/lens-fk-discovery.d.ts +175 -0
  800. package/dist/src/schema/lens-fk-discovery.d.ts.map +1 -0
  801. package/dist/src/schema/lens-fk-discovery.js +336 -0
  802. package/dist/src/schema/lens-fk-discovery.js.map +1 -0
  803. package/dist/src/schema/lens-prover.d.ts +336 -0
  804. package/dist/src/schema/lens-prover.d.ts.map +1 -0
  805. package/dist/src/schema/lens-prover.js +1988 -0
  806. package/dist/src/schema/lens-prover.js.map +1 -0
  807. package/dist/src/schema/lens.d.ts +254 -0
  808. package/dist/src/schema/lens.d.ts.map +1 -0
  809. package/dist/src/schema/lens.js +21 -0
  810. package/dist/src/schema/lens.js.map +1 -0
  811. package/dist/src/schema/manager.d.ts +676 -18
  812. package/dist/src/schema/manager.d.ts.map +1 -1
  813. package/dist/src/schema/manager.js +1573 -238
  814. package/dist/src/schema/manager.js.map +1 -1
  815. package/dist/src/schema/mapping-advertisement-tags.d.ts +39 -0
  816. package/dist/src/schema/mapping-advertisement-tags.d.ts.map +1 -0
  817. package/dist/src/schema/mapping-advertisement-tags.js +216 -0
  818. package/dist/src/schema/mapping-advertisement-tags.js.map +1 -0
  819. package/dist/src/schema/rename-rewriter.d.ts +45 -4
  820. package/dist/src/schema/rename-rewriter.d.ts.map +1 -1
  821. package/dist/src/schema/rename-rewriter.js +412 -19
  822. package/dist/src/schema/rename-rewriter.js.map +1 -1
  823. package/dist/src/schema/reserved-tags-policy.d.ts +32 -0
  824. package/dist/src/schema/reserved-tags-policy.d.ts.map +1 -0
  825. package/dist/src/schema/reserved-tags-policy.js +34 -0
  826. package/dist/src/schema/reserved-tags-policy.js.map +1 -0
  827. package/dist/src/schema/reserved-tags.d.ts +170 -0
  828. package/dist/src/schema/reserved-tags.d.ts.map +1 -0
  829. package/dist/src/schema/reserved-tags.js +507 -0
  830. package/dist/src/schema/reserved-tags.js.map +1 -0
  831. package/dist/src/schema/schema-differ.d.ts +158 -2
  832. package/dist/src/schema/schema-differ.d.ts.map +1 -1
  833. package/dist/src/schema/schema-differ.js +1460 -78
  834. package/dist/src/schema/schema-differ.js.map +1 -1
  835. package/dist/src/schema/schema-hasher.d.ts +8 -3
  836. package/dist/src/schema/schema-hasher.d.ts.map +1 -1
  837. package/dist/src/schema/schema-hasher.js +22 -2
  838. package/dist/src/schema/schema-hasher.js.map +1 -1
  839. package/dist/src/schema/schema.d.ts +25 -1
  840. package/dist/src/schema/schema.d.ts.map +1 -1
  841. package/dist/src/schema/schema.js +36 -2
  842. package/dist/src/schema/schema.js.map +1 -1
  843. package/dist/src/schema/table.d.ts +259 -10
  844. package/dist/src/schema/table.d.ts.map +1 -1
  845. package/dist/src/schema/table.js +309 -26
  846. package/dist/src/schema/table.js.map +1 -1
  847. package/dist/src/schema/unique-enforcement.d.ts +78 -0
  848. package/dist/src/schema/unique-enforcement.d.ts.map +1 -0
  849. package/dist/src/schema/unique-enforcement.js +93 -0
  850. package/dist/src/schema/unique-enforcement.js.map +1 -0
  851. package/dist/src/schema/view.d.ts +83 -2
  852. package/dist/src/schema/view.d.ts.map +1 -1
  853. package/dist/src/schema/view.js +67 -1
  854. package/dist/src/schema/view.js.map +1 -1
  855. package/dist/src/schema/window-function.d.ts +9 -1
  856. package/dist/src/schema/window-function.d.ts.map +1 -1
  857. package/dist/src/schema/window-function.js.map +1 -1
  858. package/dist/src/types/temporal-types.d.ts.map +1 -1
  859. package/dist/src/types/temporal-types.js +71 -36
  860. package/dist/src/types/temporal-types.js.map +1 -1
  861. package/dist/src/util/comparison.d.ts +24 -0
  862. package/dist/src/util/comparison.d.ts.map +1 -1
  863. package/dist/src/util/comparison.js +34 -0
  864. package/dist/src/util/comparison.js.map +1 -1
  865. package/dist/src/util/mutation-statement.d.ts.map +1 -1
  866. package/dist/src/util/mutation-statement.js +4 -1
  867. package/dist/src/util/mutation-statement.js.map +1 -1
  868. package/dist/src/util/serialization.d.ts +9 -0
  869. package/dist/src/util/serialization.d.ts.map +1 -1
  870. package/dist/src/util/serialization.js +26 -0
  871. package/dist/src/util/serialization.js.map +1 -1
  872. package/dist/src/vtab/backing-host.d.ts +286 -0
  873. package/dist/src/vtab/backing-host.d.ts.map +1 -0
  874. package/dist/src/vtab/backing-host.js +118 -0
  875. package/dist/src/vtab/backing-host.js.map +1 -0
  876. package/dist/src/vtab/best-access-plan.d.ts +21 -0
  877. package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
  878. package/dist/src/vtab/best-access-plan.js.map +1 -1
  879. package/dist/src/vtab/capabilities.d.ts +5 -5
  880. package/dist/src/vtab/capabilities.d.ts.map +1 -1
  881. package/dist/src/vtab/mapping-advertisement.d.ts +163 -0
  882. package/dist/src/vtab/mapping-advertisement.d.ts.map +1 -0
  883. package/dist/src/vtab/mapping-advertisement.js +2 -0
  884. package/dist/src/vtab/mapping-advertisement.js.map +1 -0
  885. package/dist/src/vtab/memory/index.d.ts +64 -4
  886. package/dist/src/vtab/memory/index.d.ts.map +1 -1
  887. package/dist/src/vtab/memory/index.js +119 -12
  888. package/dist/src/vtab/memory/index.js.map +1 -1
  889. package/dist/src/vtab/memory/layer/base.d.ts +38 -1
  890. package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
  891. package/dist/src/vtab/memory/layer/base.js +112 -24
  892. package/dist/src/vtab/memory/layer/base.js.map +1 -1
  893. package/dist/src/vtab/memory/layer/manager.d.ts +291 -4
  894. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  895. package/dist/src/vtab/memory/layer/manager.js +1050 -91
  896. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  897. package/dist/src/vtab/memory/layer/plan-filter.d.ts.map +1 -1
  898. package/dist/src/vtab/memory/layer/plan-filter.js +35 -6
  899. package/dist/src/vtab/memory/layer/plan-filter.js.map +1 -1
  900. package/dist/src/vtab/memory/layer/scan-layer.d.ts.map +1 -1
  901. package/dist/src/vtab/memory/layer/scan-layer.js +66 -14
  902. package/dist/src/vtab/memory/layer/scan-layer.js.map +1 -1
  903. package/dist/src/vtab/memory/layer/scan-plan.d.ts +14 -0
  904. package/dist/src/vtab/memory/layer/scan-plan.d.ts.map +1 -1
  905. package/dist/src/vtab/memory/layer/scan-plan.js +27 -4
  906. package/dist/src/vtab/memory/layer/scan-plan.js.map +1 -1
  907. package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
  908. package/dist/src/vtab/memory/layer/transaction.js +5 -1
  909. package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
  910. package/dist/src/vtab/memory/module.d.ts +17 -0
  911. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  912. package/dist/src/vtab/memory/module.js +82 -3
  913. package/dist/src/vtab/memory/module.js.map +1 -1
  914. package/dist/src/vtab/memory/table.d.ts.map +1 -1
  915. package/dist/src/vtab/memory/table.js +15 -5
  916. package/dist/src/vtab/memory/table.js.map +1 -1
  917. package/dist/src/vtab/memory/types.d.ts +20 -2
  918. package/dist/src/vtab/memory/types.d.ts.map +1 -1
  919. package/dist/src/vtab/memory/utils/predicate.d.ts.map +1 -1
  920. package/dist/src/vtab/memory/utils/predicate.js +46 -24
  921. package/dist/src/vtab/memory/utils/predicate.js.map +1 -1
  922. package/dist/src/vtab/memory/utils/primary-key-encode.d.ts +31 -0
  923. package/dist/src/vtab/memory/utils/primary-key-encode.d.ts.map +1 -0
  924. package/dist/src/vtab/memory/utils/primary-key-encode.js +101 -0
  925. package/dist/src/vtab/memory/utils/primary-key-encode.js.map +1 -0
  926. package/dist/src/vtab/memory/utils/primary-key.d.ts +8 -0
  927. package/dist/src/vtab/memory/utils/primary-key.d.ts.map +1 -1
  928. package/dist/src/vtab/memory/utils/primary-key.js +12 -5
  929. package/dist/src/vtab/memory/utils/primary-key.js.map +1 -1
  930. package/dist/src/vtab/module.d.ts +203 -4
  931. package/dist/src/vtab/module.d.ts.map +1 -1
  932. package/dist/src/vtab/table.d.ts +9 -0
  933. package/dist/src/vtab/table.d.ts.map +1 -1
  934. package/dist/src/vtab/table.js.map +1 -1
  935. package/package.json +6 -5
@@ -1 +1 @@
1
- {"version":3,"file":"values-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/values-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"values-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/values-node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,259 @@
1
+ import type { Scope } from '../scopes/scope.js';
2
+ import { PlanNode, type RelationalPlanNode, type ScalarPlanNode, type PhysicalProperties, type TableDescriptor, type RowDescriptor, type Attribute } from './plan-node.js';
3
+ import { PlanNodeType } from './plan-node-type.js';
4
+ import type { RelationType, ScalarType } from '../../common/datatype.js';
5
+ /** When a separate {@link ViewMutationNode.returning} relation is captured. */
6
+ export type ReturningTiming = 'pre' | 'post';
7
+ /**
8
+ * The up-front base-PK identity capture side input for a multi-source **update** or
9
+ * multi-side **delete** fan-out (docs/view-updateability.md § Inner Join, § `returning`
10
+ * Clauses).
11
+ *
12
+ * `source` selects each affected view row's base-PK identities (one capture column per
13
+ * side per PK column, named `k<side>_<j>`); the emitter materializes it **before** the
14
+ * base ops run and stashes the rows in `rctx.tableContexts` under {@link descriptor}.
15
+ * The readers scan it back through an `InternalRecursiveCTERefNode` carrying the same
16
+ * `descriptor`:
17
+ * - when more than one base op runs against live state (an update assigning **both**
18
+ * sides, an n-way fan-out, or a lenient delete fanned out to multiple candidate
19
+ * sides), each per-side base op's identifying correlated EXISTS over `__vmupd_keys`
20
+ * (matching that side's PK columns), so the first op cannot empty the join — or
21
+ * rewrite a predicate column — out from under a later op; and
22
+ * - when an update carries RETURNING, the post-mutation
23
+ * {@link ViewMutationNode.returning} re-query, re-projecting exactly the updated
24
+ * logical rows by captured identity — even when the update rewrote the column
25
+ * its own WHERE filtered on.
26
+ *
27
+ * Materialized whenever present (a both-sides update / multi-side delete without
28
+ * RETURNING still needs it for the base ops), so it is independent of the RETURNING
29
+ * branch. Parallel to {@link MutationEnvelope} (the insert surrogate).
30
+ */
31
+ export interface IdentityCapture {
32
+ readonly source: RelationalPlanNode;
33
+ readonly descriptor: TableDescriptor;
34
+ }
35
+ /**
36
+ * The **shared-surrogate mutation envelope** for a multi-source view INSERT.
37
+ *
38
+ * `source` is the per-row augmented source (the supplied view columns) — built
39
+ * once and materialized by the emitter *before* the base ops run. Each base op
40
+ * reads it back through an `EnvelopeScanNode` carrying the same {@link descriptor},
41
+ * so the fan-out shares one set of rows.
42
+ *
43
+ * When `keyDefault` is present the emitter appends a shared key as the last envelope
44
+ * column. It is the anchor key column's declared `default`, evaluated **once per
45
+ * produced row** at the envelope (with `mutation_ordinal()` resolving to the row's
46
+ * 1-based ordinal, and any `max()` subquery observing pre-mutation state since no base
47
+ * write has fired yet). The single evaluated value is threaded into every base insert
48
+ * of that row via the equivalence class, so the branches cannot diverge. The engine
49
+ * itself mints nothing — the basis author declares the policy in the column default
50
+ * (`docs/view-updateability.md` § Mutation Context). Absent ⇒ the shared key is
51
+ * directly supplied (no appended column).
52
+ *
53
+ * A `keyDefault` may itself read a supplied sibling via `new.<col>` (e.g.
54
+ * `default (coalesce((select max(rid) from anchor), 0) + new.seq)`); its column
55
+ * references resolve against {@link keyDefaultRowDescriptor}, which the emitter
56
+ * installs over each source row (before the `__shared_key` is appended) for the
57
+ * duration of the per-row evaluation.
58
+ */
59
+ export interface MutationEnvelope {
60
+ readonly source: RelationalPlanNode;
61
+ readonly descriptor: TableDescriptor;
62
+ /**
63
+ * The anchor key column's compiled `default`, evaluated once per produced row at
64
+ * the envelope to fill the appended `__shared_key` column. Absent ⇒ the shared
65
+ * key is directly supplied.
66
+ */
67
+ readonly keyDefault?: ScalarPlanNode;
68
+ /**
69
+ * The row descriptor over the supplied envelope columns the {@link keyDefault}'s
70
+ * `new.<col>` references resolve through — the emitter installs it (as a row slot)
71
+ * over each source row while evaluating the key default. Present only when a
72
+ * `keyDefault` reads supplied siblings; the descriptor's attribute ids are fresh
73
+ * (minted alongside the key default's column refs), so the reference is
74
+ * self-contained and the optimizer cannot dangle it.
75
+ */
76
+ readonly keyDefaultRowDescriptor?: RowDescriptor;
77
+ }
78
+ /**
79
+ * The substrate node for view-/materialized-view-mediated DML.
80
+ *
81
+ * A view mutation decomposes into an ordered list of base-table operations
82
+ * (`propagate()` in `planner/mutation/propagate.ts`, or the multi-source insert
83
+ * builder). Each base op is built into a *fully-formed* base-table DML subtree by
84
+ * the ordinary base-table builder, so every constraint / conflict / FK /
85
+ * mutation-context / RETURNING-rejection rule is reused verbatim. The
86
+ * `ViewMutation` node sequences those subtrees.
87
+ *
88
+ * For the single-source case the list holds exactly one entry (today's rewrite
89
+ * output, wrapped). Multi-source update/delete ordering rides the same list
90
+ * (sequenced in the order `propagate` emits). Multi-source **insert** additionally
91
+ * carries an {@link MutationEnvelope}: the emitter materializes it once and stashes
92
+ * its rows in context, then drives the base ops, each of which reads the shared
93
+ * surrogate back through an `EnvelopeScanNode`.
94
+ *
95
+ * **RETURNING-through-view.** A view mutation with a `returning` clause yields the
96
+ * view-projected post-mutation rows, so the node is **relational** (its row type /
97
+ * attributes are the view's projected columns). There are two shapes:
98
+ * - *single-source*: the RETURNING clause is rewritten into base terms and
99
+ * attached to the (sole) base op, which then plans to a relational
100
+ * `ReturningNode`. No separate {@link returning} child — the emitter surfaces
101
+ * that base op's rows (NEW for insert/update, OLD for delete — post-mutation by
102
+ * construction). {@link returning} is undefined; {@link resultRelation} finds
103
+ * the relational base op.
104
+ * - *multi-source* update/delete: the view row spans both base tables, so the
105
+ * rows are produced by a separate {@link returning} relation — a re-query of
106
+ * the view restricted to the mutation's predicate — evaluated **before** the
107
+ * base ops for a delete (the rows are about to disappear) or **after** for an
108
+ * update ({@link returningTiming}).
109
+ *
110
+ * Without a `returning` clause the node is a void side-effect statement (like
111
+ * {@link SinkNode}): the emitter drains each base op in list order and yields
112
+ * nothing, and {@link getType} reports the scalar affected-row shape.
113
+ */
114
+ export declare class ViewMutationNode extends PlanNode {
115
+ /**
116
+ * Ordered base-table DML subtrees the view/MV mutation decomposes into.
117
+ * Single-source = exactly one (the retired-rewrite output, wrapped). When a
118
+ * single-source mutation carries RETURNING, that one base op is a relational
119
+ * `ReturningNode` (the rewritten view-projected clause).
120
+ */
121
+ readonly baseOps: readonly PlanNode[];
122
+ /**
123
+ * Separate RETURNING relation producing the view-projected rows — set only
124
+ * for a **multi-source** update/delete RETURNING (the view row spans both
125
+ * base tables, so a re-query of the view supplies it). Single-source
126
+ * RETURNING leaves this undefined and surfaces the relational base op
127
+ * instead. When set, it is threaded through `getChildren`/`getRelations`/
128
+ * `withChildren` and drives `getType`/`getAttributes`.
129
+ */
130
+ readonly returning?: RelationalPlanNode | undefined;
131
+ /**
132
+ * The shared-surrogate envelope for a multi-source insert (undefined for
133
+ * single-source spines and multi-source update/delete).
134
+ */
135
+ readonly envelope?: MutationEnvelope | undefined;
136
+ /**
137
+ * When {@link returning} is set, whether it is captured `pre` (before the
138
+ * base ops — a delete, whose rows vanish) or `post` (after — an update,
139
+ * whose post-mutation image the re-query reads). Ignored when `returning`
140
+ * is undefined.
141
+ */
142
+ readonly returningTiming?: ReturningTiming | undefined;
143
+ /**
144
+ * The up-front base-PK identity capture for a multi-source **update** or
145
+ * multi-side **delete** fan-out: its `source` is materialized into context
146
+ * **before** the base ops run, and read back by `descriptor` by the multi-side
147
+ * base ops' identifying subqueries and/or the post-mutation {@link returning}
148
+ * re-query. Set whenever a multi-source update assigns both sides (⇒ more than
149
+ * one base op) or carries RETURNING, or a lenient delete fans out to both sides
150
+ * (⇒ more than one base op); absent for single-source, single-side delete
151
+ * (whose RETURNING re-queries the view `pre`), and the void/insert paths.
152
+ */
153
+ readonly identityCapture?: IdentityCapture | undefined;
154
+ /**
155
+ * Additional identity captures materialized **after** {@link identityCapture}, in
156
+ * array order, **before** the base ops. Each entry's `source` may scan a
157
+ * STRICTLY-earlier capture's materialized rows (the primary {@link identityCapture}
158
+ * or an earlier `nestedCaptures` entry, read back through an
159
+ * `InternalRecursiveCTERefNode` carrying that capture's descriptor) — so they
160
+ * materialize in list order (primary → nested[0] → nested[1] → …) and tear down in
161
+ * reverse. A nested source may depend only on a strictly-earlier capture, never a
162
+ * later one or itself.
163
+ *
164
+ * Load-bearing for the set-op multi-source leg compose, where a join branch's inner
165
+ * base-PK capture chains off the outer set-op capture (its `memberExists` predicate
166
+ * scans the outer capture's `__vmupd_keys`). Empty / undefined for every other
167
+ * producer — a single-capture (or capture-free) statement lowers and runs
168
+ * byte-identically to the pre-list substrate.
169
+ *
170
+ * The list is independent of {@link identityCapture}: although the set-op use always
171
+ * has the outer capture as the primary, the emitter orders materialization off
172
+ * whatever captures are present (primary-then-nested), so a `nestedCaptures` with no
173
+ * primary is handled cleanly too.
174
+ */
175
+ readonly nestedCaptures?: readonly IdentityCapture[] | undefined;
176
+ readonly nodeType = PlanNodeType.ViewMutation;
177
+ constructor(scope: Scope,
178
+ /**
179
+ * Ordered base-table DML subtrees the view/MV mutation decomposes into.
180
+ * Single-source = exactly one (the retired-rewrite output, wrapped). When a
181
+ * single-source mutation carries RETURNING, that one base op is a relational
182
+ * `ReturningNode` (the rewritten view-projected clause).
183
+ */
184
+ baseOps: readonly PlanNode[],
185
+ /**
186
+ * Separate RETURNING relation producing the view-projected rows — set only
187
+ * for a **multi-source** update/delete RETURNING (the view row spans both
188
+ * base tables, so a re-query of the view supplies it). Single-source
189
+ * RETURNING leaves this undefined and surfaces the relational base op
190
+ * instead. When set, it is threaded through `getChildren`/`getRelations`/
191
+ * `withChildren` and drives `getType`/`getAttributes`.
192
+ */
193
+ returning?: RelationalPlanNode | undefined,
194
+ /**
195
+ * The shared-surrogate envelope for a multi-source insert (undefined for
196
+ * single-source spines and multi-source update/delete).
197
+ */
198
+ envelope?: MutationEnvelope | undefined,
199
+ /**
200
+ * When {@link returning} is set, whether it is captured `pre` (before the
201
+ * base ops — a delete, whose rows vanish) or `post` (after — an update,
202
+ * whose post-mutation image the re-query reads). Ignored when `returning`
203
+ * is undefined.
204
+ */
205
+ returningTiming?: ReturningTiming | undefined,
206
+ /**
207
+ * The up-front base-PK identity capture for a multi-source **update** or
208
+ * multi-side **delete** fan-out: its `source` is materialized into context
209
+ * **before** the base ops run, and read back by `descriptor` by the multi-side
210
+ * base ops' identifying subqueries and/or the post-mutation {@link returning}
211
+ * re-query. Set whenever a multi-source update assigns both sides (⇒ more than
212
+ * one base op) or carries RETURNING, or a lenient delete fans out to both sides
213
+ * (⇒ more than one base op); absent for single-source, single-side delete
214
+ * (whose RETURNING re-queries the view `pre`), and the void/insert paths.
215
+ */
216
+ identityCapture?: IdentityCapture | undefined,
217
+ /**
218
+ * Additional identity captures materialized **after** {@link identityCapture}, in
219
+ * array order, **before** the base ops. Each entry's `source` may scan a
220
+ * STRICTLY-earlier capture's materialized rows (the primary {@link identityCapture}
221
+ * or an earlier `nestedCaptures` entry, read back through an
222
+ * `InternalRecursiveCTERefNode` carrying that capture's descriptor) — so they
223
+ * materialize in list order (primary → nested[0] → nested[1] → …) and tear down in
224
+ * reverse. A nested source may depend only on a strictly-earlier capture, never a
225
+ * later one or itself.
226
+ *
227
+ * Load-bearing for the set-op multi-source leg compose, where a join branch's inner
228
+ * base-PK capture chains off the outer set-op capture (its `memberExists` predicate
229
+ * scans the outer capture's `__vmupd_keys`). Empty / undefined for every other
230
+ * producer — a single-capture (or capture-free) statement lowers and runs
231
+ * byte-identically to the pre-list substrate.
232
+ *
233
+ * The list is independent of {@link identityCapture}: although the set-op use always
234
+ * has the outer capture as the primary, the emitter orders materialization off
235
+ * whatever captures are present (primary-then-nested), so a `nestedCaptures` with no
236
+ * primary is handled cleanly too.
237
+ */
238
+ nestedCaptures?: readonly IdentityCapture[] | undefined);
239
+ /**
240
+ * The relation whose rows this mutation yields, or `undefined` when it is a
241
+ * void side-effect statement. A separate {@link returning} re-query wins;
242
+ * otherwise a relational base op (single-source RETURNING rewritten onto the
243
+ * base op) is surfaced.
244
+ */
245
+ resultRelation(): RelationalPlanNode | undefined;
246
+ getType(): RelationType | ScalarType;
247
+ /** The view-projected RETURNING attributes, or `[]` for a void mutation. */
248
+ getAttributes(): readonly Attribute[];
249
+ /** Extra (non-base-op) plan children: the envelope source + optional key-default expr. */
250
+ private envelopeChildren;
251
+ getChildren(): readonly PlanNode[];
252
+ getRelations(): readonly RelationalPlanNode[];
253
+ withChildren(newChildren: readonly PlanNode[]): PlanNode;
254
+ get estimatedRows(): number | undefined;
255
+ computePhysical(): Partial<PhysicalProperties>;
256
+ toString(): string;
257
+ getLogicalAttributes(): Record<string, unknown>;
258
+ }
259
+ //# sourceMappingURL=view-mutation-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-mutation-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/view-mutation-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAAE,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,KAAK,SAAS,EAAoB,MAAM,gBAAgB,CAAC;AAC7L,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAKzE,+EAA+E;AAC/E,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,MAAM,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC;IACrC;;;;;;;OAOG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,aAAa,CAAC;CACjD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBAAa,gBAAiB,SAAQ,QAAQ;IAK5C;;;;;OAKG;aACa,OAAO,EAAE,SAAS,QAAQ,EAAE;IAC5C;;;;;;;OAOG;aACa,SAAS,CAAC,EAAE,kBAAkB;IAC9C;;;OAGG;aACa,QAAQ,CAAC,EAAE,gBAAgB;IAC3C;;;;;OAKG;aACa,eAAe,CAAC,EAAE,eAAe;IACjD;;;;;;;;;OASG;aACa,eAAe,CAAC,EAAE,eAAe;IACjD;;;;;;;;;;;;;;;;;;;;OAoBG;aACa,cAAc,CAAC,EAAE,SAAS,eAAe,EAAE;IAhE5D,SAAkB,QAAQ,6BAA6B;gBAGtD,KAAK,EAAE,KAAK;IACZ;;;;;OAKG;IACa,OAAO,EAAE,SAAS,QAAQ,EAAE;IAC5C;;;;;;;OAOG;IACa,SAAS,CAAC,EAAE,kBAAkB,YAAA;IAC9C;;;OAGG;IACa,QAAQ,CAAC,EAAE,gBAAgB,YAAA;IAC3C;;;;;OAKG;IACa,eAAe,CAAC,EAAE,eAAe,YAAA;IACjD;;;;;;;;;OASG;IACa,eAAe,CAAC,EAAE,eAAe,YAAA;IACjD;;;;;;;;;;;;;;;;;;;;OAoBG;IACa,cAAc,CAAC,EAAE,SAAS,eAAe,EAAE,YAAA;IAQ5D;;;;;OAKG;IACH,cAAc,IAAI,kBAAkB,GAAG,SAAS;IAKhD,OAAO,IAAI,YAAY,GAAG,UAAU;IAgBpC,4EAA4E;IAC5E,aAAa,IAAI,SAAS,SAAS,EAAE;IAIrC,0FAA0F;IAC1F,OAAO,CAAC,gBAAgB;IAOxB,WAAW,IAAI,SAAS,QAAQ,EAAE;IAclC,YAAY,IAAI,SAAS,kBAAkB,EAAE;IAmB7C,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAuDxD,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED,eAAe,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAQrC,QAAQ,IAAI,MAAM;IAYlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CASxD"}
@@ -0,0 +1,273 @@
1
+ import { PlanNode, isRelationalNode } from './plan-node.js';
2
+ import { PlanNodeType } from './plan-node-type.js';
3
+ import { INTEGER_TYPE } from '../../types/builtin-types.js';
4
+ import { QuereusError } from '../../common/errors.js';
5
+ import { StatusCode } from '../../common/types.js';
6
+ /**
7
+ * The substrate node for view-/materialized-view-mediated DML.
8
+ *
9
+ * A view mutation decomposes into an ordered list of base-table operations
10
+ * (`propagate()` in `planner/mutation/propagate.ts`, or the multi-source insert
11
+ * builder). Each base op is built into a *fully-formed* base-table DML subtree by
12
+ * the ordinary base-table builder, so every constraint / conflict / FK /
13
+ * mutation-context / RETURNING-rejection rule is reused verbatim. The
14
+ * `ViewMutation` node sequences those subtrees.
15
+ *
16
+ * For the single-source case the list holds exactly one entry (today's rewrite
17
+ * output, wrapped). Multi-source update/delete ordering rides the same list
18
+ * (sequenced in the order `propagate` emits). Multi-source **insert** additionally
19
+ * carries an {@link MutationEnvelope}: the emitter materializes it once and stashes
20
+ * its rows in context, then drives the base ops, each of which reads the shared
21
+ * surrogate back through an `EnvelopeScanNode`.
22
+ *
23
+ * **RETURNING-through-view.** A view mutation with a `returning` clause yields the
24
+ * view-projected post-mutation rows, so the node is **relational** (its row type /
25
+ * attributes are the view's projected columns). There are two shapes:
26
+ * - *single-source*: the RETURNING clause is rewritten into base terms and
27
+ * attached to the (sole) base op, which then plans to a relational
28
+ * `ReturningNode`. No separate {@link returning} child — the emitter surfaces
29
+ * that base op's rows (NEW for insert/update, OLD for delete — post-mutation by
30
+ * construction). {@link returning} is undefined; {@link resultRelation} finds
31
+ * the relational base op.
32
+ * - *multi-source* update/delete: the view row spans both base tables, so the
33
+ * rows are produced by a separate {@link returning} relation — a re-query of
34
+ * the view restricted to the mutation's predicate — evaluated **before** the
35
+ * base ops for a delete (the rows are about to disappear) or **after** for an
36
+ * update ({@link returningTiming}).
37
+ *
38
+ * Without a `returning` clause the node is a void side-effect statement (like
39
+ * {@link SinkNode}): the emitter drains each base op in list order and yields
40
+ * nothing, and {@link getType} reports the scalar affected-row shape.
41
+ */
42
+ export class ViewMutationNode extends PlanNode {
43
+ baseOps;
44
+ returning;
45
+ envelope;
46
+ returningTiming;
47
+ identityCapture;
48
+ nestedCaptures;
49
+ nodeType = PlanNodeType.ViewMutation;
50
+ constructor(scope,
51
+ /**
52
+ * Ordered base-table DML subtrees the view/MV mutation decomposes into.
53
+ * Single-source = exactly one (the retired-rewrite output, wrapped). When a
54
+ * single-source mutation carries RETURNING, that one base op is a relational
55
+ * `ReturningNode` (the rewritten view-projected clause).
56
+ */
57
+ baseOps,
58
+ /**
59
+ * Separate RETURNING relation producing the view-projected rows — set only
60
+ * for a **multi-source** update/delete RETURNING (the view row spans both
61
+ * base tables, so a re-query of the view supplies it). Single-source
62
+ * RETURNING leaves this undefined and surfaces the relational base op
63
+ * instead. When set, it is threaded through `getChildren`/`getRelations`/
64
+ * `withChildren` and drives `getType`/`getAttributes`.
65
+ */
66
+ returning,
67
+ /**
68
+ * The shared-surrogate envelope for a multi-source insert (undefined for
69
+ * single-source spines and multi-source update/delete).
70
+ */
71
+ envelope,
72
+ /**
73
+ * When {@link returning} is set, whether it is captured `pre` (before the
74
+ * base ops — a delete, whose rows vanish) or `post` (after — an update,
75
+ * whose post-mutation image the re-query reads). Ignored when `returning`
76
+ * is undefined.
77
+ */
78
+ returningTiming,
79
+ /**
80
+ * The up-front base-PK identity capture for a multi-source **update** or
81
+ * multi-side **delete** fan-out: its `source` is materialized into context
82
+ * **before** the base ops run, and read back by `descriptor` by the multi-side
83
+ * base ops' identifying subqueries and/or the post-mutation {@link returning}
84
+ * re-query. Set whenever a multi-source update assigns both sides (⇒ more than
85
+ * one base op) or carries RETURNING, or a lenient delete fans out to both sides
86
+ * (⇒ more than one base op); absent for single-source, single-side delete
87
+ * (whose RETURNING re-queries the view `pre`), and the void/insert paths.
88
+ */
89
+ identityCapture,
90
+ /**
91
+ * Additional identity captures materialized **after** {@link identityCapture}, in
92
+ * array order, **before** the base ops. Each entry's `source` may scan a
93
+ * STRICTLY-earlier capture's materialized rows (the primary {@link identityCapture}
94
+ * or an earlier `nestedCaptures` entry, read back through an
95
+ * `InternalRecursiveCTERefNode` carrying that capture's descriptor) — so they
96
+ * materialize in list order (primary → nested[0] → nested[1] → …) and tear down in
97
+ * reverse. A nested source may depend only on a strictly-earlier capture, never a
98
+ * later one or itself.
99
+ *
100
+ * Load-bearing for the set-op multi-source leg compose, where a join branch's inner
101
+ * base-PK capture chains off the outer set-op capture (its `memberExists` predicate
102
+ * scans the outer capture's `__vmupd_keys`). Empty / undefined for every other
103
+ * producer — a single-capture (or capture-free) statement lowers and runs
104
+ * byte-identically to the pre-list substrate.
105
+ *
106
+ * The list is independent of {@link identityCapture}: although the set-op use always
107
+ * has the outer capture as the primary, the emitter orders materialization off
108
+ * whatever captures are present (primary-then-nested), so a `nestedCaptures` with no
109
+ * primary is handled cleanly too.
110
+ */
111
+ nestedCaptures) {
112
+ super(scope, baseOps.reduce((cost, op) => cost + op.getTotalCost(), 0.1));
113
+ this.baseOps = baseOps;
114
+ this.returning = returning;
115
+ this.envelope = envelope;
116
+ this.returningTiming = returningTiming;
117
+ this.identityCapture = identityCapture;
118
+ this.nestedCaptures = nestedCaptures;
119
+ if (baseOps.length === 0) {
120
+ throw new QuereusError('ViewMutationNode requires at least one base operation', StatusCode.INTERNAL);
121
+ }
122
+ }
123
+ /**
124
+ * The relation whose rows this mutation yields, or `undefined` when it is a
125
+ * void side-effect statement. A separate {@link returning} re-query wins;
126
+ * otherwise a relational base op (single-source RETURNING rewritten onto the
127
+ * base op) is surfaced.
128
+ */
129
+ resultRelation() {
130
+ if (this.returning)
131
+ return this.returning;
132
+ return this.baseOps.find(isRelationalNode);
133
+ }
134
+ getType() {
135
+ const result = this.resultRelation();
136
+ if (result) {
137
+ // RETURNING-through-view: the row type is the view's projected columns.
138
+ return result.getType();
139
+ }
140
+ // A void view mutation is a side-effect statement: like SinkNode it reports
141
+ // the affected-row count.
142
+ return {
143
+ typeClass: 'scalar',
144
+ isReadOnly: true,
145
+ logicalType: INTEGER_TYPE,
146
+ nullable: false,
147
+ };
148
+ }
149
+ /** The view-projected RETURNING attributes, or `[]` for a void mutation. */
150
+ getAttributes() {
151
+ return this.resultRelation()?.getAttributes() ?? [];
152
+ }
153
+ /** Extra (non-base-op) plan children: the envelope source + optional key-default expr. */
154
+ envelopeChildren() {
155
+ if (!this.envelope)
156
+ return [];
157
+ return this.envelope.keyDefault
158
+ ? [this.envelope.source, this.envelope.keyDefault]
159
+ : [this.envelope.source];
160
+ }
161
+ getChildren() {
162
+ // Order: base ops, then the optional RETURNING re-query, then the optional
163
+ // primary identity-capture source, then the nested-capture sources (in list
164
+ // order), then the envelope children. `withChildren` slices back in this same
165
+ // order, and the emitter threads its params identically.
166
+ return [
167
+ ...this.baseOps,
168
+ ...(this.returning ? [this.returning] : []),
169
+ ...(this.identityCapture ? [this.identityCapture.source] : []),
170
+ ...(this.nestedCaptures ?? []).map(c => c.source),
171
+ ...this.envelopeChildren(),
172
+ ];
173
+ }
174
+ getRelations() {
175
+ // Mirrors BlockNode: the base ops are Sink-topped DML statements, not
176
+ // relational inputs, so they are excluded here (the optimizer and the
177
+ // change-scope / binding walks descend via getChildren). A relational base
178
+ // op — a single-source RETURNING op — surfaces, as does the separate
179
+ // multi-source RETURNING re-query, so the attribute-provenance walk treats
180
+ // this node's forwarded RETURNING attributes as forwarded (not originated).
181
+ // The identity-capture source (like the envelope source) is a side input
182
+ // materialized into context, not part of this node's forwarded output, so it
183
+ // is excluded — only reachable via getChildren for optimization/withChildren.
184
+ // The nested-capture sources are excluded for the same reason: each is a side
185
+ // input materialized into context (after the primary capture), never a forwarded
186
+ // relation. (Holds for the both-sides void update too: its base ops are
187
+ // Sink-topped, so the node stays void and no capture source is forwarded.)
188
+ const rels = this.baseOps.filter(isRelationalNode);
189
+ if (this.returning)
190
+ rels.push(this.returning);
191
+ return rels;
192
+ }
193
+ withChildren(newChildren) {
194
+ let cursor = this.baseOps.length;
195
+ const newBaseOps = newChildren.slice(0, cursor);
196
+ let newReturning = this.returning;
197
+ if (this.returning) {
198
+ newReturning = newChildren[cursor];
199
+ cursor += 1;
200
+ }
201
+ let newCapture = this.identityCapture;
202
+ if (this.identityCapture) {
203
+ const newCaptureSource = newChildren[cursor];
204
+ cursor += 1;
205
+ newCapture = { source: newCaptureSource, descriptor: this.identityCapture.descriptor };
206
+ }
207
+ // Slice the nested-capture sources back in the same order getChildren laid them
208
+ // out, rebuilding each IdentityCapture with its PRESERVED descriptor (the readers
209
+ // bind to the descriptor by identity — minting a fresh `{}` would orphan them).
210
+ let newNestedCaptures = this.nestedCaptures;
211
+ if (this.nestedCaptures && this.nestedCaptures.length > 0) {
212
+ newNestedCaptures = this.nestedCaptures.map(c => {
213
+ const source = newChildren[cursor];
214
+ cursor += 1;
215
+ return { source, descriptor: c.descriptor };
216
+ });
217
+ }
218
+ let newEnvelope = this.envelope;
219
+ if (this.envelope) {
220
+ const newSource = newChildren[cursor];
221
+ cursor += 1;
222
+ const newKeyDefault = this.envelope.keyDefault ? newChildren[cursor] : undefined;
223
+ newEnvelope = {
224
+ source: newSource,
225
+ descriptor: this.envelope.descriptor,
226
+ keyDefault: newKeyDefault,
227
+ keyDefaultRowDescriptor: this.envelope.keyDefaultRowDescriptor,
228
+ };
229
+ }
230
+ const unchanged = newChildren.length === this.getChildren().length
231
+ && newBaseOps.every((child, i) => child === this.baseOps[i])
232
+ && newReturning === this.returning
233
+ && (!this.identityCapture || newCapture.source === this.identityCapture.source)
234
+ && (!this.nestedCaptures || this.nestedCaptures.every((c, i) => newNestedCaptures[i].source === c.source))
235
+ && (!this.envelope || (newEnvelope.source === this.envelope.source
236
+ && newEnvelope.keyDefault === this.envelope.keyDefault));
237
+ if (unchanged) {
238
+ return this;
239
+ }
240
+ return new ViewMutationNode(this.scope, newBaseOps, newReturning, newEnvelope, this.returningTiming, newCapture, newNestedCaptures);
241
+ }
242
+ get estimatedRows() {
243
+ return this.resultRelation()?.estimatedRows ?? 1;
244
+ }
245
+ computePhysical() {
246
+ return {
247
+ readonly: false, // drives base-table writes
248
+ idempotent: false,
249
+ deterministic: false,
250
+ };
251
+ }
252
+ toString() {
253
+ const env = this.envelope ? ` +envelope${this.envelope.keyDefault ? '(default)' : ''}` : '';
254
+ // Show a `+capture(<primary>+<nested>)` breakdown when nested captures chain off
255
+ // the primary; keep the bare `+capture` for the common single-capture case.
256
+ const nestedCount = this.nestedCaptures?.length ?? 0;
257
+ const cap = nestedCount > 0
258
+ ? ` +capture(${this.identityCapture ? 1 : 0}+${nestedCount})`
259
+ : this.identityCapture ? ' +capture' : '';
260
+ const ret = this.resultRelation() ? ` returning${this.returning ? `(${this.returningTiming})` : ''}` : '';
261
+ return `VIEW MUTATION (${this.baseOps.length} base op${this.baseOps.length === 1 ? '' : 's'}${env}${cap}${ret})`;
262
+ }
263
+ getLogicalAttributes() {
264
+ return {
265
+ baseOps: this.baseOps.length,
266
+ envelope: this.envelope ? (this.envelope.keyDefault ? 'default' : 'shared') : undefined,
267
+ identityCapture: this.identityCapture ? 'identity' : undefined,
268
+ nestedCaptures: this.nestedCaptures && this.nestedCaptures.length > 0 ? this.nestedCaptures.length : undefined,
269
+ returning: this.resultRelation() ? (this.returning ? `requery(${this.returningTiming})` : 'base-op') : undefined,
270
+ };
271
+ }
272
+ }
273
+ //# sourceMappingURL=view-mutation-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-mutation-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/view-mutation-node.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ import { PlanNode, type ZeroAryScalarNode } from './plan-node.js';
3
3
  import type { ScalarType } from '../../common/datatype.js';
4
4
  import type { Scope } from '../scopes/scope.js';
5
5
  import type { WindowFunctionExpr } from '../../parser/ast.js';
6
+ import type { LogicalType } from '../../types/logical-type.js';
7
+ import { type DeepReadonly } from '../../common/types.js';
6
8
  /**
7
9
  * Represents a window function call in the query plan.
8
10
  * Window functions are computed during window operation execution.
@@ -12,9 +14,23 @@ export declare class WindowFunctionCallNode extends PlanNode implements ZeroAryS
12
14
  readonly functionName: string;
13
15
  readonly isDistinct: boolean;
14
16
  readonly alias?: string | undefined;
17
+ /**
18
+ * Logical types of the built argument expressions, supplied by the
19
+ * builders so `getType()` can consult `schema.inferReturnType` (e.g.
20
+ * window MIN/MAX deriving their argument's type). Zero-ary node carries
21
+ * no argument children, so the types must be threaded in explicitly.
22
+ */
23
+ readonly argTypes?: ReadonlyArray<DeepReadonly<LogicalType>> | undefined;
15
24
  readonly nodeType = PlanNodeType.WindowFunctionCall;
16
25
  private outputTypeCache;
17
- constructor(scope: Scope, expression: WindowFunctionExpr, functionName: string, isDistinct?: boolean, alias?: string | undefined, estimatedCostOverride?: number);
26
+ constructor(scope: Scope, expression: WindowFunctionExpr, functionName: string, isDistinct?: boolean, alias?: string | undefined,
27
+ /**
28
+ * Logical types of the built argument expressions, supplied by the
29
+ * builders so `getType()` can consult `schema.inferReturnType` (e.g.
30
+ * window MIN/MAX deriving their argument's type). Zero-ary node carries
31
+ * no argument children, so the types must be threaded in explicitly.
32
+ */
33
+ argTypes?: ReadonlyArray<DeepReadonly<LogicalType>> | undefined, estimatedCostOverride?: number);
18
34
  getType(): ScalarType;
19
35
  getChildren(): readonly [];
20
36
  getRelations(): readonly [];
@@ -1 +1 @@
1
- {"version":3,"file":"window-function.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/window-function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAQ9D;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,QAAS,YAAW,iBAAiB;aAO/D,UAAU,EAAE,kBAAkB;aAC9B,YAAY,EAAE,MAAM;aACpB,UAAU,EAAE,OAAO;aACnB,KAAK,CAAC,EAAE,MAAM;IAT/B,SAAkB,QAAQ,mCAAmC;IAE7D,OAAO,CAAC,eAAe,CAAqB;gBAG3C,KAAK,EAAE,KAAK,EACI,UAAU,EAAE,kBAAkB,EAC9B,YAAY,EAAE,MAAM,EACpB,UAAU,GAAE,OAAe,EAC3B,KAAK,CAAC,EAAE,MAAM,YAAA,EAC9B,qBAAqB,CAAC,EAAE,MAAM;IAe/B,OAAO,IAAI,UAAU;IAIrB,WAAW,IAAI,SAAS,EAAE;IAI1B,YAAY,IAAI,SAAS,EAAE;IAI3B,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAO/C,QAAQ,IAAI,MAAM;IAMlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAQxD"}
1
+ {"version":3,"file":"window-function.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/window-function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAK9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,EAAc,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEtE;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,QAAS,YAAW,iBAAiB;aAO/D,UAAU,EAAE,kBAAkB;aAC9B,YAAY,EAAE,MAAM;aACpB,UAAU,EAAE,OAAO;aACnB,KAAK,CAAC,EAAE,MAAM;IAC9B;;;;;OAKG;aACa,QAAQ,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IAhBpE,SAAkB,QAAQ,mCAAmC;IAE7D,OAAO,CAAC,eAAe,CAAqB;gBAG3C,KAAK,EAAE,KAAK,EACI,UAAU,EAAE,kBAAkB,EAC9B,YAAY,EAAE,MAAM,EACpB,UAAU,GAAE,OAAe,EAC3B,KAAK,CAAC,EAAE,MAAM,YAAA;IAC9B;;;;;OAKG;IACa,QAAQ,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,YAAA,EACnE,qBAAqB,CAAC,EAAE,MAAM;IAoB/B,OAAO,IAAI,UAAU;IAIrB,WAAW,IAAI,SAAS,EAAE;IAI1B,YAAY,IAAI,SAAS,EAAE;IAI3B,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAO/C,QAAQ,IAAI,MAAM;IAMlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAQxD"}