@quereus/quereus 4.10.0 → 4.12.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/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 +5 -3
- 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 +3 -2
- package/dist/src/planner/building/constraint-builder.d.ts.map +1 -1
- package/dist/src/planner/building/constraint-builder.js +20 -27
- package/dist/src/planner/building/constraint-builder.js.map +1 -1
- package/dist/src/planner/building/delete.d.ts.map +1 -1
- package/dist/src/planner/building/delete.js +8 -25
- 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 +19 -8
- package/dist/src/planner/building/foreign-key-builder.d.ts.map +1 -1
- package/dist/src/planner/building/foreign-key-builder.js +56 -37
- 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 +36 -60
- package/dist/src/planner/building/insert.js.map +1 -1
- package/dist/src/planner/building/mutation-context.d.ts +63 -0
- package/dist/src/planner/building/mutation-context.d.ts.map +1 -0
- package/dist/src/planner/building/mutation-context.js +126 -0
- package/dist/src/planner/building/mutation-context.js.map +1 -0
- 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 +21 -32
- 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 +70 -26
- 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 +22 -13
- 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 +28 -24
- 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 +94 -5
- package/dist/src/schema/catalog.d.ts.map +1 -1
- package/dist/src/schema/catalog.js +159 -21
- 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 +23 -7
- package/dist/src/schema/constraint-builder.d.ts.map +1 -1
- package/dist/src/schema/constraint-builder.js +60 -16
- 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 +48 -1
- package/dist/src/schema/manager.d.ts.map +1 -1
- package/dist/src/schema/manager.js +168 -36
- 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 +117 -19
- package/dist/src/schema/table.d.ts.map +1 -1
- package/dist/src/schema/table.js +213 -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
|
@@ -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":"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"}
|
|
@@ -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"}
|
|
@@ -3,10 +3,12 @@ import { createLogger } from '../../common/logger.js';
|
|
|
3
3
|
import { StatusCode } from '../../common/types.js';
|
|
4
4
|
import { QuereusError } from '../../common/errors.js';
|
|
5
5
|
import { collectSchemaCatalog } from '../../schema/catalog.js';
|
|
6
|
-
import {
|
|
6
|
+
import { renderCatalogForComparison } from '../../schema/catalog-rendering.js';
|
|
7
|
+
import { computeSchemaDiff, generateMigrationDDL, generateMigrationPlan } from '../../schema/schema-differ.js';
|
|
7
8
|
import { computeShortSchemaHash } from '../../schema/schema-hasher.js';
|
|
8
9
|
import { deployLogicalSchema } from '../../schema/lens-compiler.js';
|
|
9
10
|
import { quoteIdentifier } from '../../emit/ast-stringify.js';
|
|
11
|
+
import { spineCloneAst } from '../../util/ast-spine-clone.js';
|
|
10
12
|
const log = createLogger('runtime:emit:declare');
|
|
11
13
|
/** Cross-platform Uint8Array to hex string (no Node Buffer dependency). */
|
|
12
14
|
function uint8ArrayToHex(bytes) {
|
|
@@ -163,6 +165,14 @@ export function emitDiffSchema(plan, _ctx) {
|
|
|
163
165
|
note: `diff schema ${diffStmt.schemaName || 'main'}`
|
|
164
166
|
};
|
|
165
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* Deliberately NOT wrapped in `withStatementScopedSchemaEvents` (see ddl-event-scope.ts),
|
|
170
|
+
* which every other DDL emitter opens around its `run()` body. A failure on the Nth generated
|
|
171
|
+
* migration statement leaves statements 1..N-1 *applied* — there is no catalog rollback, and
|
|
172
|
+
* inside an explicit transaction the user may still commit — so those really happened and must
|
|
173
|
+
* stay announced. Each generated sub-statement runs its own emitter and so carries its own
|
|
174
|
+
* scope: the ones that landed keep their events, the one that failed retracts its own.
|
|
175
|
+
*/
|
|
166
176
|
export function emitApplySchema(plan, _ctx) {
|
|
167
177
|
const applyStmt = plan.statementAst;
|
|
168
178
|
const run = async (rctx) => {
|
|
@@ -208,32 +218,72 @@ export function emitApplySchema(plan, _ctx) {
|
|
|
208
218
|
}
|
|
209
219
|
// Collect actual catalog
|
|
210
220
|
const actualCatalog = collectSchemaCatalog(rctx.db, schemaName);
|
|
211
|
-
|
|
212
|
-
//
|
|
213
|
-
//
|
|
214
|
-
//
|
|
215
|
-
|
|
216
|
-
//
|
|
217
|
-
//
|
|
218
|
-
//
|
|
219
|
-
//
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
221
|
+
const defaultCollation = rctx.db.options.getStringOption('default_collation');
|
|
222
|
+
// Applied-state fast path. If both sides render to exactly what they rendered
|
|
223
|
+
// to at the end of the last successful, verified-no-op apply — and the
|
|
224
|
+
// effective default_collation is unchanged — the diff would again be empty,
|
|
225
|
+
// so skip it. `computeSchemaDiff` reads nothing but its four arguments; the
|
|
226
|
+
// remaining one, `renamePolicy`, is inert when there are no differences (no
|
|
227
|
+
// name-change pairs for a policy to police), and `allow_destructive` only
|
|
228
|
+
// gates a non-empty `diff.maintainedModuleMigrations`. So the skip is
|
|
229
|
+
// behaviour-preserving. See docs/schema.md § Applied-state snapshot.
|
|
230
|
+
const catalogRendering = renderCatalogForComparison(actualCatalog);
|
|
231
|
+
const declaredRendering = rctx.db.declaredSchemaManager.getDeclaredRendering(schemaName);
|
|
232
|
+
const snapshot = rctx.db.declaredSchemaManager.getAppliedSnapshot(schemaName);
|
|
233
|
+
const unchanged = snapshot !== undefined
|
|
234
|
+
&& declaredRendering !== undefined
|
|
235
|
+
&& snapshot.declaredRendering === declaredRendering
|
|
236
|
+
&& snapshot.catalogRendering === catalogRendering
|
|
237
|
+
&& snapshot.defaultCollation === defaultCollation;
|
|
238
|
+
// True when this apply may record a snapshot: nothing needed doing. Set by the
|
|
239
|
+
// fast path, or by a full reconcile whose plan came out empty.
|
|
240
|
+
let verifiedNoOp = unchanged;
|
|
241
|
+
if (unchanged) {
|
|
242
|
+
log('APPLY SCHEMA %s: catalog and declaration unchanged since last no-op apply; skipping diff', schemaName);
|
|
227
243
|
}
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
244
|
+
else {
|
|
245
|
+
// Compute diff (default rename_policy = 'allow' when unspecified). Thread the
|
|
246
|
+
// live default_collation so an omitted-COLLATE declared column resolves to the
|
|
247
|
+
// same effective collation the CREATE path produces — keeping a fresh apply at
|
|
248
|
+
// parity with direct DDL and a re-apply idempotent under a non-BINARY default.
|
|
249
|
+
const diff = computeSchemaDiff(declaredSchema, actualCatalog, applyStmt.options?.renamePolicy ?? 'allow', defaultCollation);
|
|
250
|
+
// Acknowledgement gate: a backing-module change on a maintained table is a
|
|
251
|
+
// destructive incarnation-minting move (drop + recreate — fires
|
|
252
|
+
// materialized_view_removed then _added, so row identity changes for a
|
|
253
|
+
// replicated/synced table). Refuse to execute it unless the user opted in via
|
|
254
|
+
// `options (allow_destructive = true)`. The whole apply aborts here, BEFORE any
|
|
255
|
+
// DDL runs, so no partial migration occurs. (`diff schema` does NOT gate — it
|
|
256
|
+
// is a read-only preview and surfaces the DROP/recreate DDL unconditionally.)
|
|
257
|
+
if (diff.maintainedModuleMigrations.length > 0 && !applyStmt.options?.allowDestructive) {
|
|
258
|
+
const names = diff.maintainedModuleMigrations.map(m => `'${m.name}'`).join(', ');
|
|
259
|
+
throw new QuereusError(`apply schema '${schemaName}': backing-module change on maintained table(s) ${names} is destructive ` +
|
|
260
|
+
`(drop + recreate, new incarnation). Re-run with options (allow_destructive = true) to migrate the backing.`, StatusCode.ERROR);
|
|
261
|
+
}
|
|
262
|
+
// Build the migration plan. Same ordering (and same DDL text) `diff schema`
|
|
263
|
+
// previews; the create steps additionally carry the statement they were
|
|
264
|
+
// rendered from, so the loop below skips re-parsing them.
|
|
265
|
+
const migrationStatements = generateMigrationPlan(diff, schemaName);
|
|
266
|
+
// Run the migration loop. When there are no statements we keep the
|
|
267
|
+
// idempotency fast-path: no module batch hooks fire.
|
|
268
|
+
if (migrationStatements.length > 0) {
|
|
269
|
+
await runBatchedMigrationLoop(rctx.db, schemaName, migrationStatements);
|
|
270
|
+
}
|
|
271
|
+
// A migrating apply records nothing: `catalogRendering` describes the
|
|
272
|
+
// PRE-migration catalog, and re-collecting post-migration would assert an
|
|
273
|
+
// equivalence this apply never verified with a diff. The next apply does a
|
|
274
|
+
// full diff, finds it empty, and records then — which is what preserves
|
|
275
|
+
// `apply schema`'s self-healing property (a repeat apply always re-diffs
|
|
276
|
+
// rather than being told by a cache that everything is fine).
|
|
277
|
+
verifiedNoOp = migrationStatements.length === 0;
|
|
234
278
|
}
|
|
235
279
|
// Apply seed data if requested.
|
|
236
280
|
//
|
|
281
|
+
// Runs on BOTH paths — the applied-state fast path elides the diff and the
|
|
282
|
+
// migration plan, nothing else. A table emptied since the last apply gets its
|
|
283
|
+
// seed rows back, which is the behaviour a user relies on and the only reading
|
|
284
|
+
// consistent with "observably indistinguishable from a full apply whose diff
|
|
285
|
+
// came out empty". Seeding is idempotent, so the repeat costs no correctness.
|
|
286
|
+
//
|
|
237
287
|
// Seed application is idempotent: each row is written as
|
|
238
288
|
// `INSERT INTO <tbl> VALUES (…) ON CONFLICT (<pk>) DO NOTHING`. An existing
|
|
239
289
|
// row (matching the seed PK) is left completely untouched — user edits
|
|
@@ -298,6 +348,22 @@ export function emitApplySchema(plan, _ctx) {
|
|
|
298
348
|
}
|
|
299
349
|
}
|
|
300
350
|
}
|
|
351
|
+
// Record the applied-state snapshot. Only reached when nothing threw AND the
|
|
352
|
+
// apply was a verified no-op, so `catalogRendering` (collected at the top of
|
|
353
|
+
// this run, before any DDL could have executed) still describes the live
|
|
354
|
+
// catalog, and a real diff has confirmed catalog ≡ declaration.
|
|
355
|
+
//
|
|
356
|
+
// NOTE: catalog DDL is not rolled back today (see the comment above
|
|
357
|
+
// `emitApplySchema`), so a transaction that unwinds after an apply cannot
|
|
358
|
+
// leave this snapshot describing a state the catalog is not in. If catalog DDL
|
|
359
|
+
// ever becomes rollback-able, the snapshot must be invalidated on rollback.
|
|
360
|
+
if (verifiedNoOp && declaredRendering !== undefined) {
|
|
361
|
+
rctx.db.declaredSchemaManager.setAppliedSnapshot(schemaName, {
|
|
362
|
+
declaredRendering,
|
|
363
|
+
catalogRendering,
|
|
364
|
+
defaultCollation,
|
|
365
|
+
});
|
|
366
|
+
}
|
|
301
367
|
// Return empty row to satisfy type system (void result)
|
|
302
368
|
return [];
|
|
303
369
|
};
|
|
@@ -336,15 +402,52 @@ export function emitExplainSchema(plan, _ctx) {
|
|
|
336
402
|
* Modules that opt in via `beginSchemaBatch` may fold the entire
|
|
337
403
|
* APPLY SCHEMA into a single substrate commit. Modules without the hook
|
|
338
404
|
* pay nothing — they're filtered out before the loop.
|
|
405
|
+
*
|
|
406
|
+
* A step that carries its AST is executed on a spine clone of it — the differ rendered
|
|
407
|
+
* `step.sql` FROM that statement, so re-lexing it would rebuild the same tree, but the
|
|
408
|
+
* plan's own node must not escape into the catalog (see below). Template-built steps
|
|
409
|
+
* (renames, drops, alters, SET TAGS) carry no AST and take the parsing path. Both
|
|
410
|
+
* branches report `step.sql` on failure, so the error text is identical either way.
|
|
411
|
+
*
|
|
412
|
+
* The clone is NOT optional. A plan step's AST is (a subtree of) the statement
|
|
413
|
+
* `DeclaredSchemaManager` holds — the schema qualifiers spread only the outermost node,
|
|
414
|
+
* so a view's `select`, an assertion's body and a `set maintained as` body are the
|
|
415
|
+
* declaration's own subtrees on every target schema, main or not. The create emitters
|
|
416
|
+
* retain what they are handed (`emitCreateView` stores `plan.selectStmt` as
|
|
417
|
+
* `ViewSchema.selectAst`, and the assertion / maintained-table paths do the same), and
|
|
418
|
+
* rename propagation rewrites those catalog bodies IN PLACE (`renameTableInAst` /
|
|
419
|
+
* `renameColumnInAst` in `runtime/emit/alter-table.ts`). Without the clone, an
|
|
420
|
+
* `ALTER TABLE … RENAME` after an apply silently rewrites the stored declaration, so
|
|
421
|
+
* `diff schema` stops seeing the drift it should report.
|
|
422
|
+
* `declarative-equivalence.spec.ts` § "apply executes the plan AST" pins both halves:
|
|
423
|
+
* the apply itself leaves the declaration untouched, and so does a later rename.
|
|
424
|
+
* The applied-state fast path now leans on the same invariant from the other side:
|
|
425
|
+
* `DeclaredSchemaManager.getDeclaredRendering` memoizes the declaration's rendering
|
|
426
|
+
* and re-derives it only on `setDeclaredSchema`, so an in-place edit of a stored
|
|
427
|
+
* declaration would leave a stale rendering and could skip a real reconcile.
|
|
428
|
+
*
|
|
429
|
+
* NOTE: the clone costs about what the parse it replaces costs, because it copies the
|
|
430
|
+
* WHOLE statement while the catalog retains only a few subtrees of it. Measured over
|
|
431
|
+
* 68 creates of the synthetic declaration `bench/apply-schema-unchanged.mjs` builds
|
|
432
|
+
* (harness since deleted): clone 0.91 ms vs parse 1.07 ms on
|
|
433
|
+
* the 20.4 KB declaration, and clone 3.57 ms vs parse 3.13 ms on the 112.7 KB one — so
|
|
434
|
+
* the create-heavy apply nets ~3–8% off the migration loop, not the ~26–38% the
|
|
435
|
+
* uncloned version appeared to. If apply latency ever matters, the fix is to move
|
|
436
|
+
* ownership into the emitters (each copies only what it stores) and drop this blunt
|
|
437
|
+
* clone — see `tickets/backlog/debt-catalog-aliases-caller-ast`.
|
|
339
438
|
*/
|
|
340
439
|
async function runBatchedMigrationLoop(db, schemaName, migrationStatements) {
|
|
341
440
|
const startedModules = await beginSchemaBatchAll(db, schemaName);
|
|
342
441
|
let loopError;
|
|
343
442
|
try {
|
|
344
|
-
for (const
|
|
443
|
+
for (const step of migrationStatements) {
|
|
444
|
+
const ddl = step.sql;
|
|
345
445
|
log('Executing migration DDL: %s', ddl);
|
|
346
446
|
try {
|
|
347
|
-
|
|
447
|
+
if (step.ast)
|
|
448
|
+
await db._execAstWithinTransaction([spineCloneAst(step.ast)]);
|
|
449
|
+
else
|
|
450
|
+
await db._execWithinTransaction(ddl);
|
|
348
451
|
}
|
|
349
452
|
catch (e) {
|
|
350
453
|
log('Migration failed for DDL: %s', ddl);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-declarative.js","sourceRoot":"","sources":["../../../../src/runtime/emit/schema-declarative.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema-declarative.js","sourceRoot":"","sources":["../../../../src/runtime/emit/schema-declarative.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { SequenceNode } from '../../planner/nodes/sequence-node.js';
|
|
2
|
+
import type { Instruction } from '../types.js';
|
|
3
|
+
import type { EmissionContext } from '../emission-context.js';
|
|
4
|
+
/**
|
|
5
|
+
* Emit a {@link SequenceNode}: drive each side-effect child to completion, in
|
|
6
|
+
* list order, then delegate to the main child.
|
|
7
|
+
*
|
|
8
|
+
* Effects and main are emitted as **callbacks** (`emitCallFromPlan` wraps each in
|
|
9
|
+
* its own sub-program), not bare params — the scheduler kicks off sibling params
|
|
10
|
+
* concurrently (see `emitViewMutation`'s header for why bare params cannot carry
|
|
11
|
+
* ordering), and an effect's write interleaving with the main statement's own
|
|
12
|
+
* write breaks statement-savepoint pairing. The main child's result is returned
|
|
13
|
+
* un-drained, so a streaming relational main still streams; its rows are pulled
|
|
14
|
+
* only after every effect has completed.
|
|
15
|
+
*/
|
|
16
|
+
export declare function emitSequence(plan: SequenceNode, ctx: EmissionContext): Instruction;
|
|
17
|
+
//# sourceMappingURL=sequence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequence.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/sequence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAG/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CA2BlF"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { asRun } from '../types.js';
|
|
2
|
+
import { emitCallFromPlan } from '../emitters.js';
|
|
3
|
+
import { isAsyncIterable } from '../utils.js';
|
|
4
|
+
/**
|
|
5
|
+
* Emit a {@link SequenceNode}: drive each side-effect child to completion, in
|
|
6
|
+
* list order, then delegate to the main child.
|
|
7
|
+
*
|
|
8
|
+
* Effects and main are emitted as **callbacks** (`emitCallFromPlan` wraps each in
|
|
9
|
+
* its own sub-program), not bare params — the scheduler kicks off sibling params
|
|
10
|
+
* concurrently (see `emitViewMutation`'s header for why bare params cannot carry
|
|
11
|
+
* ordering), and an effect's write interleaving with the main statement's own
|
|
12
|
+
* write breaks statement-savepoint pairing. The main child's result is returned
|
|
13
|
+
* un-drained, so a streaming relational main still streams; its rows are pulled
|
|
14
|
+
* only after every effect has completed.
|
|
15
|
+
*/
|
|
16
|
+
export function emitSequence(plan, ctx) {
|
|
17
|
+
const effectInstructions = plan.effects.map(e => emitCallFromPlan(e, ctx));
|
|
18
|
+
const mainInstruction = emitCallFromPlan(plan.main, ctx);
|
|
19
|
+
async function run(rctx, ...args) {
|
|
20
|
+
const effectCbs = args.slice(0, effectInstructions.length);
|
|
21
|
+
const mainCb = args[effectInstructions.length];
|
|
22
|
+
for (const cb of effectCbs) {
|
|
23
|
+
const result = cb(rctx);
|
|
24
|
+
const resolved = result instanceof Promise ? await result : result;
|
|
25
|
+
// A Sink-topped effect resolves to its row count; defensively drain a
|
|
26
|
+
// relational result so its writes fire before the next effect.
|
|
27
|
+
if (isAsyncIterable(resolved)) {
|
|
28
|
+
for await (const _row of resolved) { /* drain side effects */ }
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
const mainResult = mainCb(rctx);
|
|
32
|
+
return mainResult instanceof Promise ? await mainResult : mainResult;
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
params: [...effectInstructions, mainInstruction],
|
|
36
|
+
run: asRun(run),
|
|
37
|
+
note: `sequence(${effectInstructions.length} effect${effectInstructions.length === 1 ? '' : 's'})`,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=sequence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequence.js","sourceRoot":"","sources":["../../../../src/runtime/emit/sequence.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAAC,IAAkB,EAAE,GAAoB;IACpE,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3E,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEzD,KAAK,UAAU,GAAG,CAAC,IAAoB,EAAE,GAAG,IAAoB;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAiB,CAAC;QAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAe,CAAC;QAE7D,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM,QAAQ,GAAG,MAAM,YAAY,OAAO,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YACnE,sEAAsE;YACtE,+DAA+D;YAC/D,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,QAA8B,EAAE,CAAC,CAAC,wBAAwB,CAAC,CAAC;YACtF,CAAC;QACF,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,UAAU,YAAY,OAAO,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;IACtE,CAAC;IAED,OAAO;QACN,MAAM,EAAE,CAAC,GAAG,kBAAkB,EAAE,eAAe,CAAC;QAChD,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;QACf,IAAI,EAAE,YAAY,kBAAkB,CAAC,MAAM,UAAU,kBAAkB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;KAClG,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-object-tags.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/set-object-tags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"set-object-tags.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/set-object-tags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAO9D;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CA0C7F"}
|