@quereus/quereus 3.3.0 → 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 (900) 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 -110
  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 +793 -118
  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 +276 -7
  98. package/dist/src/parser/parser.d.ts.map +1 -1
  99. package/dist/src/parser/parser.js +1387 -469
  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/change-scope.d.ts +34 -4
  115. package/dist/src/planner/analysis/change-scope.d.ts.map +1 -1
  116. package/dist/src/planner/analysis/change-scope.js +108 -7
  117. package/dist/src/planner/analysis/change-scope.js.map +1 -1
  118. package/dist/src/planner/analysis/check-extraction.d.ts +36 -2
  119. package/dist/src/planner/analysis/check-extraction.d.ts.map +1 -1
  120. package/dist/src/planner/analysis/check-extraction.js +174 -46
  121. package/dist/src/planner/analysis/check-extraction.js.map +1 -1
  122. package/dist/src/planner/analysis/coarsened-key.d.ts +109 -0
  123. package/dist/src/planner/analysis/coarsened-key.d.ts.map +1 -0
  124. package/dist/src/planner/analysis/coarsened-key.js +228 -0
  125. package/dist/src/planner/analysis/coarsened-key.js.map +1 -0
  126. package/dist/src/planner/analysis/comparison-collation.d.ts +216 -0
  127. package/dist/src/planner/analysis/comparison-collation.d.ts.map +1 -0
  128. package/dist/src/planner/analysis/comparison-collation.js +341 -0
  129. package/dist/src/planner/analysis/comparison-collation.js.map +1 -0
  130. package/dist/src/planner/analysis/constraint-extractor.d.ts +3 -1
  131. package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
  132. package/dist/src/planner/analysis/constraint-extractor.js +192 -9
  133. package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
  134. package/dist/src/planner/analysis/coverage-prover.d.ts +321 -0
  135. package/dist/src/planner/analysis/coverage-prover.d.ts.map +1 -0
  136. package/dist/src/planner/analysis/coverage-prover.js +1038 -0
  137. package/dist/src/planner/analysis/coverage-prover.js.map +1 -0
  138. package/dist/src/planner/analysis/key-filter.d.ts +22 -0
  139. package/dist/src/planner/analysis/key-filter.d.ts.map +1 -0
  140. package/dist/src/planner/analysis/key-filter.js +105 -0
  141. package/dist/src/planner/analysis/key-filter.js.map +1 -0
  142. package/dist/src/planner/analysis/partial-unique-extraction.d.ts +36 -1
  143. package/dist/src/planner/analysis/partial-unique-extraction.d.ts.map +1 -1
  144. package/dist/src/planner/analysis/partial-unique-extraction.js +148 -22
  145. package/dist/src/planner/analysis/partial-unique-extraction.js.map +1 -1
  146. package/dist/src/planner/analysis/predicate-normalizer.d.ts.map +1 -1
  147. package/dist/src/planner/analysis/predicate-normalizer.js +30 -1
  148. package/dist/src/planner/analysis/predicate-normalizer.js.map +1 -1
  149. package/dist/src/planner/analysis/predicate-shape.d.ts +36 -1
  150. package/dist/src/planner/analysis/predicate-shape.d.ts.map +1 -1
  151. package/dist/src/planner/analysis/predicate-shape.js +51 -13
  152. package/dist/src/planner/analysis/predicate-shape.js.map +1 -1
  153. package/dist/src/planner/analysis/query-rewrite-matcher.d.ts +314 -0
  154. package/dist/src/planner/analysis/query-rewrite-matcher.d.ts.map +1 -0
  155. package/dist/src/planner/analysis/query-rewrite-matcher.js +1081 -0
  156. package/dist/src/planner/analysis/query-rewrite-matcher.js.map +1 -0
  157. package/dist/src/planner/analysis/scalar-invertibility.d.ts +92 -0
  158. package/dist/src/planner/analysis/scalar-invertibility.d.ts.map +1 -0
  159. package/dist/src/planner/analysis/scalar-invertibility.js +129 -0
  160. package/dist/src/planner/analysis/scalar-invertibility.js.map +1 -0
  161. package/dist/src/planner/analysis/update-lineage.d.ts +196 -0
  162. package/dist/src/planner/analysis/update-lineage.d.ts.map +1 -0
  163. package/dist/src/planner/analysis/update-lineage.js +322 -0
  164. package/dist/src/planner/analysis/update-lineage.js.map +1 -0
  165. package/dist/src/planner/analysis/view-complement.d.ts +42 -0
  166. package/dist/src/planner/analysis/view-complement.d.ts.map +1 -0
  167. package/dist/src/planner/analysis/view-complement.js +54 -0
  168. package/dist/src/planner/analysis/view-complement.js.map +1 -0
  169. package/dist/src/planner/building/alter-table.d.ts +1 -1
  170. package/dist/src/planner/building/alter-table.d.ts.map +1 -1
  171. package/dist/src/planner/building/alter-table.js +211 -2
  172. package/dist/src/planner/building/alter-table.js.map +1 -1
  173. package/dist/src/planner/building/block.d.ts.map +1 -1
  174. package/dist/src/planner/building/block.js +18 -1
  175. package/dist/src/planner/building/block.js.map +1 -1
  176. package/dist/src/planner/building/constraint-builder.d.ts +33 -5
  177. package/dist/src/planner/building/constraint-builder.d.ts.map +1 -1
  178. package/dist/src/planner/building/constraint-builder.js +63 -28
  179. package/dist/src/planner/building/constraint-builder.js.map +1 -1
  180. package/dist/src/planner/building/create-view.d.ts +9 -0
  181. package/dist/src/planner/building/create-view.d.ts.map +1 -1
  182. package/dist/src/planner/building/create-view.js +41 -12
  183. package/dist/src/planner/building/create-view.js.map +1 -1
  184. package/dist/src/planner/building/ddl.d.ts.map +1 -1
  185. package/dist/src/planner/building/ddl.js +94 -0
  186. package/dist/src/planner/building/ddl.js.map +1 -1
  187. package/dist/src/planner/building/declare-schema.d.ts +1 -0
  188. package/dist/src/planner/building/declare-schema.d.ts.map +1 -1
  189. package/dist/src/planner/building/declare-schema.js +4 -1
  190. package/dist/src/planner/building/declare-schema.js.map +1 -1
  191. package/dist/src/planner/building/default-scope.d.ts +26 -0
  192. package/dist/src/planner/building/default-scope.d.ts.map +1 -0
  193. package/dist/src/planner/building/default-scope.js +41 -0
  194. package/dist/src/planner/building/default-scope.js.map +1 -0
  195. package/dist/src/planner/building/delete.d.ts +19 -1
  196. package/dist/src/planner/building/delete.d.ts.map +1 -1
  197. package/dist/src/planner/building/delete.js +109 -30
  198. package/dist/src/planner/building/delete.js.map +1 -1
  199. package/dist/src/planner/building/dml-target.d.ts +118 -0
  200. package/dist/src/planner/building/dml-target.d.ts.map +1 -0
  201. package/dist/src/planner/building/dml-target.js +282 -0
  202. package/dist/src/planner/building/dml-target.js.map +1 -0
  203. package/dist/src/planner/building/drop-index.d.ts.map +1 -1
  204. package/dist/src/planner/building/drop-index.js +4 -1
  205. package/dist/src/planner/building/drop-index.js.map +1 -1
  206. package/dist/src/planner/building/drop-view.d.ts.map +1 -1
  207. package/dist/src/planner/building/drop-view.js +4 -2
  208. package/dist/src/planner/building/drop-view.js.map +1 -1
  209. package/dist/src/planner/building/expression.d.ts.map +1 -1
  210. package/dist/src/planner/building/expression.js +60 -21
  211. package/dist/src/planner/building/expression.js.map +1 -1
  212. package/dist/src/planner/building/foreign-key-builder.d.ts +30 -0
  213. package/dist/src/planner/building/foreign-key-builder.d.ts.map +1 -1
  214. package/dist/src/planner/building/foreign-key-builder.js +160 -129
  215. package/dist/src/planner/building/foreign-key-builder.js.map +1 -1
  216. package/dist/src/planner/building/insert.d.ts +45 -2
  217. package/dist/src/planner/building/insert.d.ts.map +1 -1
  218. package/dist/src/planner/building/insert.js +257 -88
  219. package/dist/src/planner/building/insert.js.map +1 -1
  220. package/dist/src/planner/building/lens-auxiliary-access.d.ts +22 -0
  221. package/dist/src/planner/building/lens-auxiliary-access.d.ts.map +1 -0
  222. package/dist/src/planner/building/lens-auxiliary-access.js +132 -0
  223. package/dist/src/planner/building/lens-auxiliary-access.js.map +1 -0
  224. package/dist/src/planner/building/materialized-view.d.ts +16 -0
  225. package/dist/src/planner/building/materialized-view.d.ts.map +1 -0
  226. package/dist/src/planner/building/materialized-view.js +57 -0
  227. package/dist/src/planner/building/materialized-view.js.map +1 -0
  228. package/dist/src/planner/building/returning-star.d.ts +32 -0
  229. package/dist/src/planner/building/returning-star.d.ts.map +1 -0
  230. package/dist/src/planner/building/returning-star.js +45 -0
  231. package/dist/src/planner/building/returning-star.js.map +1 -0
  232. package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
  233. package/dist/src/planner/building/select-aggregates.js +47 -0
  234. package/dist/src/planner/building/select-aggregates.js.map +1 -1
  235. package/dist/src/planner/building/select-compound.d.ts.map +1 -1
  236. package/dist/src/planner/building/select-compound.js +84 -11
  237. package/dist/src/planner/building/select-compound.js.map +1 -1
  238. package/dist/src/planner/building/select-context.d.ts +10 -2
  239. package/dist/src/planner/building/select-context.d.ts.map +1 -1
  240. package/dist/src/planner/building/select-context.js +7 -1
  241. package/dist/src/planner/building/select-context.js.map +1 -1
  242. package/dist/src/planner/building/select-modifiers.js +6 -0
  243. package/dist/src/planner/building/select-modifiers.js.map +1 -1
  244. package/dist/src/planner/building/select-ordinal.d.ts +18 -0
  245. package/dist/src/planner/building/select-ordinal.d.ts.map +1 -1
  246. package/dist/src/planner/building/select-ordinal.js +30 -0
  247. package/dist/src/planner/building/select-ordinal.js.map +1 -1
  248. package/dist/src/planner/building/select-projections.d.ts +8 -2
  249. package/dist/src/planner/building/select-projections.d.ts.map +1 -1
  250. package/dist/src/planner/building/select-projections.js +26 -4
  251. package/dist/src/planner/building/select-projections.js.map +1 -1
  252. package/dist/src/planner/building/select-window.d.ts.map +1 -1
  253. package/dist/src/planner/building/select-window.js +8 -5
  254. package/dist/src/planner/building/select-window.js.map +1 -1
  255. package/dist/src/planner/building/select.d.ts.map +1 -1
  256. package/dist/src/planner/building/select.js +164 -59
  257. package/dist/src/planner/building/select.js.map +1 -1
  258. package/dist/src/planner/building/set-object-tags.d.ts +7 -0
  259. package/dist/src/planner/building/set-object-tags.d.ts.map +1 -0
  260. package/dist/src/planner/building/set-object-tags.js +38 -0
  261. package/dist/src/planner/building/set-object-tags.js.map +1 -0
  262. package/dist/src/planner/building/tag-diagnostics.d.ts +27 -0
  263. package/dist/src/planner/building/tag-diagnostics.d.ts.map +1 -0
  264. package/dist/src/planner/building/tag-diagnostics.js +37 -0
  265. package/dist/src/planner/building/tag-diagnostics.js.map +1 -0
  266. package/dist/src/planner/building/update.d.ts +18 -1
  267. package/dist/src/planner/building/update.d.ts.map +1 -1
  268. package/dist/src/planner/building/update.js +134 -58
  269. package/dist/src/planner/building/update.js.map +1 -1
  270. package/dist/src/planner/building/view-mutation-builder.d.ts +15 -0
  271. package/dist/src/planner/building/view-mutation-builder.d.ts.map +1 -0
  272. package/dist/src/planner/building/view-mutation-builder.js +1158 -0
  273. package/dist/src/planner/building/view-mutation-builder.js.map +1 -0
  274. package/dist/src/planner/building/with.d.ts +11 -0
  275. package/dist/src/planner/building/with.d.ts.map +1 -1
  276. package/dist/src/planner/building/with.js +48 -10
  277. package/dist/src/planner/building/with.js.map +1 -1
  278. package/dist/src/planner/cost/index.d.ts +83 -0
  279. package/dist/src/planner/cost/index.d.ts.map +1 -1
  280. package/dist/src/planner/cost/index.js +114 -0
  281. package/dist/src/planner/cost/index.js.map +1 -1
  282. package/dist/src/planner/framework/characteristics.d.ts +38 -4
  283. package/dist/src/planner/framework/characteristics.d.ts.map +1 -1
  284. package/dist/src/planner/framework/characteristics.js +50 -6
  285. package/dist/src/planner/framework/characteristics.js.map +1 -1
  286. package/dist/src/planner/framework/pass.d.ts.map +1 -1
  287. package/dist/src/planner/framework/pass.js +2 -1
  288. package/dist/src/planner/framework/pass.js.map +1 -1
  289. package/dist/src/planner/framework/registry.d.ts +39 -1
  290. package/dist/src/planner/framework/registry.d.ts.map +1 -1
  291. package/dist/src/planner/framework/registry.js +18 -2
  292. package/dist/src/planner/framework/registry.js.map +1 -1
  293. package/dist/src/planner/mutation/backward-body.d.ts +131 -0
  294. package/dist/src/planner/mutation/backward-body.d.ts.map +1 -0
  295. package/dist/src/planner/mutation/backward-body.js +135 -0
  296. package/dist/src/planner/mutation/backward-body.js.map +1 -0
  297. package/dist/src/planner/mutation/cte-flatten.d.ts +17 -0
  298. package/dist/src/planner/mutation/cte-flatten.d.ts.map +1 -0
  299. package/dist/src/planner/mutation/cte-flatten.js +364 -0
  300. package/dist/src/planner/mutation/cte-flatten.js.map +1 -0
  301. package/dist/src/planner/mutation/decomposition.d.ts +273 -0
  302. package/dist/src/planner/mutation/decomposition.d.ts.map +1 -0
  303. package/dist/src/planner/mutation/decomposition.js +1719 -0
  304. package/dist/src/planner/mutation/decomposition.js.map +1 -0
  305. package/dist/src/planner/mutation/lens-enforcement.d.ts +165 -0
  306. package/dist/src/planner/mutation/lens-enforcement.d.ts.map +1 -0
  307. package/dist/src/planner/mutation/lens-enforcement.js +745 -0
  308. package/dist/src/planner/mutation/lens-enforcement.js.map +1 -0
  309. package/dist/src/planner/mutation/multi-source.d.ts +568 -0
  310. package/dist/src/planner/mutation/multi-source.d.ts.map +1 -0
  311. package/dist/src/planner/mutation/multi-source.js +2915 -0
  312. package/dist/src/planner/mutation/multi-source.js.map +1 -0
  313. package/dist/src/planner/mutation/mutation-diagnostic.d.ts +37 -0
  314. package/dist/src/planner/mutation/mutation-diagnostic.d.ts.map +1 -0
  315. package/dist/src/planner/mutation/mutation-diagnostic.js +24 -0
  316. package/dist/src/planner/mutation/mutation-diagnostic.js.map +1 -0
  317. package/dist/src/planner/mutation/mutation-tags.d.ts +33 -0
  318. package/dist/src/planner/mutation/mutation-tags.d.ts.map +1 -0
  319. package/dist/src/planner/mutation/mutation-tags.js +31 -0
  320. package/dist/src/planner/mutation/mutation-tags.js.map +1 -0
  321. package/dist/src/planner/mutation/propagate.d.ts +97 -0
  322. package/dist/src/planner/mutation/propagate.d.ts.map +1 -0
  323. package/dist/src/planner/mutation/propagate.js +220 -0
  324. package/dist/src/planner/mutation/propagate.js.map +1 -0
  325. package/dist/src/planner/mutation/scope-transform.d.ts +181 -0
  326. package/dist/src/planner/mutation/scope-transform.d.ts.map +1 -0
  327. package/dist/src/planner/mutation/scope-transform.js +574 -0
  328. package/dist/src/planner/mutation/scope-transform.js.map +1 -0
  329. package/dist/src/planner/mutation/set-op.d.ts +242 -0
  330. package/dist/src/planner/mutation/set-op.d.ts.map +1 -0
  331. package/dist/src/planner/mutation/set-op.js +1687 -0
  332. package/dist/src/planner/mutation/set-op.js.map +1 -0
  333. package/dist/src/planner/mutation/single-source.d.ts +261 -0
  334. package/dist/src/planner/mutation/single-source.d.ts.map +1 -0
  335. package/dist/src/planner/mutation/single-source.js +1096 -0
  336. package/dist/src/planner/mutation/single-source.js.map +1 -0
  337. package/dist/src/planner/nodes/aggregate-node.js +3 -3
  338. package/dist/src/planner/nodes/aggregate-node.js.map +1 -1
  339. package/dist/src/planner/nodes/alias-node.d.ts.map +1 -1
  340. package/dist/src/planner/nodes/alias-node.js +5 -1
  341. package/dist/src/planner/nodes/alias-node.js.map +1 -1
  342. package/dist/src/planner/nodes/alter-table-node.d.ts +124 -1
  343. package/dist/src/planner/nodes/alter-table-node.d.ts.map +1 -1
  344. package/dist/src/planner/nodes/alter-table-node.js +27 -0
  345. package/dist/src/planner/nodes/alter-table-node.js.map +1 -1
  346. package/dist/src/planner/nodes/analyze-node.d.ts +2 -1
  347. package/dist/src/planner/nodes/analyze-node.d.ts.map +1 -1
  348. package/dist/src/planner/nodes/analyze-node.js +18 -1
  349. package/dist/src/planner/nodes/analyze-node.js.map +1 -1
  350. package/dist/src/planner/nodes/asserted-keys-node.d.ts +43 -0
  351. package/dist/src/planner/nodes/asserted-keys-node.d.ts.map +1 -0
  352. package/dist/src/planner/nodes/asserted-keys-node.js +99 -0
  353. package/dist/src/planner/nodes/asserted-keys-node.js.map +1 -0
  354. package/dist/src/planner/nodes/async-gather-node.d.ts.map +1 -1
  355. package/dist/src/planner/nodes/async-gather-node.js +33 -8
  356. package/dist/src/planner/nodes/async-gather-node.js.map +1 -1
  357. package/dist/src/planner/nodes/bloom-join-node.d.ts.map +1 -1
  358. package/dist/src/planner/nodes/bloom-join-node.js +2 -1
  359. package/dist/src/planner/nodes/bloom-join-node.js.map +1 -1
  360. package/dist/src/planner/nodes/create-view-node.d.ts +7 -2
  361. package/dist/src/planner/nodes/create-view-node.d.ts.map +1 -1
  362. package/dist/src/planner/nodes/create-view-node.js +4 -1
  363. package/dist/src/planner/nodes/create-view-node.js.map +1 -1
  364. package/dist/src/planner/nodes/declarative-schema.d.ts +13 -1
  365. package/dist/src/planner/nodes/declarative-schema.d.ts.map +1 -1
  366. package/dist/src/planner/nodes/declarative-schema.js +32 -0
  367. package/dist/src/planner/nodes/declarative-schema.js.map +1 -1
  368. package/dist/src/planner/nodes/distinct-node.d.ts.map +1 -1
  369. package/dist/src/planner/nodes/distinct-node.js +2 -0
  370. package/dist/src/planner/nodes/distinct-node.js.map +1 -1
  371. package/dist/src/planner/nodes/dml-executor-node.d.ts +29 -1
  372. package/dist/src/planner/nodes/dml-executor-node.d.ts.map +1 -1
  373. package/dist/src/planner/nodes/dml-executor-node.js +27 -3
  374. package/dist/src/planner/nodes/dml-executor-node.js.map +1 -1
  375. package/dist/src/planner/nodes/eager-prefetch-node.d.ts.map +1 -1
  376. package/dist/src/planner/nodes/eager-prefetch-node.js +2 -0
  377. package/dist/src/planner/nodes/eager-prefetch-node.js.map +1 -1
  378. package/dist/src/planner/nodes/envelope-scan-node.d.ts +42 -0
  379. package/dist/src/planner/nodes/envelope-scan-node.d.ts.map +1 -0
  380. package/dist/src/planner/nodes/envelope-scan-node.js +62 -0
  381. package/dist/src/planner/nodes/envelope-scan-node.js.map +1 -0
  382. package/dist/src/planner/nodes/fanout-lookup-join-node.d.ts.map +1 -1
  383. package/dist/src/planner/nodes/fanout-lookup-join-node.js +11 -1
  384. package/dist/src/planner/nodes/fanout-lookup-join-node.js.map +1 -1
  385. package/dist/src/planner/nodes/filter.d.ts.map +1 -1
  386. package/dist/src/planner/nodes/filter.js +63 -13
  387. package/dist/src/planner/nodes/filter.js.map +1 -1
  388. package/dist/src/planner/nodes/join-node.d.ts +41 -1
  389. package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
  390. package/dist/src/planner/nodes/join-node.js +78 -8
  391. package/dist/src/planner/nodes/join-node.js.map +1 -1
  392. package/dist/src/planner/nodes/join-utils.d.ts +33 -6
  393. package/dist/src/planner/nodes/join-utils.d.ts.map +1 -1
  394. package/dist/src/planner/nodes/join-utils.js +124 -9
  395. package/dist/src/planner/nodes/join-utils.js.map +1 -1
  396. package/dist/src/planner/nodes/lens-auxiliary-access-node.d.ts +104 -0
  397. package/dist/src/planner/nodes/lens-auxiliary-access-node.d.ts.map +1 -0
  398. package/dist/src/planner/nodes/lens-auxiliary-access-node.js +91 -0
  399. package/dist/src/planner/nodes/lens-auxiliary-access-node.js.map +1 -0
  400. package/dist/src/planner/nodes/limit-offset.d.ts.map +1 -1
  401. package/dist/src/planner/nodes/limit-offset.js +4 -5
  402. package/dist/src/planner/nodes/limit-offset.js.map +1 -1
  403. package/dist/src/planner/nodes/materialized-view-nodes.d.ts +69 -0
  404. package/dist/src/planner/nodes/materialized-view-nodes.d.ts.map +1 -0
  405. package/dist/src/planner/nodes/materialized-view-nodes.js +111 -0
  406. package/dist/src/planner/nodes/materialized-view-nodes.js.map +1 -0
  407. package/dist/src/planner/nodes/merge-join-node.d.ts.map +1 -1
  408. package/dist/src/planner/nodes/merge-join-node.js +2 -1
  409. package/dist/src/planner/nodes/merge-join-node.js.map +1 -1
  410. package/dist/src/planner/nodes/ordinal-slice-node.d.ts.map +1 -1
  411. package/dist/src/planner/nodes/ordinal-slice-node.js +2 -0
  412. package/dist/src/planner/nodes/ordinal-slice-node.js.map +1 -1
  413. package/dist/src/planner/nodes/plan-node-type.d.ts +9 -0
  414. package/dist/src/planner/nodes/plan-node-type.d.ts.map +1 -1
  415. package/dist/src/planner/nodes/plan-node-type.js +9 -0
  416. package/dist/src/planner/nodes/plan-node-type.js.map +1 -1
  417. package/dist/src/planner/nodes/plan-node.d.ts +265 -5
  418. package/dist/src/planner/nodes/plan-node.d.ts.map +1 -1
  419. package/dist/src/planner/nodes/plan-node.js.map +1 -1
  420. package/dist/src/planner/nodes/pragma.d.ts +2 -1
  421. package/dist/src/planner/nodes/pragma.d.ts.map +1 -1
  422. package/dist/src/planner/nodes/pragma.js +12 -0
  423. package/dist/src/planner/nodes/pragma.js.map +1 -1
  424. package/dist/src/planner/nodes/project-node.d.ts +14 -1
  425. package/dist/src/planner/nodes/project-node.d.ts.map +1 -1
  426. package/dist/src/planner/nodes/project-node.js +85 -11
  427. package/dist/src/planner/nodes/project-node.js.map +1 -1
  428. package/dist/src/planner/nodes/reference.d.ts.map +1 -1
  429. package/dist/src/planner/nodes/reference.js +62 -27
  430. package/dist/src/planner/nodes/reference.js.map +1 -1
  431. package/dist/src/planner/nodes/retrieve-node.d.ts.map +1 -1
  432. package/dist/src/planner/nodes/retrieve-node.js +7 -0
  433. package/dist/src/planner/nodes/retrieve-node.js.map +1 -1
  434. package/dist/src/planner/nodes/returning-node.d.ts.map +1 -1
  435. package/dist/src/planner/nodes/returning-node.js +10 -3
  436. package/dist/src/planner/nodes/returning-node.js.map +1 -1
  437. package/dist/src/planner/nodes/scalar.d.ts +20 -0
  438. package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
  439. package/dist/src/planner/nodes/scalar.js +71 -14
  440. package/dist/src/planner/nodes/scalar.js.map +1 -1
  441. package/dist/src/planner/nodes/set-object-tags-node.d.ts +39 -0
  442. package/dist/src/planner/nodes/set-object-tags-node.d.ts.map +1 -0
  443. package/dist/src/planner/nodes/set-object-tags-node.js +41 -0
  444. package/dist/src/planner/nodes/set-object-tags-node.js.map +1 -0
  445. package/dist/src/planner/nodes/set-operation-node.d.ts +123 -1
  446. package/dist/src/planner/nodes/set-operation-node.d.ts.map +1 -1
  447. package/dist/src/planner/nodes/set-operation-node.js +291 -18
  448. package/dist/src/planner/nodes/set-operation-node.js.map +1 -1
  449. package/dist/src/planner/nodes/single-row.d.ts.map +1 -1
  450. package/dist/src/planner/nodes/single-row.js +3 -0
  451. package/dist/src/planner/nodes/single-row.js.map +1 -1
  452. package/dist/src/planner/nodes/sort.d.ts.map +1 -1
  453. package/dist/src/planner/nodes/sort.js +7 -6
  454. package/dist/src/planner/nodes/sort.js.map +1 -1
  455. package/dist/src/planner/nodes/subquery.d.ts +2 -0
  456. package/dist/src/planner/nodes/subquery.d.ts.map +1 -1
  457. package/dist/src/planner/nodes/subquery.js +18 -2
  458. package/dist/src/planner/nodes/subquery.js.map +1 -1
  459. package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
  460. package/dist/src/planner/nodes/table-access-nodes.js +23 -3
  461. package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
  462. package/dist/src/planner/nodes/table-function-call.js +6 -0
  463. package/dist/src/planner/nodes/table-function-call.js.map +1 -1
  464. package/dist/src/planner/nodes/values-node.d.ts +1 -0
  465. package/dist/src/planner/nodes/values-node.d.ts.map +1 -1
  466. package/dist/src/planner/nodes/values-node.js +16 -6
  467. package/dist/src/planner/nodes/values-node.js.map +1 -1
  468. package/dist/src/planner/nodes/view-mutation-node.d.ts +259 -0
  469. package/dist/src/planner/nodes/view-mutation-node.d.ts.map +1 -0
  470. package/dist/src/planner/nodes/view-mutation-node.js +273 -0
  471. package/dist/src/planner/nodes/view-mutation-node.js.map +1 -0
  472. package/dist/src/planner/nodes/window-function.d.ts +17 -1
  473. package/dist/src/planner/nodes/window-function.d.ts.map +1 -1
  474. package/dist/src/planner/nodes/window-function.js +15 -1
  475. package/dist/src/planner/nodes/window-function.js.map +1 -1
  476. package/dist/src/planner/nodes/window-node.js +2 -2
  477. package/dist/src/planner/nodes/window-node.js.map +1 -1
  478. package/dist/src/planner/optimizer.d.ts.map +1 -1
  479. package/dist/src/planner/optimizer.js +372 -39
  480. package/dist/src/planner/optimizer.js.map +1 -1
  481. package/dist/src/planner/planning-context.d.ts +1 -1
  482. package/dist/src/planner/planning-context.d.ts.map +1 -1
  483. package/dist/src/planner/rules/access/lens-access-form-matcher.d.ts +70 -0
  484. package/dist/src/planner/rules/access/lens-access-form-matcher.d.ts.map +1 -0
  485. package/dist/src/planner/rules/access/lens-access-form-matcher.js +156 -0
  486. package/dist/src/planner/rules/access/lens-access-form-matcher.js.map +1 -0
  487. package/dist/src/planner/rules/access/rule-lens-auxiliary-access.d.ts +31 -0
  488. package/dist/src/planner/rules/access/rule-lens-auxiliary-access.d.ts.map +1 -0
  489. package/dist/src/planner/rules/access/rule-lens-auxiliary-access.js +176 -0
  490. package/dist/src/planner/rules/access/rule-lens-auxiliary-access.js.map +1 -0
  491. package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
  492. package/dist/src/planner/rules/access/rule-select-access-path.js +435 -37
  493. package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
  494. package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.d.ts.map +1 -1
  495. package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.js +9 -0
  496. package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.js.map +1 -1
  497. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.d.ts +39 -0
  498. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.d.ts.map +1 -0
  499. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js +616 -0
  500. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js.map +1 -0
  501. package/dist/src/planner/rules/cache/rule-scalar-cse.d.ts.map +1 -1
  502. package/dist/src/planner/rules/cache/rule-scalar-cse.js +8 -1
  503. package/dist/src/planner/rules/cache/rule-scalar-cse.js.map +1 -1
  504. package/dist/src/planner/rules/join/equi-pair-extractor.d.ts +36 -0
  505. package/dist/src/planner/rules/join/equi-pair-extractor.d.ts.map +1 -1
  506. package/dist/src/planner/rules/join/equi-pair-extractor.js +38 -1
  507. package/dist/src/planner/rules/join/equi-pair-extractor.js.map +1 -1
  508. package/dist/src/planner/rules/join/rule-fanout-batched-outer.d.ts.map +1 -1
  509. package/dist/src/planner/rules/join/rule-fanout-batched-outer.js +10 -0
  510. package/dist/src/planner/rules/join/rule-fanout-batched-outer.js.map +1 -1
  511. package/dist/src/planner/rules/join/rule-fanout-lookup-join.d.ts.map +1 -1
  512. package/dist/src/planner/rules/join/rule-fanout-lookup-join.js +19 -1
  513. package/dist/src/planner/rules/join/rule-fanout-lookup-join.js.map +1 -1
  514. package/dist/src/planner/rules/join/rule-inner-join-existence-recovery.d.ts +130 -0
  515. package/dist/src/planner/rules/join/rule-inner-join-existence-recovery.d.ts.map +1 -0
  516. package/dist/src/planner/rules/join/rule-inner-join-existence-recovery.js +206 -0
  517. package/dist/src/planner/rules/join/rule-inner-join-existence-recovery.js.map +1 -0
  518. package/dist/src/planner/rules/join/rule-join-elimination.d.ts +67 -14
  519. package/dist/src/planner/rules/join/rule-join-elimination.d.ts.map +1 -1
  520. package/dist/src/planner/rules/join/rule-join-elimination.js +81 -25
  521. package/dist/src/planner/rules/join/rule-join-elimination.js.map +1 -1
  522. package/dist/src/planner/rules/join/rule-join-existence-pruning.d.ts +84 -0
  523. package/dist/src/planner/rules/join/rule-join-existence-pruning.d.ts.map +1 -0
  524. package/dist/src/planner/rules/join/rule-join-existence-pruning.js +138 -0
  525. package/dist/src/planner/rules/join/rule-join-existence-pruning.js.map +1 -0
  526. package/dist/src/planner/rules/join/rule-join-greedy-commute.d.ts.map +1 -1
  527. package/dist/src/planner/rules/join/rule-join-greedy-commute.js +9 -1
  528. package/dist/src/planner/rules/join/rule-join-greedy-commute.js.map +1 -1
  529. package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts.map +1 -1
  530. package/dist/src/planner/rules/join/rule-join-physical-selection.js +12 -1
  531. package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -1
  532. package/dist/src/planner/rules/join/rule-lateral-top1-asof.d.ts.map +1 -1
  533. package/dist/src/planner/rules/join/rule-lateral-top1-asof.js +4 -0
  534. package/dist/src/planner/rules/join/rule-lateral-top1-asof.js.map +1 -1
  535. package/dist/src/planner/rules/join/rule-monotonic-merge-join.d.ts.map +1 -1
  536. package/dist/src/planner/rules/join/rule-monotonic-merge-join.js +4 -0
  537. package/dist/src/planner/rules/join/rule-monotonic-merge-join.js.map +1 -1
  538. package/dist/src/planner/rules/join/rule-quickpick-enumeration.d.ts.map +1 -1
  539. package/dist/src/planner/rules/join/rule-quickpick-enumeration.js +10 -0
  540. package/dist/src/planner/rules/join/rule-quickpick-enumeration.js.map +1 -1
  541. package/dist/src/planner/rules/join/rule-semijoin-existence-recovery.d.ts +286 -0
  542. package/dist/src/planner/rules/join/rule-semijoin-existence-recovery.d.ts.map +1 -0
  543. package/dist/src/planner/rules/join/rule-semijoin-existence-recovery.js +548 -0
  544. package/dist/src/planner/rules/join/rule-semijoin-existence-recovery.js.map +1 -0
  545. package/dist/src/planner/rules/parallel/rule-async-gather-union-all.d.ts.map +1 -1
  546. package/dist/src/planner/rules/parallel/rule-async-gather-union-all.js +9 -1
  547. package/dist/src/planner/rules/parallel/rule-async-gather-union-all.js.map +1 -1
  548. package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.d.ts.map +1 -1
  549. package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.js +7 -0
  550. package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.js.map +1 -1
  551. package/dist/src/planner/rules/parallel/rule-eager-prefetch-probe.d.ts.map +1 -1
  552. package/dist/src/planner/rules/parallel/rule-eager-prefetch-probe.js +10 -1
  553. package/dist/src/planner/rules/parallel/rule-eager-prefetch-probe.js.map +1 -1
  554. package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.d.ts.map +1 -1
  555. package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.js +9 -0
  556. package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.js.map +1 -1
  557. package/dist/src/planner/rules/predicate/rule-empty-relation-folding.d.ts.map +1 -1
  558. package/dist/src/planner/rules/predicate/rule-empty-relation-folding.js +18 -0
  559. package/dist/src/planner/rules/predicate/rule-empty-relation-folding.js.map +1 -1
  560. package/dist/src/planner/rules/predicate/rule-filter-contradiction.d.ts.map +1 -1
  561. package/dist/src/planner/rules/predicate/rule-filter-contradiction.js +7 -0
  562. package/dist/src/planner/rules/predicate/rule-filter-contradiction.js.map +1 -1
  563. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.d.ts.map +1 -1
  564. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js +9 -0
  565. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js.map +1 -1
  566. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js +13 -3
  567. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js.map +1 -1
  568. package/dist/src/planner/rules/retrieve/rule-projection-pruning.d.ts.map +1 -1
  569. package/dist/src/planner/rules/retrieve/rule-projection-pruning.js +14 -0
  570. package/dist/src/planner/rules/retrieve/rule-projection-pruning.js.map +1 -1
  571. package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.d.ts +1 -1
  572. package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.js +4 -4
  573. package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.js.map +1 -1
  574. package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.d.ts.map +1 -1
  575. package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.js +8 -0
  576. package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.js.map +1 -1
  577. package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.d.ts.map +1 -1
  578. package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.js +7 -0
  579. package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.js.map +1 -1
  580. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts.map +1 -1
  581. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js +12 -0
  582. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js.map +1 -1
  583. package/dist/src/planner/type-utils.d.ts +14 -0
  584. package/dist/src/planner/type-utils.d.ts.map +1 -1
  585. package/dist/src/planner/type-utils.js +66 -21
  586. package/dist/src/planner/type-utils.js.map +1 -1
  587. package/dist/src/planner/util/fd-utils.d.ts +177 -43
  588. package/dist/src/planner/util/fd-utils.d.ts.map +1 -1
  589. package/dist/src/planner/util/fd-utils.js +396 -101
  590. package/dist/src/planner/util/fd-utils.js.map +1 -1
  591. package/dist/src/planner/util/ind-utils.d.ts +27 -1
  592. package/dist/src/planner/util/ind-utils.d.ts.map +1 -1
  593. package/dist/src/planner/util/ind-utils.js +80 -6
  594. package/dist/src/planner/util/ind-utils.js.map +1 -1
  595. package/dist/src/planner/util/key-utils.d.ts.map +1 -1
  596. package/dist/src/planner/util/key-utils.js +81 -12
  597. package/dist/src/planner/util/key-utils.js.map +1 -1
  598. package/dist/src/planner/util/set-op-wrapper.d.ts +37 -0
  599. package/dist/src/planner/util/set-op-wrapper.d.ts.map +1 -0
  600. package/dist/src/planner/util/set-op-wrapper.js +82 -0
  601. package/dist/src/planner/util/set-op-wrapper.js.map +1 -0
  602. package/dist/src/planner/validation/plan-validator.d.ts.map +1 -1
  603. package/dist/src/planner/validation/plan-validator.js +1 -0
  604. package/dist/src/planner/validation/plan-validator.js.map +1 -1
  605. package/dist/src/runtime/context-helpers.d.ts +13 -1
  606. package/dist/src/runtime/context-helpers.d.ts.map +1 -1
  607. package/dist/src/runtime/context-helpers.js +7 -1
  608. package/dist/src/runtime/context-helpers.js.map +1 -1
  609. package/dist/src/runtime/delta-executor.d.ts +30 -1
  610. package/dist/src/runtime/delta-executor.d.ts.map +1 -1
  611. package/dist/src/runtime/delta-executor.js +29 -4
  612. package/dist/src/runtime/delta-executor.js.map +1 -1
  613. package/dist/src/runtime/emit/add-constraint.d.ts.map +1 -1
  614. package/dist/src/runtime/emit/add-constraint.js +38 -5
  615. package/dist/src/runtime/emit/add-constraint.js.map +1 -1
  616. package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
  617. package/dist/src/runtime/emit/aggregate.js +10 -8
  618. package/dist/src/runtime/emit/aggregate.js.map +1 -1
  619. package/dist/src/runtime/emit/alter-table.d.ts +1 -1
  620. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  621. package/dist/src/runtime/emit/alter-table.js +664 -108
  622. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  623. package/dist/src/runtime/emit/analyze.d.ts.map +1 -1
  624. package/dist/src/runtime/emit/analyze.js +2 -1
  625. package/dist/src/runtime/emit/analyze.js.map +1 -1
  626. package/dist/src/runtime/emit/asof-scan.d.ts.map +1 -1
  627. package/dist/src/runtime/emit/asof-scan.js +18 -5
  628. package/dist/src/runtime/emit/asof-scan.js.map +1 -1
  629. package/dist/src/runtime/emit/asserted-keys.d.ts +13 -0
  630. package/dist/src/runtime/emit/asserted-keys.d.ts.map +1 -0
  631. package/dist/src/runtime/emit/asserted-keys.js +13 -0
  632. package/dist/src/runtime/emit/asserted-keys.js.map +1 -0
  633. package/dist/src/runtime/emit/between.d.ts.map +1 -1
  634. package/dist/src/runtime/emit/between.js +24 -19
  635. package/dist/src/runtime/emit/between.js.map +1 -1
  636. package/dist/src/runtime/emit/binary.d.ts.map +1 -1
  637. package/dist/src/runtime/emit/binary.js +5 -9
  638. package/dist/src/runtime/emit/binary.js.map +1 -1
  639. package/dist/src/runtime/emit/block.d.ts.map +1 -1
  640. package/dist/src/runtime/emit/block.js +11 -2
  641. package/dist/src/runtime/emit/block.js.map +1 -1
  642. package/dist/src/runtime/emit/bloom-join.d.ts.map +1 -1
  643. package/dist/src/runtime/emit/bloom-join.js +8 -2
  644. package/dist/src/runtime/emit/bloom-join.js.map +1 -1
  645. package/dist/src/runtime/emit/constraint-check.js +15 -0
  646. package/dist/src/runtime/emit/constraint-check.js.map +1 -1
  647. package/dist/src/runtime/emit/create-table.d.ts.map +1 -1
  648. package/dist/src/runtime/emit/create-table.js +8 -0
  649. package/dist/src/runtime/emit/create-table.js.map +1 -1
  650. package/dist/src/runtime/emit/create-view.d.ts.map +1 -1
  651. package/dist/src/runtime/emit/create-view.js +16 -1
  652. package/dist/src/runtime/emit/create-view.js.map +1 -1
  653. package/dist/src/runtime/emit/dml-executor.d.ts +27 -0
  654. package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
  655. package/dist/src/runtime/emit/dml-executor.js +413 -193
  656. package/dist/src/runtime/emit/dml-executor.js.map +1 -1
  657. package/dist/src/runtime/emit/drop-table.d.ts.map +1 -1
  658. package/dist/src/runtime/emit/drop-table.js +10 -0
  659. package/dist/src/runtime/emit/drop-table.js.map +1 -1
  660. package/dist/src/runtime/emit/drop-view.d.ts.map +1 -1
  661. package/dist/src/runtime/emit/drop-view.js +17 -0
  662. package/dist/src/runtime/emit/drop-view.js.map +1 -1
  663. package/dist/src/runtime/emit/envelope-scan.d.ts +13 -0
  664. package/dist/src/runtime/emit/envelope-scan.d.ts.map +1 -0
  665. package/dist/src/runtime/emit/envelope-scan.js +22 -0
  666. package/dist/src/runtime/emit/envelope-scan.js.map +1 -0
  667. package/dist/src/runtime/emit/join.d.ts +10 -2
  668. package/dist/src/runtime/emit/join.d.ts.map +1 -1
  669. package/dist/src/runtime/emit/join.js +128 -38
  670. package/dist/src/runtime/emit/join.js.map +1 -1
  671. package/dist/src/runtime/emit/lens-auxiliary-access.d.ts +16 -0
  672. package/dist/src/runtime/emit/lens-auxiliary-access.d.ts.map +1 -0
  673. package/dist/src/runtime/emit/lens-auxiliary-access.js +16 -0
  674. package/dist/src/runtime/emit/lens-auxiliary-access.js.map +1 -0
  675. package/dist/src/runtime/emit/materialized-view-helpers.d.ts +640 -0
  676. package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -0
  677. package/dist/src/runtime/emit/materialized-view-helpers.js +2576 -0
  678. package/dist/src/runtime/emit/materialized-view-helpers.js.map +1 -0
  679. package/dist/src/runtime/emit/materialized-view.d.ts +31 -0
  680. package/dist/src/runtime/emit/materialized-view.d.ts.map +1 -0
  681. package/dist/src/runtime/emit/materialized-view.js +187 -0
  682. package/dist/src/runtime/emit/materialized-view.js.map +1 -0
  683. package/dist/src/runtime/emit/merge-join.d.ts.map +1 -1
  684. package/dist/src/runtime/emit/merge-join.js +15 -3
  685. package/dist/src/runtime/emit/merge-join.js.map +1 -1
  686. package/dist/src/runtime/emit/project.d.ts.map +1 -1
  687. package/dist/src/runtime/emit/project.js +10 -5
  688. package/dist/src/runtime/emit/project.js.map +1 -1
  689. package/dist/src/runtime/emit/schema-declarative.d.ts +1 -0
  690. package/dist/src/runtime/emit/schema-declarative.d.ts.map +1 -1
  691. package/dist/src/runtime/emit/schema-declarative.js +101 -5
  692. package/dist/src/runtime/emit/schema-declarative.js.map +1 -1
  693. package/dist/src/runtime/emit/set-object-tags.d.ts +16 -0
  694. package/dist/src/runtime/emit/set-object-tags.d.ts.map +1 -0
  695. package/dist/src/runtime/emit/set-object-tags.js +57 -0
  696. package/dist/src/runtime/emit/set-object-tags.js.map +1 -0
  697. package/dist/src/runtime/emit/set-operation.d.ts.map +1 -1
  698. package/dist/src/runtime/emit/set-operation.js +140 -24
  699. package/dist/src/runtime/emit/set-operation.js.map +1 -1
  700. package/dist/src/runtime/emit/subquery.d.ts.map +1 -1
  701. package/dist/src/runtime/emit/subquery.js +110 -5
  702. package/dist/src/runtime/emit/subquery.js.map +1 -1
  703. package/dist/src/runtime/emit/unary.d.ts.map +1 -1
  704. package/dist/src/runtime/emit/unary.js +34 -6
  705. package/dist/src/runtime/emit/unary.js.map +1 -1
  706. package/dist/src/runtime/emit/view-mutation.d.ts +70 -0
  707. package/dist/src/runtime/emit/view-mutation.d.ts.map +1 -0
  708. package/dist/src/runtime/emit/view-mutation.js +299 -0
  709. package/dist/src/runtime/emit/view-mutation.js.map +1 -0
  710. package/dist/src/runtime/emit/window.js +29 -5
  711. package/dist/src/runtime/emit/window.js.map +1 -1
  712. package/dist/src/runtime/foreign-key-actions.d.ts +66 -3
  713. package/dist/src/runtime/foreign-key-actions.d.ts.map +1 -1
  714. package/dist/src/runtime/foreign-key-actions.js +580 -172
  715. package/dist/src/runtime/foreign-key-actions.js.map +1 -1
  716. package/dist/src/runtime/parallel-driver.d.ts +4 -1
  717. package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
  718. package/dist/src/runtime/parallel-driver.js +5 -1
  719. package/dist/src/runtime/parallel-driver.js.map +1 -1
  720. package/dist/src/runtime/register.d.ts.map +1 -1
  721. package/dist/src/runtime/register.js +17 -1
  722. package/dist/src/runtime/register.js.map +1 -1
  723. package/dist/src/runtime/types.d.ts +10 -0
  724. package/dist/src/runtime/types.d.ts.map +1 -1
  725. package/dist/src/runtime/types.js.map +1 -1
  726. package/dist/src/schema/basis-backfill.d.ts +63 -0
  727. package/dist/src/schema/basis-backfill.d.ts.map +1 -0
  728. package/dist/src/schema/basis-backfill.js +161 -0
  729. package/dist/src/schema/basis-backfill.js.map +1 -0
  730. package/dist/src/schema/catalog.d.ts +115 -1
  731. package/dist/src/schema/catalog.d.ts.map +1 -1
  732. package/dist/src/schema/catalog.js +249 -22
  733. package/dist/src/schema/catalog.js.map +1 -1
  734. package/dist/src/schema/change-events.d.ts +42 -1
  735. package/dist/src/schema/change-events.d.ts.map +1 -1
  736. package/dist/src/schema/change-events.js.map +1 -1
  737. package/dist/src/schema/column.d.ts +16 -0
  738. package/dist/src/schema/column.d.ts.map +1 -1
  739. package/dist/src/schema/column.js.map +1 -1
  740. package/dist/src/schema/constraint-builder.d.ts +182 -0
  741. package/dist/src/schema/constraint-builder.d.ts.map +1 -0
  742. package/dist/src/schema/constraint-builder.js +424 -0
  743. package/dist/src/schema/constraint-builder.js.map +1 -0
  744. package/dist/src/schema/ddl-generator.d.ts +86 -1
  745. package/dist/src/schema/ddl-generator.d.ts.map +1 -1
  746. package/dist/src/schema/ddl-generator.js +316 -20
  747. package/dist/src/schema/ddl-generator.js.map +1 -1
  748. package/dist/src/schema/declared-schema-manager.d.ts +51 -0
  749. package/dist/src/schema/declared-schema-manager.d.ts.map +1 -1
  750. package/dist/src/schema/declared-schema-manager.js +61 -0
  751. package/dist/src/schema/declared-schema-manager.js.map +1 -1
  752. package/dist/src/schema/derivation.d.ts +106 -0
  753. package/dist/src/schema/derivation.d.ts.map +1 -0
  754. package/dist/src/schema/derivation.js +25 -0
  755. package/dist/src/schema/derivation.js.map +1 -0
  756. package/dist/src/schema/function.d.ts +13 -0
  757. package/dist/src/schema/function.d.ts.map +1 -1
  758. package/dist/src/schema/function.js.map +1 -1
  759. package/dist/src/schema/lens-ack.d.ts +90 -0
  760. package/dist/src/schema/lens-ack.d.ts.map +1 -0
  761. package/dist/src/schema/lens-ack.js +361 -0
  762. package/dist/src/schema/lens-ack.js.map +1 -0
  763. package/dist/src/schema/lens-compiler.d.ts +62 -0
  764. package/dist/src/schema/lens-compiler.d.ts.map +1 -0
  765. package/dist/src/schema/lens-compiler.js +1594 -0
  766. package/dist/src/schema/lens-compiler.js.map +1 -0
  767. package/dist/src/schema/lens-fk-discovery.d.ts +175 -0
  768. package/dist/src/schema/lens-fk-discovery.d.ts.map +1 -0
  769. package/dist/src/schema/lens-fk-discovery.js +336 -0
  770. package/dist/src/schema/lens-fk-discovery.js.map +1 -0
  771. package/dist/src/schema/lens-prover.d.ts +336 -0
  772. package/dist/src/schema/lens-prover.d.ts.map +1 -0
  773. package/dist/src/schema/lens-prover.js +1988 -0
  774. package/dist/src/schema/lens-prover.js.map +1 -0
  775. package/dist/src/schema/lens.d.ts +254 -0
  776. package/dist/src/schema/lens.d.ts.map +1 -0
  777. package/dist/src/schema/lens.js +21 -0
  778. package/dist/src/schema/lens.js.map +1 -0
  779. package/dist/src/schema/manager.d.ts +676 -18
  780. package/dist/src/schema/manager.d.ts.map +1 -1
  781. package/dist/src/schema/manager.js +1573 -238
  782. package/dist/src/schema/manager.js.map +1 -1
  783. package/dist/src/schema/mapping-advertisement-tags.d.ts +39 -0
  784. package/dist/src/schema/mapping-advertisement-tags.d.ts.map +1 -0
  785. package/dist/src/schema/mapping-advertisement-tags.js +216 -0
  786. package/dist/src/schema/mapping-advertisement-tags.js.map +1 -0
  787. package/dist/src/schema/rename-rewriter.d.ts +45 -4
  788. package/dist/src/schema/rename-rewriter.d.ts.map +1 -1
  789. package/dist/src/schema/rename-rewriter.js +412 -19
  790. package/dist/src/schema/rename-rewriter.js.map +1 -1
  791. package/dist/src/schema/reserved-tags-policy.d.ts +32 -0
  792. package/dist/src/schema/reserved-tags-policy.d.ts.map +1 -0
  793. package/dist/src/schema/reserved-tags-policy.js +34 -0
  794. package/dist/src/schema/reserved-tags-policy.js.map +1 -0
  795. package/dist/src/schema/reserved-tags.d.ts +170 -0
  796. package/dist/src/schema/reserved-tags.d.ts.map +1 -0
  797. package/dist/src/schema/reserved-tags.js +507 -0
  798. package/dist/src/schema/reserved-tags.js.map +1 -0
  799. package/dist/src/schema/schema-differ.d.ts +158 -2
  800. package/dist/src/schema/schema-differ.d.ts.map +1 -1
  801. package/dist/src/schema/schema-differ.js +1460 -78
  802. package/dist/src/schema/schema-differ.js.map +1 -1
  803. package/dist/src/schema/schema-hasher.d.ts +8 -3
  804. package/dist/src/schema/schema-hasher.d.ts.map +1 -1
  805. package/dist/src/schema/schema-hasher.js +22 -2
  806. package/dist/src/schema/schema-hasher.js.map +1 -1
  807. package/dist/src/schema/schema.d.ts +25 -1
  808. package/dist/src/schema/schema.d.ts.map +1 -1
  809. package/dist/src/schema/schema.js +36 -2
  810. package/dist/src/schema/schema.js.map +1 -1
  811. package/dist/src/schema/table.d.ts +259 -10
  812. package/dist/src/schema/table.d.ts.map +1 -1
  813. package/dist/src/schema/table.js +309 -26
  814. package/dist/src/schema/table.js.map +1 -1
  815. package/dist/src/schema/unique-enforcement.d.ts +78 -0
  816. package/dist/src/schema/unique-enforcement.d.ts.map +1 -0
  817. package/dist/src/schema/unique-enforcement.js +93 -0
  818. package/dist/src/schema/unique-enforcement.js.map +1 -0
  819. package/dist/src/schema/view.d.ts +83 -2
  820. package/dist/src/schema/view.d.ts.map +1 -1
  821. package/dist/src/schema/view.js +67 -1
  822. package/dist/src/schema/view.js.map +1 -1
  823. package/dist/src/schema/window-function.d.ts +9 -1
  824. package/dist/src/schema/window-function.d.ts.map +1 -1
  825. package/dist/src/schema/window-function.js.map +1 -1
  826. package/dist/src/util/comparison.d.ts +24 -0
  827. package/dist/src/util/comparison.d.ts.map +1 -1
  828. package/dist/src/util/comparison.js +34 -0
  829. package/dist/src/util/comparison.js.map +1 -1
  830. package/dist/src/util/mutation-statement.d.ts.map +1 -1
  831. package/dist/src/util/mutation-statement.js +4 -1
  832. package/dist/src/util/mutation-statement.js.map +1 -1
  833. package/dist/src/util/serialization.d.ts +9 -0
  834. package/dist/src/util/serialization.d.ts.map +1 -1
  835. package/dist/src/util/serialization.js +26 -0
  836. package/dist/src/util/serialization.js.map +1 -1
  837. package/dist/src/vtab/backing-host.d.ts +286 -0
  838. package/dist/src/vtab/backing-host.d.ts.map +1 -0
  839. package/dist/src/vtab/backing-host.js +118 -0
  840. package/dist/src/vtab/backing-host.js.map +1 -0
  841. package/dist/src/vtab/best-access-plan.d.ts +21 -0
  842. package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
  843. package/dist/src/vtab/best-access-plan.js.map +1 -1
  844. package/dist/src/vtab/capabilities.d.ts +5 -5
  845. package/dist/src/vtab/capabilities.d.ts.map +1 -1
  846. package/dist/src/vtab/mapping-advertisement.d.ts +163 -0
  847. package/dist/src/vtab/mapping-advertisement.d.ts.map +1 -0
  848. package/dist/src/vtab/mapping-advertisement.js +2 -0
  849. package/dist/src/vtab/mapping-advertisement.js.map +1 -0
  850. package/dist/src/vtab/memory/index.d.ts +64 -4
  851. package/dist/src/vtab/memory/index.d.ts.map +1 -1
  852. package/dist/src/vtab/memory/index.js +119 -12
  853. package/dist/src/vtab/memory/index.js.map +1 -1
  854. package/dist/src/vtab/memory/layer/base.d.ts +38 -1
  855. package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
  856. package/dist/src/vtab/memory/layer/base.js +112 -24
  857. package/dist/src/vtab/memory/layer/base.js.map +1 -1
  858. package/dist/src/vtab/memory/layer/manager.d.ts +291 -4
  859. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  860. package/dist/src/vtab/memory/layer/manager.js +1050 -91
  861. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  862. package/dist/src/vtab/memory/layer/plan-filter.d.ts.map +1 -1
  863. package/dist/src/vtab/memory/layer/plan-filter.js +35 -6
  864. package/dist/src/vtab/memory/layer/plan-filter.js.map +1 -1
  865. package/dist/src/vtab/memory/layer/scan-layer.d.ts.map +1 -1
  866. package/dist/src/vtab/memory/layer/scan-layer.js +66 -14
  867. package/dist/src/vtab/memory/layer/scan-layer.js.map +1 -1
  868. package/dist/src/vtab/memory/layer/scan-plan.d.ts +14 -0
  869. package/dist/src/vtab/memory/layer/scan-plan.d.ts.map +1 -1
  870. package/dist/src/vtab/memory/layer/scan-plan.js +27 -4
  871. package/dist/src/vtab/memory/layer/scan-plan.js.map +1 -1
  872. package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
  873. package/dist/src/vtab/memory/layer/transaction.js +5 -1
  874. package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
  875. package/dist/src/vtab/memory/module.d.ts +17 -0
  876. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  877. package/dist/src/vtab/memory/module.js +82 -3
  878. package/dist/src/vtab/memory/module.js.map +1 -1
  879. package/dist/src/vtab/memory/table.d.ts.map +1 -1
  880. package/dist/src/vtab/memory/table.js +15 -5
  881. package/dist/src/vtab/memory/table.js.map +1 -1
  882. package/dist/src/vtab/memory/types.d.ts +20 -2
  883. package/dist/src/vtab/memory/types.d.ts.map +1 -1
  884. package/dist/src/vtab/memory/utils/predicate.d.ts.map +1 -1
  885. package/dist/src/vtab/memory/utils/predicate.js +46 -24
  886. package/dist/src/vtab/memory/utils/predicate.js.map +1 -1
  887. package/dist/src/vtab/memory/utils/primary-key-encode.d.ts +31 -0
  888. package/dist/src/vtab/memory/utils/primary-key-encode.d.ts.map +1 -0
  889. package/dist/src/vtab/memory/utils/primary-key-encode.js +101 -0
  890. package/dist/src/vtab/memory/utils/primary-key-encode.js.map +1 -0
  891. package/dist/src/vtab/memory/utils/primary-key.d.ts +8 -0
  892. package/dist/src/vtab/memory/utils/primary-key.d.ts.map +1 -1
  893. package/dist/src/vtab/memory/utils/primary-key.js +12 -5
  894. package/dist/src/vtab/memory/utils/primary-key.js.map +1 -1
  895. package/dist/src/vtab/module.d.ts +203 -4
  896. package/dist/src/vtab/module.d.ts.map +1 -1
  897. package/dist/src/vtab/table.d.ts +9 -0
  898. package/dist/src/vtab/table.d.ts.map +1 -1
  899. package/dist/src/vtab/table.js.map +1 -1
  900. package/package.json +6 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lens-enforcement.js","sourceRoot":"","sources":["../../../../src/planner/mutation/lens-enforcement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,568 @@
1
+ import type * as AST from '../../parser/ast.js';
2
+ import type { PlanningContext } from '../planning-context.js';
3
+ import type { Scope } from '../scopes/scope.js';
4
+ import type { TableSchema } from '../../schema/table.js';
5
+ import { type RelationalPlanNode, type TableDescriptor, type RelationalComponentRef } from '../nodes/plan-node.js';
6
+ import type { ScalarType } from '../../common/datatype.js';
7
+ import { TableReferenceNode } from '../nodes/reference.js';
8
+ import { InternalRecursiveCTERefNode } from '../nodes/internal-recursive-cte-ref-node.js';
9
+ import { JoinNode } from '../nodes/join-node.js';
10
+ import type { BaseOp, MutableViewLike, MutationRequest } from './propagate.js';
11
+ /**
12
+ * Multi-source view-mediated DML decomposition — the **key-preserving join**
13
+ * acceptance case of the view-mutation substrate (docs/view-updateability.md
14
+ * § Per-Operator Semantics — Inner Join, § Outer Joins, § Multi-Base-Table Mutations).
15
+ *
16
+ * Scope: a view body that is an **n-way (≥2) equi-join** of base tables — `inner`,
17
+ * `left`, or `full` — including composite-PK sides and **self-joins** (one base table
18
+ * under two or more distinct aliases) — written through with `update` / `delete` /
19
+ * `insert`. **LEFT** and **RIGHT** outer joins are admitted for the
20
+ * **statically-expressible** cases: preserved-side update passthrough,
21
+ * delete-to-the-preserved-side, and insert routing (both-side / preserved-only /
22
+ * presence-gated non-preserved member). RIGHT is the exact **mirror** of LEFT — the
23
+ * right operand of a `right` join is preserved, the left operand is null-extended — and
24
+ * the runtime now executes a RIGHT join (`outer-join-right-full-runtime`), so a
25
+ * RIGHT-join view is both readable and writable. **FULL** is admitted only to carry its
26
+ * precise conservative diagnostics (no preserved side, so all writes reject and the
27
+ * surfaces report all-`NO`; FULL write-through — a preserved anchor for a body that is
28
+ * null-extended per row — is a separable future concern). The one outer-join case that
29
+ * needs new runtime — an UPDATE of a **non-preserved** column (a per-row matched-update /
30
+ * null-extended-insert branch) — defers with `unsupported-outer-join-update`
31
+ * (`view-write-optional-member-transitions`). The body is
32
+ * **planned once**
33
+ * (`analyzeJoinView`); its `PhysicalProperties.updateLineage` (threaded by
34
+ * `view-mutation-physical-lineage`) routes each output column to its owning base
35
+ * table. Each per-base SET/value is still lowered to an AST `BaseOp` so the ordinary
36
+ * base-table builders are reused verbatim (the documented lower-risk path — the base
37
+ * builders stay untouched), but **row identification no longer round-trips through a
38
+ * re-planned AST body**: every affected view row's base-PK identities are captured
39
+ * ONCE up-front, built as plan nodes directly over the already-planned join body
40
+ * (`Project_{k<side>}(Filter_{idPred}(joinNode))` — the derived backward walk the
41
+ * docs name, § Round-Trip Laws and the Derived Backward Walk), materialized before
42
+ * any base op fires, and each base op reads its identifying values back from that
43
+ * `__vmupd_keys` set:
44
+ *
45
+ * ```sql
46
+ * -- view: select j1.id as id, j1.a as a, j2.c as c
47
+ * -- from tj1 j1 join tj2 j2 on j2.id = j1.t2id
48
+ * update jv set a = 5, c = 9 where id = 3
49
+ * -- capture (plan nodes over the planned join body, materialized once):
50
+ * -- __vmupd_keys = π_{j1.id as k0, j2.id as k1}( σ_{id = 3}( tj1 ⋈ tj2 ) )
51
+ * -> update tj1 set a = 5 where id in (select k0 from __vmupd_keys)
52
+ * update tj2 set c = 9 where id in (select k1 from __vmupd_keys)
53
+ * ```
54
+ *
55
+ * The capture reconstructs the row-identifying predicate (each owning side's base PK)
56
+ * from the planned join body — exactly the predicate the optimizer already proves a
57
+ * key over — so a side whose own PK is hidden by the projection (`tj2.id` above) is
58
+ * still addressable, and a both-sides write is mutation-order-independent (the
59
+ * FK-parent op cannot rewrite a predicate column out from under the FK-child op).
60
+ * UPDATE RETURNING re-queries the same planned `joinNode` (post-mutation, restricted
61
+ * to the captured identities); DELETE RETURNING projects the planned body `root` (the
62
+ * `pre` OLD image). The body is planned once and reused — no second `buildSelectStmt`
63
+ * / `cloneFromClause` of it for identification or RETURNING.
64
+ *
65
+ * Multi-source **`insert`** is analysed here (`analyzeMultiSourceInsert`) but *built* by
66
+ * `building/view-mutation-builder.ts` (`buildMultiSourceInsert`), because it needs the
67
+ * plan-level shared-surrogate envelope rather than an AST `BaseOp`: the shared join key is
68
+ * not a view column, so it is sourced from the anchor key column's declared `default` once
69
+ * per row at the envelope and threaded into the active base inserts via the equivalence
70
+ * class (§ Mutation Context). For an outer join the **non-preserved** side is an *optional*
71
+ * member of the fan-out — dropped when its columns are absent (the preserved-only insert),
72
+ * presence-gated per row when supplied (the both-side insert).
73
+ *
74
+ * **Deferred, rejected here with a structured diagnostic:**
75
+ * - UPDATE of a non-preserved outer-join column — `unsupported-outer-join-update`.
76
+ * - INSERT of only non-preserved columns with no preserved anchor — `null-extended-create-conflict`.
77
+ * - cross / set-op / aggregate / window bodies — `unsupported-*`.
78
+ * - comma (implicit) joins, `select *` join bodies, and cross-side `set` value
79
+ * references — each a precise diagnostic.
80
+ * - composite **shared-key insert** (the surrogate envelope threads a single-column
81
+ * key) — `unsupported-decomposition-key`. (Composite-PK *identification* on the
82
+ * update/delete capture path IS supported here; only the insert envelope's shared
83
+ * key stays single-column.)
84
+ */
85
+ /**
86
+ * The shared identity-capture CTE name for a multi-source (n-way inner-join) UPDATE /
87
+ * multi-side DELETE fan-out. Each affected view row's base-PK identities are
88
+ * materialized ONCE — *before* any base op fires — into `rctx.tableContexts` under a
89
+ * shared descriptor. *Every* per-side base op reads its identifying values back from
90
+ * this set via a correlated EXISTS (`exists (select 1 from __vmupd_keys k where
91
+ * k.k<side>_<j> = <side>.<pk<j>> …)`) instead of a live re-query of the join body, so
92
+ * the first op cannot empty the join — or rewrite a predicate column — out from under
93
+ * a later op's identifying subquery (a mutation-order-independent identity). The same
94
+ * capture backs the UPDATE RETURNING re-query (docs/view-updateability.md § Inner Join,
95
+ * § `returning`).
96
+ *
97
+ * The capture relation carries one column **per side per PK column**, named
98
+ * `k<sideIndex>_<pkColumnOrdinal>` ({@link keyColumnName}) — so a composite-PK side
99
+ * contributes `k<side>_0, k<side>_1, …`. This flattened per-side-per-column shape is
100
+ * what generalizes the substrate past the retired single-column `(k0, k1)` tuple.
101
+ */
102
+ export declare const MS_UPDATE_KEYS_CTE = "__vmupd_keys";
103
+ /**
104
+ * The capture column name for side `sideIndex`'s `j`-th PK column. A single-column-PK
105
+ * side yields just `k<side>_0`; a composite-PK side yields `k<side>_0, k<side>_1, …`.
106
+ */
107
+ export declare function keyColumnName(sideIndex: number, j: number): string;
108
+ /** One base-table side of the join. */
109
+ interface JoinSide {
110
+ readonly table: TableReferenceNode;
111
+ readonly schema: TableSchema;
112
+ /** AST alias (lowercased) the body uses for this source, or the table name. */
113
+ readonly alias: string;
114
+ /**
115
+ * True when this side is **preserved** by the join shape — an inner-join side, or
116
+ * the preserved side of a LEFT/RIGHT outer join (the left of `left`, the right of
117
+ * `right`). A **non-preserved** side (`preserved: false`) is potentially
118
+ * null-extended: the right of a `left`, the left of a `right`, and *both* sides of
119
+ * a `full` outer join (§ Outer Joins). The per-op routing keys off this: an UPDATE
120
+ * defers a non-preserved-column write, a DELETE routes to preserved side(s), an
121
+ * INSERT treats a non-preserved side as an optional (presence-gated) member.
122
+ */
123
+ readonly preserved: boolean;
124
+ /**
125
+ * The enclosing outer join's ON predicate — the *guard* under which this
126
+ * non-preserved side's columns are real (the row is null-extended when the guard
127
+ * fails). Absent for a preserved side, and for an outer join expressed with USING
128
+ * (no AST `Expression` guard). Surfaced from the planned join shape for future
129
+ * per-row materialization; v1 routing does not consume it.
130
+ */
131
+ readonly guard?: AST.Expression;
132
+ }
133
+ /** One output column of the join view body, by backward lineage. */
134
+ interface OutColumn {
135
+ /** Output (view) column name, lowercased. */
136
+ readonly name: string;
137
+ /** Output (view) column name in its original display spelling (for `returning *`). */
138
+ readonly displayName: string;
139
+ /** Index into `sides` of the owning base table (base-writable columns only). */
140
+ readonly sideIndex?: number;
141
+ /** Owning base column name (base-writable columns only). */
142
+ readonly baseColumn?: string;
143
+ /**
144
+ * True for a `base` lineage site — an identity/rename projection OR a
145
+ * non-identity invertible transform (`inverse` present). Writable on update: an
146
+ * `inverse` column lowers its assigned value through {@link inverse} (§ Scalar
147
+ * Invertibility). A `computed` / `null-extended` site is read-only (`false`).
148
+ */
149
+ readonly writable: boolean;
150
+ /**
151
+ * True when the owning site is an outer-join **non-preserved** (null-extended)
152
+ * base column. Distinguishes a deferred outer-join column (base lineage present,
153
+ * but the write needs per-row materialization — `unsupported-outer-join-update`)
154
+ * from a genuinely computed column (no base lineage — `no-inverse`). A
155
+ * null-extended base column is still **insertable** (the both-sides envelope
156
+ * supplies it), so it carries {@link sideIndex} / {@link baseColumn}.
157
+ */
158
+ readonly nullExtended: boolean;
159
+ /**
160
+ * Backward inverse closure for a non-identity invertible base site — maps a
161
+ * *written* (view-domain) value to the base column's value (e.g. `cv + 1` ⇒
162
+ * `w ↦ w - 1`). Absent for an identity/rename column. Insert through such a
163
+ * column is NOT supported (the shared-surrogate envelope writes raw values) —
164
+ * see {@link analyzeMultiSourceInsert}.
165
+ */
166
+ readonly inverse?: (written: AST.Expression) => AST.Expression;
167
+ /**
168
+ * Domain predicate (base terms) an `inverse` profile restricts to; conjoined
169
+ * into the row-identifying predicate on update (§ Scalar Invertibility). No
170
+ * shipped profile produces one yet (`x ± k` is unrestricted), so it is
171
+ * currently always absent.
172
+ */
173
+ readonly domain?: AST.Expression;
174
+ /**
175
+ * Set for an outer-join `existence` (`exists … as`) flag column. It maps to **no
176
+ * base column** ({@link sideIndex} / {@link baseColumn} stay undefined), so it is
177
+ * not a base-write target; instead a write to it is a per-row insert/delete of the
178
+ * named component (§ Existence columns). `existenceSide` is the resolved
179
+ * non-preserved side it reifies the match of — the side the flag-flip materializes
180
+ * (`true`) or removes (`false`). The write router keys off this presence.
181
+ */
182
+ readonly existenceComponent?: RelationalComponentRef;
183
+ /** The non-preserved side index the existence flag drives (present iff {@link existenceComponent}). */
184
+ readonly existenceSide?: number;
185
+ /**
186
+ * Set for an authored (`with inverse`) column — writable through the put
187
+ * expressions, one base assignment per put, each routed to its owning join side
188
+ * ({@link sideIndex} / {@link baseColumn} stay undefined: there is no single
189
+ * verbatim base column). `newRefIndex` maps a put's `new.<name>` references to
190
+ * output column indexes of this analysis's `outColumns`
191
+ * (docs/view-updateability.md § Authored inverses).
192
+ */
193
+ readonly authored?: {
194
+ readonly puts: ReadonlyArray<{
195
+ readonly sideIndex: number;
196
+ readonly baseColumn: string;
197
+ readonly expr: AST.Expression;
198
+ }>;
199
+ readonly newRefIndex: ReadonlyMap<string, number>;
200
+ };
201
+ }
202
+ export interface JoinViewAnalysis {
203
+ readonly sel: AST.SelectStmt;
204
+ /** The base-table sides (≥2), in AST source order; routing is keyed by index 0..n-1. */
205
+ readonly sides: readonly JoinSide[];
206
+ /** View column name (lowercased) -> its base-term replacement expression. */
207
+ readonly viewColToBaseRef: ReadonlyMap<string, AST.Expression>;
208
+ readonly outColumns: readonly OutColumn[];
209
+ /**
210
+ * The planned view body (the source of `updateLineage`). Reused by the DELETE
211
+ * RETURNING re-query (the OLD view image, projected `pre` over `root`) — so the
212
+ * body is planned **once** rather than re-expanded through the view name.
213
+ */
214
+ readonly root: RelationalPlanNode;
215
+ /**
216
+ * The raw `JoinNode` inside {@link root} (the ON-condition join, *before* the
217
+ * body's σ/projection). The capture's identifying relation and the UPDATE
218
+ * RETURNING re-query are built directly on top of it (Filter + Project plan
219
+ * nodes) instead of re-planning a cloned AST body — the derived backward walk
220
+ * the docs name (§ Round-Trip Laws and the Derived Backward Walk).
221
+ */
222
+ readonly joinNode: JoinNode;
223
+ /**
224
+ * The join's combined column scope (`ctx.outputScopes.get(joinNode)`), which
225
+ * resolves both alias-qualified (`j1.id`) and unqualified base columns — the
226
+ * exact scope `buildSelectStmt` used when planning the body. Reused to build the
227
+ * identifying predicate / PK projections / RETURNING columns as `ScalarPlanNode`s
228
+ * over {@link joinNode}, so resolution is byte-identical to the retired re-plan.
229
+ */
230
+ readonly joinScope: Scope;
231
+ }
232
+ /**
233
+ * True when the view body is a join (and so routes to this multi-source path
234
+ * rather than the single-source spine). Cheap AST peek — no plan built.
235
+ *
236
+ * A **compound (set-op) body** returns `false` even when its left-most leg's FROM is a
237
+ * join (`select … from a join b … union …`): a set-op body routes to the set-op write path
238
+ * (`set-op.ts`), never this multi-source join spine, whose capture/lineage walk reads only
239
+ * the leg's `JoinNode` and silently ignores the surrounding compound — mishandling it
240
+ * (`set-op-write-multisource-leg-reject`). Excluding it here lets such a body fall through to
241
+ * the single-source spine's clean `classifyViewBody` reject (the intent
242
+ * `propagate.ts` already documents). The set-op path itself detects a multi-source LEG by
243
+ * calling this same predicate on the **leg** SELECT (which carries no `compound`).
244
+ */
245
+ export declare function isJoinBody(selectAst: AST.QueryExpr): boolean;
246
+ /**
247
+ * Non-throwing AST shape check — the boolean shadow of {@link collectJoinSources}'s
248
+ * acceptance: `true` iff the body is a single explicit **n-way (≥2) equi-join** — `inner`,
249
+ * `left`, `right`, or `full` (RIGHT is the exact mirror of LEFT; FULL has no preserved
250
+ * side, so it self-conservatizes downstream; see {@link collectJoinSources}) with an ON
251
+ * (or USING) predicate over plain base tables (the
252
+ * exact multi-source shape `propagate()` decomposes), including **composite-PK sides** and
253
+ * **self-joins** (one base table under two or more distinct aliases). Every other
254
+ * multi-table body — cross / comma (implicit) / subquery- or function-source — returns
255
+ * `false`.
256
+ *
257
+ * Shared with the static updateability surfaces (`deriveViewInfo` /
258
+ * `deriveColumnInfo` in `func/builtins/schema.ts`): they gate on this so they
259
+ * agree with what a real mutation through the view accepts. An outer join is now
260
+ * **partially** writable (preserved-side update, delete-to-preserved, insert), so it is
261
+ * decomposable here; those surfaces read per-column `null-extended` lineage to report a
262
+ * non-preserved column non-updatable (the matching deferral). The throwing
263
+ * {@link collectJoinSources} stays the substrate's source of truth; this mirrors only its
264
+ * AST-level shape gate (it does not re-check DISTINCT/LIMIT/`select *`, which are deeper
265
+ * semantic rejects handled downstream — PK shape is no longer a reject now that composite
266
+ * keys are admitted).
267
+ */
268
+ export declare function isDecomposableJoinBody(selectAst: AST.QueryExpr): boolean;
269
+ /**
270
+ * True iff `selectAst` is a decomposable join body ({@link isDecomposableJoinBody}) whose
271
+ * joins are **all INNER**. The set-op join-leg compose
272
+ * (`set-op-write-multisource-leg-compose`) ships INNER join legs — the gate is purely
273
+ * `joinType`-based, so a non-equi (theta) INNER join is admitted identically to an equi-join.
274
+ * An OUTER (left/right/full) join leg's set-op write composition is deferred. The set-op
275
+ * recognizers gate on this so a body with an outer-join leg reports the conservative
276
+ * all-`NO` static surface AND rejects the dynamic write cleanly (never an internal error),
277
+ * matching exactly. A cross / no-ON join (not decomposable) likewise fails this and is
278
+ * deferred — agreeing with `analyzeJoinView`'s downstream reject.
279
+ */
280
+ export declare function isInnerJoinBody(selectAst: AST.QueryExpr): boolean;
281
+ /**
282
+ * Decompose a multi-source (n-way `inner`/`left`/`full` join) view mutation into
283
+ * an ordered `BaseOp[]`. Throws a structured diagnostic for any unsupported shape.
284
+ */
285
+ export declare function propagateMultiSource(ctx: PlanningContext, view: MutableViewLike, req: MutationRequest): BaseOp[];
286
+ /**
287
+ * One base side of a multi-source insert, fully resolved: the base columns it
288
+ * writes (shared key first, then the supplied view columns it owns) and, for
289
+ * each, the index into the materialized envelope row supplying the value.
290
+ */
291
+ export interface MsInsertSide {
292
+ readonly table: TableReferenceNode;
293
+ readonly schema: TableSchema;
294
+ readonly targetColumns: readonly string[];
295
+ readonly envelopeIndices: readonly number[];
296
+ /**
297
+ * Envelope indices whose non-null presence gates this side's insert per row — a
298
+ * non-preserved (outer-join optional) member inserts only for rows that supply ≥1
299
+ * of its columns (§ Outer Joins — Inserts). Empty ⇒ unconditional (a preserved /
300
+ * inner side, always inserted). Reuses the decomposition fan-out's presence gate
301
+ * (`buildDecompositionMemberInsert`).
302
+ */
303
+ readonly presenceGateIndices: readonly number[];
304
+ /**
305
+ * Set when this side's shared-key (FK-child) column must be threaded conditionally:
306
+ * `keyTargetIndex` is its position in `targetColumns` (0 — the key is pushed first
307
+ * when `needsSharedKey`), and `groups` is an AND-of-(OR-within) list of envelope
308
+ * indices — one inner group per presence-gated FK-parent partner — that gates the
309
+ * key. When all referenced presence-gated partners are absent for a row, the key
310
+ * column projects null (the correct "no partner" marker), so the FK does not dangle
311
+ * (§ Outer Joins — Inserts). Absent ⇒ the key threads unconditionally (a
312
+ * parent/anchor side, or a key shared only among always-active sides).
313
+ */
314
+ readonly keyGate?: {
315
+ readonly keyTargetIndex: number;
316
+ readonly groups: readonly (readonly number[])[];
317
+ };
318
+ /**
319
+ * Per-side constant-FD insert-defaults lifted from the join body's σ (where-clause)
320
+ * equality constants (§ Inner Join — Inserts; the multi-source analog of the single-
321
+ * source § Selection rule). Each entry supplies an omitted σ-constrained base column its
322
+ * σ value, so the inserted row satisfies the view predicate and is visible through the
323
+ * view. Unlike the minted shared key these are NOT envelope-sourced — they are per-row
324
+ * **constants**, so they carry their literal node directly and ride the side's
325
+ * `ProjectNode` as a compiled constant (`buildExpression`), needing no envelope column.
326
+ * Because the projection rides the side (not the VALUES rows), this also supports a
327
+ * **SELECT-source** insert (a strict capability gain over the single-source path, which
328
+ * defers σ-defaulting for SELECT sources). Empty/absent ⇒ no σ-constrained columns this
329
+ * side. A σ over the side's shared join key is skipped (the EC thread owns that value).
330
+ */
331
+ readonly sigmaDefaults?: readonly {
332
+ readonly baseColumn: string;
333
+ readonly valueExpr: AST.Expression;
334
+ }[];
335
+ }
336
+ /**
337
+ * The plan-agnostic decomposition of a multi-source inner-join INSERT, consumed
338
+ * by `buildMultiSourceInsert`. The **envelope** is the per-row augmented source:
339
+ * its leading columns are the supplied view columns (`suppliedColumns`, in
340
+ * user-source order), optionally followed by a surrogate shared key sourced from
341
+ * the anchor key column's declared `default` (`keyDefault`). Each side reads its
342
+ * values back out of that one materialized envelope, so the default is evaluated
343
+ * exactly once per row and the value threads across both base inserts via the
344
+ * equivalence class (docs/view-updateability.md § Mutation Context).
345
+ */
346
+ export interface MsInsertAnalysis {
347
+ readonly suppliedColumns: readonly {
348
+ readonly name: string;
349
+ readonly type: ScalarType;
350
+ }[];
351
+ /** Sides ordered FK-parent before FK-child (the FK-safe insert order). */
352
+ readonly orderedSides: readonly MsInsertSide[];
353
+ /**
354
+ * The anchor key column's declared `default`, evaluated once per produced row at
355
+ * the envelope (with `mutation_ordinal()` in scope) and threaded into every side's
356
+ * key column via the equivalence class. Set only when the shared key is **not**
357
+ * directly supplied; absent ⇒ a supplied view column threads the key.
358
+ */
359
+ readonly keyDefault?: AST.Expression;
360
+ }
361
+ /**
362
+ * Decompose an n-way key-preserving INSERT into the per-side base inserts plus the
363
+ * shared-surrogate envelope they fan out from. Throws a structured diagnostic for any
364
+ * unsupported shape (computed target column, a not-null base column with no value, a
365
+ * non-equi-join key, …). The shared key remains **single-column**: a side contributing a
366
+ * composite shared key to the join's equivalence class is rejected with
367
+ * `unsupported-decomposition-key` (the envelope threads one key value per row).
368
+ *
369
+ * **Outer joins** (§ Outer Joins — Inserts): a **non-preserved** side is an *optional*
370
+ * member of the fan-out. A side whose columns are all absent emits no insert (it is
371
+ * dropped); a non-preserved side that IS supplied is presence-gated per row (it inserts
372
+ * only for rows supplying ≥1 of its columns). The shared key is minted/threaded only when
373
+ * ≥2 sides are active (the preserved-only case is a single preserved insert — the row
374
+ * reads back null-extended); an insert supplying *only* non-preserved columns, with no
375
+ * preserved anchor row to attach to, is rejected `null-extended-create-conflict` (v1).
376
+ */
377
+ export declare function analyzeMultiSourceInsert(ctx: PlanningContext, view: MutableViewLike, stmt: AST.InsertStmt): MsInsertAnalysis;
378
+ export declare function analyzeJoinView(ctx: PlanningContext, view: MutableViewLike): JoinViewAnalysis;
379
+ /**
380
+ * A partner-side base column a cross-source SET value reads (`update v set a.x = b.y`),
381
+ * captured into `__vmupd_keys` so the lowered single-table UPDATE can read it back. The
382
+ * `expr` is the read column in base terms (alias-qualified — `b.y`), projected into the
383
+ * capture over the join body's scope under the stable `alias` (`src0`, `src1`, …); the
384
+ * rewritten value (`select <alias> from __vmupd_keys k where <ownerPk = capture>`) reads
385
+ * it correlated by the owning side's PK. Because the capture materializes **before** any
386
+ * base op fires, the read-back value is the **pre-mutation** partner value — robust to a
387
+ * both-sides update that also rewrites it (docs/view-updateability.md § Inner Join).
388
+ */
389
+ export interface CrossSourceValue {
390
+ readonly alias: string;
391
+ readonly expr: AST.Expression;
392
+ }
393
+ export declare function decomposeUpdate(ctx: PlanningContext, view: MutableViewLike, analysis: JoinViewAnalysis, stmt: AST.UpdateStmt, sourceValues?: CrossSourceValue[], captureRelationName?: string): BaseOp[];
394
+ /**
395
+ * The up-front base-PK identity capture for a multi-source (n-way inner-join) UPDATE or
396
+ * multi-side DELETE fan-out (docs/view-updateability.md § Inner Join, § `returning`).
397
+ * Built ONCE and shared between the per-side base ops' identifying subqueries and (for
398
+ * an UPDATE with RETURNING) the RETURNING re-query.
399
+ *
400
+ * - `source`: the capture SELECT `select s0.pk0 as k0_0[, s0.pk1 as k0_1], s1.pk0 as
401
+ * k1_0, … from <body> where <idPredicate>` — the emitter materializes it into
402
+ * `rctx.tableContexts` under {@link descriptor} **before** any base op runs.
403
+ * - `descriptor`: the identity stitch shared between the materialized capture rows
404
+ * and every {@link InternalRecursiveCTERefNode} that reads them back.
405
+ * - `keyColumns`: the flattened `k<side>_<j>` column shape (one entry per requested
406
+ * side per PK column) each reader mints a key ref over.
407
+ * - `relationName`: the AST relation name this capture is injected under in `cteNodes`
408
+ * (and that every base-op predicate reads back via `from <relationName> k`). Absent ⇒
409
+ * {@link MS_UPDATE_KEYS_CTE} — the standalone multi-source / decomposition / set-op /
410
+ * CTE-self-read paths all use the shared default. A **nested** capture mints a fresh
411
+ * name so two captures can coexist by name in one lowered statement
412
+ * (`set-op-write-multisource-leg-compose`): the inner per-branch capture's readers and
413
+ * its injected ref agree on the fresh name while shadowing nothing under the default.
414
+ */
415
+ export interface MultiSourceKeyCapture {
416
+ readonly source: RelationalPlanNode;
417
+ readonly descriptor: TableDescriptor;
418
+ readonly keyColumns: readonly {
419
+ readonly name: string;
420
+ readonly type: ScalarType;
421
+ }[];
422
+ readonly relationName?: string;
423
+ }
424
+ /**
425
+ * Mint a context-backed key relation (`InternalRecursiveCTERefNode`) over a
426
+ * capture's descriptor — what a multi-side base op's identifying `in`-subquery or
427
+ * the RETURNING re-query's EXISTS scans `__vmupd_keys` through. Fresh attribute ids
428
+ * per call (each ref lives in its own subtree); the **descriptor** identity is what
429
+ * ties it to the rows the emitter materializes.
430
+ *
431
+ * `captureRelationName` is used for BOTH the node's display CTE name and every
432
+ * attribute's `sourceRelation`, so a half-updated node can never keep the constant as
433
+ * `sourceRelation` while the caller injects under a fresh name. It defaults to the
434
+ * capture's own {@link MultiSourceKeyCapture.relationName} (falling back to
435
+ * {@link MS_UPDATE_KEYS_CTE}), so a ref minted from a fresh-named capture is
436
+ * self-consistent without the caller re-passing the name.
437
+ */
438
+ export declare function makeMultiSourceKeyRef(scope: Scope, capture: MultiSourceKeyCapture, captureRelationName?: string): InternalRecursiveCTERefNode;
439
+ /**
440
+ * A planning context with `capture` injected into `cteNodes` under its relation name (the
441
+ * capture's {@link MultiSourceKeyCapture.relationName}, defaulting to {@link MS_UPDATE_KEYS_CTE}),
442
+ * so a base op's / inner capture's `from <relationName> k` reference resolves to the capture's
443
+ * context-backed key relation (over the shared capture descriptor). The injected ref's own
444
+ * name is pinned to the SAME `relationName` so the map key and the ref agree — a nested capture
445
+ * injects under its fresh `__vmupd_keys$N` name while shadowing nothing under the default. A
446
+ * fresh ref per call keeps each consumer's subtree from sharing a node instance.
447
+ *
448
+ * Shared by the multi-source UPDATE/DELETE builder (`view-mutation-builder.ts`) and the set-op
449
+ * join-leg compose (`set-op.ts`, which injects the OUTER set-op capture so an inner per-branch
450
+ * capture's `memberExists` filter resolves against it).
451
+ */
452
+ export declare function withKeyCapture(ctx: PlanningContext, capture: MultiSourceKeyCapture): PlanningContext;
453
+ /**
454
+ * The distinct join-side indices the emitted base ops target (each base op carries the
455
+ * planned side's `TableReferenceNode`), sorted ascending — the sides whose PKs the capture
456
+ * must project so each op's `select k<side> from <relationName>` resolves. Shared by the
457
+ * standalone multi-source UPDATE/DELETE builder (`view-mutation-builder.ts`) and the set-op
458
+ * join-leg compose (`set-op.ts`), which each pass it straight to
459
+ * {@link buildMultiSourceKeyCapture}.
460
+ */
461
+ export declare function capturedSideIndices(baseOps: readonly BaseOp[], analysis: JoinViewAnalysis): number[];
462
+ /**
463
+ * Build the up-front identity capture: each affected view row's base-PK identities,
464
+ * by the same identifying predicate the base ops route on (user WHERE → base ∧ body
465
+ * WHERE). Built as **plan nodes directly over the ALREADY-planned join body**
466
+ * (`analysis.joinNode` + `analysis.joinScope`) — `Project_{k<side>_<j>}(Filter_{idPred}
467
+ * (joinNode))` — instead of re-planning a cloned AST FROM, so the body is planned
468
+ * ONCE (§ Round-Trip Laws and the Derived Backward Walk). `preserveInputColumns=false`
469
+ * ⇒ the materialized rows are exactly the requested key columns, positionally aligned
470
+ * to the `k<side>_<j>` columns every reader scans back (`keyColumns` and the projection
471
+ * derive from the same `sideIndices` order; a composite-PK side contributes one column
472
+ * per PK column).
473
+ *
474
+ * `sideIndices` selects which sides' PKs to capture (each requires ≥1 PK column via
475
+ * {@link requireKeyColumns}; a keyless side is rejected with `unsupported-join`). The
476
+ * builder passes exactly the sides whose base ops read the capture (plus all sides, for
477
+ * an UPDATE with RETURNING whose EXISTS correlates the full joined row), so a single-
478
+ * side write never forces a PK on an untouched side.
479
+ *
480
+ * Op-agnostic: takes the user `where` directly (an UPDATE's or a DELETE's) — the
481
+ * identifying predicate is the same either way.
482
+ *
483
+ * `captureRelationName` is the AST relation name the resulting capture is injected
484
+ * under (and that the base-op predicates `decomposeUpdate`/`decomposeDelete` emit read
485
+ * back); it is stamped onto the returned {@link MultiSourceKeyCapture.relationName} so
486
+ * downstream injection/RETURNING read it from the capture object rather than
487
+ * re-deriving the literal. Defaults to {@link MS_UPDATE_KEYS_CTE} — the standalone
488
+ * multi-source path is byte-identical; a nested capture passes a fresh name.
489
+ */
490
+ export declare function buildMultiSourceKeyCapture(ctx: PlanningContext, view: MutableViewLike, where: AST.Expression | undefined, analysis: JoinViewAnalysis, sideIndices: readonly number[], sourceValues?: readonly CrossSourceValue[], captureRelationName?: string): MultiSourceKeyCapture;
491
+ /**
492
+ * Build the post-mutation RETURNING re-query for a multi-source UPDATE
493
+ * (docs/view-updateability.md § `returning`). A re-query that matched by the *user
494
+ * predicate* cannot recapture a row whose predicate column the update itself
495
+ * rewrote (the changed row no longer matches), so this matches by the captured
496
+ * **identity** instead: project the view-spelled, base-term RETURNING columns over
497
+ * the post-mutation join body, restricted to the captured identities by a correlated
498
+ * `exists (select 1 from __vmupd_keys k where <per-side identity>)` — so a row the
499
+ * update pushed *out* of the view's filter (or whose predicate column it rewrote) is
500
+ * still returned (single-source NEW semantics). It keeps only the structural join
501
+ * ON-condition; the body/user WHERE is intentionally NOT re-applied.
502
+ *
503
+ * The per-side identity is **preserved-keyed**: a preserved side matches by exact
504
+ * per-PK-column equality (`k.k<p>_<j> = s<p>.pk<j>`), while a non-preserved (outer-join
505
+ * null-extended) side uses a matched-OR-null disjunction `(AND_j k.k<np>_<j> =
506
+ * s<np>.pk<j>) OR (AND_j k.k<np>_<j> is null)`. This re-keys the re-query off the
507
+ * **stable preserved-side identity** so a freshly-materialized null-extended row (whose
508
+ * non-preserved PK was captured NULL) surfaces via its preserved-side equalities alone,
509
+ * rather than being silently dropped by a `NULL = <minted pk>` match. For an all-
510
+ * preserved (inner) join every side is exact equality — byte-identical to the prior
511
+ * behavior, so inner-join RETURNING is unchanged.
512
+ *
513
+ * Reads the shared {@link MultiSourceKeyCapture} the builder materializes
514
+ * before the base ops fire (via its own freshly-minted key ref over the same
515
+ * descriptor). The capture covers ALL sides for an UPDATE with RETURNING, so this
516
+ * correlates the full joined row's identity.
517
+ */
518
+ export declare function buildMultiSourceUpdateReturning(ctx: PlanningContext, view: MutableViewLike, stmt: AST.UpdateStmt, capture: MultiSourceKeyCapture, analysis: JoinViewAnalysis): RelationalPlanNode;
519
+ /**
520
+ * Build the pre-mutation RETURNING re-query for a multi-source DELETE
521
+ * (docs/view-updateability.md § `returning`). The OLD view image of the rows about
522
+ * to vanish: project the view-spelled, base-term RETURNING columns over the raw
523
+ * `analysis.joinNode` restricted to the identifying predicate (user WHERE → base ∧
524
+ * body WHERE — the same predicate the key capture and base ops route on). Captured
525
+ * `pre` (before the base ops fire) so it reads the live base tables through the join.
526
+ *
527
+ * Building the projection in **base terms** (rather than referencing the planned
528
+ * body `root`'s output attribute ids) is what fixes a computed view column: a
529
+ * computed column has no surviving intermediate attribute id after project-merge, so
530
+ * a by-id reference dangles — recomputing from base columns has nothing fragile to
531
+ * reference. Mirrors {@link buildMultiSourceUpdateReturning}; they differ only in the
532
+ * filter + timing.
533
+ */
534
+ export declare function buildMultiSourceDeleteReturning(ctx: PlanningContext, view: MutableViewLike, stmt: AST.DeleteStmt, analysis: JoinViewAnalysis): RelationalPlanNode;
535
+ export declare function decomposeDelete(_ctx: PlanningContext, view: MutableViewLike, analysis: JoinViewAnalysis, stmt: AST.DeleteStmt, captureRelationName?: string): BaseOp[];
536
+ /**
537
+ * The correlated scalar read a cross-source SET value lowers to:
538
+ * `(select <srcAlias> from __vmupd_keys k where k.k<owningSide>_0 = <pk0> [and …])`
539
+ * — `<srcAlias>` is the capture projection of the partner base column; the unqualified
540
+ * `<pk_j>` bind to the lowered UPDATE's own target row (the owning side), matching the
541
+ * per-side identifying EXISTS so each target row reads the captured pre-mutation partner
542
+ * value of its joined row. Composite owning keys conjoin one equality per PK column.
543
+ *
544
+ * `dedupAggregate` wraps the projection in that aggregate (`min(k.<srcAlias>)`) so the
545
+ * correlated read is single-valued even when the owning PK matches MORE THAN ONE capture
546
+ * row — the non-preserved-side fan-out case, where N preserved rows share one non-preserved
547
+ * partner so its PK matches all N captures (§ Outer Joins). For a constant / np-only SET the
548
+ * captured value is identical across the group so `min` is an exact no-op de-dup; for a
549
+ * value that genuinely differs per preserved row it resolves the ambiguity deterministically
550
+ * rather than erroring at runtime. The cross-source `set` callers leave it off (their gate
551
+ * already proves at-most-one partner), keeping the bare-column form byte-identical.
552
+ *
553
+ * `correlationAlias` qualifies each owning-PK right operand (`<pk_j>` → `<alias>.<pk_j>`).
554
+ * When this read-back nests inside a user value subquery whose own FROM introduces a
555
+ * column named like the owning PK, a **bare** `<pk_j>` would re-bind to that inner column
556
+ * by innermost-scope SQL rules (keying the read-back on the wrong value); qualifying it with
557
+ * the lowered per-side UPDATE's collision-proof alias ({@link SELF_ALIAS}) binds the outer
558
+ * target row instead. The multi-source per-side callers pass `SELF_ALIAS`; `decomposition.ts`
559
+ * and any caller that omits it keep the bare form (byte-identical — composite keys still
560
+ * qualify every conjunct only when supplied).
561
+ *
562
+ * `captureRelationName` is the relation the correlated read scans (`from <name> k`); it
563
+ * defaults to {@link MS_UPDATE_KEYS_CTE} so the standalone multi-source and decomposition
564
+ * callers are byte-identical, while a nested multi-source capture threads its fresh name.
565
+ */
566
+ export declare function capturedValueSubquery(srcAlias: string, owningSideIndex: number, owningPk: readonly string[], dedupAggregate?: string, correlationAlias?: string, captureRelationName?: string): AST.Expression;
567
+ export {};
568
+ //# sourceMappingURL=multi-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-source.d.ts","sourceRoot":"","sources":["../../../../src/planner/mutation/multi-source.ts"],"names":[],"mappings":"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"}