@quereus/quereus 4.8.0 → 4.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/core/database.d.ts +6 -0
- package/dist/src/core/database.d.ts.map +1 -1
- package/dist/src/core/database.js +45 -5
- package/dist/src/core/database.js.map +1 -1
- package/dist/src/core/statement.d.ts.map +1 -1
- package/dist/src/core/statement.js +74 -15
- package/dist/src/core/statement.js.map +1 -1
- package/dist/src/func/builtins/aggregate.d.ts.map +1 -1
- package/dist/src/func/builtins/aggregate.js +88 -35
- package/dist/src/func/builtins/aggregate.js.map +1 -1
- package/dist/src/func/builtins/conversion.d.ts +5 -0
- package/dist/src/func/builtins/conversion.d.ts.map +1 -1
- package/dist/src/func/builtins/conversion.js +16 -2
- package/dist/src/func/builtins/conversion.js.map +1 -1
- package/dist/src/func/builtins/explain.d.ts.map +1 -1
- package/dist/src/func/builtins/explain.js +9 -2
- package/dist/src/func/builtins/explain.js.map +1 -1
- package/dist/src/func/builtins/index.d.ts.map +1 -1
- package/dist/src/func/builtins/index.js +5 -2
- package/dist/src/func/builtins/index.js.map +1 -1
- package/dist/src/func/builtins/scalar.d.ts.map +1 -1
- package/dist/src/func/builtins/scalar.js +4 -2
- package/dist/src/func/builtins/scalar.js.map +1 -1
- package/dist/src/func/builtins/string.d.ts +2 -0
- package/dist/src/func/builtins/string.d.ts.map +1 -1
- package/dist/src/func/builtins/string.js +60 -4
- package/dist/src/func/builtins/string.js.map +1 -1
- package/dist/src/func/registration.d.ts +6 -0
- package/dist/src/func/registration.d.ts.map +1 -1
- package/dist/src/func/registration.js +1 -0
- package/dist/src/func/registration.js.map +1 -1
- package/dist/src/index.d.ts +7 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +21 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/planner/building/constraint-builder.js +1 -1
- package/dist/src/planner/building/constraint-builder.js.map +1 -1
- package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
- package/dist/src/planner/nodes/scalar.js +13 -1
- package/dist/src/planner/nodes/scalar.js.map +1 -1
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts.map +1 -1
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +121 -51
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
- package/dist/src/planner/rules/shared/index-style-context.d.ts +14 -4
- package/dist/src/planner/rules/shared/index-style-context.d.ts.map +1 -1
- package/dist/src/planner/rules/shared/index-style-context.js +14 -4
- package/dist/src/planner/rules/shared/index-style-context.js.map +1 -1
- package/dist/src/runtime/emission-context.d.ts +14 -1
- package/dist/src/runtime/emission-context.d.ts.map +1 -1
- package/dist/src/runtime/emission-context.js +17 -5
- package/dist/src/runtime/emission-context.js.map +1 -1
- package/dist/src/runtime/emit/aggregate-setup.d.ts +44 -8
- package/dist/src/runtime/emit/aggregate-setup.d.ts.map +1 -1
- package/dist/src/runtime/emit/aggregate-setup.js +79 -15
- package/dist/src/runtime/emit/aggregate-setup.js.map +1 -1
- package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
- package/dist/src/runtime/emit/aggregate.js +21 -106
- 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 +212 -155
- package/dist/src/runtime/emit/alter-table.js.map +1 -1
- package/dist/src/runtime/emit/asof-scan.js +1 -1
- package/dist/src/runtime/emit/asof-scan.js.map +1 -1
- package/dist/src/runtime/emit/assertion-drop-guard.d.ts +26 -12
- package/dist/src/runtime/emit/assertion-drop-guard.d.ts.map +1 -1
- package/dist/src/runtime/emit/assertion-drop-guard.js +45 -26
- package/dist/src/runtime/emit/assertion-drop-guard.js.map +1 -1
- package/dist/src/runtime/emit/assertion-rename-helpers.d.ts +6 -6
- package/dist/src/runtime/emit/assertion-rename-helpers.d.ts.map +1 -1
- package/dist/src/runtime/emit/assertion-rename-helpers.js +18 -20
- package/dist/src/runtime/emit/assertion-rename-helpers.js.map +1 -1
- package/dist/src/runtime/emit/between.d.ts +2 -0
- package/dist/src/runtime/emit/between.d.ts.map +1 -1
- package/dist/src/runtime/emit/between.js +7 -8
- package/dist/src/runtime/emit/between.js.map +1 -1
- package/dist/src/runtime/emit/binary.d.ts +27 -5
- package/dist/src/runtime/emit/binary.d.ts.map +1 -1
- package/dist/src/runtime/emit/binary.js +278 -187
- package/dist/src/runtime/emit/binary.js.map +1 -1
- package/dist/src/runtime/emit/case.d.ts +34 -0
- package/dist/src/runtime/emit/case.d.ts.map +1 -1
- package/dist/src/runtime/emit/case.js +18 -11
- package/dist/src/runtime/emit/case.js.map +1 -1
- package/dist/src/runtime/emit/cast.d.ts +2 -0
- package/dist/src/runtime/emit/cast.d.ts.map +1 -1
- package/dist/src/runtime/emit/cast.js +7 -5
- package/dist/src/runtime/emit/cast.js.map +1 -1
- package/dist/src/runtime/emit/column-reference.d.ts +3 -1
- package/dist/src/runtime/emit/column-reference.d.ts.map +1 -1
- package/dist/src/runtime/emit/column-reference.js +6 -2
- package/dist/src/runtime/emit/column-reference.js.map +1 -1
- package/dist/src/runtime/emit/column-rename-cascade.d.ts +84 -0
- package/dist/src/runtime/emit/column-rename-cascade.d.ts.map +1 -0
- package/dist/src/runtime/emit/column-rename-cascade.js +134 -0
- package/dist/src/runtime/emit/column-rename-cascade.js.map +1 -0
- package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
- package/dist/src/runtime/emit/dml-executor.js +21 -0
- package/dist/src/runtime/emit/dml-executor.js.map +1 -1
- package/dist/src/runtime/emit/drop-column-guards.d.ts +82 -53
- package/dist/src/runtime/emit/drop-column-guards.d.ts.map +1 -1
- package/dist/src/runtime/emit/drop-column-guards.js +155 -90
- package/dist/src/runtime/emit/drop-column-guards.js.map +1 -1
- package/dist/src/runtime/emit/drop-table.d.ts.map +1 -1
- package/dist/src/runtime/emit/drop-table.js +5 -0
- package/dist/src/runtime/emit/drop-table.js.map +1 -1
- package/dist/src/runtime/emit/drop-view.d.ts.map +1 -1
- package/dist/src/runtime/emit/drop-view.js +5 -0
- package/dist/src/runtime/emit/drop-view.js.map +1 -1
- package/dist/src/runtime/emit/expression-drop-guard.d.ts +57 -0
- package/dist/src/runtime/emit/expression-drop-guard.d.ts.map +1 -0
- package/dist/src/runtime/emit/expression-drop-guard.js +82 -0
- package/dist/src/runtime/emit/expression-drop-guard.js.map +1 -0
- package/dist/src/runtime/emit/filter.d.ts +1 -1
- package/dist/src/runtime/emit/filter.js +1 -1
- package/dist/src/runtime/emit/hash-aggregate.d.ts.map +1 -1
- package/dist/src/runtime/emit/hash-aggregate.js +18 -88
- package/dist/src/runtime/emit/hash-aggregate.js.map +1 -1
- package/dist/src/runtime/emit/literal.d.ts +14 -1
- package/dist/src/runtime/emit/literal.d.ts.map +1 -1
- package/dist/src/runtime/emit/literal.js +33 -7
- package/dist/src/runtime/emit/literal.js.map +1 -1
- package/dist/src/runtime/emit/materialized-view-helpers.d.ts +33 -10
- package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -1
- package/dist/src/runtime/emit/materialized-view-helpers.js +158 -49
- 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 +3 -0
- package/dist/src/runtime/emit/materialized-view.js.map +1 -1
- package/dist/src/runtime/emit/parameter.d.ts +3 -1
- package/dist/src/runtime/emit/parameter.d.ts.map +1 -1
- package/dist/src/runtime/emit/parameter.js +7 -2
- package/dist/src/runtime/emit/parameter.js.map +1 -1
- package/dist/src/runtime/emit/scalar-function.d.ts +29 -1
- package/dist/src/runtime/emit/scalar-function.d.ts.map +1 -1
- package/dist/src/runtime/emit/scalar-function.js +66 -16
- package/dist/src/runtime/emit/scalar-function.js.map +1 -1
- package/dist/src/runtime/emit/scalar-op.d.ts +63 -0
- package/dist/src/runtime/emit/scalar-op.d.ts.map +1 -0
- package/dist/src/runtime/emit/scalar-op.js +37 -0
- package/dist/src/runtime/emit/scalar-op.js.map +1 -0
- package/dist/src/runtime/emit/scan.d.ts.map +1 -1
- package/dist/src/runtime/emit/scan.js +19 -1
- package/dist/src/runtime/emit/scan.js.map +1 -1
- package/dist/src/runtime/emit/temporal-arithmetic.d.ts +18 -8
- package/dist/src/runtime/emit/temporal-arithmetic.d.ts.map +1 -1
- package/dist/src/runtime/emit/temporal-arithmetic.js +29 -311
- package/dist/src/runtime/emit/temporal-arithmetic.js.map +1 -1
- package/dist/src/runtime/emit/unary.d.ts +2 -0
- package/dist/src/runtime/emit/unary.d.ts.map +1 -1
- package/dist/src/runtime/emit/unary.js +125 -53
- package/dist/src/runtime/emit/unary.js.map +1 -1
- package/dist/src/runtime/emitters.d.ts +22 -0
- package/dist/src/runtime/emitters.d.ts.map +1 -1
- package/dist/src/runtime/emitters.js +29 -0
- package/dist/src/runtime/emitters.js.map +1 -1
- package/dist/src/runtime/scalar-fusion.d.ts +47 -0
- package/dist/src/runtime/scalar-fusion.d.ts.map +1 -0
- package/dist/src/runtime/scalar-fusion.js +275 -0
- package/dist/src/runtime/scalar-fusion.js.map +1 -0
- package/dist/src/runtime/strict-flags.d.ts +9 -0
- package/dist/src/runtime/strict-flags.d.ts.map +1 -1
- package/dist/src/runtime/strict-flags.js +9 -0
- package/dist/src/runtime/strict-flags.js.map +1 -1
- package/dist/src/runtime/strict-fork.js +2 -2
- package/dist/src/runtime/strict-fork.js.map +1 -1
- package/dist/src/runtime/strict-representation.d.ts +78 -0
- package/dist/src/runtime/strict-representation.d.ts.map +1 -0
- package/dist/src/runtime/strict-representation.js +159 -0
- package/dist/src/runtime/strict-representation.js.map +1 -0
- package/dist/src/schema/assertion.d.ts +58 -0
- package/dist/src/schema/assertion.d.ts.map +1 -1
- package/dist/src/schema/assertion.js +78 -0
- package/dist/src/schema/assertion.js.map +1 -1
- package/dist/src/schema/catalog-persistability.d.ts +11 -3
- package/dist/src/schema/catalog-persistability.d.ts.map +1 -1
- package/dist/src/schema/catalog-persistability.js +48 -29
- package/dist/src/schema/catalog-persistability.js.map +1 -1
- package/dist/src/schema/catalog.d.ts +22 -0
- package/dist/src/schema/catalog.d.ts.map +1 -1
- package/dist/src/schema/catalog.js +4 -1
- package/dist/src/schema/catalog.js.map +1 -1
- package/dist/src/schema/column-republication.d.ts +126 -0
- package/dist/src/schema/column-republication.d.ts.map +1 -0
- package/dist/src/schema/column-republication.js +121 -0
- package/dist/src/schema/column-republication.js.map +1 -0
- package/dist/src/schema/column-source-resolver.d.ts +29 -6
- package/dist/src/schema/column-source-resolver.d.ts.map +1 -1
- package/dist/src/schema/column-source-resolver.js +78 -9
- package/dist/src/schema/column-source-resolver.js.map +1 -1
- package/dist/src/schema/expression-dependents.d.ts +160 -0
- package/dist/src/schema/expression-dependents.d.ts.map +1 -0
- package/dist/src/schema/expression-dependents.js +228 -0
- package/dist/src/schema/expression-dependents.js.map +1 -0
- package/dist/src/schema/function.d.ts +15 -0
- package/dist/src/schema/function.d.ts.map +1 -1
- package/dist/src/schema/function.js.map +1 -1
- package/dist/src/schema/object-dependency-closure.d.ts +127 -0
- package/dist/src/schema/object-dependency-closure.d.ts.map +1 -0
- package/dist/src/schema/object-dependency-closure.js +117 -0
- package/dist/src/schema/object-dependency-closure.js.map +1 -0
- package/dist/src/schema/object-ref-resolver.d.ts +83 -0
- package/dist/src/schema/object-ref-resolver.d.ts.map +1 -0
- package/dist/src/schema/object-ref-resolver.js +135 -0
- package/dist/src/schema/object-ref-resolver.js.map +1 -0
- package/dist/src/schema/rename/column-rename.d.ts +228 -0
- package/dist/src/schema/rename/column-rename.d.ts.map +1 -0
- package/dist/src/schema/rename/column-rename.js +1225 -0
- package/dist/src/schema/rename/column-rename.js.map +1 -0
- package/dist/src/schema/rename/self-qualifier-strip.d.ts +29 -0
- package/dist/src/schema/rename/self-qualifier-strip.d.ts.map +1 -0
- package/dist/src/schema/rename/self-qualifier-strip.js +267 -0
- package/dist/src/schema/rename/self-qualifier-strip.js.map +1 -0
- package/dist/src/schema/rename/shared.d.ts +108 -0
- package/dist/src/schema/rename/shared.d.ts.map +1 -0
- package/dist/src/schema/rename/shared.js +49 -0
- package/dist/src/schema/rename/shared.js.map +1 -0
- package/dist/src/schema/rename/table-rename.d.ts +263 -0
- package/dist/src/schema/rename/table-rename.d.ts.map +1 -0
- package/dist/src/schema/rename/table-rename.js +860 -0
- package/dist/src/schema/rename/table-rename.js.map +1 -0
- package/dist/src/schema/rename-rewriter.d.ts +18 -278
- package/dist/src/schema/rename-rewriter.d.ts.map +1 -1
- package/dist/src/schema/rename-rewriter.js +17 -1506
- package/dist/src/schema/rename-rewriter.js.map +1 -1
- package/dist/src/schema/schema-differ.d.ts.map +1 -1
- package/dist/src/schema/schema-differ.js +228 -21
- package/dist/src/schema/schema-differ.js.map +1 -1
- package/dist/src/types/builtin-types.d.ts.map +1 -1
- package/dist/src/types/builtin-types.js +29 -36
- package/dist/src/types/builtin-types.js.map +1 -1
- package/dist/src/types/cast-semantics.d.ts +7 -5
- package/dist/src/types/cast-semantics.d.ts.map +1 -1
- package/dist/src/types/cast-semantics.js +20 -9
- package/dist/src/types/cast-semantics.js.map +1 -1
- 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/registry.d.ts.map +1 -1
- package/dist/src/types/registry.js +2 -1
- package/dist/src/types/registry.js.map +1 -1
- package/dist/src/types/temporal-ops.d.ts +119 -0
- package/dist/src/types/temporal-ops.d.ts.map +1 -0
- package/dist/src/types/temporal-ops.js +348 -0
- package/dist/src/types/temporal-ops.js.map +1 -0
- package/dist/src/types/temporal-types.d.ts +11 -0
- package/dist/src/types/temporal-types.d.ts.map +1 -1
- package/dist/src/types/temporal-types.js +87 -0
- package/dist/src/types/temporal-types.js.map +1 -1
- package/dist/src/util/affinity.d.ts +2 -1
- package/dist/src/util/affinity.d.ts.map +1 -1
- package/dist/src/util/affinity.js +16 -5
- package/dist/src/util/affinity.js.map +1 -1
- package/dist/src/util/ast-spine-clone.d.ts +2 -2
- package/dist/src/util/ast-spine-clone.js +2 -2
- package/dist/src/util/coercion.d.ts +22 -7
- package/dist/src/util/coercion.d.ts.map +1 -1
- package/dist/src/util/coercion.js +28 -15
- package/dist/src/util/coercion.js.map +1 -1
- package/dist/src/util/comparison.d.ts +25 -0
- package/dist/src/util/comparison.d.ts.map +1 -1
- package/dist/src/util/comparison.js +25 -0
- package/dist/src/util/comparison.js.map +1 -1
- package/dist/src/util/key-tuple-codec.d.ts +12 -3
- package/dist/src/util/key-tuple-codec.d.ts.map +1 -1
- package/dist/src/util/key-tuple-codec.js.map +1 -1
- package/dist/src/util/numeric-canonical.d.ts +26 -0
- package/dist/src/util/numeric-canonical.d.ts.map +1 -0
- package/dist/src/util/numeric-canonical.js +66 -0
- package/dist/src/util/numeric-canonical.js.map +1 -0
- package/dist/src/util/value-text.d.ts +48 -0
- package/dist/src/util/value-text.d.ts.map +1 -0
- package/dist/src/util/value-text.js +35 -0
- package/dist/src/util/value-text.js.map +1 -0
- package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.js +14 -5
- package/dist/src/vtab/memory/layer/manager.js.map +1 -1
- package/dist/src/vtab/module.d.ts +25 -0
- package/dist/src/vtab/module.d.ts.map +1 -1
- package/package.json +4 -3
|
@@ -2,21 +2,18 @@ import { buildAssertionViolationSql } from '../../schema/assertion.js';
|
|
|
2
2
|
import { renameTableInAst, renameColumnInAst } from '../../schema/rename-rewriter.js';
|
|
3
3
|
import { createLogger } from '../../common/logger.js';
|
|
4
4
|
const log = createLogger('runtime:emit:assertion-rename');
|
|
5
|
-
// NOTE: both passes
|
|
6
|
-
// plain-view and materialized-view loops in `alter-table.ts` use
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
//
|
|
12
|
-
// rewritten — is real, and shared verbatim with views and materialized views; it is
|
|
13
|
-
// tracked by `bug-rename-not-propagated-across-schemas`, which fixes all three object
|
|
14
|
-
// kinds with one "explicitly-qualified references only" rewriter mode.
|
|
5
|
+
// NOTE: both passes are called once per schema in the catalog — the same scope the
|
|
6
|
+
// plain-view and materialized-view loops in `alter-table.ts` use — and the caller
|
|
7
|
+
// passes the target/resolver built for THAT schema's home path (over the statement's
|
|
8
|
+
// pre-mutation snapshot), so an unqualified `t` in a body matches only when it
|
|
9
|
+
// actually RESOLVES to the renamed table. An assertion in `temp` naming `main.t`
|
|
10
|
+
// therefore follows a rename of `main.t`, while one whose bare `t` means `temp.t`
|
|
11
|
+
// is left alone.
|
|
15
12
|
/**
|
|
16
13
|
* Rewrites every assertion in `schema` after a source TABLE RENAME — the assertion
|
|
17
|
-
* mirror of the plain-view loop in `propagateTableRenameInSchema` (
|
|
18
|
-
*
|
|
19
|
-
* own FROM scopes).
|
|
14
|
+
* mirror of the plain-view loop in `propagateTableRenameInSchema` (called once per
|
|
15
|
+
* schema by the caller with that schema's resolver, same in-place `renameTableInAst`
|
|
16
|
+
* walk over a body that owns its own FROM scopes).
|
|
20
17
|
*
|
|
21
18
|
* On a changed body the derived `violationSql` is regenerated from the rewritten
|
|
22
19
|
* expression (the commit-time evaluator re-parses that text, so it is the field that
|
|
@@ -25,15 +22,15 @@ const log = createLogger('runtime:emit:assertion-rename');
|
|
|
25
22
|
* {@link Database.schemaManager} so `assertion_modified` fires — which is what
|
|
26
23
|
* invalidates the optimizer's assertion-hoist cache.
|
|
27
24
|
*/
|
|
28
|
-
export function propagateTableRenameToAssertions(db, schema,
|
|
29
|
-
const schemaLower =
|
|
30
|
-
const oldBase = `${schemaLower}.${oldName.toLowerCase()}`;
|
|
31
|
-
const newBase = `${schemaLower}.${newName.toLowerCase()}`;
|
|
25
|
+
export function propagateTableRenameToAssertions(db, schema, target) {
|
|
26
|
+
const schemaLower = target.schemaName.toLowerCase();
|
|
27
|
+
const oldBase = `${schemaLower}.${target.oldName.toLowerCase()}`;
|
|
28
|
+
const newBase = `${schemaLower}.${target.newName.toLowerCase()}`;
|
|
32
29
|
for (const assertion of Array.from(schema.getAllAssertions())) {
|
|
33
30
|
const check = assertion.checkExpression;
|
|
34
31
|
if (!check)
|
|
35
32
|
continue;
|
|
36
|
-
if (!renameTableInAst(check,
|
|
33
|
+
if (!renameTableInAst(check, target))
|
|
37
34
|
continue;
|
|
38
35
|
reregisterRewrittenAssertion(db, schema, assertion, check, remapDependentTables(assertion.dependentTables, oldBase, newBase));
|
|
39
36
|
}
|
|
@@ -52,12 +49,13 @@ export function propagateTableRenameToAssertions(db, schema, renamedSchemaName,
|
|
|
52
49
|
*
|
|
53
50
|
* `dependentTables` is keyed by base table, so a column rename leaves it untouched.
|
|
54
51
|
*/
|
|
55
|
-
export function propagateColumnRenameToAssertions(db, schema,
|
|
52
|
+
export function propagateColumnRenameToAssertions(db, schema, tableName, oldCol, newCol, resolve, targetKey, resolveColumnInSource) {
|
|
56
53
|
for (const assertion of Array.from(schema.getAllAssertions())) {
|
|
57
54
|
const check = assertion.checkExpression;
|
|
58
55
|
if (!check)
|
|
59
56
|
continue;
|
|
60
|
-
|
|
57
|
+
// Row-image mode 'none': an assertion body owns no `new.` / `old.` namespace.
|
|
58
|
+
if (!renameColumnInAst(check, tableName, oldCol, newCol, resolve, targetKey, 'none', resolveColumnInSource))
|
|
61
59
|
continue;
|
|
62
60
|
reregisterRewrittenAssertion(db, schema, assertion, check, assertion.dependentTables);
|
|
63
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertion-rename-helpers.js","sourceRoot":"","sources":["../../../../src/runtime/emit/assertion-rename-helpers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEtF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,GAAG,GAAG,YAAY,CAAC,+BAA+B,CAAC,CAAC;AAE1D,mFAAmF;AACnF,
|
|
1
|
+
{"version":3,"file":"assertion-rename-helpers.js","sourceRoot":"","sources":["../../../../src/runtime/emit/assertion-rename-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { Instruction } from "../types.js";
|
|
2
2
|
import type { BetweenNode } from "../../planner/nodes/scalar.js";
|
|
3
3
|
import type { EmissionContext } from "../emission-context.js";
|
|
4
|
+
import { type ScalarOpSpec } from "./scalar-op.js";
|
|
5
|
+
export declare function buildBetweenSpec(plan: BetweenNode, ctx: EmissionContext): ScalarOpSpec;
|
|
4
6
|
export declare function emitBetween(plan: BetweenNode, ctx: EmissionContext): Instruction;
|
|
5
7
|
//# sourceMappingURL=between.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"between.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/between.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"between.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/between.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEjE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,GAAG,YAAY,CAsCtF;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CAEhF"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { asRun } from "../types.js";
|
|
2
|
-
import { emitPlanNode } from "../emitters.js";
|
|
3
1
|
import { effectiveBetweenBoundCollation } from "../../planner/analysis/comparison-collation.js";
|
|
4
2
|
import { formatOperandCollationNote, makeOperandComparator } from "./operand-comparator.js";
|
|
5
|
-
|
|
3
|
+
import { emitScalarOp } from "./scalar-op.js";
|
|
4
|
+
export function buildBetweenSpec(plan, ctx) {
|
|
6
5
|
// BETWEEN desugars to `expr >= lower AND expr <= upper`; each comparison
|
|
7
6
|
// resolves its collation independently through the shared provenance lattice
|
|
8
7
|
// (explicit COLLATE > declared column collation > defaults — see
|
|
@@ -28,14 +27,14 @@ export function emitBetween(plan, ctx) {
|
|
|
28
27
|
const betweenResult = (lowerResult >= 0 && upperResult <= 0);
|
|
29
28
|
return plan.expression.not ? !betweenResult : betweenResult;
|
|
30
29
|
}
|
|
31
|
-
const valueExpr = emitPlanNode(plan.expr, ctx);
|
|
32
|
-
const lowerExpr = emitPlanNode(plan.lower, ctx);
|
|
33
|
-
const upperExpr = emitPlanNode(plan.upper, ctx);
|
|
34
30
|
const notPrefix = plan.expression.not ? 'NOT ' : '';
|
|
35
31
|
return {
|
|
36
|
-
|
|
37
|
-
run
|
|
32
|
+
operands: [plan.expr, plan.lower, plan.upper],
|
|
33
|
+
run,
|
|
38
34
|
note: `${notPrefix}BETWEEN${formatOperandCollationNote([lowerCollationName, upperCollationName])}`
|
|
39
35
|
};
|
|
40
36
|
}
|
|
37
|
+
export function emitBetween(plan, ctx) {
|
|
38
|
+
return emitScalarOp(buildBetweenSpec(plan, ctx), ctx);
|
|
39
|
+
}
|
|
41
40
|
//# sourceMappingURL=between.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"between.js","sourceRoot":"","sources":["../../../../src/runtime/emit/between.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"between.js","sourceRoot":"","sources":["../../../../src/runtime/emit/between.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,8BAA8B,EAAE,MAAM,gDAAgD,CAAC;AAChG,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAqB,MAAM,gBAAgB,CAAC;AAEjE,MAAM,UAAU,gBAAgB,CAAC,IAAiB,EAAE,GAAoB;IACvE,yEAAyE;IACzE,6EAA6E;IAC7E,iEAAiE;IACjE,4EAA4E;IAC5E,+DAA+D;IAC/D,MAAM,kBAAkB,GAAG,8BAA8B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACjF,MAAM,kBAAkB,GAAG,8BAA8B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAEjF,0EAA0E;IAC1E,MAAM,kBAAkB,GAAG,GAAG,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IACpE,MAAM,kBAAkB,GAAG,GAAG,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IAEpE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC;IACpD,MAAM,YAAY,GAAG,qBAAqB,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAC9G,MAAM,YAAY,GAAG,qBAAqB,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAE9G,0EAA0E;IAC1E,yCAAyC;IACzC,SAAS,GAAG,CAAC,GAAmB,EAAE,KAAe,EAAE,UAAoB,EAAE,UAAoB;QAC5F,IAAI,KAAK,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAE9E,wFAAwF;QACxF,gDAAgD;QAChD,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACpD,MAAM,aAAa,GAAG,CAAC,WAAW,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC,CAAC,CAAC;QAE7D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC;IAC7D,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpD,OAAO;QACN,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC;QAC7C,GAAG;QACH,IAAI,EAAE,GAAG,SAAS,UAAU,0BAA0B,CAAC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,EAAE;KAClG,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAiB,EAAE,GAAoB;IAClE,OAAO,YAAY,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -1,10 +1,32 @@
|
|
|
1
1
|
import type { Instruction } from "../types.js";
|
|
2
2
|
import type { BinaryOpNode } from "../../planner/nodes/scalar.js";
|
|
3
3
|
import type { EmissionContext } from "../emission-context.js";
|
|
4
|
+
import { type ScalarOpSpec } from "./scalar-op.js";
|
|
5
|
+
/**
|
|
6
|
+
* Operator dispatch for a binary node — the single entry point both consumers share, so
|
|
7
|
+
* neither has to restate which operator routes to which body. `undefined` means the node
|
|
8
|
+
* has no {@link ScalarOpSpec}: today that is exactly the AND/OR short-circuit form, whose
|
|
9
|
+
* right operand is a deferred sub-program rather than a value (see
|
|
10
|
+
* {@link buildLogicalOpSpec}). A fusion consumer treats `undefined` as "do not fuse";
|
|
11
|
+
* {@link emitBinaryOp} falls back to {@link emitShortCircuitLogicalOp}.
|
|
12
|
+
*
|
|
13
|
+
* An unsupported operator throws here rather than returning `undefined` — that is an
|
|
14
|
+
* unimplemented operator, not a node that declines to fuse.
|
|
15
|
+
*/
|
|
16
|
+
export declare function buildBinaryOpSpec(plan: BinaryOpNode, ctx: EmissionContext): ScalarOpSpec | undefined;
|
|
4
17
|
export declare function emitBinaryOp(plan: BinaryOpNode, ctx: EmissionContext): Instruction;
|
|
5
|
-
export declare function
|
|
6
|
-
export declare function
|
|
7
|
-
export declare function
|
|
8
|
-
|
|
9
|
-
|
|
18
|
+
export declare function buildNumericOpSpec(plan: BinaryOpNode): ScalarOpSpec;
|
|
19
|
+
export declare function buildComparisonOpSpec(plan: BinaryOpNode, ctx: EmissionContext): ScalarOpSpec;
|
|
20
|
+
export declare function buildConcatOpSpec(plan: BinaryOpNode): ScalarOpSpec;
|
|
21
|
+
/**
|
|
22
|
+
* Eager two-operand combine. Used for XOR (both operands always required) and for
|
|
23
|
+
* AND/OR whose right operand is cheap (no subquery) — the zero-overhead path.
|
|
24
|
+
*
|
|
25
|
+
* `undefined` for the short-circuit form, whose right operand is a `SubProgram` param
|
|
26
|
+
* rather than a value and whose body returns `MaybePromise` — not a {@link ScalarOpSpec}
|
|
27
|
+
* body. Consumers fall back: the emitter below builds that Instruction itself, and a
|
|
28
|
+
* fusion consumer must decline to fuse.
|
|
29
|
+
*/
|
|
30
|
+
export declare function buildLogicalOpSpec(plan: BinaryOpNode): ScalarOpSpec | undefined;
|
|
31
|
+
export declare function buildLikeOpSpec(plan: BinaryOpNode): ScalarOpSpec;
|
|
10
32
|
//# sourceMappingURL=binary.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/binary.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/binary.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAYlE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEjE;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,eAAe,GAAG,YAAY,GAAG,SAAS,CAgCpG;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CAGlF;AAwFD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAyHnE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,eAAe,GAAG,YAAY,CAqE5F;AA2CD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAelE;AA2ED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,GAAG,SAAS,CAgB/E;AAyDD,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CA0ChE"}
|