@quereus/quereus 4.11.0 → 4.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/common/type-inference.d.ts +12 -6
- package/dist/src/common/type-inference.d.ts.map +1 -1
- package/dist/src/common/type-inference.js +12 -24
- package/dist/src/common/type-inference.js.map +1 -1
- package/dist/src/core/database-assertions.d.ts.map +1 -1
- package/dist/src/core/database-assertions.js +7 -5
- package/dist/src/core/database-assertions.js.map +1 -1
- package/dist/src/core/database-events.d.ts +4 -3
- package/dist/src/core/database-events.d.ts.map +1 -1
- package/dist/src/core/database-events.js +4 -3
- package/dist/src/core/database-events.js.map +1 -1
- package/dist/src/core/database-materialized-views-analysis.d.ts +1 -3
- package/dist/src/core/database-materialized-views-analysis.d.ts.map +1 -1
- package/dist/src/core/database-materialized-views-analysis.js +1 -11
- package/dist/src/core/database-materialized-views-analysis.js.map +1 -1
- package/dist/src/core/database-materialized-views-plan-builders.d.ts.map +1 -1
- package/dist/src/core/database-materialized-views-plan-builders.js +12 -10
- package/dist/src/core/database-materialized-views-plan-builders.js.map +1 -1
- package/dist/src/core/database.d.ts.map +1 -1
- package/dist/src/core/database.js +13 -2
- package/dist/src/core/database.js.map +1 -1
- package/dist/src/core/derived-row-validator.d.ts.map +1 -1
- package/dist/src/core/derived-row-validator.js +14 -2
- package/dist/src/core/derived-row-validator.js.map +1 -1
- package/dist/src/core/param.d.ts +9 -0
- package/dist/src/core/param.d.ts.map +1 -1
- package/dist/src/core/param.js +21 -1
- package/dist/src/core/param.js.map +1 -1
- package/dist/src/core/statement.d.ts.map +1 -1
- package/dist/src/core/statement.js +38 -15
- package/dist/src/core/statement.js.map +1 -1
- package/dist/src/func/builtins/aggregate.d.ts.map +1 -1
- package/dist/src/func/builtins/aggregate.js +7 -2
- 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 +27 -11
- package/dist/src/func/builtins/builtin-window-functions.js.map +1 -1
- package/dist/src/func/builtins/datetime.d.ts.map +1 -1
- package/dist/src/func/builtins/datetime.js +8 -3
- package/dist/src/func/builtins/datetime.js.map +1 -1
- package/dist/src/func/builtins/explain.d.ts.map +1 -1
- package/dist/src/func/builtins/explain.js +9 -29
- package/dist/src/func/builtins/explain.js.map +1 -1
- package/dist/src/func/builtins/json-tvf.d.ts.map +1 -1
- package/dist/src/func/builtins/json-tvf.js +14 -7
- package/dist/src/func/builtins/json-tvf.js.map +1 -1
- package/dist/src/func/builtins/return-types.d.ts +29 -0
- package/dist/src/func/builtins/return-types.d.ts.map +1 -1
- package/dist/src/func/builtins/return-types.js +4 -1
- package/dist/src/func/builtins/return-types.js.map +1 -1
- package/dist/src/func/builtins/scalar.d.ts.map +1 -1
- package/dist/src/func/builtins/scalar.js +22 -67
- package/dist/src/func/builtins/scalar.js.map +1 -1
- package/dist/src/func/builtins/schema.d.ts.map +1 -1
- package/dist/src/func/builtins/schema.js +26 -16
- package/dist/src/func/builtins/schema.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +6 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/parser/parser.d.ts.map +1 -1
- package/dist/src/parser/parser.js +8 -5
- package/dist/src/parser/parser.js.map +1 -1
- package/dist/src/parser/visitor.d.ts +16 -0
- package/dist/src/parser/visitor.d.ts.map +1 -1
- package/dist/src/parser/visitor.js +16 -0
- package/dist/src/parser/visitor.js.map +1 -1
- package/dist/src/planner/analysis/assertion-plan.d.ts +33 -0
- package/dist/src/planner/analysis/assertion-plan.d.ts.map +1 -0
- package/dist/src/planner/analysis/assertion-plan.js +39 -0
- package/dist/src/planner/analysis/assertion-plan.js.map +1 -0
- package/dist/src/planner/analysis/binary-operator-class.d.ts +55 -0
- package/dist/src/planner/analysis/binary-operator-class.d.ts.map +1 -0
- package/dist/src/planner/analysis/binary-operator-class.js +57 -0
- package/dist/src/planner/analysis/binary-operator-class.js.map +1 -0
- package/dist/src/planner/analysis/binding-extractor.d.ts +9 -3
- package/dist/src/planner/analysis/binding-extractor.d.ts.map +1 -1
- package/dist/src/planner/analysis/binding-extractor.js +11 -16
- package/dist/src/planner/analysis/binding-extractor.js.map +1 -1
- package/dist/src/planner/analysis/change-scope.d.ts.map +1 -1
- package/dist/src/planner/analysis/change-scope.js +19 -6
- package/dist/src/planner/analysis/change-scope.js.map +1 -1
- package/dist/src/planner/analysis/check-extraction.d.ts +1 -7
- package/dist/src/planner/analysis/check-extraction.d.ts.map +1 -1
- package/dist/src/planner/analysis/check-extraction.js.map +1 -1
- package/dist/src/planner/analysis/comparison-collation.d.ts +17 -0
- package/dist/src/planner/analysis/comparison-collation.d.ts.map +1 -1
- package/dist/src/planner/analysis/comparison-collation.js +17 -5
- package/dist/src/planner/analysis/comparison-collation.js.map +1 -1
- package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
- package/dist/src/planner/analysis/constraint-extractor.js +18 -18
- package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
- package/dist/src/planner/analysis/coverage-prover.d.ts +11 -7
- package/dist/src/planner/analysis/coverage-prover.d.ts.map +1 -1
- package/dist/src/planner/analysis/coverage-prover.js +11 -7
- package/dist/src/planner/analysis/coverage-prover.js.map +1 -1
- package/dist/src/planner/analysis/equi-correlation.d.ts +1 -1
- package/dist/src/planner/analysis/equi-correlation.js +1 -1
- package/dist/src/planner/analysis/expression-fingerprint.d.ts.map +1 -1
- package/dist/src/planner/analysis/expression-fingerprint.js +0 -2
- package/dist/src/planner/analysis/expression-fingerprint.js.map +1 -1
- package/dist/src/planner/analysis/key-filter.d.ts.map +1 -1
- package/dist/src/planner/analysis/key-filter.js +2 -3
- package/dist/src/planner/analysis/key-filter.js.map +1 -1
- package/dist/src/planner/analysis/relation-key.d.ts +104 -0
- package/dist/src/planner/analysis/relation-key.d.ts.map +1 -0
- package/dist/src/planner/analysis/relation-key.js +121 -0
- package/dist/src/planner/analysis/relation-key.js.map +1 -0
- package/dist/src/planner/analysis/scalar-param-usage.d.ts.map +1 -1
- package/dist/src/planner/analysis/scalar-param-usage.js +12 -4
- package/dist/src/planner/analysis/scalar-param-usage.js.map +1 -1
- package/dist/src/planner/analysis/set-op-type-merge.d.ts +9 -3
- package/dist/src/planner/analysis/set-op-type-merge.d.ts.map +1 -1
- package/dist/src/planner/analysis/set-op-type-merge.js +22 -8
- package/dist/src/planner/analysis/set-op-type-merge.js.map +1 -1
- package/dist/src/planner/building/alter-table.d.ts.map +1 -1
- package/dist/src/planner/building/alter-table.js +31 -23
- package/dist/src/planner/building/alter-table.js.map +1 -1
- package/dist/src/planner/building/analyze.d.ts.map +1 -1
- package/dist/src/planner/building/analyze.js +21 -0
- package/dist/src/planner/building/analyze.js.map +1 -1
- package/dist/src/planner/building/block.d.ts.map +1 -1
- package/dist/src/planner/building/block.js +222 -82
- package/dist/src/planner/building/block.js.map +1 -1
- package/dist/src/planner/building/constraint-builder.d.ts.map +1 -1
- package/dist/src/planner/building/constraint-builder.js +5 -3
- package/dist/src/planner/building/constraint-builder.js.map +1 -1
- package/dist/src/planner/building/delete.js +1 -1
- package/dist/src/planner/building/delete.js.map +1 -1
- package/dist/src/planner/building/expression.d.ts.map +1 -1
- package/dist/src/planner/building/expression.js +11 -3
- package/dist/src/planner/building/expression.js.map +1 -1
- package/dist/src/planner/building/foreign-key-builder.d.ts +16 -6
- package/dist/src/planner/building/foreign-key-builder.d.ts.map +1 -1
- package/dist/src/planner/building/foreign-key-builder.js +43 -20
- package/dist/src/planner/building/foreign-key-builder.js.map +1 -1
- package/dist/src/planner/building/generated-column-scope.d.ts +58 -0
- package/dist/src/planner/building/generated-column-scope.d.ts.map +1 -0
- package/dist/src/planner/building/generated-column-scope.js +117 -0
- package/dist/src/planner/building/generated-column-scope.js.map +1 -0
- package/dist/src/planner/building/insert.d.ts.map +1 -1
- package/dist/src/planner/building/insert.js +20 -28
- package/dist/src/planner/building/insert.js.map +1 -1
- package/dist/src/planner/building/select-aggregates.d.ts +73 -132
- package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
- package/dist/src/planner/building/select-aggregates.js +405 -81
- package/dist/src/planner/building/select-aggregates.js.map +1 -1
- package/dist/src/planner/building/select-modifiers.d.ts +37 -8
- package/dist/src/planner/building/select-modifiers.d.ts.map +1 -1
- package/dist/src/planner/building/select-modifiers.js +8 -9
- package/dist/src/planner/building/select-modifiers.js.map +1 -1
- package/dist/src/planner/building/select-ordinal.d.ts +6 -0
- package/dist/src/planner/building/select-ordinal.d.ts.map +1 -1
- package/dist/src/planner/building/select-ordinal.js +1 -1
- package/dist/src/planner/building/select-ordinal.js.map +1 -1
- package/dist/src/planner/building/select-window.d.ts +2 -2
- package/dist/src/planner/building/select-window.d.ts.map +1 -1
- package/dist/src/planner/building/select-window.js +82 -101
- 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 +78 -33
- package/dist/src/planner/building/select.js.map +1 -1
- package/dist/src/planner/building/update.d.ts.map +1 -1
- package/dist/src/planner/building/update.js +14 -8
- package/dist/src/planner/building/update.js.map +1 -1
- package/dist/src/planner/building/view-mutation-builder.d.ts.map +1 -1
- package/dist/src/planner/building/view-mutation-builder.js +329 -14
- package/dist/src/planner/building/view-mutation-builder.js.map +1 -1
- package/dist/src/planner/building/with.d.ts +6 -0
- package/dist/src/planner/building/with.d.ts.map +1 -1
- package/dist/src/planner/building/with.js +52 -3
- package/dist/src/planner/building/with.js.map +1 -1
- package/dist/src/planner/cache/correlation-detector.d.ts.map +1 -1
- package/dist/src/planner/cache/correlation-detector.js +44 -17
- package/dist/src/planner/cache/correlation-detector.js.map +1 -1
- package/dist/src/planner/framework/physical-utils.d.ts +6 -0
- package/dist/src/planner/framework/physical-utils.d.ts.map +1 -1
- package/dist/src/planner/framework/physical-utils.js +6 -0
- package/dist/src/planner/framework/physical-utils.js.map +1 -1
- package/dist/src/planner/mutation/lens-enforcement.d.ts +123 -0
- package/dist/src/planner/mutation/lens-enforcement.d.ts.map +1 -1
- package/dist/src/planner/mutation/lens-enforcement.js +362 -5
- package/dist/src/planner/mutation/lens-enforcement.js.map +1 -1
- package/dist/src/planner/mutation/mutation-diagnostic.d.ts +1 -1
- package/dist/src/planner/mutation/mutation-diagnostic.d.ts.map +1 -1
- package/dist/src/planner/mutation/mutation-diagnostic.js.map +1 -1
- package/dist/src/planner/nodes/alter-table-node.d.ts +15 -11
- package/dist/src/planner/nodes/alter-table-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/alter-table-node.js +5 -0
- package/dist/src/planner/nodes/alter-table-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 +7 -0
- package/dist/src/planner/nodes/bloom-join-node.js.map +1 -1
- package/dist/src/planner/nodes/constraint-check-node.d.ts +16 -0
- package/dist/src/planner/nodes/constraint-check-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/constraint-check-node.js.map +1 -1
- package/dist/src/planner/nodes/plan-node-type.d.ts +1 -1
- package/dist/src/planner/nodes/plan-node-type.d.ts.map +1 -1
- package/dist/src/planner/nodes/plan-node-type.js +1 -1
- package/dist/src/planner/nodes/plan-node-type.js.map +1 -1
- package/dist/src/planner/nodes/pragma.d.ts.map +1 -1
- package/dist/src/planner/nodes/pragma.js +5 -2
- package/dist/src/planner/nodes/pragma.js.map +1 -1
- package/dist/src/planner/nodes/reference.d.ts.map +1 -1
- package/dist/src/planner/nodes/reference.js +9 -1
- package/dist/src/planner/nodes/reference.js.map +1 -1
- package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
- package/dist/src/planner/nodes/scalar.js +117 -91
- package/dist/src/planner/nodes/scalar.js.map +1 -1
- package/dist/src/planner/nodes/sequence-node.d.ts +50 -0
- package/dist/src/planner/nodes/sequence-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/sequence-node.js +96 -0
- package/dist/src/planner/nodes/sequence-node.js.map +1 -0
- package/dist/src/planner/nodes/values-node.d.ts +8 -0
- package/dist/src/planner/nodes/values-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/values-node.js +29 -6
- package/dist/src/planner/nodes/values-node.js.map +1 -1
- package/dist/src/planner/nodes/view-mutation-node.d.ts +43 -1
- package/dist/src/planner/nodes/view-mutation-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/view-mutation-node.js +27 -6
- package/dist/src/planner/nodes/view-mutation-node.js.map +1 -1
- package/dist/src/planner/nodes/window-node.d.ts +33 -4
- package/dist/src/planner/nodes/window-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/window-node.js +80 -36
- package/dist/src/planner/nodes/window-node.js.map +1 -1
- package/dist/src/planner/planning-context.d.ts +38 -1
- package/dist/src/planner/planning-context.d.ts.map +1 -1
- package/dist/src/planner/rules/access/rule-key-set-seek.d.ts.map +1 -1
- package/dist/src/planner/rules/access/rule-key-set-seek.js +8 -3
- package/dist/src/planner/rules/access/rule-key-set-seek.js.map +1 -1
- package/dist/src/planner/rules/join/rule-fanout-lookup-join.js +18 -12
- package/dist/src/planner/rules/join/rule-fanout-lookup-join.js.map +1 -1
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +4 -3
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
- package/dist/src/planner/rules/window/rule-monotonic-window.d.ts.map +1 -1
- package/dist/src/planner/rules/window/rule-monotonic-window.js +6 -0
- package/dist/src/planner/rules/window/rule-monotonic-window.js.map +1 -1
- package/dist/src/planner/scopes/param.d.ts.map +1 -1
- package/dist/src/planner/scopes/param.js +10 -5
- package/dist/src/planner/scopes/param.js.map +1 -1
- package/dist/src/planner/util/ind-utils.d.ts +25 -8
- package/dist/src/planner/util/ind-utils.d.ts.map +1 -1
- package/dist/src/planner/util/ind-utils.js +53 -10
- package/dist/src/planner/util/ind-utils.js.map +1 -1
- package/dist/src/planner/util/key-utils.d.ts +7 -7
- package/dist/src/planner/util/key-utils.js +9 -9
- package/dist/src/planner/util/key-utils.js.map +1 -1
- package/dist/src/runtime/delta-executor.d.ts.map +1 -1
- package/dist/src/runtime/delta-executor.js +7 -2
- 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 +50 -15
- package/dist/src/runtime/emit/add-constraint.js.map +1 -1
- package/dist/src/runtime/emit/alter-schema-event.d.ts +2 -43
- package/dist/src/runtime/emit/alter-schema-event.d.ts.map +1 -1
- package/dist/src/runtime/emit/alter-schema-event.js +2 -53
- package/dist/src/runtime/emit/alter-schema-event.js.map +1 -1
- package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
- package/dist/src/runtime/emit/alter-table.js +59 -24
- 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 +7 -0
- package/dist/src/runtime/emit/analyze.js.map +1 -1
- package/dist/src/runtime/emit/assertion-rename-helpers.d.ts.map +1 -1
- package/dist/src/runtime/emit/assertion-rename-helpers.js +2 -3
- package/dist/src/runtime/emit/assertion-rename-helpers.js.map +1 -1
- package/dist/src/runtime/emit/binary.d.ts +5 -0
- package/dist/src/runtime/emit/binary.d.ts.map +1 -1
- package/dist/src/runtime/emit/binary.js +22 -22
- 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 +9 -3
- package/dist/src/runtime/emit/block.js.map +1 -1
- package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
- package/dist/src/runtime/emit/constraint-check.js +5 -6
- package/dist/src/runtime/emit/constraint-check.js.map +1 -1
- package/dist/src/runtime/emit/create-assertion.d.ts.map +1 -1
- package/dist/src/runtime/emit/create-assertion.js +71 -70
- package/dist/src/runtime/emit/create-assertion.js.map +1 -1
- package/dist/src/runtime/emit/create-index.d.ts.map +1 -1
- package/dist/src/runtime/emit/create-index.js +8 -3
- package/dist/src/runtime/emit/create-index.js.map +1 -1
- package/dist/src/runtime/emit/create-table.d.ts.map +1 -1
- package/dist/src/runtime/emit/create-table.js +20 -10
- 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 +51 -44
- package/dist/src/runtime/emit/create-view.js.map +1 -1
- package/dist/src/runtime/emit/ddl-event-scope.d.ts +71 -0
- package/dist/src/runtime/emit/ddl-event-scope.d.ts.map +1 -0
- package/dist/src/runtime/emit/ddl-event-scope.js +80 -0
- package/dist/src/runtime/emit/ddl-event-scope.js.map +1 -0
- package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
- package/dist/src/runtime/emit/dml-executor.js +23 -23
- package/dist/src/runtime/emit/dml-executor.js.map +1 -1
- package/dist/src/runtime/emit/drop-assertion.d.ts.map +1 -1
- package/dist/src/runtime/emit/drop-assertion.js +23 -17
- package/dist/src/runtime/emit/drop-assertion.js.map +1 -1
- package/dist/src/runtime/emit/drop-index.d.ts.map +1 -1
- package/dist/src/runtime/emit/drop-index.js +7 -2
- package/dist/src/runtime/emit/drop-index.js.map +1 -1
- package/dist/src/runtime/emit/drop-table.d.ts.map +1 -1
- package/dist/src/runtime/emit/drop-table.js +16 -10
- 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 +50 -43
- package/dist/src/runtime/emit/drop-view.js.map +1 -1
- package/dist/src/runtime/emit/insert.d.ts.map +1 -1
- package/dist/src/runtime/emit/insert.js +2 -1
- package/dist/src/runtime/emit/insert.js.map +1 -1
- package/dist/src/runtime/emit/materialized-view.d.ts.map +1 -1
- package/dist/src/runtime/emit/materialized-view.js +87 -67
- package/dist/src/runtime/emit/materialized-view.js.map +1 -1
- package/dist/src/runtime/emit/schema-declarative.d.ts +8 -0
- package/dist/src/runtime/emit/schema-declarative.d.ts.map +1 -1
- package/dist/src/runtime/emit/schema-declarative.js +128 -25
- package/dist/src/runtime/emit/schema-declarative.js.map +1 -1
- package/dist/src/runtime/emit/sequence.d.ts +17 -0
- package/dist/src/runtime/emit/sequence.d.ts.map +1 -0
- package/dist/src/runtime/emit/sequence.js +40 -0
- package/dist/src/runtime/emit/sequence.js.map +1 -0
- package/dist/src/runtime/emit/set-object-tags.d.ts.map +1 -1
- package/dist/src/runtime/emit/set-object-tags.js +40 -32
- package/dist/src/runtime/emit/set-object-tags.js.map +1 -1
- package/dist/src/runtime/emit/table-valued-function.d.ts.map +1 -1
- package/dist/src/runtime/emit/table-valued-function.js +3 -2
- package/dist/src/runtime/emit/table-valued-function.js.map +1 -1
- package/dist/src/runtime/emit/update.js +3 -3
- package/dist/src/runtime/emit/update.js.map +1 -1
- package/dist/src/runtime/emit/view-mutation.d.ts.map +1 -1
- package/dist/src/runtime/emit/view-mutation.js +45 -3
- package/dist/src/runtime/emit/view-mutation.js.map +1 -1
- package/dist/src/runtime/foreign-key-actions.d.ts.map +1 -1
- package/dist/src/runtime/foreign-key-actions.js +9 -10
- package/dist/src/runtime/foreign-key-actions.js.map +1 -1
- package/dist/src/runtime/register.d.ts.map +1 -1
- package/dist/src/runtime/register.js +3 -2
- package/dist/src/runtime/register.js.map +1 -1
- package/dist/src/runtime/row-constraints.d.ts +14 -8
- package/dist/src/runtime/row-constraints.d.ts.map +1 -1
- package/dist/src/runtime/row-constraints.js +41 -15
- package/dist/src/runtime/row-constraints.js.map +1 -1
- package/dist/src/runtime/strict-representation.d.ts +11 -6
- package/dist/src/runtime/strict-representation.d.ts.map +1 -1
- package/dist/src/runtime/strict-representation.js +1 -44
- package/dist/src/runtime/strict-representation.js.map +1 -1
- package/dist/src/schema/assertion.d.ts +25 -2
- package/dist/src/schema/assertion.d.ts.map +1 -1
- package/dist/src/schema/assertion.js.map +1 -1
- package/dist/src/schema/catalog-rendering.d.ts +38 -0
- package/dist/src/schema/catalog-rendering.d.ts.map +1 -0
- package/dist/src/schema/catalog-rendering.js +171 -0
- package/dist/src/schema/catalog-rendering.js.map +1 -0
- package/dist/src/schema/catalog.d.ts +69 -3
- package/dist/src/schema/catalog.d.ts.map +1 -1
- package/dist/src/schema/catalog.js +124 -19
- package/dist/src/schema/catalog.js.map +1 -1
- package/dist/src/schema/column-source-resolver.d.ts +9 -5
- package/dist/src/schema/column-source-resolver.d.ts.map +1 -1
- package/dist/src/schema/column-source-resolver.js +9 -5
- package/dist/src/schema/column-source-resolver.js.map +1 -1
- package/dist/src/schema/constraint-builder.d.ts +13 -10
- package/dist/src/schema/constraint-builder.d.ts.map +1 -1
- package/dist/src/schema/constraint-builder.js +45 -17
- package/dist/src/schema/constraint-builder.js.map +1 -1
- package/dist/src/schema/declared-schema-manager.d.ts +50 -0
- package/dist/src/schema/declared-schema-manager.d.ts.map +1 -1
- package/dist/src/schema/declared-schema-manager.js +52 -0
- package/dist/src/schema/declared-schema-manager.js.map +1 -1
- package/dist/src/schema/expr-scope/frame.d.ts +65 -0
- package/dist/src/schema/expr-scope/frame.d.ts.map +1 -0
- package/dist/src/schema/expr-scope/frame.js +104 -0
- package/dist/src/schema/expr-scope/frame.js.map +1 -0
- package/dist/src/schema/expr-scope/walk.d.ts +40 -0
- package/dist/src/schema/expr-scope/walk.d.ts.map +1 -0
- package/dist/src/schema/expr-scope/walk.js +260 -0
- package/dist/src/schema/expr-scope/walk.js.map +1 -0
- package/dist/src/schema/generated-column-refs.d.ts +41 -0
- package/dist/src/schema/generated-column-refs.d.ts.map +1 -0
- package/dist/src/schema/generated-column-refs.js +124 -0
- package/dist/src/schema/generated-column-refs.js.map +1 -0
- package/dist/src/schema/lens-ack.d.ts.map +1 -1
- package/dist/src/schema/lens-ack.js +5 -2
- package/dist/src/schema/lens-ack.js.map +1 -1
- package/dist/src/schema/lens-compiler.d.ts.map +1 -1
- package/dist/src/schema/lens-compiler.js +9 -1
- package/dist/src/schema/lens-compiler.js.map +1 -1
- package/dist/src/schema/lens-prover.d.ts +7 -2
- package/dist/src/schema/lens-prover.d.ts.map +1 -1
- package/dist/src/schema/lens-prover.js +105 -11
- package/dist/src/schema/lens-prover.js.map +1 -1
- package/dist/src/schema/lens.d.ts +12 -0
- package/dist/src/schema/lens.d.ts.map +1 -1
- package/dist/src/schema/lens.js +10 -0
- package/dist/src/schema/lens.js.map +1 -1
- package/dist/src/schema/manager.d.ts +35 -1
- package/dist/src/schema/manager.d.ts.map +1 -1
- package/dist/src/schema/manager.js +125 -26
- package/dist/src/schema/manager.js.map +1 -1
- package/dist/src/schema/rename/self-qualifier-strip.d.ts +16 -10
- package/dist/src/schema/rename/self-qualifier-strip.d.ts.map +1 -1
- package/dist/src/schema/rename/self-qualifier-strip.js +30 -213
- package/dist/src/schema/rename/self-qualifier-strip.js.map +1 -1
- package/dist/src/schema/rename-rewriter.d.ts +4 -3
- package/dist/src/schema/rename-rewriter.d.ts.map +1 -1
- package/dist/src/schema/rename-rewriter.js +4 -3
- package/dist/src/schema/rename-rewriter.js.map +1 -1
- package/dist/src/schema/schema-differ.d.ts +54 -6
- package/dist/src/schema/schema-differ.d.ts.map +1 -1
- package/dist/src/schema/schema-differ.js +108 -42
- package/dist/src/schema/schema-differ.js.map +1 -1
- package/dist/src/schema/schema-hasher.d.ts +12 -0
- package/dist/src/schema/schema-hasher.d.ts.map +1 -1
- package/dist/src/schema/schema-hasher.js +28 -10
- package/dist/src/schema/schema-hasher.js.map +1 -1
- package/dist/src/schema/table.d.ts +74 -19
- package/dist/src/schema/table.d.ts.map +1 -1
- package/dist/src/schema/table.js +133 -71
- package/dist/src/schema/table.js.map +1 -1
- package/dist/src/types/comparison-coercion.d.ts +5 -1
- package/dist/src/types/comparison-coercion.d.ts.map +1 -1
- package/dist/src/types/comparison-coercion.js +21 -5
- package/dist/src/types/comparison-coercion.js.map +1 -1
- package/dist/src/types/representation.d.ts +65 -0
- package/dist/src/types/representation.d.ts.map +1 -0
- package/dist/src/types/representation.js +63 -0
- package/dist/src/types/representation.js.map +1 -0
- package/dist/src/types/validation.d.ts +76 -22
- package/dist/src/types/validation.d.ts.map +1 -1
- package/dist/src/types/validation.js +110 -31
- package/dist/src/types/validation.js.map +1 -1
- package/dist/src/vtab/best-access-plan.d.ts +10 -0
- package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
- package/dist/src/vtab/best-access-plan.js +16 -0
- package/dist/src/vtab/best-access-plan.js.map +1 -1
- package/dist/src/vtab/capabilities.d.ts +72 -4
- package/dist/src/vtab/capabilities.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.js +17 -13
- package/dist/src/vtab/memory/layer/manager.js.map +1 -1
- package/dist/src/vtab/module.d.ts +13 -7
- package/dist/src/vtab/module.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/src/planner/nodes/array-index-node.d.ts +0 -22
- package/dist/src/planner/nodes/array-index-node.d.ts.map +0 -1
- package/dist/src/planner/nodes/array-index-node.js +0 -41
- package/dist/src/planner/nodes/array-index-node.js.map +0 -1
- package/dist/src/runtime/emit/array-index.d.ts +0 -5
- package/dist/src/runtime/emit/array-index.d.ts.map +0 -1
- package/dist/src/runtime/emit/array-index.js +0 -22
- package/dist/src/runtime/emit/array-index.js.map +0 -1
|
@@ -2,29 +2,35 @@ import { asRun } from '../types.js';
|
|
|
2
2
|
import { QuereusError } from '../../common/errors.js';
|
|
3
3
|
import { StatusCode } from '../../common/types.js';
|
|
4
4
|
import { createLogger } from '../../common/logger.js';
|
|
5
|
+
import { withStatementScopedSchemaEvents } from './ddl-event-scope.js';
|
|
5
6
|
const log = createLogger('runtime:emit:drop-assertion');
|
|
6
7
|
export function emitDropAssertion(plan, _ctx) {
|
|
7
8
|
async function run(rctx) {
|
|
8
9
|
// Ensure we're in a transaction before DDL (lazy/JIT transaction start)
|
|
9
10
|
await rctx.db._ensureTransaction();
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
// Statement-scoped schema-event scope. Assertions raise nothing on the public
|
|
12
|
+
// schema channel today, so the scope is a no-op — it is here so the invariant
|
|
13
|
+
// holds by construction: see ddl-event-scope.ts.
|
|
14
|
+
return withStatementScopedSchemaEvents(rctx, async () => {
|
|
15
|
+
const schemaManager = rctx.db.schemaManager;
|
|
16
|
+
const schema = schemaManager.getSchema(plan.schemaName);
|
|
17
|
+
const existing = schema?.getAssertion(plan.name);
|
|
18
|
+
if (!existing) {
|
|
19
|
+
if (plan.ifExists) {
|
|
20
|
+
log('Assertion %s.%s not found, but IF EXISTS specified', plan.schemaName, plan.name);
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
throw new QuereusError(`Assertion ${plan.name} not found in schema ${plan.schemaName}`, StatusCode.NOTFOUND);
|
|
17
24
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return null;
|
|
25
|
+
const removed = schemaManager.removeAssertion(plan.schemaName, plan.name);
|
|
26
|
+
if (!removed && !plan.ifExists) {
|
|
27
|
+
throw new QuereusError(`Failed to remove assertion ${plan.name}`, StatusCode.INTERNAL);
|
|
28
|
+
}
|
|
29
|
+
// Invalidate cached plan for this assertion
|
|
30
|
+
rctx.db.invalidateAssertionCache(plan.schemaName, plan.name);
|
|
31
|
+
log('Dropped assertion %s.%s', plan.schemaName, plan.name);
|
|
32
|
+
return null;
|
|
33
|
+
});
|
|
28
34
|
}
|
|
29
35
|
return {
|
|
30
36
|
params: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drop-assertion.js","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-assertion.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAY,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"drop-assertion.js","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-assertion.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAY,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AAEvE,MAAM,GAAG,GAAG,YAAY,CAAC,6BAA6B,CAAC,CAAC;AAExD,MAAM,UAAU,iBAAiB,CAAC,IAAuB,EAAE,IAAqB;IAE/E,KAAK,UAAU,GAAG,CAAC,IAAoB;QACtC,wEAAwE;QACxE,MAAM,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAEnC,8EAA8E;QAC9E,8EAA8E;QAC9E,iDAAiD;QACjD,OAAO,+BAA+B,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;YAC5C,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAExD,MAAM,QAAQ,GAAG,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACf,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACnB,GAAG,CAAC,oDAAoD,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;oBACtF,OAAO,IAAI,CAAC;gBACb,CAAC;gBACD,MAAM,IAAI,YAAY,CACrB,aAAa,IAAI,CAAC,IAAI,wBAAwB,IAAI,CAAC,UAAU,EAAE,EAC/D,UAAU,CAAC,QAAQ,CACnB,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAG,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1E,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChC,MAAM,IAAI,YAAY,CACrB,8BAA8B,IAAI,CAAC,IAAI,EAAE,EACzC,UAAU,CAAC,QAAQ,CACnB,CAAC;YACH,CAAC;YAED,4CAA4C;YAC5C,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAE7D,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3D,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACN,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;QACf,IAAI,EAAE,iBAAiB,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,GAAG;KACtD,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drop-index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"drop-index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM9D,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAqCrF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { asRun } from '../types.js';
|
|
2
2
|
import { requireVtabModule } from '../../schema/table.js';
|
|
3
3
|
import { assertDdlTransactionPolicy, isDdlPolicyStrict } from './ddl-transaction-policy.js';
|
|
4
|
+
import { withStatementScopedSchemaEvents } from './ddl-event-scope.js';
|
|
4
5
|
export function emitDropIndex(plan, _ctx) {
|
|
5
6
|
async function run(rctx) {
|
|
6
7
|
// Strict-policy gate (see ddl-transaction-policy.ts). Locating the owning table
|
|
@@ -19,8 +20,12 @@ export function emitDropIndex(plan, _ctx) {
|
|
|
19
20
|
}
|
|
20
21
|
// Ensure we're in a transaction before DDL (lazy/JIT transaction start)
|
|
21
22
|
await rctx.db._ensureTransaction();
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
// Statement-scoped schema-event scope — the invariant every DDL emitter holds; see
|
|
24
|
+
// ddl-event-scope.ts.
|
|
25
|
+
return withStatementScopedSchemaEvents(rctx, async () => {
|
|
26
|
+
await rctx.db.schemaManager.dropIndex(plan.schemaName, plan.indexName, plan.ifExists);
|
|
27
|
+
return null;
|
|
28
|
+
});
|
|
24
29
|
}
|
|
25
30
|
return {
|
|
26
31
|
params: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drop-index.js","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"drop-index.js","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AAEvE,MAAM,UAAU,aAAa,CAAC,IAAmB,EAAE,IAAqB;IACvE,KAAK,UAAU,GAAG,CAAC,IAAoB;QACtC,gFAAgF;QAChF,+EAA+E;QAC/E,+EAA+E;QAC/E,gFAAgF;QAChF,aAAa;QACb,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAChC,6EAA6E;YAC7E,2EAA2E;YAC3E,kDAAkD;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC;YAC3F,IAAI,KAAK,EAAE,CAAC;gBACX,0BAA0B,CACzB,IAAI,CAAC,EAAE,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,cAAc,EACvD,cAAc,IAAI,CAAC,SAAS,EAAE,CAC9B,CAAC;YACH,CAAC;QACF,CAAC;QAED,wEAAwE;QACxE,MAAM,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAEnC,mFAAmF;QACnF,sBAAsB;QACtB,OAAO,+BAA+B,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEtF,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACN,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;QACf,IAAI,EAAE,aAAa,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,GAAG;KACvD,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drop-table.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAI/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"drop-table.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAI/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQ9D,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CA0DpF"}
|
|
@@ -4,6 +4,7 @@ import { StatusCode } from '../../common/types.js';
|
|
|
4
4
|
import { dropMaintainedTable } from './materialized-view.js';
|
|
5
5
|
import { requireVtabModule } from '../../schema/table.js';
|
|
6
6
|
import { assertDdlTransactionPolicy } from './ddl-transaction-policy.js';
|
|
7
|
+
import { withStatementScopedSchemaEvents } from './ddl-event-scope.js';
|
|
7
8
|
import { assertNoAssertionDependsOn } from './assertion-drop-guard.js';
|
|
8
9
|
import { assertNoExpressionDependsOn } from './expression-drop-guard.js';
|
|
9
10
|
export function emitDropTable(plan, ctx) {
|
|
@@ -35,17 +36,22 @@ export function emitDropTable(plan, ctx) {
|
|
|
35
36
|
}
|
|
36
37
|
// Ensure we're in a transaction before DDL (lazy/JIT transaction start)
|
|
37
38
|
await rctx.db._ensureTransaction();
|
|
38
|
-
//
|
|
39
|
-
//
|
|
40
|
-
//
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
// Statement-scoped schema-event scope (see ddl-event-scope.ts). The maintained
|
|
40
|
+
// branch does post-drop work (`materialized_view_removed` and its listeners), and
|
|
41
|
+
// the drop itself is already announced by then.
|
|
42
|
+
return withStatementScopedSchemaEvents(rctx, async () => {
|
|
43
|
+
// A maintained table (materialized view) is one record: DROP TABLE drops
|
|
44
|
+
// the table AND its derivation — detach maintenance, unlink any covering
|
|
45
|
+
// link, and fire materialized_view_removed so persisted catalogs forget
|
|
46
|
+
// the `create materialized view` entry.
|
|
47
|
+
const maintained = rctx.db.schemaManager.getMaintainedTable(targetSchemaName, objectName);
|
|
48
|
+
if (maintained) {
|
|
49
|
+
await dropMaintainedTable(rctx.db, maintained);
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
await rctx.db.schemaManager.dropTable(targetSchemaName, objectName, stmt.ifExists);
|
|
45
53
|
return null;
|
|
46
|
-
}
|
|
47
|
-
await rctx.db.schemaManager.dropTable(targetSchemaName, objectName, stmt.ifExists);
|
|
48
|
-
return null;
|
|
54
|
+
});
|
|
49
55
|
}
|
|
50
56
|
return { params: [], run: asRun(run), note: `dropTable(${targetSchemaName}.${objectName})` };
|
|
51
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drop-table.js","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-table.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAiB,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE,MAAM,UAAU,aAAa,CAAC,IAAmB,EAAE,GAAoB;IACtE,MAAM,aAAa,GAAG,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,eAAe;IAE/C,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC,oBAAoB,EAAE,CAAC;IAClF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAElC,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;QACjC,+CAA+C;QAC/C,qGAAqG;QACrG,MAAM,IAAI,YAAY,CAAC,yBAAyB,IAAI,CAAC,UAAU,sCAAsC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IAChI,CAAC;IAED,KAAK,UAAU,GAAG,CAAC,IAAoB;QACtC,yEAAyE;QACzE,yEAAyE;QACzE,wDAAwD;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;QAC5E,IAAI,MAAM,EAAE,CAAC;YACZ,0BAA0B,CACzB,IAAI,CAAC,EAAE,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,EACzD,cAAc,UAAU,EAAE,CAC1B,CAAC;YACF,+DAA+D;YAC/D,oEAAoE;YACpE,wEAAwE;YACxE,0DAA0D;YAC1D,0BAA0B,CAAC,IAAI,CAAC,EAAE,EAAE,gBAAgB,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAC3E,+EAA+E;YAC/E,+EAA+E;YAC/E,mFAAmF;YACnF,2BAA2B,CAAC,IAAI,CAAC,EAAE,EAAE,gBAAgB,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAC7E,CAAC;QAED,wEAAwE;QACxE,MAAM,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAEnC,yEAAyE;
|
|
1
|
+
{"version":3,"file":"drop-table.js","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-table.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drop-view.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"drop-view.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAO9D,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAiFnF"}
|
|
@@ -2,53 +2,60 @@ import { QuereusError } from '../../common/errors.js';
|
|
|
2
2
|
import { StatusCode } from '../../common/types.js';
|
|
3
3
|
import { assertNoAssertionDependsOn } from './assertion-drop-guard.js';
|
|
4
4
|
import { assertNoExpressionDependsOn } from './expression-drop-guard.js';
|
|
5
|
+
import { withStatementScopedSchemaEvents } from './ddl-event-scope.js';
|
|
5
6
|
export function emitDropView(plan, _ctx) {
|
|
6
7
|
async function run(rctx) {
|
|
7
8
|
// Ensure we're in a transaction before DDL (lazy/JIT transaction start)
|
|
8
9
|
await rctx.db._ensureTransaction();
|
|
9
|
-
//
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
10
|
+
// Statement-scoped schema-event scope. This statement raises nothing on the public
|
|
11
|
+
// schema channel today (`view_removed` is an internal catalog notification), so the
|
|
12
|
+
// scope is a no-op — it is here so the invariant holds by construction: see
|
|
13
|
+
// ddl-event-scope.ts.
|
|
14
|
+
return withStatementScopedSchemaEvents(rctx, async () => {
|
|
15
|
+
// A materialized view must be dropped with DROP MATERIALIZED VIEW.
|
|
16
|
+
if (rctx.db.schemaManager.getMaintainedTable(plan.schemaName, plan.viewName)) {
|
|
17
|
+
throw new QuereusError(`'${plan.viewName}' is a materialized view — use DROP MATERIALIZED VIEW`, StatusCode.ERROR);
|
|
18
|
+
}
|
|
19
|
+
// Check if view exists
|
|
20
|
+
const existingView = rctx.db.schemaManager.getView(plan.schemaName, plan.viewName);
|
|
21
|
+
if (!existingView && !plan.ifExists) {
|
|
22
|
+
throw new QuereusError(`View '${plan.schemaName}.${plan.viewName}' does not exist`, StatusCode.ERROR);
|
|
23
|
+
}
|
|
24
|
+
if (!existingView && plan.ifExists) {
|
|
25
|
+
// View doesn't exist but IF EXISTS was specified, so this is a no-op
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
// An assertion body may name a view exactly as it names a base table, and
|
|
29
|
+
// dropping it out from under one breaks every write to the database.
|
|
30
|
+
assertNoAssertionDependsOn(rctx.db, plan.schemaName, plan.viewName, 'view');
|
|
31
|
+
// A CHECK / DEFAULT / generated body may read a VIEW through a subquery exactly as
|
|
32
|
+
// it reads a base table, so the referencing table breaks the same way. (The
|
|
33
|
+
// asymmetry is on the other side: a table dropped under a plain view stays legal.)
|
|
34
|
+
assertNoExpressionDependsOn(rctx.db, plan.schemaName, plan.viewName, 'view');
|
|
35
|
+
// Remove the view from the schema manager
|
|
36
|
+
const schema = rctx.db.schemaManager.getSchema(plan.schemaName);
|
|
37
|
+
if (!schema) {
|
|
38
|
+
throw new QuereusError(`Schema '${plan.schemaName}' does not exist`, StatusCode.ERROR);
|
|
39
|
+
}
|
|
40
|
+
const removed = schema.removeView(plan.viewName);
|
|
41
|
+
if (!removed && !plan.ifExists) {
|
|
42
|
+
throw new QuereusError(`View '${plan.schemaName}.${plan.viewName}' does not exist`, StatusCode.ERROR);
|
|
43
|
+
}
|
|
44
|
+
// Fire view_removed so a store-backed catalog can forget this view. Fired
|
|
45
|
+
// here (not from Schema.removeView) to mirror create-view's emitter-scoped
|
|
46
|
+
// view_added. Not reached on the IF EXISTS no-op above.
|
|
47
|
+
if (removed && existingView) {
|
|
48
|
+
rctx.db.schemaManager.getChangeNotifier().notifyChange({
|
|
49
|
+
type: 'view_removed',
|
|
50
|
+
// Stored names of the dropped view — see
|
|
51
|
+
// SchemaManager.canonicalSchemaName for the emitter/stored-name invariant.
|
|
52
|
+
schemaName: existingView.schemaName,
|
|
53
|
+
objectName: existingView.name,
|
|
54
|
+
oldObject: existingView,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
return null; // Explicitly return null for successful void operations
|
|
58
|
+
});
|
|
52
59
|
}
|
|
53
60
|
return {
|
|
54
61
|
params: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drop-view.js","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-view.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAiB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"drop-view.js","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-view.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/insert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAI/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/insert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAI/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CAkD9E"}
|
|
@@ -13,7 +13,8 @@ export function emitInsert(plan, ctx) {
|
|
|
13
13
|
// table-column order (buildExpandedSource), so source attributes align
|
|
14
14
|
// positionally with table columns. A cell whose source type already IS the
|
|
15
15
|
// column's type (e.g. `insert into b select j from a` for a JSON column) is
|
|
16
|
-
// left alone —
|
|
16
|
+
// left alone — provided the value in hand also inhabits that type, since the
|
|
17
|
+
// source's announcement is an inference, not a guarantee. See buildRowCoercion.
|
|
17
18
|
const sourceAttrs = plan.source.getAttributes();
|
|
18
19
|
const coerceNewRow = buildRowCoercion(tableSchema.columns.map((_, i) => sourceAttrs[i]?.type.logicalType), tableSchema.columns);
|
|
19
20
|
async function* run(_ctx, sourceValue) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert.js","sourceRoot":"","sources":["../../../../src/runtime/emit/insert.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,MAAM,UAAU,UAAU,CAAC,IAAgB,EAAE,GAAoB;IAChE,8EAA8E;IAC9E,wEAAwE;IACxE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;IAC3C,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;IAE5C,0EAA0E;IAC1E,2EAA2E;IAC3E,2EAA2E;IAC3E,wEAAwE;IACxE,uEAAuE;IACvE,2EAA2E;IAC3E,4EAA4E;IAC5E,
|
|
1
|
+
{"version":3,"file":"insert.js","sourceRoot":"","sources":["../../../../src/runtime/emit/insert.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,MAAM,UAAU,UAAU,CAAC,IAAgB,EAAE,GAAoB;IAChE,8EAA8E;IAC9E,wEAAwE;IACxE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;IAC3C,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;IAE5C,0EAA0E;IAC1E,2EAA2E;IAC3E,2EAA2E;IAC3E,wEAAwE;IACxE,uEAAuE;IACvE,2EAA2E;IAC3E,4EAA4E;IAC5E,6EAA6E;IAC7E,gFAAgF;IAChF,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;IAChD,MAAM,YAAY,GAAG,gBAAgB,CACpC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,EACnE,WAAW,CAAC,OAAO,CACnB,CAAC;IAEF,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,IAAoB,EAAE,WAA+B;QACxE,IAAI,KAAK,EAAE,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;YAC3C,4CAA4C;YAC5C,kEAAkE;YAClE,MAAM,OAAO,GAAQ,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YAE7C,+CAA+C;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACnB,CAAC;YAED,uEAAuE;YACvE,qEAAqE;YACrE,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC;gBAClD,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7C,CAAC;YAED,MAAM,OAAO,CAAC;QACf,CAAC;IACF,CAAC;IAED,MAAM,iBAAiB,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEzD,OAAO;QACN,MAAM,EAAE,CAAC,iBAAiB,CAAC;QAC3B,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;QACf,IAAI,EAAE,cAAc,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG;KAClD,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materialized-view.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/materialized-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,MAAM,gDAAgD,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"materialized-view.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/materialized-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,MAAM,gDAAgD,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAmCxE,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CA4E/G;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CA0CjH;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAmEpH;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBhG;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAkD3G"}
|
|
@@ -4,6 +4,7 @@ import { astToString } from '../../emit/ast-stringify.js';
|
|
|
4
4
|
import { requireVtabModule } from '../../schema/table.js';
|
|
5
5
|
import { normalizeBackingModuleName } from '../../schema/view.js';
|
|
6
6
|
import { assertDdlTransactionPolicy, isDdlPolicyStrict } from './ddl-transaction-policy.js';
|
|
7
|
+
import { withStatementScopedSchemaEvents } from './ddl-event-scope.js';
|
|
7
8
|
import { assertNoAssertionDependsOn } from './assertion-drop-guard.js';
|
|
8
9
|
import { assertNoExpressionDependsOn } from './expression-drop-guard.js';
|
|
9
10
|
import { materializeView, deriveBackingShape, rebuildBacking, reshapeBacking, backingShapeMatches, revalidateBody, unlinkCoveredUniqueConstraints, } from './materialized-view-helpers.js';
|
|
@@ -43,43 +44,49 @@ export function emitCreateMaterializedView(plan, _ctx) {
|
|
|
43
44
|
assertDdlTransactionPolicy(rctx.db, backingModule.module, backingModuleName, `CREATE MATERIALIZED VIEW ${plan.viewName}`);
|
|
44
45
|
}
|
|
45
46
|
await rctx.db._ensureTransaction();
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
//
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
47
|
+
// Statement-scoped schema-event scope (see ddl-event-scope.ts): `materializeView`
|
|
48
|
+
// creates the backing table — announced — and fills it afterwards, so a fill that
|
|
49
|
+
// fails drops the table again. Without the scope the statement announces a create
|
|
50
|
+
// and a drop for a table the application never got.
|
|
51
|
+
return withStatementScopedSchemaEvents(rctx, async () => {
|
|
52
|
+
const db = rctx.db;
|
|
53
|
+
const sm = db.schemaManager;
|
|
54
|
+
const existing = sm.getMaintainedTable(plan.schemaName, plan.viewName);
|
|
55
|
+
if (existing) {
|
|
56
|
+
if (plan.ifNotExists)
|
|
57
|
+
return null;
|
|
58
|
+
throw new QuereusError(`Materialized view '${plan.schemaName}.${plan.viewName}' already exists`, StatusCode.ERROR);
|
|
59
|
+
}
|
|
60
|
+
// One namespace now: a plain table occupies the same name a maintained
|
|
61
|
+
// table would. Keep the dedicated diagnostic for both directions.
|
|
62
|
+
if (sm.getTable(plan.schemaName, plan.viewName) || sm.getView(plan.schemaName, plan.viewName)) {
|
|
63
|
+
throw new QuereusError(`Cannot create materialized view '${plan.schemaName}.${plan.viewName}': a table or view with the same name already exists`, StatusCode.CONSTRAINT);
|
|
64
|
+
}
|
|
65
|
+
// The materialize core (derive backing shape → create + fill the
|
|
66
|
+
// maintained table under the MV's own name in the declared host module →
|
|
67
|
+
// attach derivation + register row-time maintenance, rolling back on any
|
|
68
|
+
// throw) is shared with the catalog-import path — see materializeView.
|
|
69
|
+
const mv = await materializeView(db, {
|
|
70
|
+
schemaName: plan.schemaName,
|
|
71
|
+
viewName: plan.viewName,
|
|
72
|
+
// Any `with defaults (…)` rides inside plan.selectStmt (→ selectAst).
|
|
73
|
+
selectAst: plan.selectStmt,
|
|
74
|
+
bodySql: plan.bodySql,
|
|
75
|
+
columns: plan.columns,
|
|
76
|
+
tags: plan.tags,
|
|
77
|
+
backingModuleName: plan.backingModuleName,
|
|
78
|
+
backingModuleArgs: plan.backingModuleArgs,
|
|
79
|
+
});
|
|
80
|
+
sm.getChangeNotifier().notifyChange({
|
|
81
|
+
type: 'materialized_view_added',
|
|
82
|
+
// Stored names of the registered MV — see
|
|
83
|
+
// SchemaManager.canonicalSchemaName for the emitter/stored-name invariant.
|
|
84
|
+
schemaName: mv.schemaName,
|
|
85
|
+
objectName: mv.name,
|
|
86
|
+
newObject: mv,
|
|
87
|
+
});
|
|
88
|
+
return null;
|
|
81
89
|
});
|
|
82
|
-
return null;
|
|
83
90
|
}
|
|
84
91
|
return { params: [], run, note: `createMaterializedView(${plan.schemaName}.${plan.viewName})` };
|
|
85
92
|
}
|
|
@@ -94,17 +101,24 @@ export function emitRefreshMaterializedView(plan, _ctx) {
|
|
|
94
101
|
// escapes the enclosing transaction exactly as the gated DDL statements do.
|
|
95
102
|
assertMaintainedTableDdlPolicy(rctx.db, plan.schemaName, plan.viewName, `REFRESH MATERIALIZED VIEW ${plan.viewName}`);
|
|
96
103
|
await rctx.db._ensureTransaction();
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
104
|
+
// Statement-scoped schema-event scope (see ddl-event-scope.ts). No demonstrated leak
|
|
105
|
+
// on either path today: the reshape arm does drive module `alterTable` ops before the
|
|
106
|
+
// recomputed rows can reject the refresh, but `reshapeOpToChange` never sets `ddl`, so
|
|
107
|
+
// an emitter-backed module stays silent for them. The scope is the invariant every DDL
|
|
108
|
+
// emitter holds, and the guard if a reshape ever announces.
|
|
109
|
+
return withStatementScopedSchemaEvents(rctx, async () => {
|
|
110
|
+
const db = rctx.db;
|
|
111
|
+
const sm = db.schemaManager;
|
|
112
|
+
const mv = sm.getMaintainedTable(plan.schemaName, plan.viewName);
|
|
113
|
+
if (!mv) {
|
|
114
|
+
if (sm.getTable(plan.schemaName, plan.viewName)) {
|
|
115
|
+
throw new QuereusError(`'${plan.viewName}' is a table, not a materialized view`, StatusCode.ERROR);
|
|
116
|
+
}
|
|
117
|
+
throw new QuereusError(`no such materialized view: ${plan.viewName}`, StatusCode.ERROR);
|
|
103
118
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
return null;
|
|
119
|
+
await refreshMaintainedTable(db, mv);
|
|
120
|
+
return null;
|
|
121
|
+
});
|
|
108
122
|
}
|
|
109
123
|
return { params: [], run, note: `refreshMaterializedView(${plan.schemaName}.${plan.viewName})` };
|
|
110
124
|
}
|
|
@@ -214,28 +228,34 @@ export function emitDropMaterializedView(plan, _ctx) {
|
|
|
214
228
|
// DROP TABLE.
|
|
215
229
|
assertMaintainedTableDdlPolicy(rctx.db, plan.schemaName, plan.viewName, `DROP MATERIALIZED VIEW ${plan.viewName}`);
|
|
216
230
|
await rctx.db._ensureTransaction();
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
231
|
+
// Statement-scoped schema-event scope (see ddl-event-scope.ts): `dropMaintainedTable`
|
|
232
|
+
// drops the backing table — announced — and then does more work (the
|
|
233
|
+
// `materialized_view_removed` notify and its listeners), so a failure past the drop
|
|
234
|
+
// must not leave the drop announced.
|
|
235
|
+
return withStatementScopedSchemaEvents(rctx, async () => {
|
|
236
|
+
const db = rctx.db;
|
|
237
|
+
const sm = db.schemaManager;
|
|
238
|
+
const mv = sm.getMaintainedTable(plan.schemaName, plan.viewName);
|
|
239
|
+
if (!mv) {
|
|
240
|
+
if (plan.ifExists)
|
|
241
|
+
return null;
|
|
242
|
+
if (sm.getTable(plan.schemaName, plan.viewName)) {
|
|
243
|
+
throw new QuereusError(`'${plan.viewName}' is a table, not a materialized view — use DROP TABLE`, StatusCode.ERROR);
|
|
244
|
+
}
|
|
245
|
+
if (sm.getView(plan.schemaName, plan.viewName)) {
|
|
246
|
+
throw new QuereusError(`'${plan.viewName}' is a view, not a materialized view — use DROP VIEW`, StatusCode.ERROR);
|
|
247
|
+
}
|
|
248
|
+
throw new QuereusError(`no such materialized view: ${plan.viewName}`, StatusCode.ERROR);
|
|
228
249
|
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
return null;
|
|
250
|
+
// Same guard DROP TABLE applies — a maintained table is a table to an
|
|
251
|
+
// assertion body. `dropMaintainedTable` itself stays unguarded: internal
|
|
252
|
+
// rollback / catalog-cleanup paths call it and must not be vetoed.
|
|
253
|
+
assertNoAssertionDependsOn(db, plan.schemaName, plan.viewName, 'materialized view');
|
|
254
|
+
// …and a table to another table's CHECK / DEFAULT / generated subquery too.
|
|
255
|
+
assertNoExpressionDependsOn(db, plan.schemaName, plan.viewName, 'materialized view');
|
|
256
|
+
await dropMaintainedTable(db, mv);
|
|
257
|
+
return null;
|
|
258
|
+
});
|
|
239
259
|
}
|
|
240
260
|
return { params: [], run, note: `dropMaterializedView(${plan.schemaName}.${plan.viewName})` };
|
|
241
261
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materialized-view.js","sourceRoot":"","sources":["../../../../src/runtime/emit/materialized-view.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAiB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EACN,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,8BAA8B,GAC9B,MAAM,gCAAgC,CAAC;AAExC;;;;;;;;;;GAUG;AACH,SAAS,8BAA8B,CAAC,EAAY,EAAE,UAAkB,EAAE,QAAgB,EAAE,cAAsB;IACjH,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAAE,OAAO;IACnC,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACzE,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,0BAA0B,CAAC,EAAE,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAgC,EAAE,IAAqB;IACjG,KAAK,UAAU,GAAG,CAAC,IAAoB;QACtC,iFAAiF;QACjF,6EAA6E;QAC7E,kFAAkF;QAClF,mEAAmE;QACnE,iFAAiF;QACjF,8EAA8E;QAC9E,kFAAkF;QAClF,gFAAgF;QAChF,cAAc;QACd,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC7E,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACzE,IAAI,aAAa,EAAE,MAAM,EAAE,CAAC;YAC3B,0BAA0B,CACzB,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,MAAM,EAAE,iBAAiB,EAChD,4BAA4B,IAAI,CAAC,QAAQ,EAAE,CAC3C,CAAC;QACH,CAAC;QAED,MAAM,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"materialized-view.js","sourceRoot":"","sources":["../../../../src/runtime/emit/materialized-view.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAiB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EACN,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,8BAA8B,GAC9B,MAAM,gCAAgC,CAAC;AAExC;;;;;;;;;;GAUG;AACH,SAAS,8BAA8B,CAAC,EAAY,EAAE,UAAkB,EAAE,QAAgB,EAAE,cAAsB;IACjH,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAAE,OAAO;IACnC,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACzE,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,0BAA0B,CAAC,EAAE,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAgC,EAAE,IAAqB;IACjG,KAAK,UAAU,GAAG,CAAC,IAAoB;QACtC,iFAAiF;QACjF,6EAA6E;QAC7E,kFAAkF;QAClF,mEAAmE;QACnE,iFAAiF;QACjF,8EAA8E;QAC9E,kFAAkF;QAClF,gFAAgF;QAChF,cAAc;QACd,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC7E,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACzE,IAAI,aAAa,EAAE,MAAM,EAAE,CAAC;YAC3B,0BAA0B,CACzB,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,MAAM,EAAE,iBAAiB,EAChD,4BAA4B,IAAI,CAAC,QAAQ,EAAE,CAC3C,CAAC;QACH,CAAC;QAED,MAAM,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAEnC,kFAAkF;QAClF,kFAAkF;QAClF,kFAAkF;QAClF,oDAAoD;QACpD,OAAO,+BAA+B,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACnB,MAAM,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC;YAE5B,MAAM,QAAQ,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvE,IAAI,QAAQ,EAAE,CAAC;gBACd,IAAI,IAAI,CAAC,WAAW;oBAAE,OAAO,IAAI,CAAC;gBAClC,MAAM,IAAI,YAAY,CACrB,sBAAsB,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,kBAAkB,EACxE,UAAU,CAAC,KAAK,CAChB,CAAC;YACH,CAAC;YACD,uEAAuE;YACvE,kEAAkE;YAClE,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/F,MAAM,IAAI,YAAY,CACrB,oCAAoC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,sDAAsD,EAC1H,UAAU,CAAC,UAAU,CACrB,CAAC;YACH,CAAC;YAED,iEAAiE;YACjE,yEAAyE;YACzE,yEAAyE;YACzE,uEAAuE;YACvE,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,EAAE,EAAE;gBACpC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,sEAAsE;gBACtE,SAAS,EAAE,IAAI,CAAC,UAAU;gBAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gBACzC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;aACzC,CAAC,CAAC;YAEH,EAAE,CAAC,iBAAiB,EAAE,CAAC,YAAY,CAAC;gBACnC,IAAI,EAAE,yBAAyB;gBAC/B,0CAA0C;gBAC1C,2EAA2E;gBAC3E,UAAU,EAAE,EAAE,CAAC,UAAU;gBACzB,UAAU,EAAE,EAAE,CAAC,IAAI;gBACnB,SAAS,EAAE,EAAE;aACb,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,0BAA0B,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAAiC,EAAE,IAAqB;IACnG,KAAK,UAAU,GAAG,CAAC,IAAoB;QACtC,+EAA+E;QAC/E,mFAAmF;QACnF,kFAAkF;QAClF,mFAAmF;QACnF,6EAA6E;QAC7E,iFAAiF;QACjF,4EAA4E;QAC5E,8BAA8B,CAC7B,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EACvC,6BAA6B,IAAI,CAAC,QAAQ,EAAE,CAC5C,CAAC;QAEF,MAAM,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAEnC,qFAAqF;QACrF,sFAAsF;QACtF,uFAAuF;QACvF,uFAAuF;QACvF,4DAA4D;QAC5D,OAAO,+BAA+B,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACnB,MAAM,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC;YAE5B,MAAM,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,EAAE,EAAE,CAAC;gBACT,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACjD,MAAM,IAAI,YAAY,CACrB,IAAI,IAAI,CAAC,QAAQ,uCAAuC,EACxD,UAAU,CAAC,KAAK,CAChB,CAAC;gBACH,CAAC;gBACD,MAAM,IAAI,YAAY,CAAC,8BAA8B,IAAI,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YACzF,CAAC;YAED,MAAM,sBAAsB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACrC,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,2BAA2B,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AAClG,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EAAY,EAAE,EAAyB;IACnF,MAAM,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC;IAC5B,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC;IAExB,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAEzC,yEAAyE;IACzE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACb,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,6EAA6E;IAC7E,+EAA+E;IAC/E,8EAA8E;IAC9E,gFAAgF;IAChF,mFAAmF;IACnF,2EAA2E;IAC3E,iFAAiF;IACjF,iEAAiE;IACjE,MAAM,KAAK,GAAG,kBAAkB,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IAExE,6EAA6E;IAC7E,6EAA6E;IAC7E,iFAAiF;IACjF,8EAA8E;IAC9E,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC5D,MAAM,IAAI,YAAY,CACrB,sBAAsB,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,IAAI,uBAAuB,CAAC,CAAC,OAAO,CAAC,MAAM,WAAW;cAC7F,6BAA6B,KAAK,CAAC,OAAO,CAAC,MAAM,4CAA4C,EAChG,UAAU,CAAC,KAAK,CAChB,CAAC;IACH,CAAC;IAED,IAAI,IAAI,GAA0B,EAAE,CAAC;IACrC,IAAI,mBAAmB,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;QACpC,kFAAkF;QAClF,MAAM,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACP,0EAA0E;QAC1E,yEAAyE;QACzE,wEAAwE;QACxE,yEAAyE;QACzE,2EAA2E;QAC3E,IAAI,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,8EAA8E;IAC9E,+EAA+E;IAC/E,gFAAgF;IAChF,mFAAmF;IACnF,4EAA4E;IAC5E,oFAAoF;IACpF,8EAA8E;IAC9E,mFAAmF;IACnF,mFAAmF;IACnF,yBAAyB;IACzB,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;IAC9B,EAAE,CAAC,iBAAiB,EAAE,CAAC,YAAY,CAAC;QACnC,IAAI,EAAE,6BAA6B;QACnC,yEAAyE;QACzE,2EAA2E;QAC3E,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,UAAU,EAAE,IAAI,CAAC,IAAI;QACrB,MAAM,EAAE,IAAI;KACZ,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,EAAY,EAAE,EAAyB;IAChF,MAAM,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC;IAE5B,uEAAuE;IACvE,yEAAyE;IACzE,4CAA4C;IAC5C,EAAE,CAAC,0BAA0B,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAEtD,0EAA0E;IAC1E,wEAAwE;IACxE,8BAA8B,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAEvC,oEAAoE;IACpE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IAC9D,EAAE,CAAC,iBAAiB,EAAE,CAAC,YAAY,CAAC;QACnC,IAAI,EAAE,2BAA2B;QACjC,uEAAuE;QACvE,2EAA2E;QAC3E,UAAU,EAAE,EAAE,CAAC,UAAU;QACzB,UAAU,EAAE,EAAE,CAAC,IAAI;QACnB,SAAS,EAAE,EAAE;KACb,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAA8B,EAAE,IAAqB;IAC7F,KAAK,UAAU,GAAG,CAAC,IAAoB;QACtC,gFAAgF;QAChF,cAAc;QACd,8BAA8B,CAC7B,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EACvC,0BAA0B,IAAI,CAAC,QAAQ,EAAE,CACzC,CAAC;QAEF,MAAM,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAEnC,sFAAsF;QACtF,qEAAqE;QACrE,oFAAoF;QACpF,qCAAqC;QACrC,OAAO,+BAA+B,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACnB,MAAM,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC;YAE5B,MAAM,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,EAAE,EAAE,CAAC;gBACT,IAAI,IAAI,CAAC,QAAQ;oBAAE,OAAO,IAAI,CAAC;gBAC/B,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACjD,MAAM,IAAI,YAAY,CACrB,IAAI,IAAI,CAAC,QAAQ,wDAAwD,EACzE,UAAU,CAAC,KAAK,CAChB,CAAC;gBACH,CAAC;gBACD,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAChD,MAAM,IAAI,YAAY,CACrB,IAAI,IAAI,CAAC,QAAQ,sDAAsD,EACvE,UAAU,CAAC,KAAK,CAChB,CAAC;gBACH,CAAC;gBACD,MAAM,IAAI,YAAY,CAAC,8BAA8B,IAAI,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YACzF,CAAC;YAED,sEAAsE;YACtE,yEAAyE;YACzE,mEAAmE;YACnE,0BAA0B,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;YACpF,4EAA4E;YAC5E,2BAA2B,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;YAErF,MAAM,mBAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,wBAAwB,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC/F,CAAC"}
|
|
@@ -4,6 +4,14 @@ import type { PlanNode } from '../../planner/nodes/plan-node.js';
|
|
|
4
4
|
export declare function emitDeclareSchema(plan: PlanNode, _ctx: EmissionContext): Instruction;
|
|
5
5
|
export declare function emitDeclareLens(plan: PlanNode, _ctx: EmissionContext): Instruction;
|
|
6
6
|
export declare function emitDiffSchema(plan: PlanNode, _ctx: EmissionContext): Instruction;
|
|
7
|
+
/**
|
|
8
|
+
* Deliberately NOT wrapped in `withStatementScopedSchemaEvents` (see ddl-event-scope.ts),
|
|
9
|
+
* which every other DDL emitter opens around its `run()` body. A failure on the Nth generated
|
|
10
|
+
* migration statement leaves statements 1..N-1 *applied* — there is no catalog rollback, and
|
|
11
|
+
* inside an explicit transaction the user may still commit — so those really happened and must
|
|
12
|
+
* stay announced. Each generated sub-statement runs its own emitter and so carries its own
|
|
13
|
+
* scope: the ones that landed keep their events, the one that failed retracts its own.
|
|
14
|
+
*/
|
|
7
15
|
export declare function emitApplySchema(plan: PlanNode, _ctx: EmissionContext): Instruction;
|
|
8
16
|
export declare function emitExplainSchema(plan: PlanNode, _ctx: EmissionContext): Instruction;
|
|
9
17
|
//# sourceMappingURL=schema-declarative.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-declarative.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/schema-declarative.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"schema-declarative.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/schema-declarative.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAW/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAgFjE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CA0CpF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAkClF;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAoCjF;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAyOlF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CA6BpF"}
|