@quereus/quereus 4.4.0 → 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-materialized-views-plan-builders.d.ts +2 -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 +26 -5
- package/dist/src/core/database-materialized-views-plan-builders.js.map +1 -1
- package/dist/src/core/database-materialized-views-plans.d.ts +6 -3
- package/dist/src/core/database-materialized-views-plans.d.ts.map +1 -1
- package/dist/src/core/database-materialized-views.d.ts +3 -2
- package/dist/src/core/database-materialized-views.d.ts.map +1 -1
- package/dist/src/core/database-materialized-views.js +26 -5
- 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 +21 -1
- 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 +45 -67
- 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 +14 -1
- package/dist/src/func/registration.d.ts.map +1 -1
- package/dist/src/func/registration.js +25 -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/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 +6 -0
- package/dist/src/planner/analysis/query-rewrite-matcher.d.ts.map +1 -1
- package/dist/src/planner/analysis/query-rewrite-matcher.js +11 -2
- 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/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/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/framework/pass.js +3 -3
- 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/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 +5 -12
- 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-materialized-view-rewrite.d.ts.map +1 -1
- package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js +23 -4
- package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js.map +1 -1
- package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.d.ts +10 -8
- package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.d.ts.map +1 -1
- package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.js +10 -8
- package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.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.js +4 -0
- package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.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.map +1 -1
- package/dist/src/runtime/emit/aggregate.js +4 -69
- 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/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/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 +182 -81
- 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 +33 -3
- 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/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 +6 -1
- package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
- package/dist/src/runtime/parallel-driver.js +7 -1
- package/dist/src/runtime/parallel-driver.js.map +1 -1
- package/dist/src/runtime/types.d.ts +18 -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 +30 -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 +48 -34
- 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 -26
- 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 -66
- package/dist/src/planner/rules/cache/rule-in-subquery-cache.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"window-function.js","sourceRoot":"","sources":["../../../src/schema/window-function.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"window-function.js","sourceRoot":"","sources":["../../../src/schema/window-function.ts"],"names":[],"mappings":"AA8CA,uCAAuC;AACvC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAgC,CAAC;AAE/D,MAAM,UAAU,sBAAsB,CAAC,MAA4B;IAClE,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAY;IACjD,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC5C,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,qBAAqB;IACpC,OAAO,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAC/B,MAA4B,EAC5B,IAAoC;IAEpC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC;IAC1B,gFAAgF;IAChF,oFAAoF;IACpF,OAAO;QACN,GAAG,MAAM;QACT,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI;QAC/B,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK;KAClC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { SqlValue } from '../common/types.js';
|
|
2
|
+
import type { LogicalType } from './logical-type.js';
|
|
3
|
+
/**
|
|
4
|
+
* What a CAST produces when the target type's `parse` rejects the operand.
|
|
5
|
+
*
|
|
6
|
+
* CAST stays lenient and never throws, but every arm must yield a value that
|
|
7
|
+
* actually inhabits the target type — otherwise the cast advertises a logical
|
|
8
|
+
* type it does not produce and 'junk' ends up stored in a DATE column.
|
|
9
|
+
*
|
|
10
|
+
* The SQLite-compatible arms below (0 / 0.0 / String(v) / UTF-8 bytes) each
|
|
11
|
+
* satisfy their own type's `validate`. Everything else falls to the default,
|
|
12
|
+
* where the type itself is asked. `parse` reads its input as *source text*, so
|
|
13
|
+
* it can reject a value that already IS a valid member of the target type — a
|
|
14
|
+
* bare JS string is a legitimate JSON string scalar even though
|
|
15
|
+
* `JSON_TYPE.parse('hello')` throws on it as invalid JSON syntax. Keeping the
|
|
16
|
+
* operand only when `validate` vouches for it preserves that case (and with it
|
|
17
|
+
* `json_col = 'not json'` evaluating to false rather than erroring), while a
|
|
18
|
+
* value that inhabits no part of the target type yields NULL — the cast has no
|
|
19
|
+
* result.
|
|
20
|
+
*
|
|
21
|
+
* NOTE: `validate` is optional on LogicalType, so a custom registered type that
|
|
22
|
+
* omits it makes every parse failure NULL. Every built-in defines one; if a
|
|
23
|
+
* plugin type ever needs the operand preserved, give it a `validate` rather than
|
|
24
|
+
* loosening this to "no validate ⇒ keep".
|
|
25
|
+
*/
|
|
26
|
+
export declare function castFallback(value: SqlValue, type: LogicalType): SqlValue;
|
|
27
|
+
/**
|
|
28
|
+
* Can `cast(<non-null operand> as type)` produce NULL? Answers the static
|
|
29
|
+
* nullability of a converting CAST ({@link import('../planner/nodes/scalar.js').CastNode}).
|
|
30
|
+
*
|
|
31
|
+
* TEXT and BLOB are total over non-null operands: `parse` converts every storage
|
|
32
|
+
* class it accepts and throws otherwise, and {@link castFallback}'s arms for them
|
|
33
|
+
* (`String(v)` / UTF-8 bytes) always yield a value. Every other target can reach
|
|
34
|
+
* NULL — INTEGER / REAL / NUMERIC `parse` map the empty string to null, and
|
|
35
|
+
* `castFallback`'s default arm nulls any operand the target will not validate.
|
|
36
|
+
*
|
|
37
|
+
* Identity comparison, so a plugin type registered under a TEXT-ish alias is
|
|
38
|
+
* treated as nullable-producing. That is the safe direction: over-reporting
|
|
39
|
+
* nullability only costs a not-null-dependent optimization or a rejected NOT NULL
|
|
40
|
+
* declaration, while under-reporting it would let a NULL reach a NOT NULL column.
|
|
41
|
+
*/
|
|
42
|
+
export declare function castCanYieldNull(type: LogicalType): boolean;
|
|
43
|
+
//# sourceMappingURL=cast-semantics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cast-semantics.d.ts","sourceRoot":"","sources":["../../../src/types/cast-semantics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,GAAG,QAAQ,CAezE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAE3D"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { TEXT_TYPE, BLOB_TYPE } from './builtin-types.js';
|
|
2
|
+
/**
|
|
3
|
+
* What a CAST produces when the target type's `parse` rejects the operand.
|
|
4
|
+
*
|
|
5
|
+
* CAST stays lenient and never throws, but every arm must yield a value that
|
|
6
|
+
* actually inhabits the target type — otherwise the cast advertises a logical
|
|
7
|
+
* type it does not produce and 'junk' ends up stored in a DATE column.
|
|
8
|
+
*
|
|
9
|
+
* The SQLite-compatible arms below (0 / 0.0 / String(v) / UTF-8 bytes) each
|
|
10
|
+
* satisfy their own type's `validate`. Everything else falls to the default,
|
|
11
|
+
* where the type itself is asked. `parse` reads its input as *source text*, so
|
|
12
|
+
* it can reject a value that already IS a valid member of the target type — a
|
|
13
|
+
* bare JS string is a legitimate JSON string scalar even though
|
|
14
|
+
* `JSON_TYPE.parse('hello')` throws on it as invalid JSON syntax. Keeping the
|
|
15
|
+
* operand only when `validate` vouches for it preserves that case (and with it
|
|
16
|
+
* `json_col = 'not json'` evaluating to false rather than erroring), while a
|
|
17
|
+
* value that inhabits no part of the target type yields NULL — the cast has no
|
|
18
|
+
* result.
|
|
19
|
+
*
|
|
20
|
+
* NOTE: `validate` is optional on LogicalType, so a custom registered type that
|
|
21
|
+
* omits it makes every parse failure NULL. Every built-in defines one; if a
|
|
22
|
+
* plugin type ever needs the operand preserved, give it a `validate` rather than
|
|
23
|
+
* loosening this to "no validate ⇒ keep".
|
|
24
|
+
*/
|
|
25
|
+
export function castFallback(value, type) {
|
|
26
|
+
switch (type.name) {
|
|
27
|
+
case 'INTEGER':
|
|
28
|
+
return 0;
|
|
29
|
+
case 'REAL':
|
|
30
|
+
return 0.0;
|
|
31
|
+
case 'NUMERIC':
|
|
32
|
+
return 0;
|
|
33
|
+
case 'TEXT':
|
|
34
|
+
return String(value);
|
|
35
|
+
case 'BLOB':
|
|
36
|
+
return new TextEncoder().encode(String(value));
|
|
37
|
+
default:
|
|
38
|
+
return type.validate?.(value) === true ? value : null;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Can `cast(<non-null operand> as type)` produce NULL? Answers the static
|
|
43
|
+
* nullability of a converting CAST ({@link import('../planner/nodes/scalar.js').CastNode}).
|
|
44
|
+
*
|
|
45
|
+
* TEXT and BLOB are total over non-null operands: `parse` converts every storage
|
|
46
|
+
* class it accepts and throws otherwise, and {@link castFallback}'s arms for them
|
|
47
|
+
* (`String(v)` / UTF-8 bytes) always yield a value. Every other target can reach
|
|
48
|
+
* NULL — INTEGER / REAL / NUMERIC `parse` map the empty string to null, and
|
|
49
|
+
* `castFallback`'s default arm nulls any operand the target will not validate.
|
|
50
|
+
*
|
|
51
|
+
* Identity comparison, so a plugin type registered under a TEXT-ish alias is
|
|
52
|
+
* treated as nullable-producing. That is the safe direction: over-reporting
|
|
53
|
+
* nullability only costs a not-null-dependent optimization or a rejected NOT NULL
|
|
54
|
+
* declaration, while under-reporting it would let a NULL reach a NOT NULL column.
|
|
55
|
+
*/
|
|
56
|
+
export function castCanYieldNull(type) {
|
|
57
|
+
return type !== TEXT_TYPE && type !== BLOB_TYPE;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=cast-semantics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cast-semantics.js","sourceRoot":"","sources":["../../../src/types/cast-semantics.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,YAAY,CAAC,KAAe,EAAE,IAAiB;IAC9D,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,SAAS;YACb,OAAO,CAAC,CAAC;QACV,KAAK,MAAM;YACV,OAAO,GAAG,CAAC;QACZ,KAAK,SAAS;YACb,OAAO,CAAC,CAAC;QACV,KAAK,MAAM;YACV,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACtB,KAAK,MAAM;YACV,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD;YACC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAiB;IACjD,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,CAAC;AACjD,CAAC"}
|
|
@@ -3,5 +3,5 @@ export { NULL_TYPE, INTEGER_TYPE, REAL_TYPE, TEXT_TYPE, BLOB_TYPE, BOOLEAN_TYPE,
|
|
|
3
3
|
export { DATE_TYPE, TIME_TYPE, DATETIME_TYPE, TIMESPAN_TYPE } from './temporal-types.js';
|
|
4
4
|
export { JSON_TYPE } from './json-type.js';
|
|
5
5
|
export { typeRegistry, registerType, getType, getTypeOrDefault, inferType } from './registry.js';
|
|
6
|
-
export { validateValue, parseValue, validateAndParse, isValidForType, tryParse } from './validation.js';
|
|
6
|
+
export { validateValue, parseValue, validateAndParse, coerceRowToSchema, isValidForType, tryParse } from './validation.js';
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGpH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGpI,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGjG,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGpH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGpI,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGjG,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/src/types/index.js
CHANGED
|
@@ -9,5 +9,5 @@ export { JSON_TYPE } from './json-type.js';
|
|
|
9
9
|
// Type registry
|
|
10
10
|
export { typeRegistry, registerType, getType, getTypeOrDefault, inferType } from './registry.js';
|
|
11
11
|
// Validation utilities
|
|
12
|
-
export { validateValue, parseValue, validateAndParse, isValidForType, tryParse } from './validation.js';
|
|
12
|
+
export { validateValue, parseValue, validateAndParse, coerceRowToSchema, isValidForType, tryParse } from './validation.js';
|
|
13
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,OAAO,EAAE,YAAY,EAAoB,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEpH,iBAAiB;AACjB,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEpI,iBAAiB;AACjB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzF,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAEjG,uBAAuB;AACvB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,OAAO,EAAE,YAAY,EAAoB,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEpH,iBAAiB;AACjB,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEpI,iBAAiB;AACjB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzF,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAEjG,uBAAuB;AACvB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-type.d.ts","sourceRoot":"","sources":["../../../src/types/json-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,WAAW,EAAgB,MAAM,mBAAmB,CAAC;AAKjF;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"json-type.d.ts","sourceRoot":"","sources":["../../../src/types/json-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,WAAW,EAAgB,MAAM,mBAAmB,CAAC;AAKjF;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,WA8EvB,CAAC"}
|
|
@@ -9,6 +9,11 @@ import { compareCodePoints } from '../util/comparison.js';
|
|
|
9
9
|
export const JSON_TYPE = {
|
|
10
10
|
name: 'JSON',
|
|
11
11
|
physicalType: PhysicalType.OBJECT,
|
|
12
|
+
// Ordered by structural deep-compare (type rank, then element/key-wise recursion:
|
|
13
|
+
// {"a":2} < {"a":10}), not by canonical JSON text. Equality is unchanged —
|
|
14
|
+
// canonical-text equal iff structurally equal — so no groupKey hook is needed;
|
|
15
|
+
// only the ordering differs. See LogicalType.semanticOrdering.
|
|
16
|
+
semanticOrdering: true,
|
|
12
17
|
validate: (v) => {
|
|
13
18
|
if (v === null)
|
|
14
19
|
return true;
|
|
@@ -57,26 +62,42 @@ export const JSON_TYPE = {
|
|
|
57
62
|
return JSON.parse(v);
|
|
58
63
|
return v; // Already native
|
|
59
64
|
},
|
|
60
|
-
compare: (a, b) => {
|
|
65
|
+
compare: (a, b, collation) => {
|
|
61
66
|
const nullCmp = compareNulls(a, b);
|
|
62
67
|
if (nullCmp !== undefined)
|
|
63
68
|
return nullCmp;
|
|
64
|
-
//
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
// A JS string reaching here is ALWAYS a JSON string scalar, never serialized
|
|
70
|
+
// object/array text: every caller reads values that have already been through
|
|
71
|
+
// `parse` above — the DML emitters convert writes at the top of the pipeline
|
|
72
|
+
// (buildRowCoercion), and the storage layer converts direct API writes
|
|
73
|
+
// (coerceRowToSchema). Nothing is re-parsed here, so the JSON string "9"
|
|
74
|
+
// stays distinct from the JSON number 9.
|
|
75
|
+
//
|
|
76
|
+
// Two string scalars compare as text — under the supplied collation, or
|
|
77
|
+
// BINARY (code-point order) when none is supplied. Code-point order agrees
|
|
78
|
+
// with deepCompareJson's string-leaf order and with the store's structural
|
|
79
|
+
// key bytes, so a comparator built without a collation (PK equality checks)
|
|
80
|
+
// still tells '9' and '9.0' apart.
|
|
81
|
+
if (typeof a === 'string' && typeof b === 'string') {
|
|
82
|
+
return collation ? collation(a, b) : compareCodePoints(a, b);
|
|
71
83
|
}
|
|
72
|
-
return deepCompareJson(
|
|
84
|
+
return deepCompareJson(a, b);
|
|
73
85
|
},
|
|
74
86
|
supportedCollations: [],
|
|
75
87
|
isNumeric: false,
|
|
76
88
|
isTextual: false,
|
|
77
89
|
isTemporal: false,
|
|
78
90
|
};
|
|
79
|
-
/**
|
|
91
|
+
/**
|
|
92
|
+
* Ordering rank for JSON value types: null < boolean < number < string < array < object
|
|
93
|
+
*
|
|
94
|
+
* NOTE: this must stay ordered compatibly with `StorageClass` in util/comparison.ts
|
|
95
|
+
* (NULL < NUMERIC < TEXT < BLOB < OBJECT). `createTypedComparator` short-circuits on a
|
|
96
|
+
* storage-class mismatch *before* reaching this compare, while `compareSqlValues` calls
|
|
97
|
+
* the type's compare directly — the two agree only because both orderings put numbers
|
|
98
|
+
* before strings and strings before containers. If either ranking is ever reordered,
|
|
99
|
+
* `j1 < j2` and `order by j` will start disagreeing.
|
|
100
|
+
*/
|
|
80
101
|
function jsonTypeOrder(v) {
|
|
81
102
|
if (v === null)
|
|
82
103
|
return 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-type.js","sourceRoot":"","sources":["../../../src/types/json-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAgB;IACrC,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,YAAY,CAAC,MAAM;
|
|
1
|
+
{"version":3,"file":"json-type.js","sourceRoot":"","sources":["../../../src/types/json-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAgB;IACrC,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,YAAY,CAAC,MAAM;IACjC,kFAAkF;IAClF,2EAA2E;IAC3E,+EAA+E;IAC/E,+DAA+D;IAC/D,gBAAgB,EAAE,IAAI;IAEtB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;QACf,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC5B,qDAAqD;QACrD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,YAAY,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC;QACrE,+EAA+E;QAC/E,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC1F,OAAO,KAAK,CAAC;IACd,CAAC;IAED,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;QACZ,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC5B,+CAA+C;QAC/C,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,YAAY,UAAU,CAAC;YAAE,OAAO,CAAC,CAAC;QAClE,6DAA6D;QAC7D,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC;QACpC,IAAI,OAAO,CAAC,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC;QACrC,yCAAyC;QACzC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;gBACrC,MAAM,IAAI,SAAS,CAAC,mBAAmB,CAAC,gCAAgC,CAAC,CAAC;YAC3E,CAAC;YACD,OAAO,MAAM,CAAC;QACf,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,IAAI,SAAS,CAAC,kBAAkB,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3D,CAAC;IAED,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;QAChB,0CAA0C;QAC1C,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;QAClB,2CAA2C;QAC3C,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC5B,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAc,CAAC;QAC7D,OAAO,CAAC,CAAC,CAAC,iBAAiB;IAC5B,CAAC;IAED,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE;QAC5B,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC;QAE1C,6EAA6E;QAC7E,8EAA8E;QAC9E,6EAA6E;QAC7E,uEAAuE;QACvE,yEAAyE;QACzE,yCAAyC;QACzC,EAAE;QACF,wEAAwE;QACxE,2EAA2E;QAC3E,2EAA2E;QAC3E,4EAA4E;QAC5E,mCAAmC;QACnC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACpD,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,eAAe,CAAC,CAAc,EAAE,CAAc,CAAC,CAAC;IACxD,CAAC;IAED,mBAAmB,EAAE,EAAE;IAEvB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,KAAK;CACjB,CAAC;AAEF;;;;;;;;;GASG;AACH,SAAS,aAAa,CAAC,CAAY;IAClC,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IACzB,QAAQ,OAAO,CAAC,EAAE,CAAC;QAClB,KAAK,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;QACzB,KAAK,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC;QACxB,KAAK,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC;QACxB,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,CAAY,EAAE,CAAY;IAClD,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAEtB,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvD,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAEzB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,iBAAiB,CAAC,CAAC,EAAE,CAAW,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACrD,OAAO,CAAC,GAAI,CAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAI,CAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI,GAAG,KAAK,CAAC;gBAAE,OAAO,GAAG,CAAC;QAC3B,CAAC;QACD,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9F,MAAM,IAAI,GAAG,CAA8B,CAAC;QAC5C,MAAM,IAAI,GAAG,CAA8B,CAAC;QAC5C,4EAA4E;QAC5E,+EAA+E;QAC/E,+EAA+E;QAC/E,qCAAqC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAExD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,IAAI,MAAM,KAAK,CAAC;gBAAE,OAAO,MAAM,CAAC;QACjC,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE/E,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAClD,IAAI,GAAG,KAAK,CAAC;gBAAE,OAAO,GAAG,CAAC;QAC3B,CAAC;QACD,OAAO,CAAC,CAAC;IACV,CAAC;IAED,OAAO,CAAC,CAAC;AACV,CAAC"}
|
|
@@ -58,6 +58,28 @@ export interface LogicalType {
|
|
|
58
58
|
parse?(value: SqlValue): SqlValue;
|
|
59
59
|
/** Type-specific comparison function */
|
|
60
60
|
compare?(a: SqlValue, b: SqlValue, collation?: CollationFunction): number;
|
|
61
|
+
/**
|
|
62
|
+
* True when {@link compare} defines an order that OBSERVABLY differs from
|
|
63
|
+
* storage-class + collation ordering of the stored representation (e.g. TIMESPAN
|
|
64
|
+
* orders by elapsed time, JSON by structural deep-compare — not by their text).
|
|
65
|
+
* Every user-visible ordering/identity site (ORDER BY, `<`/`>`/`=` operators,
|
|
66
|
+
* index range filters, IN membership, DISTINCT / GROUP BY / set-operation identity) routes
|
|
67
|
+
* through {@link compare} exactly when this is set; when unset, storage-class +
|
|
68
|
+
* collation ordering is already the type's semantic order and the cheaper
|
|
69
|
+
* generic comparators are used. Declared-key BTrees (memory-table PKs and
|
|
70
|
+
* secondary indexes) always use {@link compare} regardless of this flag.
|
|
71
|
+
*/
|
|
72
|
+
semanticOrdering?: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Canonical identity representative for hash- or set-keyed identity (GROUP BY,
|
|
75
|
+
* window PARTITION BY, IN membership). Two values for which {@link compare} returns 0 MUST map to
|
|
76
|
+
* representatives that serialize identically under the storage-class key
|
|
77
|
+
* serializer (`util/key-serializer.ts`); distinct values must not collide.
|
|
78
|
+
* Only needed when {@link semanticOrdering} is set AND the stored form is not
|
|
79
|
+
* already canonical for equality (TIMESPAN: 'PT1H' ≡ 'PT60M'). Absent ⇒ the
|
|
80
|
+
* raw value is serialized.
|
|
81
|
+
*/
|
|
82
|
+
groupKey?(value: SqlValue): SqlValue;
|
|
61
83
|
/** Which collations apply to this type */
|
|
62
84
|
supportedCollations?: readonly string[];
|
|
63
85
|
/** Convert for storage/export */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logical-type.d.ts","sourceRoot":"","sources":["../../../src/types/logical-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AAEjE;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,aAAa,EAAE,MAAM,KAAK,iBAAiB,CAAC;AAE7E;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,KAAK,aAAa,CAAC;AAEzF;;;GAGG;AACH,oBAAY,YAAY;IACvB,IAAI,IAAI;IACR,OAAO,IAAI,CAAK,kBAAkB;IAClC,IAAI,IAAI,CAAQ,0BAA0B;IAC1C,IAAI,IAAI,CAAQ,SAAS;IACzB,IAAI,IAAI,CAAQ,aAAa;IAC7B,OAAO,IAAI,CAAK,UAAU;IAC1B,MAAM,IAAI;CACV;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAE3B,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,YAAY,EAAE,YAAY,CAAC;IAG3B,4CAA4C;IAC5C,QAAQ,CAAC,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC;IACpC,gDAAgD;IAChD,KAAK,CAAC,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAGlC,wCAAwC;IACxC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAAC;IAC1E,0CAA0C;IAC1C,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAGxC,iCAAiC;IACjC,SAAS,CAAC,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACtC,2BAA2B;IAC3B,WAAW,CAAC,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAGxC,8BAA8B;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;;OAMG;IACH,YAAY,CAAC,CACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,QAAQ,GACb;QAAE,cAAc,EAAE,QAAQ,CAAC;QAAC,cAAc,EAAE,QAAQ,CAAA;KAAE,GAAG,SAAS,CAAC;CACtE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,YAAY,CAW7D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAIzE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,CAWnE"}
|
|
1
|
+
{"version":3,"file":"logical-type.d.ts","sourceRoot":"","sources":["../../../src/types/logical-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AAEjE;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,aAAa,EAAE,MAAM,KAAK,iBAAiB,CAAC;AAE7E;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,KAAK,aAAa,CAAC;AAEzF;;;GAGG;AACH,oBAAY,YAAY;IACvB,IAAI,IAAI;IACR,OAAO,IAAI,CAAK,kBAAkB;IAClC,IAAI,IAAI,CAAQ,0BAA0B;IAC1C,IAAI,IAAI,CAAQ,SAAS;IACzB,IAAI,IAAI,CAAQ,aAAa;IAC7B,OAAO,IAAI,CAAK,UAAU;IAC1B,MAAM,IAAI;CACV;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAE3B,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,YAAY,EAAE,YAAY,CAAC;IAG3B,4CAA4C;IAC5C,QAAQ,CAAC,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC;IACpC,gDAAgD;IAChD,KAAK,CAAC,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAGlC,wCAAwC;IACxC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAAC;IAC1E;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;;OAQG;IACH,QAAQ,CAAC,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACrC,0CAA0C;IAC1C,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAGxC,iCAAiC;IACjC,SAAS,CAAC,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACtC,2BAA2B;IAC3B,WAAW,CAAC,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAGxC,8BAA8B;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;;OAMG;IACH,YAAY,CAAC,CACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,QAAQ,GACb;QAAE,cAAc,EAAE,QAAQ,CAAC;QAAC,cAAc,EAAE,QAAQ,CAAA;KAAE,GAAG,SAAS,CAAC;CACtE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,YAAY,CAW7D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAIzE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,CAWnE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logical-type.js","sourceRoot":"","sources":["../../../src/types/logical-type.ts"],"names":[],"mappings":"AAqCA;;;GAGG;AACH,MAAM,CAAN,IAAY,YAQX;AARD,WAAY,YAAY;IACvB,+CAAQ,CAAA;IACR,qDAAW,CAAA;IACX,+CAAQ,CAAA;IACR,+CAAQ,CAAA;IACR,+CAAQ,CAAA;IACR,qDAAW,CAAA;IACX,mDAAU,CAAA;AACX,CAAC,EARW,YAAY,KAAZ,YAAY,QAQvB;
|
|
1
|
+
{"version":3,"file":"logical-type.js","sourceRoot":"","sources":["../../../src/types/logical-type.ts"],"names":[],"mappings":"AAqCA;;;GAGG;AACH,MAAM,CAAN,IAAY,YAQX;AARD,WAAY,YAAY;IACvB,+CAAQ,CAAA;IACR,qDAAW,CAAA;IACX,+CAAQ,CAAA;IACR,+CAAQ,CAAA;IACR,+CAAQ,CAAA;IACR,qDAAW,CAAA;IACX,mDAAU,CAAA;AACX,CAAC,EARW,YAAY,KAAZ,YAAY,QAQvB;AA0ED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAe;IAC9C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,YAAY,CAAC,IAAI,CAAC;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;IAC3E,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC,OAAO,CAAC;IAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC,IAAI,CAAC;IACxD,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC,OAAO,CAAC;IAC5D,IAAI,KAAK,YAAY,UAAU;QAAE,OAAO,YAAY,CAAC,IAAI,CAAC;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,YAAY,CAAC,MAAM,CAAC;IAC5E,OAAO,YAAY,CAAC,IAAI,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,CAAW,EAAE,CAAW;IACpD,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IACzB,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,YAA0B;IAC1D,QAAQ,YAAY,EAAE,CAAC;QACtB,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,MAAM,CAAC;QACtC,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC;QAC5C,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,MAAM,CAAC;QACtC,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,MAAM,CAAC;QACtC,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,MAAM,CAAC;QACtC,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC;QAC5C,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,QAAQ,CAAC;QAC1C,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC;IAC3B,CAAC;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"temporal-types.d.ts","sourceRoot":"","sources":["../../../src/types/temporal-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,WAAW,EAAgB,MAAM,mBAAmB,CAAC;AAmBjF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,WA+DvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,WA2DvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,WAoD3B,CAAC;
|
|
1
|
+
{"version":3,"file":"temporal-types.d.ts","sourceRoot":"","sources":["../../../src/types/temporal-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,WAAW,EAAgB,MAAM,mBAAmB,CAAC;AAmBjF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,WA+DvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,WA2DvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,WAoD3B,CAAC;AAwEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,WAmE3B,CAAC"}
|
|
@@ -273,6 +273,24 @@ function parseHumanReadableDuration(input) {
|
|
|
273
273
|
return null;
|
|
274
274
|
}
|
|
275
275
|
}
|
|
276
|
+
/**
|
|
277
|
+
* Total elapsed seconds of an ISO 8601 duration string, resolving calendar units
|
|
278
|
+
* (years/months/weeks) against a fixed reference date so the mapping is total and
|
|
279
|
+
* deterministic engine-wide. This single helper backs both `TIMESPAN_TYPE.compare`
|
|
280
|
+
* and `TIMESPAN_TYPE.groupKey`, so ordering and hash-grouping identity can never
|
|
281
|
+
* disagree on the reference date. Returns undefined for unparseable input.
|
|
282
|
+
*/
|
|
283
|
+
function timespanTotalSeconds(v) {
|
|
284
|
+
try {
|
|
285
|
+
const duration = Temporal.Duration.from(v);
|
|
286
|
+
// Reference date resolves calendar units (months/years have no fixed length)
|
|
287
|
+
const referenceDate = Temporal.PlainDate.from('2024-01-01');
|
|
288
|
+
return duration.total({ unit: 'seconds', relativeTo: referenceDate });
|
|
289
|
+
}
|
|
290
|
+
catch {
|
|
291
|
+
return undefined;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
276
294
|
/**
|
|
277
295
|
* TIMESPAN type - stores ISO 8601 duration strings
|
|
278
296
|
* Uses Temporal.Duration for validation and parsing
|
|
@@ -281,6 +299,9 @@ export const TIMESPAN_TYPE = {
|
|
|
281
299
|
name: 'TIMESPAN',
|
|
282
300
|
physicalType: PhysicalType.TEXT,
|
|
283
301
|
isTemporal: true,
|
|
302
|
+
// Ordered by elapsed time, not by duration text: 'PT90M' < 'PT2H' though the
|
|
303
|
+
// text sorts the other way. See LogicalType.semanticOrdering.
|
|
304
|
+
semanticOrdering: true,
|
|
284
305
|
validate: (v) => {
|
|
285
306
|
if (v === null)
|
|
286
307
|
return true;
|
|
@@ -323,20 +344,21 @@ export const TIMESPAN_TYPE = {
|
|
|
323
344
|
const nullCmp = compareNulls(a, b);
|
|
324
345
|
if (nullCmp !== undefined)
|
|
325
346
|
return nullCmp;
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
// Use a reference date to resolve calendar units
|
|
330
|
-
// This ensures consistent comparison of durations with months/years
|
|
331
|
-
const referenceDate = Temporal.PlainDate.from('2024-01-01');
|
|
332
|
-
const totalA = durationA.total({ unit: 'seconds', relativeTo: referenceDate });
|
|
333
|
-
const totalB = durationB.total({ unit: 'seconds', relativeTo: referenceDate });
|
|
334
|
-
return totalA < totalB ? -1 : totalA > totalB ? 1 : 0;
|
|
335
|
-
}
|
|
336
|
-
catch {
|
|
347
|
+
const totalA = timespanTotalSeconds(a);
|
|
348
|
+
const totalB = timespanTotalSeconds(b);
|
|
349
|
+
if (totalA === undefined || totalB === undefined) {
|
|
337
350
|
// If parsing fails, fall back to binary string comparison
|
|
338
351
|
return BINARY_COLLATION(a, b);
|
|
339
352
|
}
|
|
353
|
+
return totalA < totalB ? -1 : totalA > totalB ? 1 : 0;
|
|
354
|
+
},
|
|
355
|
+
// Hash-grouping identity representative: equal elapsed times ('PT1H' ≡ 'PT60M')
|
|
356
|
+
// must key alike, so group on the total seconds compare() ranks by. Unparseable
|
|
357
|
+
// values keep their raw text (compare falls back to text for those too).
|
|
358
|
+
groupKey: (v) => {
|
|
359
|
+
if (typeof v !== 'string')
|
|
360
|
+
return v;
|
|
361
|
+
return timespanTotalSeconds(v) ?? v;
|
|
340
362
|
},
|
|
341
363
|
supportedCollations: [],
|
|
342
364
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"temporal-types.js","sourceRoot":"","sources":["../../../src/types/temporal-types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"temporal-types.js","sourceRoot":"","sources":["../../../src/types/temporal-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { SqlValue } from '../common/types.js';
|
|
1
|
+
import type { Row, SqlValue } from '../common/types.js';
|
|
2
2
|
import type { LogicalType } from './logical-type.js';
|
|
3
|
+
import type { ColumnSchema } from '../schema/column.js';
|
|
3
4
|
/**
|
|
4
5
|
* Validate a value against a logical type.
|
|
5
6
|
* Throws an error if the value is invalid.
|
|
@@ -33,6 +34,43 @@ export declare function parseValue(value: SqlValue, type: LogicalType, columnNam
|
|
|
33
34
|
* @throws QuereusError if validation or parsing fails
|
|
34
35
|
*/
|
|
35
36
|
export declare function validateAndParse(value: SqlValue, type: LogicalType, columnName?: string): SqlValue;
|
|
37
|
+
/**
|
|
38
|
+
* Coerce each cell in `row` to its declared column's logical type via
|
|
39
|
+
* {@link validateAndParse} (INTEGER/REAL affinity, JSON parsing, etc.) — the
|
|
40
|
+
* shared step every write path (memory tables, the KV store backend, the
|
|
41
|
+
* isolation overlay) applies before PK extraction, serialization, and index-key
|
|
42
|
+
* construction. `label` identifies the target for the "too many values" error
|
|
43
|
+
* (e.g. `` `${schemaName}.${tableName}` `` or `` `INSERT into ${tableName}` ``)
|
|
44
|
+
* so each call site keeps its own wording.
|
|
45
|
+
*
|
|
46
|
+
* @throws QuereusError if `row` has more cells than `columns`, or a cell fails validation/parsing
|
|
47
|
+
*/
|
|
48
|
+
export declare function coerceRowToSchema(row: Row, columns: readonly ColumnSchema[], label: string): Row;
|
|
49
|
+
/**
|
|
50
|
+
* Build the per-statement conversion step for a DML write. Given the static
|
|
51
|
+
* logical type of the expression producing each cell (index-aligned with
|
|
52
|
+
* `columns`) and the target columns, returns a closure that converts exactly
|
|
53
|
+
* the cells whose producing type is not already the target column's logical
|
|
54
|
+
* type — or `undefined` when no cell needs converting, so the caller can skip
|
|
55
|
+
* the per-row work entirely.
|
|
56
|
+
*
|
|
57
|
+
* Types are compared by object identity: the type registry hands out one
|
|
58
|
+
* shared `LogicalType` instance per type, so an expression whose static type
|
|
59
|
+
* IS the column's type (a reference to a same-typed column — an unassigned
|
|
60
|
+
* column in an UPDATE, or `insert into b select j from a`) produces values
|
|
61
|
+
* already in declared form, and those MUST be left alone: conversion is not
|
|
62
|
+
* repeatable for every type. JSON's `parse` reads a plain JS string as JSON
|
|
63
|
+
* source, so re-converting a stored JSON text value either changes it (the
|
|
64
|
+
* text `9` becomes the number 9) or throws (`abc` is not valid JSON source).
|
|
65
|
+
* An unknown source type (`undefined` entry) converts — the safe historical
|
|
66
|
+
* behavior for values of unproven provenance.
|
|
67
|
+
*
|
|
68
|
+
* The returned closure copies the row and converts via {@link validateAndParse},
|
|
69
|
+
* so conversion failures carry the same message text the storage layer used to
|
|
70
|
+
* produce. Cells at or beyond the row's length are left for the storage width
|
|
71
|
+
* guard, mirroring {@link coerceRowToSchema}'s map-over-present-cells behavior.
|
|
72
|
+
*/
|
|
73
|
+
export declare function buildRowCoercion(sourceTypes: ReadonlyArray<LogicalType | undefined>, columns: readonly ColumnSchema[]): ((row: Row) => Row) | undefined;
|
|
36
74
|
/**
|
|
37
75
|
* Check if a value is compatible with a logical type without throwing.
|
|
38
76
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/types/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/types/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC5B,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,WAAW,EACjB,UAAU,CAAC,EAAE,MAAM,GACjB,QAAQ,CAcV;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACzB,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,WAAW,EACjB,UAAU,CAAC,EAAE,MAAM,GACjB,QAAQ,CAmBV;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,WAAW,EACjB,UAAU,CAAC,EAAE,MAAM,GACjB,QAAQ,CAMV;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,GAAG,CAQhG;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,CAC/B,WAAW,EAAE,aAAa,CAAC,WAAW,GAAG,SAAS,CAAC,EACnD,OAAO,EAAE,SAAS,YAAY,EAAE,GAC9B,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,SAAS,CAgBjC;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAI1E;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,GAAG,QAAQ,GAAG,IAAI,CAM5E"}
|
|
@@ -64,6 +64,66 @@ export function validateAndParse(value, type, columnName) {
|
|
|
64
64
|
// Then validate the parsed result
|
|
65
65
|
return validateValue(parsed, type, columnName);
|
|
66
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Coerce each cell in `row` to its declared column's logical type via
|
|
69
|
+
* {@link validateAndParse} (INTEGER/REAL affinity, JSON parsing, etc.) — the
|
|
70
|
+
* shared step every write path (memory tables, the KV store backend, the
|
|
71
|
+
* isolation overlay) applies before PK extraction, serialization, and index-key
|
|
72
|
+
* construction. `label` identifies the target for the "too many values" error
|
|
73
|
+
* (e.g. `` `${schemaName}.${tableName}` `` or `` `INSERT into ${tableName}` ``)
|
|
74
|
+
* so each call site keeps its own wording.
|
|
75
|
+
*
|
|
76
|
+
* @throws QuereusError if `row` has more cells than `columns`, or a cell fails validation/parsing
|
|
77
|
+
*/
|
|
78
|
+
export function coerceRowToSchema(row, columns, label) {
|
|
79
|
+
if (row.length > columns.length) {
|
|
80
|
+
throw new QuereusError(`Too many values for ${label}: expected ${columns.length}, got ${row.length}`, StatusCode.ERROR);
|
|
81
|
+
}
|
|
82
|
+
return row.map((value, i) => validateAndParse(value, columns[i].logicalType, columns[i].name));
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Build the per-statement conversion step for a DML write. Given the static
|
|
86
|
+
* logical type of the expression producing each cell (index-aligned with
|
|
87
|
+
* `columns`) and the target columns, returns a closure that converts exactly
|
|
88
|
+
* the cells whose producing type is not already the target column's logical
|
|
89
|
+
* type — or `undefined` when no cell needs converting, so the caller can skip
|
|
90
|
+
* the per-row work entirely.
|
|
91
|
+
*
|
|
92
|
+
* Types are compared by object identity: the type registry hands out one
|
|
93
|
+
* shared `LogicalType` instance per type, so an expression whose static type
|
|
94
|
+
* IS the column's type (a reference to a same-typed column — an unassigned
|
|
95
|
+
* column in an UPDATE, or `insert into b select j from a`) produces values
|
|
96
|
+
* already in declared form, and those MUST be left alone: conversion is not
|
|
97
|
+
* repeatable for every type. JSON's `parse` reads a plain JS string as JSON
|
|
98
|
+
* source, so re-converting a stored JSON text value either changes it (the
|
|
99
|
+
* text `9` becomes the number 9) or throws (`abc` is not valid JSON source).
|
|
100
|
+
* An unknown source type (`undefined` entry) converts — the safe historical
|
|
101
|
+
* behavior for values of unproven provenance.
|
|
102
|
+
*
|
|
103
|
+
* The returned closure copies the row and converts via {@link validateAndParse},
|
|
104
|
+
* so conversion failures carry the same message text the storage layer used to
|
|
105
|
+
* produce. Cells at or beyond the row's length are left for the storage width
|
|
106
|
+
* guard, mirroring {@link coerceRowToSchema}'s map-over-present-cells behavior.
|
|
107
|
+
*/
|
|
108
|
+
export function buildRowCoercion(sourceTypes, columns) {
|
|
109
|
+
const convertIndices = [];
|
|
110
|
+
for (let i = 0; i < columns.length; i++) {
|
|
111
|
+
if (sourceTypes[i] !== columns[i].logicalType) {
|
|
112
|
+
convertIndices.push(i);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (convertIndices.length === 0)
|
|
116
|
+
return undefined;
|
|
117
|
+
return (row) => {
|
|
118
|
+
const out = row.slice();
|
|
119
|
+
for (const i of convertIndices) {
|
|
120
|
+
if (i >= out.length)
|
|
121
|
+
break;
|
|
122
|
+
out[i] = validateAndParse(out[i], columns[i].logicalType, columns[i].name);
|
|
123
|
+
}
|
|
124
|
+
return out;
|
|
125
|
+
};
|
|
126
|
+
}
|
|
67
127
|
/**
|
|
68
128
|
* Check if a value is compatible with a logical type without throwing.
|
|
69
129
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/types/validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/types/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structural ("spine") clone of an AST subtree: plain objects and arrays are
|
|
3
|
+
* deep-copied, everything else is passed through **by reference**.
|
|
4
|
+
*
|
|
5
|
+
* Exists for the in-place AST rewriters (`schema/rename-rewriter.ts`), which
|
|
6
|
+
* mutate the node graph they are handed and report whether anything changed. A
|
|
7
|
+
* caller that wants to compute what a rewrite *would* produce — without touching
|
|
8
|
+
* the live catalog AST — must rewrite a copy instead.
|
|
9
|
+
*
|
|
10
|
+
* Why not `structuredClone`: `AST.LiteralExpr.value` is typed
|
|
11
|
+
* `MaybePromise<SqlValue>`, and a Promise is not structured-cloneable — a live
|
|
12
|
+
* body carrying one would throw `DataCloneError`. The rewriters only ever assign
|
|
13
|
+
* to string fields (`.name`, `.schema`, `.table`, `.column`) and replace string
|
|
14
|
+
* arrays on plain AST nodes, so copying the plain-object/array spine is enough:
|
|
15
|
+
* every leaf they mutate is freshly owned, and every leaf they do not touch
|
|
16
|
+
* (primitives, `Uint8Array`, `bigint`, class instances, Promises) can safely stay
|
|
17
|
+
* shared.
|
|
18
|
+
*
|
|
19
|
+
* Frozen inputs are fine — the copy is unfrozen. Assumes a tree (the parser emits
|
|
20
|
+
* no cycles); a cyclic graph would recurse without bound.
|
|
21
|
+
*/
|
|
22
|
+
export declare function spineCloneAst<T>(node: T): T;
|
|
23
|
+
//# sourceMappingURL=ast-spine-clone.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ast-spine-clone.d.ts","sourceRoot":"","sources":["../../../src/util/ast-spine-clone.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAE3C"}
|