@quereus/quereus 4.3.2 → 4.4.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/README.md +5 -0
- package/dist/src/common/types.d.ts +9 -0
- package/dist/src/common/types.d.ts.map +1 -1
- package/dist/src/common/types.js.map +1 -1
- package/dist/src/core/database-events.d.ts +49 -0
- package/dist/src/core/database-events.d.ts.map +1 -1
- package/dist/src/core/database-events.js +148 -0
- package/dist/src/core/database-events.js.map +1 -1
- package/dist/src/core/database-external-changes.d.ts +2 -2
- package/dist/src/core/database-external-changes.d.ts.map +1 -1
- package/dist/src/core/database-external-changes.js +12 -9
- package/dist/src/core/database-external-changes.js.map +1 -1
- package/dist/src/core/database-materialized-views-apply.d.ts +156 -14
- package/dist/src/core/database-materialized-views-apply.d.ts.map +1 -1
- package/dist/src/core/database-materialized-views-apply.js +370 -65
- package/dist/src/core/database-materialized-views-apply.js.map +1 -1
- package/dist/src/core/database-materialized-views-plan-builders.d.ts +66 -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 +368 -8
- package/dist/src/core/database-materialized-views-plan-builders.js.map +1 -1
- package/dist/src/core/database-materialized-views-plans.d.ts +257 -30
- package/dist/src/core/database-materialized-views-plans.d.ts.map +1 -1
- package/dist/src/core/database-materialized-views.d.ts +99 -42
- package/dist/src/core/database-materialized-views.d.ts.map +1 -1
- package/dist/src/core/database-materialized-views.js +198 -121
- package/dist/src/core/database-materialized-views.js.map +1 -1
- package/dist/src/core/database.d.ts +5 -0
- package/dist/src/core/database.d.ts.map +1 -1
- package/dist/src/core/database.js +41 -18
- package/dist/src/core/database.js.map +1 -1
- package/dist/src/core/internal-statement-cache.d.ts +18 -0
- package/dist/src/core/internal-statement-cache.d.ts.map +1 -0
- package/dist/src/core/internal-statement-cache.js +211 -0
- package/dist/src/core/internal-statement-cache.js.map +1 -0
- package/dist/src/func/builtins/aggregate.d.ts +13 -12
- package/dist/src/func/builtins/aggregate.d.ts.map +1 -1
- package/dist/src/func/builtins/aggregate.js +146 -62
- 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 +63 -48
- package/dist/src/func/builtins/builtin-window-functions.js.map +1 -1
- package/dist/src/func/registration.d.ts +19 -1
- package/dist/src/func/registration.d.ts.map +1 -1
- package/dist/src/func/registration.js +41 -0
- package/dist/src/func/registration.js.map +1 -1
- package/dist/src/index.d.ts +8 -8
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +12 -11
- package/dist/src/index.js.map +1 -1
- package/dist/src/parser/parser.d.ts +6 -0
- package/dist/src/parser/parser.d.ts.map +1 -1
- package/dist/src/parser/parser.js +45 -34
- package/dist/src/parser/parser.js.map +1 -1
- package/dist/src/planner/analysis/comparison-collation.d.ts +2 -0
- package/dist/src/planner/analysis/comparison-collation.d.ts.map +1 -1
- package/dist/src/planner/analysis/comparison-collation.js +1 -1
- package/dist/src/planner/analysis/comparison-collation.js.map +1 -1
- package/dist/src/planner/analysis/equi-correlation.d.ts +26 -0
- package/dist/src/planner/analysis/equi-correlation.d.ts.map +1 -0
- package/dist/src/planner/analysis/equi-correlation.js +62 -0
- package/dist/src/planner/analysis/equi-correlation.js.map +1 -0
- package/dist/src/planner/analysis/expression-fingerprint.d.ts.map +1 -1
- package/dist/src/planner/analysis/expression-fingerprint.js +29 -0
- package/dist/src/planner/analysis/expression-fingerprint.js.map +1 -1
- package/dist/src/planner/analysis/query-rewrite-matcher.d.ts +60 -18
- package/dist/src/planner/analysis/query-rewrite-matcher.d.ts.map +1 -1
- package/dist/src/planner/analysis/query-rewrite-matcher.js +95 -42
- package/dist/src/planner/analysis/query-rewrite-matcher.js.map +1 -1
- package/dist/src/planner/analysis/sat-checker.d.ts.map +1 -1
- package/dist/src/planner/analysis/sat-checker.js +43 -4
- package/dist/src/planner/analysis/sat-checker.js.map +1 -1
- package/dist/src/planner/analysis/scalar-subqueries.d.ts +28 -0
- package/dist/src/planner/analysis/scalar-subqueries.d.ts.map +1 -0
- package/dist/src/planner/analysis/scalar-subqueries.js +60 -0
- package/dist/src/planner/analysis/scalar-subqueries.js.map +1 -0
- package/dist/src/planner/building/delete.d.ts.map +1 -1
- package/dist/src/planner/building/delete.js +10 -3
- 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 +87 -6
- package/dist/src/planner/building/expression.js.map +1 -1
- package/dist/src/planner/building/foreign-key-builder.d.ts +44 -1
- package/dist/src/planner/building/foreign-key-builder.d.ts.map +1 -1
- package/dist/src/planner/building/foreign-key-builder.js +54 -0
- package/dist/src/planner/building/foreign-key-builder.js.map +1 -1
- package/dist/src/planner/building/insert.d.ts.map +1 -1
- package/dist/src/planner/building/insert.js +9 -12
- package/dist/src/planner/building/insert.js.map +1 -1
- package/dist/src/planner/building/select.d.ts.map +1 -1
- package/dist/src/planner/building/select.js +15 -1
- 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 +13 -4
- package/dist/src/planner/building/update.js.map +1 -1
- package/dist/src/planner/building/with.d.ts.map +1 -1
- package/dist/src/planner/building/with.js +5 -8
- package/dist/src/planner/building/with.js.map +1 -1
- package/dist/src/planner/cache/materialization-advisory.d.ts +33 -0
- package/dist/src/planner/cache/materialization-advisory.d.ts.map +1 -1
- package/dist/src/planner/cache/materialization-advisory.js +164 -28
- package/dist/src/planner/cache/materialization-advisory.js.map +1 -1
- package/dist/src/planner/cache/reference-graph.d.ts +0 -4
- package/dist/src/planner/cache/reference-graph.d.ts.map +1 -1
- package/dist/src/planner/cache/reference-graph.js +5 -13
- package/dist/src/planner/cache/reference-graph.js.map +1 -1
- package/dist/src/planner/cost/index.d.ts +28 -7
- package/dist/src/planner/cost/index.d.ts.map +1 -1
- package/dist/src/planner/cost/index.js +26 -0
- package/dist/src/planner/cost/index.js.map +1 -1
- package/dist/src/planner/framework/pass.js +3 -3
- package/dist/src/planner/nodes/cache-node.d.ts +18 -2
- package/dist/src/planner/nodes/cache-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/cache-node.js +42 -3
- package/dist/src/planner/nodes/cache-node.js.map +1 -1
- package/dist/src/planner/nodes/cte-node.d.ts +15 -1
- package/dist/src/planner/nodes/cte-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/cte-node.js +12 -2
- package/dist/src/planner/nodes/cte-node.js.map +1 -1
- package/dist/src/planner/nodes/dml-executor-node.d.ts +0 -9
- package/dist/src/planner/nodes/dml-executor-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/dml-executor-node.js.map +1 -1
- package/dist/src/planner/nodes/recursive-cte-node.d.ts +30 -1
- package/dist/src/planner/nodes/recursive-cte-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/recursive-cte-node.js +30 -3
- package/dist/src/planner/nodes/recursive-cte-node.js.map +1 -1
- package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
- package/dist/src/planner/nodes/scalar.js +26 -3
- package/dist/src/planner/nodes/scalar.js.map +1 -1
- package/dist/src/planner/optimizer.d.ts.map +1 -1
- package/dist/src/planner/optimizer.js +129 -8
- package/dist/src/planner/optimizer.js.map +1 -1
- package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
- package/dist/src/planner/rules/access/rule-select-access-path.js +43 -18
- package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
- package/dist/src/planner/rules/cache/rule-cte-optimization.d.ts.map +1 -1
- package/dist/src/planner/rules/cache/rule-cte-optimization.js +8 -1
- package/dist/src/planner/rules/cache/rule-cte-optimization.js.map +1 -1
- package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.d.ts.map +1 -1
- package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js +72 -54
- package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js.map +1 -1
- package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.d.ts.map +1 -1
- package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.js +6 -0
- package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.js.map +1 -1
- package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.d.ts +25 -0
- package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.d.ts.map +1 -0
- package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js +176 -0
- package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js.map +1 -0
- package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.d.ts +31 -0
- package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.d.ts.map +1 -0
- package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.js +68 -0
- package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.js.map +1 -0
- package/dist/src/planner/rules/join/rule-fanout-lookup-join.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-fanout-lookup-join.js +1 -54
- package/dist/src/planner/rules/join/rule-fanout-lookup-join.js.map +1 -1
- package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js +8 -1
- package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js.map +1 -1
- package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.d.ts +191 -0
- package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.d.ts.map +1 -0
- package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.js +627 -0
- package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.js.map +1 -0
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts +10 -1
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts.map +1 -1
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js +242 -51
- package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js.map +1 -1
- package/dist/src/runtime/cache/shared-cache.d.ts +7 -0
- package/dist/src/runtime/cache/shared-cache.d.ts.map +1 -1
- package/dist/src/runtime/cache/shared-cache.js +34 -1
- package/dist/src/runtime/cache/shared-cache.js.map +1 -1
- package/dist/src/runtime/deferred-constraint-queue.d.ts.map +1 -1
- package/dist/src/runtime/deferred-constraint-queue.js +10 -0
- package/dist/src/runtime/deferred-constraint-queue.js.map +1 -1
- package/dist/src/runtime/emit/aggregate-setup.d.ts +49 -0
- package/dist/src/runtime/emit/aggregate-setup.d.ts.map +1 -0
- package/dist/src/runtime/emit/aggregate-setup.js +99 -0
- package/dist/src/runtime/emit/aggregate-setup.js.map +1 -0
- package/dist/src/runtime/emit/aggregate.d.ts +2 -3
- package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
- package/dist/src/runtime/emit/aggregate.js +10 -84
- package/dist/src/runtime/emit/aggregate.js.map +1 -1
- package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
- package/dist/src/runtime/emit/alter-table.js +348 -165
- package/dist/src/runtime/emit/alter-table.js.map +1 -1
- package/dist/src/runtime/emit/asof-scan.d.ts.map +1 -1
- package/dist/src/runtime/emit/asof-scan.js +6 -0
- package/dist/src/runtime/emit/asof-scan.js.map +1 -1
- package/dist/src/runtime/emit/between.d.ts.map +1 -1
- package/dist/src/runtime/emit/between.js +32 -3
- package/dist/src/runtime/emit/between.js.map +1 -1
- package/dist/src/runtime/emit/binary.d.ts.map +1 -1
- package/dist/src/runtime/emit/binary.js +22 -2
- package/dist/src/runtime/emit/binary.js.map +1 -1
- package/dist/src/runtime/emit/bloom-join.d.ts.map +1 -1
- package/dist/src/runtime/emit/bloom-join.js +24 -3
- package/dist/src/runtime/emit/bloom-join.js.map +1 -1
- package/dist/src/runtime/emit/cache.d.ts +7 -3
- package/dist/src/runtime/emit/cache.d.ts.map +1 -1
- package/dist/src/runtime/emit/cache.js +23 -6
- package/dist/src/runtime/emit/cache.js.map +1 -1
- package/dist/src/runtime/emit/cast.d.ts.map +1 -1
- package/dist/src/runtime/emit/cast.js +10 -23
- package/dist/src/runtime/emit/cast.js.map +1 -1
- package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
- package/dist/src/runtime/emit/constraint-check.js +41 -44
- package/dist/src/runtime/emit/constraint-check.js.map +1 -1
- package/dist/src/runtime/emit/create-view.d.ts.map +1 -1
- package/dist/src/runtime/emit/create-view.js +6 -0
- package/dist/src/runtime/emit/create-view.js.map +1 -1
- package/dist/src/runtime/emit/cte.d.ts.map +1 -1
- package/dist/src/runtime/emit/cte.js +43 -20
- package/dist/src/runtime/emit/cte.js.map +1 -1
- package/dist/src/runtime/emit/distinct.d.ts.map +1 -1
- package/dist/src/runtime/emit/distinct.js +6 -3
- package/dist/src/runtime/emit/distinct.js.map +1 -1
- package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
- package/dist/src/runtime/emit/dml-executor.js +241 -115
- package/dist/src/runtime/emit/dml-executor.js.map +1 -1
- package/dist/src/runtime/emit/hash-aggregate.d.ts.map +1 -1
- package/dist/src/runtime/emit/hash-aggregate.js +16 -65
- package/dist/src/runtime/emit/hash-aggregate.js.map +1 -1
- package/dist/src/runtime/emit/insert.d.ts.map +1 -1
- package/dist/src/runtime/emit/insert.js +18 -7
- package/dist/src/runtime/emit/insert.js.map +1 -1
- package/dist/src/runtime/emit/join.js +5 -0
- package/dist/src/runtime/emit/join.js.map +1 -1
- package/dist/src/runtime/emit/materialized-view-helpers.d.ts +14 -1
- package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -1
- package/dist/src/runtime/emit/materialized-view-helpers.js +38 -7
- package/dist/src/runtime/emit/materialized-view-helpers.js.map +1 -1
- package/dist/src/runtime/emit/materialized-view.d.ts.map +1 -1
- package/dist/src/runtime/emit/materialized-view.js +47 -6
- package/dist/src/runtime/emit/materialized-view.js.map +1 -1
- package/dist/src/runtime/emit/merge-join.d.ts.map +1 -1
- package/dist/src/runtime/emit/merge-join.js +18 -8
- package/dist/src/runtime/emit/merge-join.js.map +1 -1
- package/dist/src/runtime/emit/recursive-cte.d.ts.map +1 -1
- package/dist/src/runtime/emit/recursive-cte.js +59 -1
- package/dist/src/runtime/emit/recursive-cte.js.map +1 -1
- package/dist/src/runtime/emit/set-object-tags.d.ts +8 -0
- package/dist/src/runtime/emit/set-object-tags.d.ts.map +1 -1
- package/dist/src/runtime/emit/set-object-tags.js +8 -0
- package/dist/src/runtime/emit/set-object-tags.js.map +1 -1
- package/dist/src/runtime/emit/set-operation.d.ts.map +1 -1
- package/dist/src/runtime/emit/set-operation.js +7 -4
- package/dist/src/runtime/emit/set-operation.js.map +1 -1
- package/dist/src/runtime/emit/sort.d.ts.map +1 -1
- package/dist/src/runtime/emit/sort.js +5 -2
- package/dist/src/runtime/emit/sort.js.map +1 -1
- package/dist/src/runtime/emit/subquery.d.ts.map +1 -1
- package/dist/src/runtime/emit/subquery.js +113 -13
- package/dist/src/runtime/emit/subquery.js.map +1 -1
- package/dist/src/runtime/emit/temporal-arithmetic.d.ts +7 -0
- package/dist/src/runtime/emit/temporal-arithmetic.d.ts.map +1 -1
- package/dist/src/runtime/emit/temporal-arithmetic.js +15 -7
- package/dist/src/runtime/emit/temporal-arithmetic.js.map +1 -1
- package/dist/src/runtime/emit/update.d.ts.map +1 -1
- package/dist/src/runtime/emit/update.js +44 -3
- package/dist/src/runtime/emit/update.js.map +1 -1
- package/dist/src/runtime/emit/window.d.ts.map +1 -1
- package/dist/src/runtime/emit/window.js +72 -55
- package/dist/src/runtime/emit/window.js.map +1 -1
- package/dist/src/runtime/foreign-key-actions.d.ts +36 -1
- package/dist/src/runtime/foreign-key-actions.d.ts.map +1 -1
- package/dist/src/runtime/foreign-key-actions.js +238 -116
- package/dist/src/runtime/foreign-key-actions.js.map +1 -1
- package/dist/src/runtime/parallel-driver.d.ts +20 -1
- package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
- package/dist/src/runtime/parallel-driver.js +23 -1
- package/dist/src/runtime/parallel-driver.js.map +1 -1
- package/dist/src/runtime/types.d.ts +54 -0
- package/dist/src/runtime/types.d.ts.map +1 -1
- package/dist/src/runtime/types.js.map +1 -1
- package/dist/src/schema/catalog-persistability.d.ts +58 -0
- package/dist/src/schema/catalog-persistability.d.ts.map +1 -0
- package/dist/src/schema/catalog-persistability.js +87 -0
- package/dist/src/schema/catalog-persistability.js.map +1 -0
- package/dist/src/schema/catalog.d.ts +17 -1
- package/dist/src/schema/catalog.d.ts.map +1 -1
- package/dist/src/schema/catalog.js +25 -3
- package/dist/src/schema/catalog.js.map +1 -1
- package/dist/src/schema/constraint-builder.d.ts +20 -22
- package/dist/src/schema/constraint-builder.d.ts.map +1 -1
- package/dist/src/schema/constraint-builder.js +43 -36
- package/dist/src/schema/constraint-builder.js.map +1 -1
- package/dist/src/schema/ddl-generator.d.ts +23 -0
- package/dist/src/schema/ddl-generator.d.ts.map +1 -1
- package/dist/src/schema/ddl-generator.js +27 -0
- package/dist/src/schema/ddl-generator.js.map +1 -1
- package/dist/src/schema/function.d.ts +109 -1
- package/dist/src/schema/function.d.ts.map +1 -1
- package/dist/src/schema/function.js.map +1 -1
- package/dist/src/schema/manager.d.ts +28 -0
- package/dist/src/schema/manager.d.ts.map +1 -1
- package/dist/src/schema/manager.js +82 -14
- package/dist/src/schema/manager.js.map +1 -1
- package/dist/src/schema/schema-differ.d.ts.map +1 -1
- package/dist/src/schema/schema-differ.js +51 -12
- package/dist/src/schema/schema-differ.js.map +1 -1
- package/dist/src/schema/unique-enforcement.d.ts +31 -0
- package/dist/src/schema/unique-enforcement.d.ts.map +1 -1
- package/dist/src/schema/unique-enforcement.js +37 -1
- package/dist/src/schema/unique-enforcement.js.map +1 -1
- package/dist/src/schema/window-function.d.ts +30 -10
- package/dist/src/schema/window-function.d.ts.map +1 -1
- package/dist/src/schema/window-function.js +20 -16
- package/dist/src/schema/window-function.js.map +1 -1
- package/dist/src/types/cast-semantics.d.ts +43 -0
- package/dist/src/types/cast-semantics.d.ts.map +1 -0
- package/dist/src/types/cast-semantics.js +59 -0
- package/dist/src/types/cast-semantics.js.map +1 -0
- package/dist/src/types/index.d.ts +1 -1
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/index.js +1 -1
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/json-type.d.ts.map +1 -1
- package/dist/src/types/json-type.js +31 -10
- package/dist/src/types/json-type.js.map +1 -1
- package/dist/src/types/logical-type.d.ts +22 -0
- package/dist/src/types/logical-type.d.ts.map +1 -1
- package/dist/src/types/logical-type.js.map +1 -1
- package/dist/src/types/temporal-types.d.ts.map +1 -1
- package/dist/src/types/temporal-types.js +33 -11
- package/dist/src/types/temporal-types.js.map +1 -1
- package/dist/src/types/validation.d.ts +39 -1
- package/dist/src/types/validation.d.ts.map +1 -1
- package/dist/src/types/validation.js +60 -0
- package/dist/src/types/validation.js.map +1 -1
- package/dist/src/util/ast-spine-clone.d.ts +23 -0
- package/dist/src/util/ast-spine-clone.d.ts.map +1 -0
- package/dist/src/util/ast-spine-clone.js +41 -0
- package/dist/src/util/ast-spine-clone.js.map +1 -0
- package/dist/src/util/coercion.d.ts +13 -0
- package/dist/src/util/coercion.d.ts.map +1 -1
- package/dist/src/util/coercion.js +10 -1
- package/dist/src/util/coercion.js.map +1 -1
- package/dist/src/util/comparison.d.ts +89 -0
- package/dist/src/util/comparison.d.ts.map +1 -1
- package/dist/src/util/comparison.js +156 -27
- package/dist/src/util/comparison.js.map +1 -1
- package/dist/src/vtab/manifest.d.ts +7 -0
- package/dist/src/vtab/manifest.d.ts.map +1 -1
- package/dist/src/vtab/memory/connection.d.ts +14 -1
- package/dist/src/vtab/memory/connection.d.ts.map +1 -1
- package/dist/src/vtab/memory/connection.js +20 -2
- package/dist/src/vtab/memory/connection.js.map +1 -1
- package/dist/src/vtab/memory/layer/base.d.ts +6 -1
- package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/base.js +14 -5
- package/dist/src/vtab/memory/layer/base.js.map +1 -1
- package/dist/src/vtab/memory/layer/connection.d.ts +17 -0
- package/dist/src/vtab/memory/layer/connection.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/connection.js +26 -0
- package/dist/src/vtab/memory/layer/connection.js.map +1 -1
- package/dist/src/vtab/memory/layer/manager.d.ts +96 -13
- package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.js +595 -119
- package/dist/src/vtab/memory/layer/manager.js.map +1 -1
- package/dist/src/vtab/memory/layer/plan-filter.d.ts +41 -20
- package/dist/src/vtab/memory/layer/plan-filter.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/plan-filter.js +57 -27
- package/dist/src/vtab/memory/layer/plan-filter.js.map +1 -1
- package/dist/src/vtab/memory/layer/row-convert.d.ts +21 -0
- package/dist/src/vtab/memory/layer/row-convert.d.ts.map +1 -0
- package/dist/src/vtab/memory/layer/row-convert.js +30 -0
- package/dist/src/vtab/memory/layer/row-convert.js.map +1 -0
- package/dist/src/vtab/memory/layer/scan-layer.d.ts +6 -3
- package/dist/src/vtab/memory/layer/scan-layer.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/scan-layer.js +69 -36
- package/dist/src/vtab/memory/layer/scan-layer.js.map +1 -1
- package/dist/src/vtab/memory/layer/transaction.d.ts +127 -13
- package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/transaction.js +214 -65
- package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
- package/dist/src/vtab/memory/module.d.ts.map +1 -1
- package/dist/src/vtab/memory/module.js +9 -2
- package/dist/src/vtab/memory/module.js.map +1 -1
- package/dist/src/vtab/memory/table.d.ts.map +1 -1
- package/dist/src/vtab/memory/table.js +3 -2
- package/dist/src/vtab/memory/table.js.map +1 -1
- package/dist/src/vtab/memory/types.d.ts +27 -1
- package/dist/src/vtab/memory/types.d.ts.map +1 -1
- package/dist/src/vtab/memory/types.js +16 -1
- package/dist/src/vtab/memory/types.js.map +1 -1
- package/dist/src/vtab/memory/utils/primary-key.d.ts +9 -0
- package/dist/src/vtab/memory/utils/primary-key.d.ts.map +1 -1
- package/dist/src/vtab/memory/utils/primary-key.js +11 -0
- package/dist/src/vtab/memory/utils/primary-key.js.map +1 -1
- package/dist/src/vtab/module.d.ts +63 -0
- package/dist/src/vtab/module.d.ts.map +1 -1
- package/dist/src/vtab/table.d.ts +24 -6
- package/dist/src/vtab/table.d.ts.map +1 -1
- package/dist/src/vtab/table.js.map +1 -1
- package/package.json +3 -3
- package/dist/src/planner/rules/cache/rule-in-subquery-cache.d.ts +0 -19
- package/dist/src/planner/rules/cache/rule-in-subquery-cache.d.ts.map +0 -1
- package/dist/src/planner/rules/cache/rule-in-subquery-cache.js +0 -53
- package/dist/src/planner/rules/cache/rule-in-subquery-cache.js.map +0 -1
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const
|
|
6
|
-
export declare const
|
|
7
|
-
export declare const
|
|
8
|
-
export declare const
|
|
9
|
-
export declare const
|
|
10
|
-
export declare const
|
|
11
|
-
export declare const
|
|
12
|
-
export declare const
|
|
1
|
+
import type { AggregateFunctionSchema } from '../../schema/function.js';
|
|
2
|
+
export declare const countStarFunc: AggregateFunctionSchema;
|
|
3
|
+
export declare const sumFunc: AggregateFunctionSchema;
|
|
4
|
+
export declare const avgFunc: AggregateFunctionSchema;
|
|
5
|
+
export declare const minFunc: AggregateFunctionSchema;
|
|
6
|
+
export declare const maxFunc: AggregateFunctionSchema;
|
|
7
|
+
export declare const countXFunc: AggregateFunctionSchema;
|
|
8
|
+
export declare const groupConcatFuncRev: AggregateFunctionSchema;
|
|
9
|
+
export declare const totalFunc: AggregateFunctionSchema;
|
|
10
|
+
export declare const varPopFunc: AggregateFunctionSchema;
|
|
11
|
+
export declare const varSampFunc: AggregateFunctionSchema;
|
|
12
|
+
export declare const stdDevPopFunc: AggregateFunctionSchema;
|
|
13
|
+
export declare const stdDevSampFunc: AggregateFunctionSchema;
|
|
13
14
|
//# sourceMappingURL=aggregate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../../src/func/builtins/aggregate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../../src/func/builtins/aggregate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAwC,uBAAuB,EAAoB,MAAM,0BAA0B,CAAC;AAuBhI,eAAO,MAAM,aAAa,yBAczB,CAAC;AASF,eAAO,MAAM,OAAO,yBA+DnB,CAAC;AAIF,eAAO,MAAM,OAAO,yBA4CnB,CAAC;AAwEF,eAAO,MAAM,OAAO,yBAAgC,CAAC;AACrD,eAAO,MAAM,OAAO,yBAAgC,CAAC;AAIrD,eAAO,MAAM,UAAU,yBAiBtB,CAAC;AAOF,eAAO,MAAM,kBAAkB,yBAmB9B,CAAC;AAOF,eAAO,MAAM,SAAS,yBAmBrB,CAAC;AA+BF,eAAO,MAAM,UAAU,yBAStB,CAAC;AAGF,eAAO,MAAM,WAAW,yBASvB,CAAC;AAGF,eAAO,MAAM,aAAa,yBASzB,CAAC;AAGF,eAAO,MAAM,cAAc,yBAQ1B,CAAC"}
|
|
@@ -1,13 +1,65 @@
|
|
|
1
1
|
import { createLogger } from '../../common/logger.js';
|
|
2
2
|
import { createAggregateFunction } from '../registration.js';
|
|
3
|
-
import { compareSqlValuesFast, BINARY_COLLATION } from '../../util/comparison.js';
|
|
3
|
+
import { compareSqlValuesFast, createSemanticValueComparator, BINARY_COLLATION } from '../../util/comparison.js';
|
|
4
4
|
import { INTEGER_TYPE, REAL_TYPE, TEXT_TYPE } from '../../types/builtin-types.js';
|
|
5
5
|
const log = createLogger('func:builtins:aggregate');
|
|
6
6
|
const warnLog = log.extend('warn');
|
|
7
|
+
/** Add two accumulated numeric values, promoting to BigInt when either side is
|
|
8
|
+
* BigInt or the numeric sum would leave the safe-integer range — the same
|
|
9
|
+
* promotion the SUM step applies per value. */
|
|
10
|
+
function addWithPromotion(a, b) {
|
|
11
|
+
if (typeof a === 'bigint' || typeof b === 'bigint') {
|
|
12
|
+
return BigInt(a) + BigInt(b);
|
|
13
|
+
}
|
|
14
|
+
const sum = a + b;
|
|
15
|
+
if (sum > Number.MAX_SAFE_INTEGER || sum < Number.MIN_SAFE_INTEGER) {
|
|
16
|
+
return BigInt(a) + BigInt(b);
|
|
17
|
+
}
|
|
18
|
+
return sum;
|
|
19
|
+
}
|
|
7
20
|
// --- count(*) ---
|
|
8
|
-
export const countStarFunc = createAggregateFunction({
|
|
9
|
-
|
|
10
|
-
|
|
21
|
+
export const countStarFunc = createAggregateFunction({
|
|
22
|
+
name: 'count', numArgs: 0, initialValue: 0,
|
|
23
|
+
returnType: { typeClass: 'scalar', logicalType: INTEGER_TYPE, nullable: false, isReadOnly: true },
|
|
24
|
+
algebra: {
|
|
25
|
+
merge: (a, b) => a + b,
|
|
26
|
+
negate: (a) => -a,
|
|
27
|
+
// finalize is identity — the stored count IS the accumulator
|
|
28
|
+
decode: (stored) => Number(stored),
|
|
29
|
+
decodeExact: true,
|
|
30
|
+
},
|
|
31
|
+
}, (acc) => acc + 1, (acc) => acc);
|
|
32
|
+
export const sumFunc = createAggregateFunction({
|
|
33
|
+
name: 'sum', numArgs: 1, initialValue: null,
|
|
34
|
+
returnType: { typeClass: 'scalar', logicalType: REAL_TYPE, nullable: true, isReadOnly: true },
|
|
35
|
+
// NOTE: declared unconditionally; exactness under retraction is a value-domain
|
|
36
|
+
// property (floats drift) the function cannot see, so the write-side delta arm
|
|
37
|
+
// gates on the argument's static type before exploiting negate.
|
|
38
|
+
algebra: {
|
|
39
|
+
merge: (a, b) => {
|
|
40
|
+
if (a === null)
|
|
41
|
+
return b;
|
|
42
|
+
if (b === null)
|
|
43
|
+
return a;
|
|
44
|
+
return { sum: addWithPromotion(a.sum, b.sum), count: a.count + b.count };
|
|
45
|
+
},
|
|
46
|
+
negate: (a) => a === null ? null : { sum: -a.sum, count: -a.count },
|
|
47
|
+
// Stored NULL (empty group) decodes to the empty accumulator, never a
|
|
48
|
+
// wrapped NULL. A stored value decodes with an ABSORBING count witness
|
|
49
|
+
// (Infinity): the stored sum cannot recover the true non-NULL contribution
|
|
50
|
+
// count, so the witness must (a) be non-zero (the group is non-empty) and
|
|
51
|
+
// (b) STAY non-zero under any finite retraction — a finite witness (e.g. 1)
|
|
52
|
+
// would collapse to 0 on the first retraction and finalize a spurious NULL
|
|
53
|
+
// while contributions remain. This is deliberately NOT `decodeExact`: the
|
|
54
|
+
// delta arm may retract through this decode only when it can prove the true
|
|
55
|
+
// count stays positive (NOT NULL argument + multiplicity witness), and
|
|
56
|
+
// otherwise re-derives the group from live source state.
|
|
57
|
+
// NOTE: type-trusts its input — a non-numeric stored value poisons the
|
|
58
|
+
// accumulator. Sound while the only caller is the delta arm reading back a
|
|
59
|
+
// value this same aggregate wrote.
|
|
60
|
+
decode: (stored) => stored === null ? null : { sum: stored, count: Number.POSITIVE_INFINITY },
|
|
61
|
+
},
|
|
62
|
+
}, (acc, value) => {
|
|
11
63
|
if (value === null)
|
|
12
64
|
return acc; // Ignore NULLs
|
|
13
65
|
const currentSum = acc?.sum ?? 0; // Initialize sum to 0 if null
|
|
@@ -31,28 +83,42 @@ export const sumFunc = createAggregateFunction({ name: 'sum', numArgs: 1, initia
|
|
|
31
83
|
else {
|
|
32
84
|
return acc; // Ignore non-numeric types like Uint8Array
|
|
33
85
|
}
|
|
34
|
-
|
|
35
|
-
if (typeof currentSum === 'bigint' || typeof numValue === 'bigint') {
|
|
36
|
-
return { sum: BigInt(currentSum) + BigInt(numValue) };
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
// Check potential overflow before adding as numbers
|
|
40
|
-
const potentialSum = currentSum + numValue;
|
|
41
|
-
if (potentialSum > Number.MAX_SAFE_INTEGER || potentialSum < Number.MIN_SAFE_INTEGER) {
|
|
42
|
-
return { sum: BigInt(currentSum) + BigInt(numValue) };
|
|
43
|
-
}
|
|
44
|
-
return { sum: potentialSum };
|
|
45
|
-
}
|
|
86
|
+
return { sum: addWithPromotion(currentSum, numValue), count: (acc?.count ?? 0) + 1 };
|
|
46
87
|
}
|
|
47
88
|
catch (e) {
|
|
48
89
|
warnLog("Error during SUM step coercion: %O", e);
|
|
49
90
|
return acc; // Ignore value if coercion fails
|
|
50
91
|
}
|
|
51
92
|
}, (acc) => {
|
|
52
|
-
// SQLite returns NULL for SUM of empty set, INTEGER or REAL result
|
|
53
|
-
|
|
93
|
+
// SQLite returns NULL for SUM of empty set, INTEGER or REAL result.
|
|
94
|
+
// count === 0 (all contributions retracted) is observationally the empty group.
|
|
95
|
+
if (acc === null || acc.count === 0)
|
|
96
|
+
return null;
|
|
97
|
+
return acc.sum;
|
|
54
98
|
});
|
|
55
|
-
export const avgFunc = createAggregateFunction({
|
|
99
|
+
export const avgFunc = createAggregateFunction({
|
|
100
|
+
name: 'avg', numArgs: 1, initialValue: { sum: 0, count: 0 },
|
|
101
|
+
returnType: { typeClass: 'scalar', logicalType: REAL_TYPE, nullable: true, isReadOnly: true },
|
|
102
|
+
// No decode — the stored quotient forgets the count and cannot reconstruct
|
|
103
|
+
// an accumulator. Maintained/rolled up via its decomposition instead.
|
|
104
|
+
algebra: {
|
|
105
|
+
merge: (a, b) => ({ sum: a.sum + b.sum, count: a.count + b.count }),
|
|
106
|
+
negate: (a) => ({ sum: -a.sum, count: -a.count }),
|
|
107
|
+
decompose: {
|
|
108
|
+
partials: [
|
|
109
|
+
{ func: 'sum', arg: 'same-arg' },
|
|
110
|
+
{ func: 'count', arg: 'same-arg' },
|
|
111
|
+
],
|
|
112
|
+
// Real division, matching native avg; empty group (count 0 / NULL) ⇒ NULL.
|
|
113
|
+
combine: (partialValues) => {
|
|
114
|
+
const [sumV, countV] = partialValues;
|
|
115
|
+
if (countV === null || countV === undefined || Number(countV) === 0)
|
|
116
|
+
return null;
|
|
117
|
+
return Number(sumV) / Number(countV);
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
}, (acc, value) => {
|
|
56
122
|
if (value === null)
|
|
57
123
|
return acc; // Ignore NULLs
|
|
58
124
|
let numValue = value;
|
|
@@ -75,51 +141,65 @@ export const avgFunc = createAggregateFunction({ name: 'avg', numArgs: 1, initia
|
|
|
75
141
|
return null; // NULL for empty set
|
|
76
142
|
return acc.sum / acc.count;
|
|
77
143
|
});
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
99
|
-
//
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
},
|
|
118
|
-
|
|
119
|
-
|
|
144
|
+
function extremumParts(direction, compare) {
|
|
145
|
+
const wins = direction === 'min'
|
|
146
|
+
? (candidate, incumbent) => compare(candidate, incumbent) < 0
|
|
147
|
+
: (candidate, incumbent) => compare(candidate, incumbent) > 0;
|
|
148
|
+
return {
|
|
149
|
+
stepFunction: (acc, value) => {
|
|
150
|
+
if (value === null)
|
|
151
|
+
return acc; // Ignore NULLs
|
|
152
|
+
if (acc === null)
|
|
153
|
+
return { v: value }; // First non-null value
|
|
154
|
+
return wins(value, acc.v) ? { v: value } : acc;
|
|
155
|
+
},
|
|
156
|
+
// Tighten-only: merge but no negate (a retracted extremum cannot be undone locally).
|
|
157
|
+
algebra: {
|
|
158
|
+
merge: (a, b) => {
|
|
159
|
+
if (a === null)
|
|
160
|
+
return b;
|
|
161
|
+
if (b === null)
|
|
162
|
+
return a;
|
|
163
|
+
return wins(b.v, a.v) ? b : a;
|
|
164
|
+
},
|
|
165
|
+
// Stored NULL (empty group) decodes to the empty accumulator.
|
|
166
|
+
decode: (stored) => stored === null ? null : { v: stored },
|
|
167
|
+
},
|
|
168
|
+
finalizeFunction: (acc) => acc?.v ?? null,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
function createExtremumFunction(direction) {
|
|
172
|
+
const defaults = extremumParts(direction, (a, b) => compareSqlValuesFast(a, b, BINARY_COLLATION));
|
|
173
|
+
return createAggregateFunction({
|
|
174
|
+
name: direction,
|
|
175
|
+
numArgs: 1,
|
|
176
|
+
initialValue: null,
|
|
177
|
+
// Type inference: return the same type as the input argument
|
|
178
|
+
inferReturnType: (argTypes) => ({
|
|
179
|
+
typeClass: 'scalar',
|
|
180
|
+
logicalType: argTypes[0],
|
|
181
|
+
nullable: true, // NULL if all values are NULL or no rows
|
|
182
|
+
isReadOnly: true
|
|
183
|
+
}),
|
|
184
|
+
algebra: defaults.algebra,
|
|
185
|
+
bindArgs: (args) => extremumParts(direction, createSemanticValueComparator(args[0]?.logicalType, args[0]?.collation)),
|
|
186
|
+
}, defaults.stepFunction, defaults.finalizeFunction);
|
|
187
|
+
}
|
|
188
|
+
export const minFunc = createExtremumFunction('min');
|
|
189
|
+
export const maxFunc = createExtremumFunction('max');
|
|
120
190
|
// --- COUNT(X) ---
|
|
121
191
|
// Counts non-NULL values of X
|
|
122
|
-
export const countXFunc = createAggregateFunction({
|
|
192
|
+
export const countXFunc = createAggregateFunction({
|
|
193
|
+
name: 'count', numArgs: 1, initialValue: 0,
|
|
194
|
+
returnType: { typeClass: 'scalar', logicalType: INTEGER_TYPE, nullable: false, isReadOnly: true },
|
|
195
|
+
algebra: {
|
|
196
|
+
merge: (a, b) => a + b,
|
|
197
|
+
negate: (a) => -a,
|
|
198
|
+
// finalize is identity — the stored count IS the accumulator
|
|
199
|
+
decode: (stored) => Number(stored),
|
|
200
|
+
decodeExact: true,
|
|
201
|
+
},
|
|
202
|
+
}, (acc, value) => {
|
|
123
203
|
if (value === null)
|
|
124
204
|
return acc; // Do not count NULLs
|
|
125
205
|
return acc + 1;
|
|
@@ -139,6 +219,10 @@ export const groupConcatFuncRev = createAggregateFunction({ name: 'group_concat'
|
|
|
139
219
|
return acc.values.join(acc.separator);
|
|
140
220
|
});
|
|
141
221
|
// --- TOTAL(X) ---
|
|
222
|
+
// NOTE: deliberately declares no algebra — a float running sum drifts under
|
|
223
|
+
// retraction and would diverge byte-exactly from a fresh live re-sum, which the
|
|
224
|
+
// maintenance-equivalence oracle compares byte-exactly. Residual-only is correct,
|
|
225
|
+
// just not incremental. Same for group_concat / var_* / stddev_* below.
|
|
142
226
|
export const totalFunc = createAggregateFunction({ name: 'total', numArgs: 1, initialValue: 0.0, returnType: { typeClass: 'scalar', logicalType: REAL_TYPE, nullable: false, isReadOnly: true } }, (acc, value) => {
|
|
143
227
|
let numValue = 0.0;
|
|
144
228
|
if (value !== null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../../src/func/builtins/aggregate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../../src/func/builtins/aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjH,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAElF,MAAM,GAAG,GAAG,YAAY,CAAC,yBAAyB,CAAC,CAAC;AACpD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAEnC;;gDAEgD;AAChD,SAAS,gBAAgB,CAAC,CAAkB,EAAE,CAAkB;IAC/D,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACpD,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAClB,IAAI,GAAG,GAAG,MAAM,CAAC,gBAAgB,IAAI,GAAG,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;QACpE,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,mBAAmB;AACnB,MAAM,CAAC,MAAM,aAAa,GAAG,uBAAuB,CACnD;IACC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1C,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE;IACjG,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,CAAC,GAAG,CAAC;QAC9C,MAAM,EAAE,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC;QACjC,6DAA6D;QAC7D,MAAM,EAAE,CAAC,MAAgB,EAAU,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACpD,WAAW,EAAE,IAAI;KACjB;CACD,EACD,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,GAAG,CAAC,EAChC,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAC5B,CAAC;AASF,MAAM,CAAC,MAAM,OAAO,GAAG,uBAAuB,CAC7C;IACC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI;IAC3C,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;IAC7F,+EAA+E;IAC/E,+EAA+E;IAC/E,gEAAgE;IAChE,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAiB,EAAE,CAAiB,EAAkB,EAAE;YAC/D,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,CAAC,CAAC;YACzB,OAAO,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1E,CAAC;QACD,MAAM,EAAE,CAAC,CAAiB,EAAkB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE;QACnG,sEAAsE;QACtE,uEAAuE;QACvE,2EAA2E;QAC3E,0EAA0E;QAC1E,4EAA4E;QAC5E,2EAA2E;QAC3E,0EAA0E;QAC1E,4EAA4E;QAC5E,uEAAuE;QACvE,yDAAyD;QACzD,uEAAuE;QACvE,2EAA2E;QAC3E,mCAAmC;QACnC,MAAM,EAAE,CAAC,MAAgB,EAAkB,EAAE,CAC5C,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAyB,EAAE,KAAK,EAAE,MAAM,CAAC,iBAAiB,EAAE;KAC7F;CACD,EACD,CAAC,GAAmB,EAAE,KAAe,EAAkB,EAAE;IACxD,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC,CAAC,eAAe;IAC/C,MAAM,UAAU,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,8BAA8B;IAChE,IAAI,QAAyB,CAAC;IAE9B,IAAI,CAAC;QACJ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,QAAQ,GAAG,KAAK,CAAC;QAClB,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACtC,QAAQ,GAAG,KAAK,CAAC;QAClB,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,KAAK,CAAC,MAAM,CAAC;gBAAE,OAAO,GAAG,CAAC;YAC9B,QAAQ,GAAG,MAAM,CAAC;QACnB,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YACvC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACP,OAAO,GAAG,CAAC,CAAC,2CAA2C;QACxD,CAAC;QAED,OAAO,EAAE,GAAG,EAAE,gBAAgB,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IACtF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,OAAO,CAAC,oCAAoC,EAAE,CAAC,CAAC,CAAC;QACjD,OAAO,GAAG,CAAC,CAAC,iCAAiC;IAC9C,CAAC;AACF,CAAC,EACD,CAAC,GAAmB,EAA0B,EAAE;IAC/C,oEAAoE;IACpE,gFAAgF;IAChF,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,OAAO,GAAG,CAAC,GAAG,CAAC;AAChB,CAAC,CACD,CAAC;AAIF,MAAM,CAAC,MAAM,OAAO,GAAG,uBAAuB,CAC7C;IACC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;IAC3D,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;IAC7F,2EAA2E;IAC3E,sEAAsE;IACtE,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAiB,EAAE,CAAiB,EAAkB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;QACnH,MAAM,EAAE,CAAC,CAAiB,EAAkB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACjF,SAAS,EAAE;YACV,QAAQ,EAAE;gBACT,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE;gBAChC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE;aAClC;YACD,2EAA2E;YAC3E,OAAO,EAAE,CAAC,aAAkC,EAAY,EAAE;gBACzD,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,aAAa,CAAC;gBACrC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACjF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;SACD;KACD;CACD,EACD,CAAC,GAAmB,EAAE,KAAe,EAAkB,EAAE;IACxD,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC,CAAC,eAAe;IAC/C,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,CAAC;QACJ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,KAAK,CAAC,QAAkB,CAAC;gBAAE,OAAO,GAAG,CAAC,CAAC,qBAAqB;QACjE,CAAC;QAED,8EAA8E;QAC9E,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;IAC9C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,OAAO,CAAC,oCAAoC,EAAE,CAAC,CAAC,CAAC;QACjD,OAAO,GAAG,CAAC;IACZ,CAAC;AACF,CAAC,EACD,CAAC,GAAmB,EAAiB,EAAE;IACtC,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,qBAAqB;IACvD,OAAO,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC;AAC5B,CAAC,CACD,CAAC;AAsBF,SAAS,aAAa,CACrB,SAAwB,EACxB,OAA6C;IAE7C,MAAM,IAAI,GAAG,SAAS,KAAK,KAAK;QAC/B,CAAC,CAAC,CAAC,SAAmB,EAAE,SAAmB,EAAW,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC;QAC1F,CAAC,CAAC,CAAC,SAAmB,EAAE,SAAmB,EAAW,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;IAC5F,OAAO;QACN,YAAY,EAAE,CAAC,GAAwB,EAAE,KAAe,EAAuB,EAAE;YAChF,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,GAAG,CAAC,CAAC,eAAe;YAC/C,IAAI,GAAG,KAAK,IAAI;gBAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,uBAAuB;YAC9D,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAChD,CAAC;QACD,qFAAqF;QACrF,OAAO,EAAE;YACR,KAAK,EAAE,CAAC,CAAsB,EAAE,CAAsB,EAAuB,EAAE;gBAC9E,IAAI,CAAC,KAAK,IAAI;oBAAE,OAAO,CAAC,CAAC;gBACzB,IAAI,CAAC,KAAK,IAAI;oBAAE,OAAO,CAAC,CAAC;gBACzB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,CAAC;YACD,8DAA8D;YAC9D,MAAM,EAAE,CAAC,MAAgB,EAAuB,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE;SACzF;QACD,gBAAgB,EAAE,CAAC,GAAwB,EAAY,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI;KACxE,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,SAAwB;IACvD,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAClG,OAAO,uBAAuB,CAC7B;QACC,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,CAAC;QACV,YAAY,EAAE,IAAI;QAClB,6DAA6D;QAC7D,eAAe,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC/B,SAAS,EAAE,QAAQ;YACnB,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;YACxB,QAAQ,EAAE,IAAI,EAAE,yCAAyC;YACzD,UAAU,EAAE,IAAI;SAChB,CAAC;QACF,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAClB,aAAa,CAAC,SAAS,EAAE,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;KAClG,EACD,QAAQ,CAAC,YAAY,EACrB,QAAQ,CAAC,gBAAgB,CACzB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;AAErD,mBAAmB;AACnB,8BAA8B;AAC9B,MAAM,CAAC,MAAM,UAAU,GAAG,uBAAuB,CAChD;IACC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1C,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE;IACjG,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,CAAC,GAAG,CAAC;QAC9C,MAAM,EAAE,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC;QACjC,6DAA6D;QAC7D,MAAM,EAAE,CAAC,MAAgB,EAAU,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACpD,WAAW,EAAE,IAAI;KACjB;CACD,EACD,CAAC,GAAW,EAAE,KAAe,EAAU,EAAE;IACxC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC,CAAC,qBAAqB;IACrD,OAAO,GAAG,GAAG,CAAC,CAAC;AAChB,CAAC,EACD,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAC5B,CAAC;AAOF,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAuB,CACxD,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAC1L,CAAC,GAA2B,EAAE,KAAe,EAAE,YAAsB,GAAG,EAA0B,EAAE;IACnG,MAAM,gBAAgB,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7G,GAAG,CAAC,SAAS,GAAG,gBAAgB,CAAC;IAEjC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/B,OAAO,GAAG,CAAC;AACZ,CAAC,EACD,CAAC,GAA2B,EAAiB,EAAE;IAC9C,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC,CACD,CAAC;AAEF,mBAAmB;AACnB,4EAA4E;AAC5E,gFAAgF;AAChF,kFAAkF;AAClF,wEAAwE;AACxE,MAAM,CAAC,MAAM,SAAS,GAAG,uBAAuB,CAC/C,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAChJ,CAAC,GAAW,EAAE,KAAe,EAAU,EAAE;IACxC,IAAI,QAAQ,GAAG,GAAG,CAAC;IACnB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC;YACJ,6DAA6D;YAC7D,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrB,QAAQ,GAAG,GAAG,CAAC;YAChB,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,QAAQ,GAAG,GAAG,CAAC;QAChB,CAAC;IACF,CAAC;IACD,uCAAuC;IACvC,OAAO,GAAG,GAAG,QAAQ,CAAC;AACvB,CAAC,EACD,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,gDAAgD;CAC7E,CAAC;AASF,MAAM,WAAW,GAAG,CAAC,GAAoB,EAAE,KAAe,EAAmB,EAAE;IAC9E,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC,CAAC,eAAe;IAC5B,CAAC;IACD,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrB,OAAO,GAAG,CAAC,CAAC,qBAAqB;QAClC,CAAC;QACD,sCAAsC;QACtC,OAAO;YACN,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC;YACpB,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,QAAQ;YACvB,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;SACxC,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,OAAO,CAAC,sDAAsD,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,GAAG,CAAC;IACZ,CAAC;AACF,CAAC,CAAC;AAEF,gCAAgC;AAChC,MAAM,CAAC,MAAM,UAAU,GAAG,uBAAuB,CAChD,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAC5K,WAAW,EACX,CAAC,GAAoB,EAAiB,EAAE;IACvC,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,qBAAqB;IACvD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC;IAChC,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IACvD,OAAO,QAAQ,CAAC;AACjB,CAAC,CACD,CAAC;AAEF,6BAA6B;AAC7B,MAAM,CAAC,MAAM,WAAW,GAAG,uBAAuB,CACjD,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAC7K,WAAW,EACX,CAAC,GAAoB,EAAiB,EAAE;IACvC,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,0BAA0B;IAC3D,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACjF,OAAO,QAAQ,CAAC;AACjB,CAAC,CACD,CAAC;AAEF,6CAA6C;AAC7C,MAAM,CAAC,MAAM,aAAa,GAAG,uBAAuB,CACnD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAC/K,WAAW,EACX,CAAC,GAAoB,EAAiB,EAAE;IACvC,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC;IAChC,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IACvD,OAAO,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClD,CAAC,CACD,CAAC;AAEF,0CAA0C;AAC1C,MAAM,CAAC,MAAM,cAAc,GAAG,uBAAuB,CACpD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAChL,WAAW,EACX,CAAC,GAAoB,EAAiB,EAAE;IACvC,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACjF,OAAO,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClD,CAAC,CACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtin-window-functions.d.ts","sourceRoot":"","sources":["../../../../src/func/builtins/builtin-window-functions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"builtin-window-functions.d.ts","sourceRoot":"","sources":["../../../../src/func/builtins/builtin-window-functions.ts"],"names":[],"mappings":"AAmFA,wBAAgB,8BAA8B,IAAI,IAAI,CA6NrD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { registerWindowFunction } from '../../schema/window-function.js';
|
|
2
2
|
import { INTEGER_TYPE, REAL_TYPE } from '../../types/builtin-types.js';
|
|
3
|
+
import { BINARY_COLLATION, compareSqlValuesFast, createSemanticValueComparator } from '../../util/comparison.js';
|
|
3
4
|
/**
|
|
4
5
|
* Shared `inferReturnType` for pass-through window functions (MIN, MAX,
|
|
5
6
|
* FIRST_VALUE, LAST_VALUE, LAG, LEAD): the result follows arg[0]'s logical
|
|
@@ -14,6 +15,59 @@ const passThroughArgType = (argTypes) => ({
|
|
|
14
15
|
nullable: true,
|
|
15
16
|
isReadOnly: true
|
|
16
17
|
});
|
|
18
|
+
/**
|
|
19
|
+
* Window MIN/MAX step+final derived from ONE comparator — the window twin of
|
|
20
|
+
* `extremumParts` in func/builtins/aggregate.ts. A raw JS `<` would disagree with
|
|
21
|
+
* plain sorting for mixed storage classes (`5 < 'abc'` and `'abc' < 5` are both
|
|
22
|
+
* false, so whichever arrived first wins), and would ignore semantic ordering
|
|
23
|
+
* (TIMESPAN elapsed time, JSON structure) and collation entirely.
|
|
24
|
+
*
|
|
25
|
+
* Ties under a non-BINARY comparator ('a' vs 'A' under NOCASE, 'PT1H' vs 'PT60M'
|
|
26
|
+
* for TIMESPAN) compare equal, so which raw value survives is unspecified — the
|
|
27
|
+
* same latitude the MIN/MAX aggregate, DISTINCT, and GROUP BY take.
|
|
28
|
+
*/
|
|
29
|
+
function extremumWindowParts(direction, compare) {
|
|
30
|
+
const wins = direction === 'min'
|
|
31
|
+
? (candidate, incumbent) => compare(candidate, incumbent) < 0
|
|
32
|
+
: (candidate, incumbent) => compare(candidate, incumbent) > 0;
|
|
33
|
+
return {
|
|
34
|
+
step: (state, value) => {
|
|
35
|
+
if (value === null)
|
|
36
|
+
return state ?? null; // Ignore NULLs
|
|
37
|
+
if (state === null || state === undefined)
|
|
38
|
+
return value; // First non-null value
|
|
39
|
+
return wins(value, state) ? value : state;
|
|
40
|
+
},
|
|
41
|
+
final: (state) => state ?? null,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Register window MIN or MAX. The registered default ranks by storage class under
|
|
46
|
+
* BINARY — correct for untyped/ANY arguments and for any caller that never binds —
|
|
47
|
+
* and `bindArgs` re-derives both hooks over the call site's semantic comparator, so
|
|
48
|
+
* `min(x) over (…)` agrees with the `min(x)` aggregate and with `order by x limit 1`.
|
|
49
|
+
*/
|
|
50
|
+
function registerExtremumWindowFunction(direction) {
|
|
51
|
+
const defaults = extremumWindowParts(direction, (a, b) => compareSqlValuesFast(a, b, BINARY_COLLATION));
|
|
52
|
+
registerWindowFunction({
|
|
53
|
+
name: direction.toUpperCase(),
|
|
54
|
+
argCount: 1,
|
|
55
|
+
returnType: {
|
|
56
|
+
typeClass: 'scalar',
|
|
57
|
+
logicalType: REAL_TYPE,
|
|
58
|
+
nullable: true,
|
|
59
|
+
isReadOnly: true
|
|
60
|
+
},
|
|
61
|
+
// MIN/MAX pass the argument value through unchanged, so the result follows
|
|
62
|
+
// the argument's logical type (mirrors the aggregate minFunc/maxFunc).
|
|
63
|
+
inferReturnType: passThroughArgType,
|
|
64
|
+
requiresOrderBy: false,
|
|
65
|
+
kind: 'aggregate',
|
|
66
|
+
step: defaults.step,
|
|
67
|
+
final: defaults.final,
|
|
68
|
+
bindArgs: (args) => extremumWindowParts(direction, createSemanticValueComparator(args[0]?.logicalType, args[0]?.collation)),
|
|
69
|
+
});
|
|
70
|
+
}
|
|
17
71
|
// Built-in window function schemas
|
|
18
72
|
export function registerBuiltinWindowFunctions() {
|
|
19
73
|
// Ranking functions
|
|
@@ -172,6 +226,13 @@ export function registerBuiltinWindowFunctions() {
|
|
|
172
226
|
},
|
|
173
227
|
final: (state) => state || 0
|
|
174
228
|
});
|
|
229
|
+
// NOTE: SUM/AVG coerce with `Number(value)` and take no type context — the same
|
|
230
|
+
// "no comparison/arithmetic context in the step" shape the MIN/MAX bindArgs hook
|
|
231
|
+
// below removes. Harmless today: over a logical type with no numeric meaning
|
|
232
|
+
// (TIMESPAN, JSON) both these and the plain aggregates yield NULL, so they agree.
|
|
233
|
+
// If a future logical type gains a meaningful `Number()` coercion, or the plain
|
|
234
|
+
// aggregates start summing one, give SUM/AVG a `bindArgs` too — and mirror it in
|
|
235
|
+
// `slidingStepNum`/`slidingScanSum` (runtime/emit/window.ts), which coerce again.
|
|
175
236
|
registerWindowFunction({
|
|
176
237
|
name: 'SUM',
|
|
177
238
|
argCount: 1,
|
|
@@ -216,53 +277,7 @@ export function registerBuiltinWindowFunctions() {
|
|
|
216
277
|
},
|
|
217
278
|
final: (state) => state ? state.sum / state.count : null
|
|
218
279
|
});
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
argCount: 1,
|
|
222
|
-
returnType: {
|
|
223
|
-
typeClass: 'scalar',
|
|
224
|
-
logicalType: REAL_TYPE,
|
|
225
|
-
nullable: true,
|
|
226
|
-
isReadOnly: true
|
|
227
|
-
},
|
|
228
|
-
// MIN passes the argument value through unchanged, so the result follows
|
|
229
|
-
// the argument's logical type (mirrors the aggregate minFunc).
|
|
230
|
-
inferReturnType: passThroughArgType,
|
|
231
|
-
requiresOrderBy: false,
|
|
232
|
-
kind: 'aggregate',
|
|
233
|
-
step: (state, value) => {
|
|
234
|
-
if (value === null)
|
|
235
|
-
return state;
|
|
236
|
-
if (state === null || state === undefined) {
|
|
237
|
-
return value;
|
|
238
|
-
}
|
|
239
|
-
return value < state ? value : state;
|
|
240
|
-
},
|
|
241
|
-
final: (state) => state
|
|
242
|
-
});
|
|
243
|
-
registerWindowFunction({
|
|
244
|
-
name: 'MAX',
|
|
245
|
-
argCount: 1,
|
|
246
|
-
returnType: {
|
|
247
|
-
typeClass: 'scalar',
|
|
248
|
-
logicalType: REAL_TYPE,
|
|
249
|
-
nullable: true,
|
|
250
|
-
isReadOnly: true
|
|
251
|
-
},
|
|
252
|
-
// MAX passes the argument value through unchanged, so the result follows
|
|
253
|
-
// the argument's logical type (mirrors the aggregate maxFunc).
|
|
254
|
-
inferReturnType: passThroughArgType,
|
|
255
|
-
requiresOrderBy: false,
|
|
256
|
-
kind: 'aggregate',
|
|
257
|
-
step: (state, value) => {
|
|
258
|
-
if (value === null)
|
|
259
|
-
return state;
|
|
260
|
-
if (state === null || state === undefined) {
|
|
261
|
-
return value;
|
|
262
|
-
}
|
|
263
|
-
return value > state ? value : state;
|
|
264
|
-
},
|
|
265
|
-
final: (state) => state
|
|
266
|
-
});
|
|
280
|
+
registerExtremumWindowFunction('min');
|
|
281
|
+
registerExtremumWindowFunction('max');
|
|
267
282
|
}
|
|
268
283
|
//# sourceMappingURL=builtin-window-functions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtin-window-functions.js","sourceRoot":"","sources":["../../../../src/func/builtins/builtin-window-functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"builtin-window-functions.js","sourceRoot":"","sources":["../../../../src/func/builtins/builtin-window-functions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AggregateFinalizer, AggregateReducer, IntegratedTableValuedFunc, ScalarFunc, TableValuedFunc, ScalarFunctionSchema, TableValuedFunctionSchema, AggregateFunctionSchema, TVFAdvertisement } from '../schema/function.js';
|
|
1
|
+
import type { AggregateFinalizer, AggregateReducer, IntegratedTableValuedFunc, ScalarFunc, TableValuedFunc, ScalarFunctionSchema, TableValuedFunctionSchema, AggregateFunctionSchema, AggregateAlgebra, AggregateArgBinding, TVFAdvertisement } from '../schema/function.js';
|
|
2
2
|
import { FunctionFlags } from '../common/constants.js';
|
|
3
3
|
import type { ScalarType, RelationType } from '../common/datatype.js';
|
|
4
4
|
import type { LogicalType } from '../types/logical-type.js';
|
|
@@ -74,6 +74,8 @@ interface TableValuedFuncOptions {
|
|
|
74
74
|
relationalAdvertisement?: TVFAdvertisement;
|
|
75
75
|
}
|
|
76
76
|
export type AggValue = any;
|
|
77
|
+
/** Clone an aggregate initial value so each group gets an independent accumulator. */
|
|
78
|
+
export declare function cloneInitialValue(initialValue: unknown): AggValue;
|
|
77
79
|
/**
|
|
78
80
|
* Configuration options for aggregate functions
|
|
79
81
|
*/
|
|
@@ -91,6 +93,12 @@ interface AggregateFuncOptions {
|
|
|
91
93
|
replicable?: boolean;
|
|
92
94
|
/** Initial accumulator value */
|
|
93
95
|
initialValue?: AggValue;
|
|
96
|
+
/** Optional algebraic structure over the accumulator (merge/negate/decode/decompose).
|
|
97
|
+
* See {@link import('../schema/function.js').AggregateAlgebra} for the author contract. */
|
|
98
|
+
algebra?: AggregateAlgebra;
|
|
99
|
+
/** Optional per-call-site specialization to the arguments' comparison context.
|
|
100
|
+
* See {@link import('../schema/function.js').AggregateFunctionSchema.bindArgs}. */
|
|
101
|
+
bindArgs?: AggregateFunctionSchema['bindArgs'];
|
|
94
102
|
/** Return type information */
|
|
95
103
|
returnType?: ScalarType;
|
|
96
104
|
/**
|
|
@@ -150,5 +158,15 @@ export declare function createIntegratedTableValuedFunction(options: TableValued
|
|
|
150
158
|
* @returns A FunctionSchema ready for registration
|
|
151
159
|
*/
|
|
152
160
|
export declare function createAggregateFunction(options: AggregateFuncOptions, stepFunc: AggregateReducer, finalizeFunc: AggregateFinalizer): AggregateFunctionSchema;
|
|
161
|
+
/**
|
|
162
|
+
* Specialize an aggregate schema to one call site's argument comparison context
|
|
163
|
+
* (declared logical types + resolved collations). A schema with no `bindArgs`
|
|
164
|
+
* hook — or a hook that declines — is returned unchanged. Idempotent: the bound
|
|
165
|
+
* schema keeps `bindArgs`, and rebinding with the same arguments yields an
|
|
166
|
+
* equivalent schema, so no call site has to track whether it already bound.
|
|
167
|
+
*
|
|
168
|
+
* Call once per call site at emit / plan-build time, never per row.
|
|
169
|
+
*/
|
|
170
|
+
export declare function bindAggregateSchema(schema: AggregateFunctionSchema, args: readonly AggregateArgBinding[]): AggregateFunctionSchema;
|
|
153
171
|
export {};
|
|
154
172
|
//# sourceMappingURL=registration.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../../../src/func/registration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,UAAU,EAAE,eAAe,EAAE,oBAAoB,EAC/H,yBAAyB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../../../src/func/registration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,UAAU,EAAE,eAAe,EAAE,oBAAoB,EAC/H,yBAAyB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC5I,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;GAEG;AACH,UAAU,iBAAiB;IAC1B,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;6HACyH;IACzH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,KAAK,UAAU,CAAC;IACrF;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,KAAK,OAAO,CAAC;IACnF,uGAAuG;IACvG,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,4EAA4E;IAC5E,cAAc,CAAC,EAAE;QAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,YAAY,CAAA;KAAE,CAAC;IAC9E;;;;OAIG;IACH,iBAAiB,CAAC,EAAE;QAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG;YAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAC/E;;6EAEyE;IACzE,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,UAAU,sBAAsB;IAC/B,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;6HACyH;IACzH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yCAAyC;IACzC,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,4DAA4D;IAC5D,uBAAuB,CAAC,EAAE,gBAAgB,CAAC;CAC3C;AAID,MAAM,MAAM,QAAQ,GAAG,GAAG,CAAC;AAE3B,sFAAsF;AACtF,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,OAAO,GAAG,QAAQ,CAUjE;AAED;;GAEG;AACH,UAAU,oBAAoB;IAC7B,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;6HACyH;IACzH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gCAAgC;IAChC,YAAY,CAAC,EAAE,QAAQ,CAAC;IACxB;gGAC4F;IAC5F,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B;wFACoF;IACpF,QAAQ,CAAC,EAAE,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAC/C,8BAA8B;IAC9B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,KAAK,UAAU,CAAC;IACrF;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,KAAK,OAAO,CAAC;CACnF;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,GAAG,oBAAoB,CAsBzG;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,eAAe,GAAG,yBAAyB,CAmB7H;AAED;;;;;;;GAOG;AACH,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,yBAAyB,GAAG,yBAAyB,CAoBjJ;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACtC,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,gBAAgB,EAC1B,YAAY,EAAE,kBAAkB,GAC9B,uBAAuB,CAsBzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,uBAAuB,EAC/B,IAAI,EAAE,SAAS,mBAAmB,EAAE,GAClC,uBAAuB,CAazB"}
|
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
import { FunctionFlags } from '../common/constants.js';
|
|
2
2
|
import { REAL_TYPE } from '../types/builtin-types.js';
|
|
3
|
+
/** Clone an aggregate initial value so each group gets an independent accumulator. */
|
|
4
|
+
export function cloneInitialValue(initialValue) {
|
|
5
|
+
if (typeof initialValue === 'function') {
|
|
6
|
+
return initialValue();
|
|
7
|
+
}
|
|
8
|
+
else if (Array.isArray(initialValue)) {
|
|
9
|
+
return [...initialValue];
|
|
10
|
+
}
|
|
11
|
+
else if (initialValue && typeof initialValue === 'object') {
|
|
12
|
+
return { ...initialValue };
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
return initialValue;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
3
18
|
/**
|
|
4
19
|
* Creates a function schema for a scalar SQL function.
|
|
5
20
|
* This is the primary way to register scalar functions in Quereus.
|
|
@@ -116,9 +131,35 @@ export function createAggregateFunction(options, stepFunc, finalizeFunc) {
|
|
|
116
131
|
stepFunction: stepFunc,
|
|
117
132
|
finalizeFunction: finalizeFunc,
|
|
118
133
|
initialValue: options.initialValue,
|
|
134
|
+
algebra: options.algebra,
|
|
135
|
+
bindArgs: options.bindArgs,
|
|
119
136
|
replicable: options.replicable,
|
|
120
137
|
inferReturnType: options.inferReturnType,
|
|
121
138
|
validateArgTypes: options.validateArgTypes
|
|
122
139
|
};
|
|
123
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* Specialize an aggregate schema to one call site's argument comparison context
|
|
143
|
+
* (declared logical types + resolved collations). A schema with no `bindArgs`
|
|
144
|
+
* hook — or a hook that declines — is returned unchanged. Idempotent: the bound
|
|
145
|
+
* schema keeps `bindArgs`, and rebinding with the same arguments yields an
|
|
146
|
+
* equivalent schema, so no call site has to track whether it already bound.
|
|
147
|
+
*
|
|
148
|
+
* Call once per call site at emit / plan-build time, never per row.
|
|
149
|
+
*/
|
|
150
|
+
export function bindAggregateSchema(schema, args) {
|
|
151
|
+
const bound = schema.bindArgs?.(args);
|
|
152
|
+
if (!bound)
|
|
153
|
+
return schema;
|
|
154
|
+
// Merge field-by-field rather than spreading `bound`: an explicitly-`undefined`
|
|
155
|
+
// field must read as "keep the declared default", matching the documented
|
|
156
|
+
// contract. A spread would strip it instead — and a stripped `algebra` silently
|
|
157
|
+
// disables delta maintenance and rollup, whose gates read field presence.
|
|
158
|
+
return {
|
|
159
|
+
...schema,
|
|
160
|
+
stepFunction: bound.stepFunction ?? schema.stepFunction,
|
|
161
|
+
finalizeFunction: bound.finalizeFunction ?? schema.finalizeFunction,
|
|
162
|
+
algebra: bound.algebra ?? schema.algebra,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
124
165
|
//# sourceMappingURL=registration.js.map
|