@quereus/quereus 3.3.0 → 4.1.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.
- package/README.md +7 -0
- package/dist/src/common/datatype.d.ts +12 -0
- package/dist/src/common/datatype.d.ts.map +1 -1
- package/dist/src/common/datatype.js.map +1 -1
- package/dist/src/common/types.d.ts +24 -0
- package/dist/src/common/types.d.ts.map +1 -1
- package/dist/src/common/types.js.map +1 -1
- package/dist/src/core/database-assertions.d.ts +37 -9
- package/dist/src/core/database-assertions.d.ts.map +1 -1
- package/dist/src/core/database-assertions.js +62 -110
- package/dist/src/core/database-assertions.js.map +1 -1
- package/dist/src/core/database-events.d.ts +163 -0
- package/dist/src/core/database-events.d.ts.map +1 -1
- package/dist/src/core/database-events.js +235 -21
- package/dist/src/core/database-events.js.map +1 -1
- package/dist/src/core/database-external-changes.d.ts +28 -0
- package/dist/src/core/database-external-changes.d.ts.map +1 -0
- package/dist/src/core/database-external-changes.js +242 -0
- package/dist/src/core/database-external-changes.js.map +1 -0
- package/dist/src/core/database-internal.d.ts +50 -1
- package/dist/src/core/database-internal.d.ts.map +1 -1
- package/dist/src/core/database-materialized-views.d.ts +1253 -0
- package/dist/src/core/database-materialized-views.d.ts.map +1 -0
- package/dist/src/core/database-materialized-views.js +3064 -0
- package/dist/src/core/database-materialized-views.js.map +1 -0
- package/dist/src/core/database-options.d.ts +4 -0
- package/dist/src/core/database-options.d.ts.map +1 -1
- package/dist/src/core/database-options.js +10 -0
- package/dist/src/core/database-options.js.map +1 -1
- package/dist/src/core/database-transaction.d.ts +19 -3
- package/dist/src/core/database-transaction.d.ts.map +1 -1
- package/dist/src/core/database-transaction.js +30 -3
- package/dist/src/core/database-transaction.js.map +1 -1
- package/dist/src/core/database-watchers.d.ts +19 -0
- package/dist/src/core/database-watchers.d.ts.map +1 -1
- package/dist/src/core/database-watchers.js +63 -3
- package/dist/src/core/database-watchers.js.map +1 -1
- package/dist/src/core/database.d.ts +204 -11
- package/dist/src/core/database.d.ts.map +1 -1
- package/dist/src/core/database.js +493 -29
- package/dist/src/core/database.js.map +1 -1
- package/dist/src/core/derived-row-validator.d.ts +137 -0
- package/dist/src/core/derived-row-validator.d.ts.map +1 -0
- package/dist/src/core/derived-row-validator.js +314 -0
- package/dist/src/core/derived-row-validator.js.map +1 -0
- package/dist/src/core/statement.d.ts.map +1 -1
- package/dist/src/core/statement.js +30 -9
- package/dist/src/core/statement.js.map +1 -1
- package/dist/src/emit/ast-stringify.d.ts +135 -1
- package/dist/src/emit/ast-stringify.d.ts.map +1 -1
- package/dist/src/emit/ast-stringify.js +793 -118
- package/dist/src/emit/ast-stringify.js.map +1 -1
- package/dist/src/func/builtins/aggregate.d.ts.map +1 -1
- package/dist/src/func/builtins/aggregate.js +11 -10
- package/dist/src/func/builtins/aggregate.js.map +1 -1
- package/dist/src/func/builtins/builtin-window-functions.d.ts.map +1 -1
- package/dist/src/func/builtins/builtin-window-functions.js +32 -0
- package/dist/src/func/builtins/builtin-window-functions.js.map +1 -1
- package/dist/src/func/builtins/explain.d.ts +3 -0
- package/dist/src/func/builtins/explain.d.ts.map +1 -1
- package/dist/src/func/builtins/explain.js +229 -0
- package/dist/src/func/builtins/explain.js.map +1 -1
- package/dist/src/func/builtins/index.d.ts.map +1 -1
- package/dist/src/func/builtins/index.js +10 -2
- package/dist/src/func/builtins/index.js.map +1 -1
- package/dist/src/func/builtins/json.d.ts.map +1 -1
- package/dist/src/func/builtins/json.js +3 -2
- package/dist/src/func/builtins/json.js.map +1 -1
- package/dist/src/func/builtins/mutation.d.ts +2 -0
- package/dist/src/func/builtins/mutation.d.ts.map +1 -0
- package/dist/src/func/builtins/mutation.js +53 -0
- package/dist/src/func/builtins/mutation.js.map +1 -0
- package/dist/src/func/builtins/schema.d.ts +2 -0
- package/dist/src/func/builtins/schema.d.ts.map +1 -1
- package/dist/src/func/builtins/schema.js +716 -27
- package/dist/src/func/builtins/schema.js.map +1 -1
- package/dist/src/func/builtins/string.js +1 -1
- package/dist/src/func/builtins/string.js.map +1 -1
- package/dist/src/func/registration.d.ts +13 -0
- package/dist/src/func/registration.d.ts.map +1 -1
- package/dist/src/func/registration.js +5 -0
- package/dist/src/func/registration.js.map +1 -1
- package/dist/src/index.d.ts +25 -6
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +27 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/parser/ast.d.ts +353 -21
- package/dist/src/parser/ast.d.ts.map +1 -1
- package/dist/src/parser/index.d.ts +14 -1
- package/dist/src/parser/index.d.ts.map +1 -1
- package/dist/src/parser/index.js +19 -0
- package/dist/src/parser/index.js.map +1 -1
- package/dist/src/parser/lexer.d.ts +9 -0
- package/dist/src/parser/lexer.d.ts.map +1 -1
- package/dist/src/parser/lexer.js +9 -0
- package/dist/src/parser/lexer.js.map +1 -1
- package/dist/src/parser/parser.d.ts +276 -7
- package/dist/src/parser/parser.d.ts.map +1 -1
- package/dist/src/parser/parser.js +1387 -469
- package/dist/src/parser/parser.js.map +1 -1
- package/dist/src/parser/visitor.d.ts.map +1 -1
- package/dist/src/parser/visitor.js +12 -8
- package/dist/src/parser/visitor.js.map +1 -1
- package/dist/src/planner/analysis/assertion-classifier.d.ts.map +1 -1
- package/dist/src/planner/analysis/assertion-classifier.js +4 -0
- package/dist/src/planner/analysis/assertion-classifier.js.map +1 -1
- package/dist/src/planner/analysis/assertion-hoist-cache.d.ts.map +1 -1
- package/dist/src/planner/analysis/assertion-hoist-cache.js +8 -4
- package/dist/src/planner/analysis/assertion-hoist-cache.js.map +1 -1
- package/dist/src/planner/analysis/authored-inverse.d.ts +22 -0
- package/dist/src/planner/analysis/authored-inverse.d.ts.map +1 -0
- package/dist/src/planner/analysis/authored-inverse.js +267 -0
- package/dist/src/planner/analysis/authored-inverse.js.map +1 -0
- package/dist/src/planner/analysis/change-scope.d.ts +34 -4
- package/dist/src/planner/analysis/change-scope.d.ts.map +1 -1
- package/dist/src/planner/analysis/change-scope.js +108 -7
- package/dist/src/planner/analysis/change-scope.js.map +1 -1
- package/dist/src/planner/analysis/check-extraction.d.ts +36 -2
- package/dist/src/planner/analysis/check-extraction.d.ts.map +1 -1
- package/dist/src/planner/analysis/check-extraction.js +174 -46
- package/dist/src/planner/analysis/check-extraction.js.map +1 -1
- package/dist/src/planner/analysis/coarsened-key.d.ts +109 -0
- package/dist/src/planner/analysis/coarsened-key.d.ts.map +1 -0
- package/dist/src/planner/analysis/coarsened-key.js +228 -0
- package/dist/src/planner/analysis/coarsened-key.js.map +1 -0
- package/dist/src/planner/analysis/comparison-collation.d.ts +216 -0
- package/dist/src/planner/analysis/comparison-collation.d.ts.map +1 -0
- package/dist/src/planner/analysis/comparison-collation.js +341 -0
- package/dist/src/planner/analysis/comparison-collation.js.map +1 -0
- package/dist/src/planner/analysis/constraint-extractor.d.ts +3 -1
- package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
- package/dist/src/planner/analysis/constraint-extractor.js +192 -9
- package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
- package/dist/src/planner/analysis/coverage-prover.d.ts +321 -0
- package/dist/src/planner/analysis/coverage-prover.d.ts.map +1 -0
- package/dist/src/planner/analysis/coverage-prover.js +1038 -0
- package/dist/src/planner/analysis/coverage-prover.js.map +1 -0
- package/dist/src/planner/analysis/key-filter.d.ts +22 -0
- package/dist/src/planner/analysis/key-filter.d.ts.map +1 -0
- package/dist/src/planner/analysis/key-filter.js +105 -0
- package/dist/src/planner/analysis/key-filter.js.map +1 -0
- package/dist/src/planner/analysis/partial-unique-extraction.d.ts +36 -1
- package/dist/src/planner/analysis/partial-unique-extraction.d.ts.map +1 -1
- package/dist/src/planner/analysis/partial-unique-extraction.js +148 -22
- package/dist/src/planner/analysis/partial-unique-extraction.js.map +1 -1
- package/dist/src/planner/analysis/predicate-normalizer.d.ts.map +1 -1
- package/dist/src/planner/analysis/predicate-normalizer.js +30 -1
- package/dist/src/planner/analysis/predicate-normalizer.js.map +1 -1
- package/dist/src/planner/analysis/predicate-shape.d.ts +36 -1
- package/dist/src/planner/analysis/predicate-shape.d.ts.map +1 -1
- package/dist/src/planner/analysis/predicate-shape.js +51 -13
- package/dist/src/planner/analysis/predicate-shape.js.map +1 -1
- package/dist/src/planner/analysis/query-rewrite-matcher.d.ts +314 -0
- package/dist/src/planner/analysis/query-rewrite-matcher.d.ts.map +1 -0
- package/dist/src/planner/analysis/query-rewrite-matcher.js +1081 -0
- package/dist/src/planner/analysis/query-rewrite-matcher.js.map +1 -0
- package/dist/src/planner/analysis/scalar-invertibility.d.ts +92 -0
- package/dist/src/planner/analysis/scalar-invertibility.d.ts.map +1 -0
- package/dist/src/planner/analysis/scalar-invertibility.js +129 -0
- package/dist/src/planner/analysis/scalar-invertibility.js.map +1 -0
- package/dist/src/planner/analysis/update-lineage.d.ts +196 -0
- package/dist/src/planner/analysis/update-lineage.d.ts.map +1 -0
- package/dist/src/planner/analysis/update-lineage.js +322 -0
- package/dist/src/planner/analysis/update-lineage.js.map +1 -0
- package/dist/src/planner/analysis/view-complement.d.ts +42 -0
- package/dist/src/planner/analysis/view-complement.d.ts.map +1 -0
- package/dist/src/planner/analysis/view-complement.js +54 -0
- package/dist/src/planner/analysis/view-complement.js.map +1 -0
- package/dist/src/planner/building/alter-table.d.ts +1 -1
- package/dist/src/planner/building/alter-table.d.ts.map +1 -1
- package/dist/src/planner/building/alter-table.js +211 -2
- package/dist/src/planner/building/alter-table.js.map +1 -1
- package/dist/src/planner/building/block.d.ts.map +1 -1
- package/dist/src/planner/building/block.js +18 -1
- package/dist/src/planner/building/block.js.map +1 -1
- package/dist/src/planner/building/constraint-builder.d.ts +33 -5
- package/dist/src/planner/building/constraint-builder.d.ts.map +1 -1
- package/dist/src/planner/building/constraint-builder.js +63 -28
- package/dist/src/planner/building/constraint-builder.js.map +1 -1
- package/dist/src/planner/building/create-view.d.ts +9 -0
- package/dist/src/planner/building/create-view.d.ts.map +1 -1
- package/dist/src/planner/building/create-view.js +41 -12
- package/dist/src/planner/building/create-view.js.map +1 -1
- package/dist/src/planner/building/ddl.d.ts.map +1 -1
- package/dist/src/planner/building/ddl.js +94 -0
- package/dist/src/planner/building/ddl.js.map +1 -1
- package/dist/src/planner/building/declare-schema.d.ts +1 -0
- package/dist/src/planner/building/declare-schema.d.ts.map +1 -1
- package/dist/src/planner/building/declare-schema.js +4 -1
- package/dist/src/planner/building/declare-schema.js.map +1 -1
- package/dist/src/planner/building/default-scope.d.ts +26 -0
- package/dist/src/planner/building/default-scope.d.ts.map +1 -0
- package/dist/src/planner/building/default-scope.js +41 -0
- package/dist/src/planner/building/default-scope.js.map +1 -0
- package/dist/src/planner/building/delete.d.ts +19 -1
- package/dist/src/planner/building/delete.d.ts.map +1 -1
- package/dist/src/planner/building/delete.js +109 -30
- package/dist/src/planner/building/delete.js.map +1 -1
- package/dist/src/planner/building/dml-target.d.ts +118 -0
- package/dist/src/planner/building/dml-target.d.ts.map +1 -0
- package/dist/src/planner/building/dml-target.js +282 -0
- package/dist/src/planner/building/dml-target.js.map +1 -0
- package/dist/src/planner/building/drop-index.d.ts.map +1 -1
- package/dist/src/planner/building/drop-index.js +4 -1
- package/dist/src/planner/building/drop-index.js.map +1 -1
- package/dist/src/planner/building/drop-view.d.ts.map +1 -1
- package/dist/src/planner/building/drop-view.js +4 -2
- package/dist/src/planner/building/drop-view.js.map +1 -1
- package/dist/src/planner/building/expression.d.ts.map +1 -1
- package/dist/src/planner/building/expression.js +60 -21
- package/dist/src/planner/building/expression.js.map +1 -1
- package/dist/src/planner/building/foreign-key-builder.d.ts +30 -0
- package/dist/src/planner/building/foreign-key-builder.d.ts.map +1 -1
- package/dist/src/planner/building/foreign-key-builder.js +160 -129
- package/dist/src/planner/building/foreign-key-builder.js.map +1 -1
- package/dist/src/planner/building/insert.d.ts +45 -2
- package/dist/src/planner/building/insert.d.ts.map +1 -1
- package/dist/src/planner/building/insert.js +257 -88
- package/dist/src/planner/building/insert.js.map +1 -1
- package/dist/src/planner/building/lens-auxiliary-access.d.ts +22 -0
- package/dist/src/planner/building/lens-auxiliary-access.d.ts.map +1 -0
- package/dist/src/planner/building/lens-auxiliary-access.js +132 -0
- package/dist/src/planner/building/lens-auxiliary-access.js.map +1 -0
- package/dist/src/planner/building/materialized-view.d.ts +16 -0
- package/dist/src/planner/building/materialized-view.d.ts.map +1 -0
- package/dist/src/planner/building/materialized-view.js +57 -0
- package/dist/src/planner/building/materialized-view.js.map +1 -0
- package/dist/src/planner/building/returning-star.d.ts +32 -0
- package/dist/src/planner/building/returning-star.d.ts.map +1 -0
- package/dist/src/planner/building/returning-star.js +45 -0
- package/dist/src/planner/building/returning-star.js.map +1 -0
- package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
- package/dist/src/planner/building/select-aggregates.js +47 -0
- package/dist/src/planner/building/select-aggregates.js.map +1 -1
- package/dist/src/planner/building/select-compound.d.ts.map +1 -1
- package/dist/src/planner/building/select-compound.js +84 -11
- package/dist/src/planner/building/select-compound.js.map +1 -1
- package/dist/src/planner/building/select-context.d.ts +10 -2
- package/dist/src/planner/building/select-context.d.ts.map +1 -1
- package/dist/src/planner/building/select-context.js +7 -1
- package/dist/src/planner/building/select-context.js.map +1 -1
- package/dist/src/planner/building/select-modifiers.js +6 -0
- package/dist/src/planner/building/select-modifiers.js.map +1 -1
- package/dist/src/planner/building/select-ordinal.d.ts +18 -0
- package/dist/src/planner/building/select-ordinal.d.ts.map +1 -1
- package/dist/src/planner/building/select-ordinal.js +30 -0
- package/dist/src/planner/building/select-ordinal.js.map +1 -1
- package/dist/src/planner/building/select-projections.d.ts +8 -2
- package/dist/src/planner/building/select-projections.d.ts.map +1 -1
- package/dist/src/planner/building/select-projections.js +26 -4
- package/dist/src/planner/building/select-projections.js.map +1 -1
- package/dist/src/planner/building/select-window.d.ts.map +1 -1
- package/dist/src/planner/building/select-window.js +8 -5
- package/dist/src/planner/building/select-window.js.map +1 -1
- package/dist/src/planner/building/select.d.ts.map +1 -1
- package/dist/src/planner/building/select.js +164 -59
- package/dist/src/planner/building/select.js.map +1 -1
- package/dist/src/planner/building/set-object-tags.d.ts +7 -0
- package/dist/src/planner/building/set-object-tags.d.ts.map +1 -0
- package/dist/src/planner/building/set-object-tags.js +38 -0
- package/dist/src/planner/building/set-object-tags.js.map +1 -0
- package/dist/src/planner/building/tag-diagnostics.d.ts +27 -0
- package/dist/src/planner/building/tag-diagnostics.d.ts.map +1 -0
- package/dist/src/planner/building/tag-diagnostics.js +37 -0
- package/dist/src/planner/building/tag-diagnostics.js.map +1 -0
- package/dist/src/planner/building/update.d.ts +18 -1
- package/dist/src/planner/building/update.d.ts.map +1 -1
- package/dist/src/planner/building/update.js +134 -58
- package/dist/src/planner/building/update.js.map +1 -1
- package/dist/src/planner/building/view-mutation-builder.d.ts +15 -0
- package/dist/src/planner/building/view-mutation-builder.d.ts.map +1 -0
- package/dist/src/planner/building/view-mutation-builder.js +1158 -0
- package/dist/src/planner/building/view-mutation-builder.js.map +1 -0
- package/dist/src/planner/building/with.d.ts +11 -0
- package/dist/src/planner/building/with.d.ts.map +1 -1
- package/dist/src/planner/building/with.js +48 -10
- package/dist/src/planner/building/with.js.map +1 -1
- package/dist/src/planner/cost/index.d.ts +83 -0
- package/dist/src/planner/cost/index.d.ts.map +1 -1
- package/dist/src/planner/cost/index.js +114 -0
- package/dist/src/planner/cost/index.js.map +1 -1
- package/dist/src/planner/framework/characteristics.d.ts +38 -4
- package/dist/src/planner/framework/characteristics.d.ts.map +1 -1
- package/dist/src/planner/framework/characteristics.js +50 -6
- package/dist/src/planner/framework/characteristics.js.map +1 -1
- package/dist/src/planner/framework/pass.d.ts.map +1 -1
- package/dist/src/planner/framework/pass.js +2 -1
- package/dist/src/planner/framework/pass.js.map +1 -1
- package/dist/src/planner/framework/registry.d.ts +39 -1
- package/dist/src/planner/framework/registry.d.ts.map +1 -1
- package/dist/src/planner/framework/registry.js +18 -2
- package/dist/src/planner/framework/registry.js.map +1 -1
- package/dist/src/planner/mutation/backward-body.d.ts +131 -0
- package/dist/src/planner/mutation/backward-body.d.ts.map +1 -0
- package/dist/src/planner/mutation/backward-body.js +135 -0
- package/dist/src/planner/mutation/backward-body.js.map +1 -0
- package/dist/src/planner/mutation/cte-flatten.d.ts +17 -0
- package/dist/src/planner/mutation/cte-flatten.d.ts.map +1 -0
- package/dist/src/planner/mutation/cte-flatten.js +364 -0
- package/dist/src/planner/mutation/cte-flatten.js.map +1 -0
- package/dist/src/planner/mutation/decomposition.d.ts +273 -0
- package/dist/src/planner/mutation/decomposition.d.ts.map +1 -0
- package/dist/src/planner/mutation/decomposition.js +1719 -0
- package/dist/src/planner/mutation/decomposition.js.map +1 -0
- package/dist/src/planner/mutation/lens-enforcement.d.ts +165 -0
- package/dist/src/planner/mutation/lens-enforcement.d.ts.map +1 -0
- package/dist/src/planner/mutation/lens-enforcement.js +745 -0
- package/dist/src/planner/mutation/lens-enforcement.js.map +1 -0
- package/dist/src/planner/mutation/multi-source.d.ts +568 -0
- package/dist/src/planner/mutation/multi-source.d.ts.map +1 -0
- package/dist/src/planner/mutation/multi-source.js +2915 -0
- package/dist/src/planner/mutation/multi-source.js.map +1 -0
- package/dist/src/planner/mutation/mutation-diagnostic.d.ts +37 -0
- package/dist/src/planner/mutation/mutation-diagnostic.d.ts.map +1 -0
- package/dist/src/planner/mutation/mutation-diagnostic.js +24 -0
- package/dist/src/planner/mutation/mutation-diagnostic.js.map +1 -0
- package/dist/src/planner/mutation/mutation-tags.d.ts +33 -0
- package/dist/src/planner/mutation/mutation-tags.d.ts.map +1 -0
- package/dist/src/planner/mutation/mutation-tags.js +31 -0
- package/dist/src/planner/mutation/mutation-tags.js.map +1 -0
- package/dist/src/planner/mutation/propagate.d.ts +97 -0
- package/dist/src/planner/mutation/propagate.d.ts.map +1 -0
- package/dist/src/planner/mutation/propagate.js +220 -0
- package/dist/src/planner/mutation/propagate.js.map +1 -0
- package/dist/src/planner/mutation/scope-transform.d.ts +181 -0
- package/dist/src/planner/mutation/scope-transform.d.ts.map +1 -0
- package/dist/src/planner/mutation/scope-transform.js +574 -0
- package/dist/src/planner/mutation/scope-transform.js.map +1 -0
- package/dist/src/planner/mutation/set-op.d.ts +242 -0
- package/dist/src/planner/mutation/set-op.d.ts.map +1 -0
- package/dist/src/planner/mutation/set-op.js +1687 -0
- package/dist/src/planner/mutation/set-op.js.map +1 -0
- package/dist/src/planner/mutation/single-source.d.ts +261 -0
- package/dist/src/planner/mutation/single-source.d.ts.map +1 -0
- package/dist/src/planner/mutation/single-source.js +1096 -0
- package/dist/src/planner/mutation/single-source.js.map +1 -0
- package/dist/src/planner/nodes/aggregate-node.js +3 -3
- package/dist/src/planner/nodes/aggregate-node.js.map +1 -1
- package/dist/src/planner/nodes/alias-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/alias-node.js +5 -1
- package/dist/src/planner/nodes/alias-node.js.map +1 -1
- package/dist/src/planner/nodes/alter-table-node.d.ts +124 -1
- package/dist/src/planner/nodes/alter-table-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/alter-table-node.js +27 -0
- package/dist/src/planner/nodes/alter-table-node.js.map +1 -1
- package/dist/src/planner/nodes/analyze-node.d.ts +2 -1
- package/dist/src/planner/nodes/analyze-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/analyze-node.js +18 -1
- package/dist/src/planner/nodes/analyze-node.js.map +1 -1
- package/dist/src/planner/nodes/asserted-keys-node.d.ts +43 -0
- package/dist/src/planner/nodes/asserted-keys-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/asserted-keys-node.js +99 -0
- package/dist/src/planner/nodes/asserted-keys-node.js.map +1 -0
- package/dist/src/planner/nodes/async-gather-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/async-gather-node.js +33 -8
- package/dist/src/planner/nodes/async-gather-node.js.map +1 -1
- package/dist/src/planner/nodes/bloom-join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/bloom-join-node.js +2 -1
- package/dist/src/planner/nodes/bloom-join-node.js.map +1 -1
- package/dist/src/planner/nodes/create-view-node.d.ts +7 -2
- package/dist/src/planner/nodes/create-view-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/create-view-node.js +4 -1
- package/dist/src/planner/nodes/create-view-node.js.map +1 -1
- package/dist/src/planner/nodes/declarative-schema.d.ts +13 -1
- package/dist/src/planner/nodes/declarative-schema.d.ts.map +1 -1
- package/dist/src/planner/nodes/declarative-schema.js +32 -0
- package/dist/src/planner/nodes/declarative-schema.js.map +1 -1
- package/dist/src/planner/nodes/distinct-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/distinct-node.js +2 -0
- package/dist/src/planner/nodes/distinct-node.js.map +1 -1
- package/dist/src/planner/nodes/dml-executor-node.d.ts +29 -1
- package/dist/src/planner/nodes/dml-executor-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/dml-executor-node.js +27 -3
- package/dist/src/planner/nodes/dml-executor-node.js.map +1 -1
- package/dist/src/planner/nodes/eager-prefetch-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/eager-prefetch-node.js +2 -0
- package/dist/src/planner/nodes/eager-prefetch-node.js.map +1 -1
- package/dist/src/planner/nodes/envelope-scan-node.d.ts +42 -0
- package/dist/src/planner/nodes/envelope-scan-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/envelope-scan-node.js +62 -0
- package/dist/src/planner/nodes/envelope-scan-node.js.map +1 -0
- package/dist/src/planner/nodes/fanout-lookup-join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/fanout-lookup-join-node.js +11 -1
- package/dist/src/planner/nodes/fanout-lookup-join-node.js.map +1 -1
- package/dist/src/planner/nodes/filter.d.ts.map +1 -1
- package/dist/src/planner/nodes/filter.js +63 -13
- package/dist/src/planner/nodes/filter.js.map +1 -1
- package/dist/src/planner/nodes/join-node.d.ts +41 -1
- package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/join-node.js +78 -8
- package/dist/src/planner/nodes/join-node.js.map +1 -1
- package/dist/src/planner/nodes/join-utils.d.ts +33 -6
- package/dist/src/planner/nodes/join-utils.d.ts.map +1 -1
- package/dist/src/planner/nodes/join-utils.js +124 -9
- package/dist/src/planner/nodes/join-utils.js.map +1 -1
- package/dist/src/planner/nodes/lens-auxiliary-access-node.d.ts +104 -0
- package/dist/src/planner/nodes/lens-auxiliary-access-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/lens-auxiliary-access-node.js +91 -0
- package/dist/src/planner/nodes/lens-auxiliary-access-node.js.map +1 -0
- package/dist/src/planner/nodes/limit-offset.d.ts.map +1 -1
- package/dist/src/planner/nodes/limit-offset.js +4 -5
- package/dist/src/planner/nodes/limit-offset.js.map +1 -1
- package/dist/src/planner/nodes/materialized-view-nodes.d.ts +69 -0
- package/dist/src/planner/nodes/materialized-view-nodes.d.ts.map +1 -0
- package/dist/src/planner/nodes/materialized-view-nodes.js +111 -0
- package/dist/src/planner/nodes/materialized-view-nodes.js.map +1 -0
- package/dist/src/planner/nodes/merge-join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/merge-join-node.js +2 -1
- package/dist/src/planner/nodes/merge-join-node.js.map +1 -1
- package/dist/src/planner/nodes/ordinal-slice-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/ordinal-slice-node.js +2 -0
- package/dist/src/planner/nodes/ordinal-slice-node.js.map +1 -1
- package/dist/src/planner/nodes/plan-node-type.d.ts +9 -0
- package/dist/src/planner/nodes/plan-node-type.d.ts.map +1 -1
- package/dist/src/planner/nodes/plan-node-type.js +9 -0
- package/dist/src/planner/nodes/plan-node-type.js.map +1 -1
- package/dist/src/planner/nodes/plan-node.d.ts +265 -5
- package/dist/src/planner/nodes/plan-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/plan-node.js.map +1 -1
- package/dist/src/planner/nodes/pragma.d.ts +2 -1
- package/dist/src/planner/nodes/pragma.d.ts.map +1 -1
- package/dist/src/planner/nodes/pragma.js +12 -0
- package/dist/src/planner/nodes/pragma.js.map +1 -1
- package/dist/src/planner/nodes/project-node.d.ts +14 -1
- package/dist/src/planner/nodes/project-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/project-node.js +85 -11
- package/dist/src/planner/nodes/project-node.js.map +1 -1
- package/dist/src/planner/nodes/reference.d.ts.map +1 -1
- package/dist/src/planner/nodes/reference.js +62 -27
- package/dist/src/planner/nodes/reference.js.map +1 -1
- package/dist/src/planner/nodes/retrieve-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/retrieve-node.js +7 -0
- package/dist/src/planner/nodes/retrieve-node.js.map +1 -1
- package/dist/src/planner/nodes/returning-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/returning-node.js +10 -3
- package/dist/src/planner/nodes/returning-node.js.map +1 -1
- package/dist/src/planner/nodes/scalar.d.ts +20 -0
- package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
- package/dist/src/planner/nodes/scalar.js +71 -14
- package/dist/src/planner/nodes/scalar.js.map +1 -1
- package/dist/src/planner/nodes/set-object-tags-node.d.ts +39 -0
- package/dist/src/planner/nodes/set-object-tags-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/set-object-tags-node.js +41 -0
- package/dist/src/planner/nodes/set-object-tags-node.js.map +1 -0
- package/dist/src/planner/nodes/set-operation-node.d.ts +123 -1
- package/dist/src/planner/nodes/set-operation-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/set-operation-node.js +291 -18
- package/dist/src/planner/nodes/set-operation-node.js.map +1 -1
- package/dist/src/planner/nodes/single-row.d.ts.map +1 -1
- package/dist/src/planner/nodes/single-row.js +3 -0
- package/dist/src/planner/nodes/single-row.js.map +1 -1
- package/dist/src/planner/nodes/sort.d.ts.map +1 -1
- package/dist/src/planner/nodes/sort.js +7 -6
- package/dist/src/planner/nodes/sort.js.map +1 -1
- package/dist/src/planner/nodes/subquery.d.ts +2 -0
- package/dist/src/planner/nodes/subquery.d.ts.map +1 -1
- package/dist/src/planner/nodes/subquery.js +18 -2
- package/dist/src/planner/nodes/subquery.js.map +1 -1
- package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
- package/dist/src/planner/nodes/table-access-nodes.js +23 -3
- package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
- package/dist/src/planner/nodes/table-function-call.js +6 -0
- package/dist/src/planner/nodes/table-function-call.js.map +1 -1
- package/dist/src/planner/nodes/values-node.d.ts +1 -0
- package/dist/src/planner/nodes/values-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/values-node.js +16 -6
- package/dist/src/planner/nodes/values-node.js.map +1 -1
- package/dist/src/planner/nodes/view-mutation-node.d.ts +259 -0
- package/dist/src/planner/nodes/view-mutation-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/view-mutation-node.js +273 -0
- package/dist/src/planner/nodes/view-mutation-node.js.map +1 -0
- package/dist/src/planner/nodes/window-function.d.ts +17 -1
- package/dist/src/planner/nodes/window-function.d.ts.map +1 -1
- package/dist/src/planner/nodes/window-function.js +15 -1
- package/dist/src/planner/nodes/window-function.js.map +1 -1
- package/dist/src/planner/nodes/window-node.js +2 -2
- package/dist/src/planner/nodes/window-node.js.map +1 -1
- package/dist/src/planner/optimizer.d.ts.map +1 -1
- package/dist/src/planner/optimizer.js +372 -39
- package/dist/src/planner/optimizer.js.map +1 -1
- package/dist/src/planner/planning-context.d.ts +1 -1
- package/dist/src/planner/planning-context.d.ts.map +1 -1
- package/dist/src/planner/rules/access/lens-access-form-matcher.d.ts +70 -0
- package/dist/src/planner/rules/access/lens-access-form-matcher.d.ts.map +1 -0
- package/dist/src/planner/rules/access/lens-access-form-matcher.js +156 -0
- package/dist/src/planner/rules/access/lens-access-form-matcher.js.map +1 -0
- package/dist/src/planner/rules/access/rule-lens-auxiliary-access.d.ts +31 -0
- package/dist/src/planner/rules/access/rule-lens-auxiliary-access.d.ts.map +1 -0
- package/dist/src/planner/rules/access/rule-lens-auxiliary-access.js +176 -0
- package/dist/src/planner/rules/access/rule-lens-auxiliary-access.js.map +1 -0
- package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
- package/dist/src/planner/rules/access/rule-select-access-path.js +435 -37
- package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
- package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.d.ts.map +1 -1
- package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.js +9 -0
- package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.js.map +1 -1
- package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.d.ts +39 -0
- package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.d.ts.map +1 -0
- package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js +616 -0
- package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js.map +1 -0
- package/dist/src/planner/rules/cache/rule-scalar-cse.d.ts.map +1 -1
- package/dist/src/planner/rules/cache/rule-scalar-cse.js +8 -1
- package/dist/src/planner/rules/cache/rule-scalar-cse.js.map +1 -1
- package/dist/src/planner/rules/join/equi-pair-extractor.d.ts +36 -0
- package/dist/src/planner/rules/join/equi-pair-extractor.d.ts.map +1 -1
- package/dist/src/planner/rules/join/equi-pair-extractor.js +38 -1
- package/dist/src/planner/rules/join/equi-pair-extractor.js.map +1 -1
- package/dist/src/planner/rules/join/rule-fanout-batched-outer.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-fanout-batched-outer.js +10 -0
- package/dist/src/planner/rules/join/rule-fanout-batched-outer.js.map +1 -1
- package/dist/src/planner/rules/join/rule-fanout-lookup-join.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-fanout-lookup-join.js +19 -1
- package/dist/src/planner/rules/join/rule-fanout-lookup-join.js.map +1 -1
- package/dist/src/planner/rules/join/rule-inner-join-existence-recovery.d.ts +130 -0
- package/dist/src/planner/rules/join/rule-inner-join-existence-recovery.d.ts.map +1 -0
- package/dist/src/planner/rules/join/rule-inner-join-existence-recovery.js +206 -0
- package/dist/src/planner/rules/join/rule-inner-join-existence-recovery.js.map +1 -0
- package/dist/src/planner/rules/join/rule-join-elimination.d.ts +67 -14
- package/dist/src/planner/rules/join/rule-join-elimination.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-join-elimination.js +81 -25
- package/dist/src/planner/rules/join/rule-join-elimination.js.map +1 -1
- package/dist/src/planner/rules/join/rule-join-existence-pruning.d.ts +84 -0
- package/dist/src/planner/rules/join/rule-join-existence-pruning.d.ts.map +1 -0
- package/dist/src/planner/rules/join/rule-join-existence-pruning.js +138 -0
- package/dist/src/planner/rules/join/rule-join-existence-pruning.js.map +1 -0
- package/dist/src/planner/rules/join/rule-join-greedy-commute.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-join-greedy-commute.js +9 -1
- package/dist/src/planner/rules/join/rule-join-greedy-commute.js.map +1 -1
- package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-join-physical-selection.js +12 -1
- package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -1
- package/dist/src/planner/rules/join/rule-lateral-top1-asof.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-lateral-top1-asof.js +4 -0
- package/dist/src/planner/rules/join/rule-lateral-top1-asof.js.map +1 -1
- package/dist/src/planner/rules/join/rule-monotonic-merge-join.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-monotonic-merge-join.js +4 -0
- package/dist/src/planner/rules/join/rule-monotonic-merge-join.js.map +1 -1
- package/dist/src/planner/rules/join/rule-quickpick-enumeration.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-quickpick-enumeration.js +10 -0
- package/dist/src/planner/rules/join/rule-quickpick-enumeration.js.map +1 -1
- package/dist/src/planner/rules/join/rule-semijoin-existence-recovery.d.ts +286 -0
- package/dist/src/planner/rules/join/rule-semijoin-existence-recovery.d.ts.map +1 -0
- package/dist/src/planner/rules/join/rule-semijoin-existence-recovery.js +548 -0
- package/dist/src/planner/rules/join/rule-semijoin-existence-recovery.js.map +1 -0
- package/dist/src/planner/rules/parallel/rule-async-gather-union-all.d.ts.map +1 -1
- package/dist/src/planner/rules/parallel/rule-async-gather-union-all.js +9 -1
- package/dist/src/planner/rules/parallel/rule-async-gather-union-all.js.map +1 -1
- package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.d.ts.map +1 -1
- package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.js +7 -0
- package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.js.map +1 -1
- package/dist/src/planner/rules/parallel/rule-eager-prefetch-probe.d.ts.map +1 -1
- package/dist/src/planner/rules/parallel/rule-eager-prefetch-probe.js +10 -1
- package/dist/src/planner/rules/parallel/rule-eager-prefetch-probe.js.map +1 -1
- package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.d.ts.map +1 -1
- package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.js +9 -0
- package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.js.map +1 -1
- package/dist/src/planner/rules/predicate/rule-empty-relation-folding.d.ts.map +1 -1
- package/dist/src/planner/rules/predicate/rule-empty-relation-folding.js +18 -0
- package/dist/src/planner/rules/predicate/rule-empty-relation-folding.js.map +1 -1
- package/dist/src/planner/rules/predicate/rule-filter-contradiction.d.ts.map +1 -1
- package/dist/src/planner/rules/predicate/rule-filter-contradiction.js +7 -0
- package/dist/src/planner/rules/predicate/rule-filter-contradiction.js.map +1 -1
- package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.d.ts.map +1 -1
- package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js +9 -0
- package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js.map +1 -1
- package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js +13 -3
- package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js.map +1 -1
- package/dist/src/planner/rules/retrieve/rule-projection-pruning.d.ts.map +1 -1
- package/dist/src/planner/rules/retrieve/rule-projection-pruning.js +14 -0
- package/dist/src/planner/rules/retrieve/rule-projection-pruning.js.map +1 -1
- package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.d.ts +1 -1
- package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.js +4 -4
- package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.js.map +1 -1
- package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.d.ts.map +1 -1
- package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.js +8 -0
- package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.js.map +1 -1
- package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.d.ts.map +1 -1
- package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.js +7 -0
- package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.js.map +1 -1
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts.map +1 -1
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js +12 -0
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js.map +1 -1
- package/dist/src/planner/type-utils.d.ts +14 -0
- package/dist/src/planner/type-utils.d.ts.map +1 -1
- package/dist/src/planner/type-utils.js +66 -21
- package/dist/src/planner/type-utils.js.map +1 -1
- package/dist/src/planner/util/fd-utils.d.ts +177 -43
- package/dist/src/planner/util/fd-utils.d.ts.map +1 -1
- package/dist/src/planner/util/fd-utils.js +396 -101
- package/dist/src/planner/util/fd-utils.js.map +1 -1
- package/dist/src/planner/util/ind-utils.d.ts +27 -1
- package/dist/src/planner/util/ind-utils.d.ts.map +1 -1
- package/dist/src/planner/util/ind-utils.js +80 -6
- package/dist/src/planner/util/ind-utils.js.map +1 -1
- package/dist/src/planner/util/key-utils.d.ts.map +1 -1
- package/dist/src/planner/util/key-utils.js +81 -12
- package/dist/src/planner/util/key-utils.js.map +1 -1
- package/dist/src/planner/util/set-op-wrapper.d.ts +37 -0
- package/dist/src/planner/util/set-op-wrapper.d.ts.map +1 -0
- package/dist/src/planner/util/set-op-wrapper.js +82 -0
- package/dist/src/planner/util/set-op-wrapper.js.map +1 -0
- package/dist/src/planner/validation/plan-validator.d.ts.map +1 -1
- package/dist/src/planner/validation/plan-validator.js +1 -0
- package/dist/src/planner/validation/plan-validator.js.map +1 -1
- package/dist/src/runtime/context-helpers.d.ts +13 -1
- package/dist/src/runtime/context-helpers.d.ts.map +1 -1
- package/dist/src/runtime/context-helpers.js +7 -1
- package/dist/src/runtime/context-helpers.js.map +1 -1
- package/dist/src/runtime/delta-executor.d.ts +30 -1
- package/dist/src/runtime/delta-executor.d.ts.map +1 -1
- package/dist/src/runtime/delta-executor.js +29 -4
- package/dist/src/runtime/delta-executor.js.map +1 -1
- package/dist/src/runtime/emit/add-constraint.d.ts.map +1 -1
- package/dist/src/runtime/emit/add-constraint.js +38 -5
- package/dist/src/runtime/emit/add-constraint.js.map +1 -1
- package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
- package/dist/src/runtime/emit/aggregate.js +10 -8
- package/dist/src/runtime/emit/aggregate.js.map +1 -1
- package/dist/src/runtime/emit/alter-table.d.ts +1 -1
- package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
- package/dist/src/runtime/emit/alter-table.js +664 -108
- package/dist/src/runtime/emit/alter-table.js.map +1 -1
- package/dist/src/runtime/emit/analyze.d.ts.map +1 -1
- package/dist/src/runtime/emit/analyze.js +2 -1
- package/dist/src/runtime/emit/analyze.js.map +1 -1
- package/dist/src/runtime/emit/asof-scan.d.ts.map +1 -1
- package/dist/src/runtime/emit/asof-scan.js +18 -5
- package/dist/src/runtime/emit/asof-scan.js.map +1 -1
- package/dist/src/runtime/emit/asserted-keys.d.ts +13 -0
- package/dist/src/runtime/emit/asserted-keys.d.ts.map +1 -0
- package/dist/src/runtime/emit/asserted-keys.js +13 -0
- package/dist/src/runtime/emit/asserted-keys.js.map +1 -0
- package/dist/src/runtime/emit/between.d.ts.map +1 -1
- package/dist/src/runtime/emit/between.js +24 -19
- package/dist/src/runtime/emit/between.js.map +1 -1
- package/dist/src/runtime/emit/binary.d.ts.map +1 -1
- package/dist/src/runtime/emit/binary.js +5 -9
- package/dist/src/runtime/emit/binary.js.map +1 -1
- package/dist/src/runtime/emit/block.d.ts.map +1 -1
- package/dist/src/runtime/emit/block.js +11 -2
- package/dist/src/runtime/emit/block.js.map +1 -1
- package/dist/src/runtime/emit/bloom-join.d.ts.map +1 -1
- package/dist/src/runtime/emit/bloom-join.js +8 -2
- package/dist/src/runtime/emit/bloom-join.js.map +1 -1
- package/dist/src/runtime/emit/constraint-check.js +15 -0
- package/dist/src/runtime/emit/constraint-check.js.map +1 -1
- package/dist/src/runtime/emit/create-table.d.ts.map +1 -1
- package/dist/src/runtime/emit/create-table.js +8 -0
- package/dist/src/runtime/emit/create-table.js.map +1 -1
- package/dist/src/runtime/emit/create-view.d.ts.map +1 -1
- package/dist/src/runtime/emit/create-view.js +16 -1
- package/dist/src/runtime/emit/create-view.js.map +1 -1
- package/dist/src/runtime/emit/dml-executor.d.ts +27 -0
- package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
- package/dist/src/runtime/emit/dml-executor.js +413 -193
- package/dist/src/runtime/emit/dml-executor.js.map +1 -1
- package/dist/src/runtime/emit/drop-table.d.ts.map +1 -1
- package/dist/src/runtime/emit/drop-table.js +10 -0
- package/dist/src/runtime/emit/drop-table.js.map +1 -1
- package/dist/src/runtime/emit/drop-view.d.ts.map +1 -1
- package/dist/src/runtime/emit/drop-view.js +17 -0
- package/dist/src/runtime/emit/drop-view.js.map +1 -1
- package/dist/src/runtime/emit/envelope-scan.d.ts +13 -0
- package/dist/src/runtime/emit/envelope-scan.d.ts.map +1 -0
- package/dist/src/runtime/emit/envelope-scan.js +22 -0
- package/dist/src/runtime/emit/envelope-scan.js.map +1 -0
- package/dist/src/runtime/emit/join.d.ts +10 -2
- package/dist/src/runtime/emit/join.d.ts.map +1 -1
- package/dist/src/runtime/emit/join.js +128 -38
- package/dist/src/runtime/emit/join.js.map +1 -1
- package/dist/src/runtime/emit/lens-auxiliary-access.d.ts +16 -0
- package/dist/src/runtime/emit/lens-auxiliary-access.d.ts.map +1 -0
- package/dist/src/runtime/emit/lens-auxiliary-access.js +16 -0
- package/dist/src/runtime/emit/lens-auxiliary-access.js.map +1 -0
- package/dist/src/runtime/emit/materialized-view-helpers.d.ts +640 -0
- package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -0
- package/dist/src/runtime/emit/materialized-view-helpers.js +2576 -0
- package/dist/src/runtime/emit/materialized-view-helpers.js.map +1 -0
- package/dist/src/runtime/emit/materialized-view.d.ts +31 -0
- package/dist/src/runtime/emit/materialized-view.d.ts.map +1 -0
- package/dist/src/runtime/emit/materialized-view.js +187 -0
- package/dist/src/runtime/emit/materialized-view.js.map +1 -0
- package/dist/src/runtime/emit/merge-join.d.ts.map +1 -1
- package/dist/src/runtime/emit/merge-join.js +15 -3
- package/dist/src/runtime/emit/merge-join.js.map +1 -1
- package/dist/src/runtime/emit/project.d.ts.map +1 -1
- package/dist/src/runtime/emit/project.js +10 -5
- package/dist/src/runtime/emit/project.js.map +1 -1
- package/dist/src/runtime/emit/schema-declarative.d.ts +1 -0
- package/dist/src/runtime/emit/schema-declarative.d.ts.map +1 -1
- package/dist/src/runtime/emit/schema-declarative.js +101 -5
- package/dist/src/runtime/emit/schema-declarative.js.map +1 -1
- package/dist/src/runtime/emit/set-object-tags.d.ts +16 -0
- package/dist/src/runtime/emit/set-object-tags.d.ts.map +1 -0
- package/dist/src/runtime/emit/set-object-tags.js +57 -0
- package/dist/src/runtime/emit/set-object-tags.js.map +1 -0
- package/dist/src/runtime/emit/set-operation.d.ts.map +1 -1
- package/dist/src/runtime/emit/set-operation.js +140 -24
- package/dist/src/runtime/emit/set-operation.js.map +1 -1
- package/dist/src/runtime/emit/subquery.d.ts.map +1 -1
- package/dist/src/runtime/emit/subquery.js +110 -5
- package/dist/src/runtime/emit/subquery.js.map +1 -1
- package/dist/src/runtime/emit/unary.d.ts.map +1 -1
- package/dist/src/runtime/emit/unary.js +34 -6
- package/dist/src/runtime/emit/unary.js.map +1 -1
- package/dist/src/runtime/emit/view-mutation.d.ts +70 -0
- package/dist/src/runtime/emit/view-mutation.d.ts.map +1 -0
- package/dist/src/runtime/emit/view-mutation.js +299 -0
- package/dist/src/runtime/emit/view-mutation.js.map +1 -0
- package/dist/src/runtime/emit/window.js +29 -5
- package/dist/src/runtime/emit/window.js.map +1 -1
- package/dist/src/runtime/foreign-key-actions.d.ts +66 -3
- package/dist/src/runtime/foreign-key-actions.d.ts.map +1 -1
- package/dist/src/runtime/foreign-key-actions.js +580 -172
- package/dist/src/runtime/foreign-key-actions.js.map +1 -1
- package/dist/src/runtime/parallel-driver.d.ts +4 -1
- package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
- package/dist/src/runtime/parallel-driver.js +5 -1
- package/dist/src/runtime/parallel-driver.js.map +1 -1
- package/dist/src/runtime/register.d.ts.map +1 -1
- package/dist/src/runtime/register.js +17 -1
- package/dist/src/runtime/register.js.map +1 -1
- package/dist/src/runtime/types.d.ts +10 -0
- package/dist/src/runtime/types.d.ts.map +1 -1
- package/dist/src/runtime/types.js.map +1 -1
- package/dist/src/schema/basis-backfill.d.ts +63 -0
- package/dist/src/schema/basis-backfill.d.ts.map +1 -0
- package/dist/src/schema/basis-backfill.js +161 -0
- package/dist/src/schema/basis-backfill.js.map +1 -0
- package/dist/src/schema/catalog.d.ts +115 -1
- package/dist/src/schema/catalog.d.ts.map +1 -1
- package/dist/src/schema/catalog.js +249 -22
- package/dist/src/schema/catalog.js.map +1 -1
- package/dist/src/schema/change-events.d.ts +42 -1
- package/dist/src/schema/change-events.d.ts.map +1 -1
- package/dist/src/schema/change-events.js.map +1 -1
- package/dist/src/schema/column.d.ts +16 -0
- package/dist/src/schema/column.d.ts.map +1 -1
- package/dist/src/schema/column.js.map +1 -1
- package/dist/src/schema/constraint-builder.d.ts +182 -0
- package/dist/src/schema/constraint-builder.d.ts.map +1 -0
- package/dist/src/schema/constraint-builder.js +424 -0
- package/dist/src/schema/constraint-builder.js.map +1 -0
- package/dist/src/schema/ddl-generator.d.ts +86 -1
- package/dist/src/schema/ddl-generator.d.ts.map +1 -1
- package/dist/src/schema/ddl-generator.js +316 -20
- package/dist/src/schema/ddl-generator.js.map +1 -1
- package/dist/src/schema/declared-schema-manager.d.ts +51 -0
- package/dist/src/schema/declared-schema-manager.d.ts.map +1 -1
- package/dist/src/schema/declared-schema-manager.js +61 -0
- package/dist/src/schema/declared-schema-manager.js.map +1 -1
- package/dist/src/schema/derivation.d.ts +106 -0
- package/dist/src/schema/derivation.d.ts.map +1 -0
- package/dist/src/schema/derivation.js +25 -0
- package/dist/src/schema/derivation.js.map +1 -0
- package/dist/src/schema/function.d.ts +20 -0
- package/dist/src/schema/function.d.ts.map +1 -1
- package/dist/src/schema/function.js.map +1 -1
- package/dist/src/schema/lens-ack.d.ts +90 -0
- package/dist/src/schema/lens-ack.d.ts.map +1 -0
- package/dist/src/schema/lens-ack.js +361 -0
- package/dist/src/schema/lens-ack.js.map +1 -0
- package/dist/src/schema/lens-compiler.d.ts +62 -0
- package/dist/src/schema/lens-compiler.d.ts.map +1 -0
- package/dist/src/schema/lens-compiler.js +1594 -0
- package/dist/src/schema/lens-compiler.js.map +1 -0
- package/dist/src/schema/lens-fk-discovery.d.ts +175 -0
- package/dist/src/schema/lens-fk-discovery.d.ts.map +1 -0
- package/dist/src/schema/lens-fk-discovery.js +336 -0
- package/dist/src/schema/lens-fk-discovery.js.map +1 -0
- package/dist/src/schema/lens-prover.d.ts +336 -0
- package/dist/src/schema/lens-prover.d.ts.map +1 -0
- package/dist/src/schema/lens-prover.js +1988 -0
- package/dist/src/schema/lens-prover.js.map +1 -0
- package/dist/src/schema/lens.d.ts +254 -0
- package/dist/src/schema/lens.d.ts.map +1 -0
- package/dist/src/schema/lens.js +21 -0
- package/dist/src/schema/lens.js.map +1 -0
- package/dist/src/schema/manager.d.ts +676 -18
- package/dist/src/schema/manager.d.ts.map +1 -1
- package/dist/src/schema/manager.js +1573 -238
- package/dist/src/schema/manager.js.map +1 -1
- package/dist/src/schema/mapping-advertisement-tags.d.ts +39 -0
- package/dist/src/schema/mapping-advertisement-tags.d.ts.map +1 -0
- package/dist/src/schema/mapping-advertisement-tags.js +216 -0
- package/dist/src/schema/mapping-advertisement-tags.js.map +1 -0
- package/dist/src/schema/rename-rewriter.d.ts +45 -4
- package/dist/src/schema/rename-rewriter.d.ts.map +1 -1
- package/dist/src/schema/rename-rewriter.js +412 -19
- package/dist/src/schema/rename-rewriter.js.map +1 -1
- package/dist/src/schema/reserved-tags-policy.d.ts +32 -0
- package/dist/src/schema/reserved-tags-policy.d.ts.map +1 -0
- package/dist/src/schema/reserved-tags-policy.js +34 -0
- package/dist/src/schema/reserved-tags-policy.js.map +1 -0
- package/dist/src/schema/reserved-tags.d.ts +170 -0
- package/dist/src/schema/reserved-tags.d.ts.map +1 -0
- package/dist/src/schema/reserved-tags.js +507 -0
- package/dist/src/schema/reserved-tags.js.map +1 -0
- package/dist/src/schema/schema-differ.d.ts +158 -2
- package/dist/src/schema/schema-differ.d.ts.map +1 -1
- package/dist/src/schema/schema-differ.js +1460 -78
- package/dist/src/schema/schema-differ.js.map +1 -1
- package/dist/src/schema/schema-hasher.d.ts +8 -3
- package/dist/src/schema/schema-hasher.d.ts.map +1 -1
- package/dist/src/schema/schema-hasher.js +22 -2
- package/dist/src/schema/schema-hasher.js.map +1 -1
- package/dist/src/schema/schema.d.ts +25 -1
- package/dist/src/schema/schema.d.ts.map +1 -1
- package/dist/src/schema/schema.js +36 -2
- package/dist/src/schema/schema.js.map +1 -1
- package/dist/src/schema/table.d.ts +259 -10
- package/dist/src/schema/table.d.ts.map +1 -1
- package/dist/src/schema/table.js +309 -26
- package/dist/src/schema/table.js.map +1 -1
- package/dist/src/schema/unique-enforcement.d.ts +78 -0
- package/dist/src/schema/unique-enforcement.d.ts.map +1 -0
- package/dist/src/schema/unique-enforcement.js +93 -0
- package/dist/src/schema/unique-enforcement.js.map +1 -0
- package/dist/src/schema/view.d.ts +83 -2
- package/dist/src/schema/view.d.ts.map +1 -1
- package/dist/src/schema/view.js +67 -1
- package/dist/src/schema/view.js.map +1 -1
- package/dist/src/schema/window-function.d.ts +9 -1
- package/dist/src/schema/window-function.d.ts.map +1 -1
- package/dist/src/schema/window-function.js.map +1 -1
- package/dist/src/util/comparison.d.ts +24 -0
- package/dist/src/util/comparison.d.ts.map +1 -1
- package/dist/src/util/comparison.js +34 -0
- package/dist/src/util/comparison.js.map +1 -1
- package/dist/src/util/mutation-statement.d.ts.map +1 -1
- package/dist/src/util/mutation-statement.js +4 -1
- package/dist/src/util/mutation-statement.js.map +1 -1
- package/dist/src/util/serialization.d.ts +9 -0
- package/dist/src/util/serialization.d.ts.map +1 -1
- package/dist/src/util/serialization.js +26 -0
- package/dist/src/util/serialization.js.map +1 -1
- package/dist/src/vtab/backing-host.d.ts +286 -0
- package/dist/src/vtab/backing-host.d.ts.map +1 -0
- package/dist/src/vtab/backing-host.js +118 -0
- package/dist/src/vtab/backing-host.js.map +1 -0
- package/dist/src/vtab/best-access-plan.d.ts +21 -0
- package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
- package/dist/src/vtab/best-access-plan.js.map +1 -1
- package/dist/src/vtab/capabilities.d.ts +5 -5
- package/dist/src/vtab/capabilities.d.ts.map +1 -1
- package/dist/src/vtab/mapping-advertisement.d.ts +163 -0
- package/dist/src/vtab/mapping-advertisement.d.ts.map +1 -0
- package/dist/src/vtab/mapping-advertisement.js +2 -0
- package/dist/src/vtab/mapping-advertisement.js.map +1 -0
- package/dist/src/vtab/memory/index.d.ts +64 -4
- package/dist/src/vtab/memory/index.d.ts.map +1 -1
- package/dist/src/vtab/memory/index.js +119 -12
- package/dist/src/vtab/memory/index.js.map +1 -1
- package/dist/src/vtab/memory/layer/base.d.ts +38 -1
- package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/base.js +112 -24
- package/dist/src/vtab/memory/layer/base.js.map +1 -1
- package/dist/src/vtab/memory/layer/manager.d.ts +291 -4
- package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.js +1050 -91
- package/dist/src/vtab/memory/layer/manager.js.map +1 -1
- package/dist/src/vtab/memory/layer/plan-filter.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/plan-filter.js +35 -6
- package/dist/src/vtab/memory/layer/plan-filter.js.map +1 -1
- package/dist/src/vtab/memory/layer/scan-layer.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/scan-layer.js +66 -14
- package/dist/src/vtab/memory/layer/scan-layer.js.map +1 -1
- package/dist/src/vtab/memory/layer/scan-plan.d.ts +14 -0
- package/dist/src/vtab/memory/layer/scan-plan.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/scan-plan.js +27 -4
- package/dist/src/vtab/memory/layer/scan-plan.js.map +1 -1
- package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/transaction.js +5 -1
- package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
- package/dist/src/vtab/memory/module.d.ts +17 -0
- package/dist/src/vtab/memory/module.d.ts.map +1 -1
- package/dist/src/vtab/memory/module.js +82 -3
- package/dist/src/vtab/memory/module.js.map +1 -1
- package/dist/src/vtab/memory/table.d.ts.map +1 -1
- package/dist/src/vtab/memory/table.js +15 -5
- package/dist/src/vtab/memory/table.js.map +1 -1
- package/dist/src/vtab/memory/types.d.ts +20 -2
- package/dist/src/vtab/memory/types.d.ts.map +1 -1
- package/dist/src/vtab/memory/utils/predicate.d.ts.map +1 -1
- package/dist/src/vtab/memory/utils/predicate.js +46 -24
- package/dist/src/vtab/memory/utils/predicate.js.map +1 -1
- package/dist/src/vtab/memory/utils/primary-key-encode.d.ts +31 -0
- package/dist/src/vtab/memory/utils/primary-key-encode.d.ts.map +1 -0
- package/dist/src/vtab/memory/utils/primary-key-encode.js +101 -0
- package/dist/src/vtab/memory/utils/primary-key-encode.js.map +1 -0
- package/dist/src/vtab/memory/utils/primary-key.d.ts +8 -0
- package/dist/src/vtab/memory/utils/primary-key.d.ts.map +1 -1
- package/dist/src/vtab/memory/utils/primary-key.js +12 -5
- package/dist/src/vtab/memory/utils/primary-key.js.map +1 -1
- package/dist/src/vtab/module.d.ts +203 -4
- package/dist/src/vtab/module.d.ts.map +1 -1
- package/dist/src/vtab/table.d.ts +9 -0
- package/dist/src/vtab/table.d.ts.map +1 -1
- package/dist/src/vtab/table.js.map +1 -1
- package/package.json +17 -16
|
@@ -2,13 +2,19 @@ import { RowOpFlag, resolveReferencedColumns } from '../../schema/table.js';
|
|
|
2
2
|
import { RegisteredScope } from '../scopes/registered.js';
|
|
3
3
|
import { buildExpression } from './expression.js';
|
|
4
4
|
import { ColumnReferenceNode } from '../nodes/reference.js';
|
|
5
|
+
import { columnSchemaToScalarType } from '../type-utils.js';
|
|
6
|
+
import { basisFksOverriddenByDivergentLensFk } from '../../schema/lens-fk-discovery.js';
|
|
5
7
|
import { createLogger } from '../../common/logger.js';
|
|
6
8
|
const log = createLogger('planner:fk-builder');
|
|
7
9
|
/**
|
|
8
|
-
* Builds a SELECT 1 FROM <table> WHERE <col pairs joined by AND>
|
|
9
|
-
* Shared by both EXISTS and NOT EXISTS FK checks.
|
|
10
|
+
* Builds a SELECT 1 FROM [<schema>.]<table> WHERE <col pairs joined by AND>
|
|
11
|
+
* subquery AST. Shared by both EXISTS and NOT EXISTS FK checks. `fromSchema`
|
|
12
|
+
* qualifies the FROM relation so it resolves regardless of the surrounding
|
|
13
|
+
* search path — the lens FK collector passes the logical schema so the parent
|
|
14
|
+
* resolves to the registered logical view even though the routed constraint is
|
|
15
|
+
* built under the basis schema path.
|
|
10
16
|
*/
|
|
11
|
-
function synthesizeFKSubquery(fromTableName, columnPairs) {
|
|
17
|
+
function synthesizeFKSubquery(fromTableName, columnPairs, fromSchema) {
|
|
12
18
|
const conditions = columnPairs.map(({ leftTable, leftCol, rightTable, rightCol }) => ({
|
|
13
19
|
type: 'binary',
|
|
14
20
|
operator: '=',
|
|
@@ -28,60 +34,102 @@ function synthesizeFKSubquery(fromTableName, columnPairs) {
|
|
|
28
34
|
columns: [{ type: 'column', expr: { type: 'literal', value: 1 } }],
|
|
29
35
|
from: [{
|
|
30
36
|
type: 'table',
|
|
31
|
-
table: { type: 'identifier', name: fromTableName },
|
|
37
|
+
table: { type: 'identifier', name: fromTableName, schema: fromSchema },
|
|
32
38
|
}],
|
|
33
39
|
where: whereExpr,
|
|
34
40
|
};
|
|
35
41
|
}
|
|
36
42
|
/**
|
|
37
|
-
*
|
|
38
|
-
* exists in the parent table for the given FK columns.
|
|
43
|
+
* Assembles the MATCH SIMPLE-guarded child-side FK existence expression:
|
|
39
44
|
*
|
|
40
|
-
*
|
|
45
|
+
* ( <q>.<child1> IS NULL OR … OR
|
|
46
|
+
* EXISTS(SELECT 1 FROM [<schema>.]<parent> WHERE <parent>.<ref_i> = <q>.<child_i> …) )
|
|
47
|
+
*
|
|
48
|
+
* The child column names are taken verbatim — the physical builder passes the
|
|
49
|
+
* child table's own column names; the lens collector passes basis-rewritten
|
|
50
|
+
* names. The parent column names are the referenced-column names (logical names
|
|
51
|
+
* for the lens, which resolve against the logical view named by `fromSchema`).
|
|
52
|
+
* Shared by the physical child-side FK check and the lens FK collector so the
|
|
53
|
+
* synthesis lives in exactly one place.
|
|
41
54
|
*/
|
|
42
|
-
function
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
rightCol: childTable.columns[childColIdx].name,
|
|
55
|
+
export function synthesizeFKExistsExpr(parentTableName, parentColumns, childColumns, qualifier, fromSchema) {
|
|
56
|
+
const pairs = childColumns.map((childCol, i) => ({
|
|
57
|
+
leftTable: parentTableName,
|
|
58
|
+
leftCol: parentColumns[i],
|
|
59
|
+
rightTable: qualifier,
|
|
60
|
+
rightCol: childCol,
|
|
49
61
|
}));
|
|
50
62
|
const existsExpr = {
|
|
51
63
|
type: 'exists',
|
|
52
|
-
subquery: synthesizeFKSubquery(
|
|
64
|
+
subquery: synthesizeFKSubquery(parentTableName, pairs, fromSchema),
|
|
53
65
|
};
|
|
54
66
|
// MATCH SIMPLE (SQL default): FK is satisfied when any referencing column is NULL.
|
|
55
67
|
// Wrap EXISTS with OR-chained IS NULL guards to skip the subquery in that case.
|
|
56
|
-
const nullGuards =
|
|
68
|
+
const nullGuards = childColumns.map((childCol) => ({
|
|
57
69
|
type: 'unary',
|
|
58
70
|
operator: 'IS NULL',
|
|
59
|
-
expr: { type: 'column', name:
|
|
71
|
+
expr: { type: 'column', name: childCol, table: qualifier },
|
|
60
72
|
}));
|
|
61
73
|
return nullGuards.reduceRight((acc, guard) => ({ type: 'binary', operator: 'OR', left: guard, right: acc }), existsExpr);
|
|
62
74
|
}
|
|
63
75
|
/**
|
|
64
|
-
*
|
|
65
|
-
* reference the old parent values.
|
|
76
|
+
* Assembles the parent-side FK non-existence expression:
|
|
66
77
|
*
|
|
67
|
-
*
|
|
78
|
+
* not exists (select 1 from [<schema>.]<child> where <child>.<childCol_i> = <q>.<parentCol_i> …)
|
|
79
|
+
*
|
|
80
|
+
* The dual of {@link synthesizeFKExistsExpr}: the physical parent-side RESTRICT
|
|
81
|
+
* check passes the child table's own column names and the parent's referenced
|
|
82
|
+
* column names off the `TableSchema`s (no `fromSchema`); the lens parent-side
|
|
83
|
+
* collector passes the logical child column names, the parent's referenced
|
|
84
|
+
* columns rewritten to basis terms, and the logical child schema as `fromSchema`
|
|
85
|
+
* so the child relation resolves to the registered logical view regardless of the
|
|
86
|
+
* basis search path the routed constraint is built under. Shared so the
|
|
87
|
+
* `NOT EXISTS` synthesis lives in exactly one place.
|
|
68
88
|
*/
|
|
69
|
-
function
|
|
70
|
-
const pairs =
|
|
71
|
-
leftTable:
|
|
72
|
-
leftCol:
|
|
73
|
-
rightTable:
|
|
74
|
-
rightCol:
|
|
89
|
+
export function synthesizeFKNotExistsExpr(childTableName, childColumns, parentColumns, qualifier, fromSchema) {
|
|
90
|
+
const pairs = childColumns.map((childCol, i) => ({
|
|
91
|
+
leftTable: childTableName,
|
|
92
|
+
leftCol: childCol,
|
|
93
|
+
rightTable: qualifier,
|
|
94
|
+
rightCol: parentColumns[i],
|
|
75
95
|
}));
|
|
76
96
|
return {
|
|
77
97
|
type: 'unary',
|
|
78
98
|
operator: 'NOT',
|
|
79
99
|
expr: {
|
|
80
100
|
type: 'exists',
|
|
81
|
-
subquery: synthesizeFKSubquery(
|
|
101
|
+
subquery: synthesizeFKSubquery(childTableName, pairs, fromSchema),
|
|
82
102
|
},
|
|
83
103
|
};
|
|
84
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* Synthesizes an EXISTS(...) AST expression that checks whether a matching row
|
|
107
|
+
* exists in the parent table for the given FK columns.
|
|
108
|
+
*
|
|
109
|
+
* Generates: EXISTS(SELECT 1 FROM parent WHERE parent.col1 = NEW.fk1 AND parent.col2 = NEW.fk2)
|
|
110
|
+
*/
|
|
111
|
+
function synthesizeExistsCheck(fk, childTable, parentTable, parentColIndices, qualifier) {
|
|
112
|
+
const parentColumns = parentColIndices.map(i => parentTable.columns[i].name);
|
|
113
|
+
const childColumns = fk.columns.map(childColIdx => childTable.columns[childColIdx].name);
|
|
114
|
+
// Thread the parent's own schema so the synthesized `from <parent>` resolves to
|
|
115
|
+
// the correct table even when the parent lives in a different schema than the
|
|
116
|
+
// child (a no-op for the same-schema case — the search path already resolves it).
|
|
117
|
+
return synthesizeFKExistsExpr(parentTable.name, parentColumns, childColumns, qualifier.toUpperCase(), parentTable.schemaName);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Synthesizes a NOT EXISTS(...) AST expression that checks no child rows
|
|
121
|
+
* reference the old parent values.
|
|
122
|
+
*
|
|
123
|
+
* Generates: NOT EXISTS(SELECT 1 FROM child WHERE child.fk1 = OLD.pk1 AND ...)
|
|
124
|
+
*/
|
|
125
|
+
function synthesizeNotExistsCheck(fk, childTable, parentTable, parentColIndices) {
|
|
126
|
+
const childColumns = fk.columns.map(childColIdx => childTable.columns[childColIdx].name);
|
|
127
|
+
const parentColumns = parentColIndices.map(idx => parentTable.columns[idx].name);
|
|
128
|
+
// Physical path: child/parent names off the `TableSchema`s. Thread the child's
|
|
129
|
+
// own schema as `fromSchema` so the synthesized `from <child>` resolves correctly
|
|
130
|
+
// when the child lives in a different schema than the parent (a no-op same-schema).
|
|
131
|
+
return synthesizeFKNotExistsExpr(childTable.name, childColumns, parentColumns, 'OLD', childTable.schemaName);
|
|
132
|
+
}
|
|
85
133
|
/**
|
|
86
134
|
* Builds child-side FK constraint checks (for INSERT/UPDATE on the referencing table).
|
|
87
135
|
* For each FK, generates an EXISTS check ensuring the parent row exists.
|
|
@@ -140,12 +188,10 @@ export function buildChildSideFKChecks(ctx, tableSchema, operation, oldAttribute
|
|
|
140
188
|
const colNameLower = tableColumn.name.toLowerCase();
|
|
141
189
|
const newAttr = newAttributes[tableColIndex];
|
|
142
190
|
if (newAttr) {
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
isReadOnly: false,
|
|
148
|
-
};
|
|
191
|
+
// Carry the column's declared collation so a FK comparison over a
|
|
192
|
+
// collated child column resolves the same collation a read-path
|
|
193
|
+
// query would (mirrors the CHECK constraint scope).
|
|
194
|
+
const newColumnType = columnSchemaToScalarType(tableColumn);
|
|
149
195
|
constraintScope.registerSymbol(`new.${colNameLower}`, (exp, s) => new ColumnReferenceNode(s, exp, newColumnType, newAttr.id, tableColIndex));
|
|
150
196
|
if (operation === RowOpFlag.INSERT || operation === RowOpFlag.UPDATE) {
|
|
151
197
|
constraintScope.registerSymbol(colNameLower, (exp, s) => new ColumnReferenceNode(s, exp, newColumnType, newAttr.id, tableColIndex));
|
|
@@ -153,12 +199,7 @@ export function buildChildSideFKChecks(ctx, tableSchema, operation, oldAttribute
|
|
|
153
199
|
}
|
|
154
200
|
const oldAttr = oldAttributes[tableColIndex];
|
|
155
201
|
if (oldAttr) {
|
|
156
|
-
const oldColumnType = {
|
|
157
|
-
typeClass: 'scalar',
|
|
158
|
-
logicalType: tableColumn.logicalType,
|
|
159
|
-
nullable: true,
|
|
160
|
-
isReadOnly: false,
|
|
161
|
-
};
|
|
202
|
+
const oldColumnType = columnSchemaToScalarType(tableColumn, { nullable: true });
|
|
162
203
|
constraintScope.registerSymbol(`old.${colNameLower}`, (exp, s) => new ColumnReferenceNode(s, exp, oldColumnType, oldAttr.id, tableColIndex));
|
|
163
204
|
}
|
|
164
205
|
});
|
|
@@ -195,99 +236,89 @@ export function buildParentSideFKChecks(ctx, tableSchema, operation, oldAttribut
|
|
|
195
236
|
if (operation !== RowOpFlag.DELETE && operation !== RowOpFlag.UPDATE)
|
|
196
237
|
return [];
|
|
197
238
|
const checks = [];
|
|
198
|
-
//
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
// For DELETE, unqualified defaults to OLD
|
|
250
|
-
if (operation === RowOpFlag.DELETE) {
|
|
251
|
-
constraintScope.registerSymbol(colNameLower, (exp, s) => new ColumnReferenceNode(s, exp, oldColumnType, oldAttr.id, tableColIndex));
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
const newAttr = newAttributes[tableColIndex];
|
|
255
|
-
if (newAttr) {
|
|
256
|
-
const newColumnType = {
|
|
257
|
-
typeClass: 'scalar',
|
|
258
|
-
logicalType: tableColumn.logicalType,
|
|
259
|
-
nullable: true,
|
|
260
|
-
isReadOnly: false,
|
|
261
|
-
};
|
|
262
|
-
constraintScope.registerSymbol(`new.${colNameLower}`, (exp, s) => new ColumnReferenceNode(s, exp, newColumnType, newAttr.id, tableColIndex));
|
|
263
|
-
if (operation === RowOpFlag.UPDATE) {
|
|
264
|
-
constraintScope.registerSymbol(colNameLower, (exp, s) => new ColumnReferenceNode(s, exp, newColumnType, newAttr.id, tableColIndex));
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
});
|
|
268
|
-
const originalCurrentSchema = ctx.schemaManager.getCurrentSchemaName();
|
|
269
|
-
const needsSchemaSwitch = tableSchema.schemaName !== originalCurrentSchema;
|
|
270
|
-
if (needsSchemaSwitch)
|
|
271
|
-
ctx.schemaManager.setCurrentSchema(tableSchema.schemaName);
|
|
272
|
-
try {
|
|
273
|
-
const constraintSchemaPath = [tableSchema.schemaName];
|
|
274
|
-
const constraintCtx = { ...ctx, scope: constraintScope, schemaPath: constraintSchemaPath };
|
|
275
|
-
const expression = buildExpression(constraintCtx, notExistsExpr);
|
|
276
|
-
checks.push({
|
|
277
|
-
constraint: syntheticConstraint,
|
|
278
|
-
expression,
|
|
279
|
-
deferrable: !isRestrict,
|
|
280
|
-
initiallyDeferred: !isRestrict,
|
|
281
|
-
needsDeferred: !isRestrict, // RESTRICT must be immediate, not deferred
|
|
282
|
-
kind: 'fk-parent',
|
|
283
|
-
referencedColumnIndices: parentColIndices,
|
|
284
|
-
});
|
|
239
|
+
// Basis RESTRICT FKs a divergent non-RESTRICT logical FK overrides — their immediate
|
|
240
|
+
// plan-time NOT EXISTS is suppressed so the parent write a logical cascade must
|
|
241
|
+
// complete is not rejected. Cheap-empty when no lens slot is backed by `tableSchema`.
|
|
242
|
+
const suppressed = basisFksOverriddenByDivergentLensFk(tableSchema, operation === RowOpFlag.DELETE ? 'delete' : 'update', ctx.schemaManager);
|
|
243
|
+
// The reverse FK index is keyed on the referenced schema.table, so the two discovery
|
|
244
|
+
// filters (referencedTable / targetSchema match) are satisfied by the lookup and drop
|
|
245
|
+
// out; only RESTRICT FKs generate a parent-side check (the per-FK body is unchanged).
|
|
246
|
+
for (const { childTable, fk } of ctx.schemaManager.getReferencingForeignKeys(tableSchema.schemaName, tableSchema.name)) {
|
|
247
|
+
const action = operation === RowOpFlag.DELETE ? fk.onDelete : fk.onUpdate;
|
|
248
|
+
// Only RESTRICT generates parent-side checks. CASCADE, SET NULL,
|
|
249
|
+
// and SET DEFAULT are handled by cascading actions in
|
|
250
|
+
// runtime/foreign-key-actions.
|
|
251
|
+
if (action !== 'restrict')
|
|
252
|
+
continue;
|
|
253
|
+
// Suppressed: a divergent non-RESTRICT logical FK over the same columns
|
|
254
|
+
// replaces this basis RESTRICT (the logical cascade must complete, not be
|
|
255
|
+
// rejected by the immediate plan-time NOT EXISTS).
|
|
256
|
+
if (suppressed.has(fk))
|
|
257
|
+
continue;
|
|
258
|
+
const parentColIndices = resolveReferencedColumns(fk, tableSchema);
|
|
259
|
+
if (parentColIndices.length !== fk.columns.length)
|
|
260
|
+
continue;
|
|
261
|
+
// For UPDATE, the runtime skips this check when none of `parentColIndices`
|
|
262
|
+
// changed (see emit/constraint-check.ts).
|
|
263
|
+
// Synthesize NOT EXISTS(SELECT 1 FROM child WHERE child.fk = OLD.pk)
|
|
264
|
+
const notExistsExpr = synthesizeNotExistsCheck(fk, childTable, tableSchema, parentColIndices);
|
|
265
|
+
const isRestrict = action === 'restrict';
|
|
266
|
+
const syntheticConstraint = {
|
|
267
|
+
name: fk.name ?? `_fk_parent_${childTable.name}_${tableSchema.name}`,
|
|
268
|
+
expr: notExistsExpr,
|
|
269
|
+
operations: (RowOpFlag.DELETE | RowOpFlag.UPDATE),
|
|
270
|
+
deferrable: !isRestrict, // RESTRICT is immediate
|
|
271
|
+
initiallyDeferred: !isRestrict,
|
|
272
|
+
};
|
|
273
|
+
// Build scope with OLD/NEW column access
|
|
274
|
+
const constraintScope = new RegisteredScope(ctx.scope);
|
|
275
|
+
contextAttributes.forEach((attr, contextVarIndex) => {
|
|
276
|
+
if (contextVarIndex < (tableSchema.mutationContext?.length || 0)) {
|
|
277
|
+
const contextVar = tableSchema.mutationContext[contextVarIndex];
|
|
278
|
+
constraintScope.registerSymbol(contextVar.name.toLowerCase(), (exp, s) => new ColumnReferenceNode(s, exp, attr.type, attr.id, contextVarIndex));
|
|
279
|
+
}
|
|
280
|
+
});
|
|
281
|
+
tableSchema.columns.forEach((tableColumn, tableColIndex) => {
|
|
282
|
+
const colNameLower = tableColumn.name.toLowerCase();
|
|
283
|
+
const oldAttr = oldAttributes[tableColIndex];
|
|
284
|
+
if (oldAttr) {
|
|
285
|
+
const oldColumnType = columnSchemaToScalarType(tableColumn);
|
|
286
|
+
constraintScope.registerSymbol(`old.${colNameLower}`, (exp, s) => new ColumnReferenceNode(s, exp, oldColumnType, oldAttr.id, tableColIndex));
|
|
287
|
+
// For DELETE, unqualified defaults to OLD
|
|
288
|
+
if (operation === RowOpFlag.DELETE) {
|
|
289
|
+
constraintScope.registerSymbol(colNameLower, (exp, s) => new ColumnReferenceNode(s, exp, oldColumnType, oldAttr.id, tableColIndex));
|
|
285
290
|
}
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
291
|
+
}
|
|
292
|
+
const newAttr = newAttributes[tableColIndex];
|
|
293
|
+
if (newAttr) {
|
|
294
|
+
const newColumnType = columnSchemaToScalarType(tableColumn, { nullable: true });
|
|
295
|
+
constraintScope.registerSymbol(`new.${colNameLower}`, (exp, s) => new ColumnReferenceNode(s, exp, newColumnType, newAttr.id, tableColIndex));
|
|
296
|
+
if (operation === RowOpFlag.UPDATE) {
|
|
297
|
+
constraintScope.registerSymbol(colNameLower, (exp, s) => new ColumnReferenceNode(s, exp, newColumnType, newAttr.id, tableColIndex));
|
|
289
298
|
}
|
|
290
299
|
}
|
|
300
|
+
});
|
|
301
|
+
const originalCurrentSchema = ctx.schemaManager.getCurrentSchemaName();
|
|
302
|
+
const needsSchemaSwitch = tableSchema.schemaName !== originalCurrentSchema;
|
|
303
|
+
if (needsSchemaSwitch)
|
|
304
|
+
ctx.schemaManager.setCurrentSchema(tableSchema.schemaName);
|
|
305
|
+
try {
|
|
306
|
+
const constraintSchemaPath = [tableSchema.schemaName];
|
|
307
|
+
const constraintCtx = { ...ctx, scope: constraintScope, schemaPath: constraintSchemaPath };
|
|
308
|
+
const expression = buildExpression(constraintCtx, notExistsExpr);
|
|
309
|
+
checks.push({
|
|
310
|
+
constraint: syntheticConstraint,
|
|
311
|
+
expression,
|
|
312
|
+
deferrable: !isRestrict,
|
|
313
|
+
initiallyDeferred: !isRestrict,
|
|
314
|
+
needsDeferred: !isRestrict, // RESTRICT must be immediate, not deferred
|
|
315
|
+
kind: 'fk-parent',
|
|
316
|
+
referencedColumnIndices: parentColIndices,
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
finally {
|
|
320
|
+
if (needsSchemaSwitch)
|
|
321
|
+
ctx.schemaManager.setCurrentSchema(originalCurrentSchema);
|
|
291
322
|
}
|
|
292
323
|
}
|
|
293
324
|
return checks;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foreign-key-builder.js","sourceRoot":"","sources":["../../../../src/planner/building/foreign-key-builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"foreign-key-builder.js","sourceRoot":"","sources":["../../../../src/planner/building/foreign-key-builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAkB,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAG5F,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,mCAAmC,EAAE,MAAM,mCAAmC,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,GAAG,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC;AAE/C;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAC5B,aAAqB,EACrB,WAAgG,EAChG,UAAmB;IAEnB,MAAM,UAAU,GAAqB,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACvG,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,GAAG;QACb,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAoB;QAC3E,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAoB;KAC3D,CAAA,CAAC,CAAC;IAEtB,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC;QACxC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACf,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACnC,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,GAAG;YACT,KAAK,EAAE,IAAI;SACQ,CAAA,CAAC,CAAC;IAEvB,OAAO;QACN,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAqB,EAAE,CAAC;QACrF,IAAI,EAAE,CAAC;gBACN,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE;aACnD,CAAC;QACrB,KAAK,EAAE,SAAS;KAChB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,sBAAsB,CACrC,eAAuB,EACvB,aAAgC,EAChC,YAA+B,EAC/B,SAAwB,EACxB,UAAmB;IAEnB,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAChD,SAAS,EAAE,eAAe;QAC1B,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;QACzB,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,QAAQ;KAClB,CAAC,CAAC,CAAC;IAEJ,MAAM,UAAU,GAAmB;QAClC,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,oBAAoB,CAAC,eAAe,EAAE,KAAK,EAAE,UAAU,CAAC;KAClE,CAAC;IAEF,mFAAmF;IACnF,gFAAgF;IAChF,MAAM,UAAU,GAAoB,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACnE,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAoB;KAC5E,CAAC,CAAC,CAAC;IAEJ,OAAO,UAAU,CAAC,WAAW,CAC5B,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAqB,CAAA,EAC/F,UAAU,CACV,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,yBAAyB,CACxC,cAAsB,EACtB,YAA+B,EAC/B,aAAgC,EAChC,SAAwB,EACxB,UAAmB;IAEnB,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAChD,SAAS,EAAE,cAAc;QACzB,OAAO,EAAE,QAAQ;QACjB,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;KAC1B,CAAC,CAAC,CAAC;IAEJ,OAAO;QACN,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,oBAAoB,CAAC,cAAc,EAAE,KAAK,EAAE,UAAU,CAAC;SAC/C;KACnB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAC7B,EAA8B,EAC9B,UAAuB,EACvB,WAAwB,EACxB,gBAA0B,EAC1B,SAAwB;IAExB,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7E,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC;IACzF,gFAAgF;IAChF,8EAA8E;IAC9E,kFAAkF;IAClF,OAAO,sBAAsB,CAC5B,WAAW,CAAC,IAAI,EAChB,aAAa,EACb,YAAY,EACZ,SAAS,CAAC,WAAW,EAAmB,EACxC,WAAW,CAAC,UAAU,CACtB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,wBAAwB,CAChC,EAA8B,EAC9B,UAAuB,EACvB,WAAwB,EACxB,gBAA0B;IAE1B,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC;IACzF,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACjF,+EAA+E;IAC/E,kFAAkF;IAClF,oFAAoF;IACpF,OAAO,yBAAyB,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;AAC9G,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACrC,GAAoB,EACpB,WAAwB,EACxB,SAAoB,EACpB,aAA0B,EAC1B,aAA0B,EAC1B,oBAAiC,EAAE;IAEnC,IAAI,CAAC,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAChF,+CAA+C;IAC/C,IAAI,SAAS,KAAK,SAAS,CAAC,MAAM,IAAI,SAAS,KAAK,SAAS,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEhF,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,KAAK,MAAM,EAAE,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;QAC1C,8EAA8E;QAC9E,+EAA+E;QAC/E,6EAA6E;QAC7E,MAAM,YAAY,GAAG,GAAG,CAAC,aAAa,CAAC,SAAS,CAC/C,EAAE,CAAC,eAAe,EAClB,EAAE,CAAC,gBAAgB,CACnB,CAAC;QAEF,IAAI,UAA0B,CAAC;QAC/B,IAAI,CAAC,YAAY,EAAE,CAAC;YACnB,GAAG,CAAC,OAAO,EAAE,CAAC,IAAI,oBAAoB,EAAE,CAAC,eAAe,8CAA8C,CAAC,CAAC;YACxG,MAAM,UAAU,GAAoB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBACpE,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAoB;aACrG,CAAC,CAAC,CAAC;YACJ,UAAU,GAAG,UAAU,CAAC,WAAW,CAClC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAqB,CAAA,EAC/F,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAqB,CAChD,CAAC;QACH,CAAC;aAAM,CAAC;YACP,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;YACpE,IAAI,gBAAgB,CAAC,MAAM,KAAK,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnD,GAAG,CAAC,mDAAmD,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC;gBACnE,SAAS;YACV,CAAC;YAED,oEAAoE;YACpE,UAAU,GAAG,qBAAqB,CAAC,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAC5F,CAAC;QAED,+EAA+E;QAC/E,MAAM,mBAAmB,GAAwB;YAChD,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,OAAO,WAAW,CAAC,IAAI,EAAE;YAC1C,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAc;YAC9D,UAAU,EAAE,IAAI;YAChB,iBAAiB,EAAE,IAAI;SACvB,CAAC;QAEF,gEAAgE;QAChE,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEvD,sCAAsC;QACtC,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE;YACnD,IAAI,eAAe,GAAG,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC;gBAClE,MAAM,UAAU,GAAG,WAAW,CAAC,eAAgB,CAAC,eAAe,CAAC,CAAC;gBACjE,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnD,eAAe,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CACvD,IAAI,mBAAmB,CAAC,CAAC,EAAE,GAAqB,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,eAAe,CAAC,CACtF,CAAC;YACH,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,0BAA0B;QAC1B,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,EAAE;YAC1D,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAEpD,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;YAC7C,IAAI,OAAO,EAAE,CAAC;gBACb,kEAAkE;gBAClE,gEAAgE;gBAChE,oDAAoD;gBACpD,MAAM,aAAa,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;gBAE5D,eAAe,CAAC,cAAc,CAAC,OAAO,YAAY,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAChE,IAAI,mBAAmB,CAAC,CAAC,EAAE,GAAqB,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;gBAE9F,IAAI,SAAS,KAAK,SAAS,CAAC,MAAM,IAAI,SAAS,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;oBACtE,eAAe,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CACvD,IAAI,mBAAmB,CAAC,CAAC,EAAE,GAAqB,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;gBAC/F,CAAC;YACF,CAAC;YAED,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;YAC7C,IAAI,OAAO,EAAE,CAAC;gBACb,MAAM,aAAa,GAAG,wBAAwB,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBAEhF,eAAe,CAAC,cAAc,CAAC,OAAO,YAAY,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAChE,IAAI,mBAAmB,CAAC,CAAC,EAAE,GAAqB,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;YAC/F,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,MAAM,qBAAqB,GAAG,GAAG,CAAC,aAAa,CAAC,oBAAoB,EAAE,CAAC;QACvE,MAAM,iBAAiB,GAAG,WAAW,CAAC,UAAU,KAAK,qBAAqB,CAAC;QAC3E,IAAI,iBAAiB;YAAE,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAElF,IAAI,CAAC;YACJ,MAAM,oBAAoB,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACtD,MAAM,aAAa,GAAG,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,oBAAoB,EAAE,CAAC;YAE3F,MAAM,UAAU,GAAG,eAAe,CAAC,aAAa,EAAE,UAAU,CAAmB,CAAC;YAEhF,MAAM,CAAC,IAAI,CAAC;gBACX,UAAU,EAAE,mBAAmB;gBAC/B,UAAU;gBACV,UAAU,EAAE,IAAI;gBAChB,iBAAiB,EAAE,IAAI;gBACvB,aAAa,EAAE,IAAI;gBACnB,IAAI,EAAE,UAAU;aAChB,CAAC,CAAC;QACJ,CAAC;gBAAS,CAAC;YACV,IAAI,iBAAiB;gBAAE,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;QAClF,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACtC,GAAoB,EACpB,WAAwB,EACxB,SAAoB,EACpB,aAA0B,EAC1B,aAA0B,EAC1B,oBAAiC,EAAE;IAEnC,gDAAgD;IAChD,IAAI,SAAS,KAAK,SAAS,CAAC,MAAM,IAAI,SAAS,KAAK,SAAS,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEhF,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,qFAAqF;IACrF,gFAAgF;IAChF,sFAAsF;IACtF,MAAM,UAAU,GAAG,mCAAmC,CACrD,WAAW,EACX,SAAS,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EACpD,GAAG,CAAC,aAAa,CACjB,CAAC;IAEF,qFAAqF;IACrF,sFAAsF;IACtF,sFAAsF;IACtF,KAAK,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,GAAG,CAAC,aAAa,CAAC,yBAAyB,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACxH,MAAM,MAAM,GAAG,SAAS,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;QAE1E,iEAAiE;QACjE,sDAAsD;QACtD,+BAA+B;QAC/B,IAAI,MAAM,KAAK,UAAU;YAAE,SAAS;QAEpC,wEAAwE;QACxE,0EAA0E;QAC1E,mDAAmD;QACnD,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QAEjC,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QACnE,IAAI,gBAAgB,CAAC,MAAM,KAAK,EAAE,CAAC,OAAO,CAAC,MAAM;YAAE,SAAS;QAE5D,2EAA2E;QAC3E,0CAA0C;QAE1C,qEAAqE;QACrE,MAAM,aAAa,GAAG,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAE9F,MAAM,UAAU,GAAG,MAAM,KAAK,UAAU,CAAC;QACzC,MAAM,mBAAmB,GAAwB;YAChD,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,cAAc,UAAU,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE;YACpE,IAAI,EAAE,aAAa;YACnB,UAAU,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAc;YAC9D,UAAU,EAAE,CAAC,UAAU,EAAE,wBAAwB;YACjD,iBAAiB,EAAE,CAAC,UAAU;SAC9B,CAAC;QAEF,yCAAyC;QACzC,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEvD,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE;YACnD,IAAI,eAAe,GAAG,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC;gBAClE,MAAM,UAAU,GAAG,WAAW,CAAC,eAAgB,CAAC,eAAe,CAAC,CAAC;gBACjE,eAAe,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CACxE,IAAI,mBAAmB,CAAC,CAAC,EAAE,GAAqB,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,eAAe,CAAC,CACtF,CAAC;YACH,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,EAAE;YAC1D,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAEpD,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;YAC7C,IAAI,OAAO,EAAE,CAAC;gBACb,MAAM,aAAa,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;gBAE5D,eAAe,CAAC,cAAc,CAAC,OAAO,YAAY,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAChE,IAAI,mBAAmB,CAAC,CAAC,EAAE,GAAqB,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;gBAE9F,0CAA0C;gBAC1C,IAAI,SAAS,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;oBACpC,eAAe,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CACvD,IAAI,mBAAmB,CAAC,CAAC,EAAE,GAAqB,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;gBAC/F,CAAC;YACF,CAAC;YAED,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;YAC7C,IAAI,OAAO,EAAE,CAAC;gBACb,MAAM,aAAa,GAAG,wBAAwB,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBAEhF,eAAe,CAAC,cAAc,CAAC,OAAO,YAAY,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAChE,IAAI,mBAAmB,CAAC,CAAC,EAAE,GAAqB,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;gBAE9F,IAAI,SAAS,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;oBACpC,eAAe,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CACvD,IAAI,mBAAmB,CAAC,CAAC,EAAE,GAAqB,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;gBAC/F,CAAC;YACF,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,MAAM,qBAAqB,GAAG,GAAG,CAAC,aAAa,CAAC,oBAAoB,EAAE,CAAC;QACvE,MAAM,iBAAiB,GAAG,WAAW,CAAC,UAAU,KAAK,qBAAqB,CAAC;QAC3E,IAAI,iBAAiB;YAAE,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAElF,IAAI,CAAC;YACJ,MAAM,oBAAoB,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACtD,MAAM,aAAa,GAAG,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,oBAAoB,EAAE,CAAC;YAE3F,MAAM,UAAU,GAAG,eAAe,CAAC,aAAa,EAAE,aAAa,CAAmB,CAAC;YAEnF,MAAM,CAAC,IAAI,CAAC;gBACX,UAAU,EAAE,mBAAmB;gBAC/B,UAAU;gBACV,UAAU,EAAE,CAAC,UAAU;gBACvB,iBAAiB,EAAE,CAAC,UAAU;gBAC9B,aAAa,EAAE,CAAC,UAAU,EAAE,2CAA2C;gBACvE,IAAI,EAAE,WAAW;gBACjB,uBAAuB,EAAE,gBAAgB;aACzC,CAAC,CAAC;QACJ,CAAC;gBAAS,CAAC;YACV,IAAI,iBAAiB;gBAAE,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;QAClF,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
|
|
@@ -1,5 +1,48 @@
|
|
|
1
1
|
import type * as AST from '../../parser/ast.js';
|
|
2
2
|
import type { PlanningContext } from '../planning-context.js';
|
|
3
|
-
import { PlanNode } from '../nodes/plan-node.js';
|
|
4
|
-
|
|
3
|
+
import { PlanNode, type RelationalPlanNode } from '../nodes/plan-node.js';
|
|
4
|
+
import type { Scope } from '../scopes/scope.js';
|
|
5
|
+
import { type RowConstraintSchema } from '../../schema/table.js';
|
|
6
|
+
export declare function buildInsertStmt(ctx: PlanningContext, stmt: AST.InsertStmt,
|
|
7
|
+
/**
|
|
8
|
+
* Extra row-local CHECK constraints to enforce, already resolved in the target
|
|
9
|
+
* table's column space. Set only when the view-mutation substrate re-plans a
|
|
10
|
+
* lens write onto its basis table — it threads the logical `enforced-row-local`
|
|
11
|
+
* obligations (rewritten to basis terms) here so they fire on the basis write
|
|
12
|
+
* (see `planner/mutation/lens-enforcement.ts`). Empty for ordinary inserts.
|
|
13
|
+
*/
|
|
14
|
+
extraConstraints?: ReadonlyArray<RowConstraintSchema>,
|
|
15
|
+
/**
|
|
16
|
+
* A pre-built relational source to use instead of building one from
|
|
17
|
+
* `stmt.source`. Set only by the multi-source view-insert decomposition, which
|
|
18
|
+
* feeds each base insert a projection over the shared-surrogate envelope
|
|
19
|
+
* (`EnvelopeScanNode`) rather than the user's VALUES/SELECT. Its output
|
|
20
|
+
* attributes are positional with `stmt.columns`. When set, `stmt.source` is
|
|
21
|
+
* ignored (a placeholder), but every other facet of the statement (target
|
|
22
|
+
* columns, ON CONFLICT, mutation context, constraint/FK/default machinery) is
|
|
23
|
+
* built exactly as for an ordinary insert.
|
|
24
|
+
*/
|
|
25
|
+
preBuiltSource?: RelationalPlanNode,
|
|
26
|
+
/**
|
|
27
|
+
* Whether this insert is the basis-table spine of a write routed through a lens
|
|
28
|
+
* view (the view-mutation builder sets it when the target view resolves to a lens
|
|
29
|
+
* slot). Threaded onto the {@link DmlExecutorNode} so the runtime parent-side
|
|
30
|
+
* **logical** FK machinery fires only for lens-routed writes — see that node's
|
|
31
|
+
* `lensRouted` field. Default `false` for ordinary base-table inserts.
|
|
32
|
+
*/
|
|
33
|
+
lensRouted?: boolean,
|
|
34
|
+
/**
|
|
35
|
+
* The produced-row NEW context a synthetic decomposition / multi-source member
|
|
36
|
+
* insert threads so this member's column defaults can correlate on the **produced
|
|
37
|
+
* logical row's** other supplied columns via `new.<col>` — even ones this member's
|
|
38
|
+
* base table does not carry (e.g. an anchor key-column default
|
|
39
|
+
* `default (select … where parent.key = new.<fk>)`, where `<fk>` lives on a
|
|
40
|
+
* sibling member). It registers each supplied logical column as `new.<col>` over
|
|
41
|
+
* the shared envelope attributes, which stay resolvable through the member insert's
|
|
42
|
+
* pipeline (the narrowing envelope projection keeps them bound). Parented beneath
|
|
43
|
+
* the member's own supplied columns + mutation context, so a name a member carries
|
|
44
|
+
* itself still wins. `undefined` for an ordinary insert — single-source `new.<col>`
|
|
45
|
+
* resolution (table columns only) is unchanged.
|
|
46
|
+
*/
|
|
47
|
+
defaultRowContextScope?: Scope): PlanNode;
|
|
5
48
|
//# sourceMappingURL=insert.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/insert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/insert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAW9D,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAA2D,MAAM,uBAAuB,CAAC;AAMnI,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAKhD,OAAO,EAA+B,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AA8X9F,wBAAgB,eAAe,CAC9B,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,GAAG,CAAC,UAAU;AACpB;;;;;;GAMG;AACH,gBAAgB,GAAE,aAAa,CAAC,mBAAmB,CAAM;AACzD;;;;;;;;;GASG;AACH,cAAc,CAAC,EAAE,kBAAkB;AACnC;;;;;;GAMG;AACH,UAAU,UAAQ;AAClB;;;;;;;;;;;;GAYG;AACH,sBAAsB,CAAC,EAAE,KAAK,GAC5B,QAAQ,CA4YV"}
|