@quereus/quereus 0.7.3 → 0.7.4
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/package.json +3 -3
- package/dist/src/common/constants.js.map +0 -1
- package/dist/src/common/datatype.js.map +0 -1
- package/dist/src/common/errors.js.map +0 -1
- package/dist/src/common/json-types.js.map +0 -1
- package/dist/src/common/logger.js.map +0 -1
- package/dist/src/common/type-inference.js.map +0 -1
- package/dist/src/common/types.js.map +0 -1
- package/dist/src/core/database-options.js.map +0 -1
- package/dist/src/core/database.js.map +0 -1
- package/dist/src/core/param.js.map +0 -1
- package/dist/src/core/statement.js.map +0 -1
- package/dist/src/func/builtins/aggregate.js.map +0 -1
- package/dist/src/func/builtins/builtin-window-functions.js.map +0 -1
- package/dist/src/func/builtins/conversion.js.map +0 -1
- package/dist/src/func/builtins/datetime.js.map +0 -1
- package/dist/src/func/builtins/explain.js.map +0 -1
- package/dist/src/func/builtins/generation.js.map +0 -1
- package/dist/src/func/builtins/index.js.map +0 -1
- package/dist/src/func/builtins/json-helpers.js.map +0 -1
- package/dist/src/func/builtins/json-tvf.js.map +0 -1
- package/dist/src/func/builtins/json.js.map +0 -1
- package/dist/src/func/builtins/scalar.js.map +0 -1
- package/dist/src/func/builtins/schema.js.map +0 -1
- package/dist/src/func/builtins/string.js.map +0 -1
- package/dist/src/func/builtins/timespan.js.map +0 -1
- package/dist/src/func/context.js.map +0 -1
- package/dist/src/func/registration.js.map +0 -1
- package/dist/src/index.js.map +0 -1
- package/dist/src/parser/ast.js.map +0 -1
- package/dist/src/parser/index.js.map +0 -1
- package/dist/src/parser/lexer.js.map +0 -1
- package/dist/src/parser/parser.js.map +0 -1
- package/dist/src/parser/utils.js.map +0 -1
- package/dist/src/parser/visitor.js.map +0 -1
- package/dist/src/planner/analysis/binding-collector.js.map +0 -1
- package/dist/src/planner/analysis/const-evaluator.js.map +0 -1
- package/dist/src/planner/analysis/const-pass.js.map +0 -1
- package/dist/src/planner/analysis/constraint-extractor.js.map +0 -1
- package/dist/src/planner/analysis/predicate-normalizer.js.map +0 -1
- package/dist/src/planner/building/alter-table.js.map +0 -1
- package/dist/src/planner/building/block.js.map +0 -1
- package/dist/src/planner/building/constraint-builder.js.map +0 -1
- package/dist/src/planner/building/create-assertion.js.map +0 -1
- package/dist/src/planner/building/create-view.js.map +0 -1
- package/dist/src/planner/building/ddl.js.map +0 -1
- package/dist/src/planner/building/declare-schema.js.map +0 -1
- package/dist/src/planner/building/delete.js.map +0 -1
- package/dist/src/planner/building/drop-assertion.js.map +0 -1
- package/dist/src/planner/building/drop-table.js.map +0 -1
- package/dist/src/planner/building/drop-view.js.map +0 -1
- package/dist/src/planner/building/expression.js.map +0 -1
- package/dist/src/planner/building/function-call.js.map +0 -1
- package/dist/src/planner/building/insert.js.map +0 -1
- package/dist/src/planner/building/pragma.js.map +0 -1
- package/dist/src/planner/building/schema-resolution.js.map +0 -1
- package/dist/src/planner/building/select-aggregates.js.map +0 -1
- package/dist/src/planner/building/select-compound.js.map +0 -1
- package/dist/src/planner/building/select-context.js.map +0 -1
- package/dist/src/planner/building/select-modifiers.js.map +0 -1
- package/dist/src/planner/building/select-projections.js.map +0 -1
- package/dist/src/planner/building/select-window.js.map +0 -1
- package/dist/src/planner/building/select.js.map +0 -1
- package/dist/src/planner/building/table-function.js.map +0 -1
- package/dist/src/planner/building/table.js.map +0 -1
- package/dist/src/planner/building/transaction.js.map +0 -1
- package/dist/src/planner/building/update.js.map +0 -1
- package/dist/src/planner/building/with.js.map +0 -1
- package/dist/src/planner/cache/correlation-detector.js.map +0 -1
- package/dist/src/planner/cache/materialization-advisory.js.map +0 -1
- package/dist/src/planner/cache/reference-graph.js.map +0 -1
- package/dist/src/planner/cost/index.js.map +0 -1
- package/dist/src/planner/debug/logger-utils.js.map +0 -1
- package/dist/src/planner/debug.js.map +0 -1
- package/dist/src/planner/framework/characteristics.js.map +0 -1
- package/dist/src/planner/framework/context.js.map +0 -1
- package/dist/src/planner/framework/pass.js.map +0 -1
- package/dist/src/planner/framework/physical-utils.js.map +0 -1
- package/dist/src/planner/framework/registry.js.map +0 -1
- package/dist/src/planner/framework/trace.js.map +0 -1
- package/dist/src/planner/nodes/add-constraint-node.js.map +0 -1
- package/dist/src/planner/nodes/aggregate-function.js.map +0 -1
- package/dist/src/planner/nodes/aggregate-node.js.map +0 -1
- package/dist/src/planner/nodes/array-index-node.js.map +0 -1
- package/dist/src/planner/nodes/block.js.map +0 -1
- package/dist/src/planner/nodes/cache-node.js.map +0 -1
- package/dist/src/planner/nodes/constraint-check-node.js.map +0 -1
- package/dist/src/planner/nodes/create-assertion-node.js.map +0 -1
- package/dist/src/planner/nodes/create-index-node.js.map +0 -1
- package/dist/src/planner/nodes/create-table-node.js.map +0 -1
- package/dist/src/planner/nodes/create-view-node.js.map +0 -1
- package/dist/src/planner/nodes/cte-node.js.map +0 -1
- package/dist/src/planner/nodes/cte-reference-node.js.map +0 -1
- package/dist/src/planner/nodes/declarative-schema.js.map +0 -1
- package/dist/src/planner/nodes/delete-node.js.map +0 -1
- package/dist/src/planner/nodes/distinct-node.js.map +0 -1
- package/dist/src/planner/nodes/dml-executor-node.js.map +0 -1
- package/dist/src/planner/nodes/drop-assertion-node.js.map +0 -1
- package/dist/src/planner/nodes/drop-table-node.js.map +0 -1
- package/dist/src/planner/nodes/drop-view-node.js.map +0 -1
- package/dist/src/planner/nodes/filter.js.map +0 -1
- package/dist/src/planner/nodes/function.js.map +0 -1
- package/dist/src/planner/nodes/insert-node.js.map +0 -1
- package/dist/src/planner/nodes/internal-recursive-cte-ref-node.js.map +0 -1
- package/dist/src/planner/nodes/join-node.js.map +0 -1
- package/dist/src/planner/nodes/limit-offset.js.map +0 -1
- package/dist/src/planner/nodes/plan-node-type.js.map +0 -1
- package/dist/src/planner/nodes/plan-node.js.map +0 -1
- package/dist/src/planner/nodes/pragma.js.map +0 -1
- package/dist/src/planner/nodes/project-node.js.map +0 -1
- package/dist/src/planner/nodes/recursive-cte-node.js.map +0 -1
- package/dist/src/planner/nodes/reference.js.map +0 -1
- package/dist/src/planner/nodes/remote-query-node.js.map +0 -1
- package/dist/src/planner/nodes/retrieve-node.js.map +0 -1
- package/dist/src/planner/nodes/returning-node.js.map +0 -1
- package/dist/src/planner/nodes/scalar.js.map +0 -1
- package/dist/src/planner/nodes/sequencing-node.js.map +0 -1
- package/dist/src/planner/nodes/set-operation-node.js.map +0 -1
- package/dist/src/planner/nodes/single-row.js.map +0 -1
- package/dist/src/planner/nodes/sink-node.js.map +0 -1
- package/dist/src/planner/nodes/sort.js.map +0 -1
- package/dist/src/planner/nodes/stream-aggregate.js.map +0 -1
- package/dist/src/planner/nodes/subquery.js.map +0 -1
- package/dist/src/planner/nodes/table-access-nodes.js.map +0 -1
- package/dist/src/planner/nodes/table-function-call.js.map +0 -1
- package/dist/src/planner/nodes/transaction-node.js.map +0 -1
- package/dist/src/planner/nodes/update-node.js.map +0 -1
- package/dist/src/planner/nodes/values-node.js.map +0 -1
- package/dist/src/planner/nodes/view-reference-node.js.map +0 -1
- package/dist/src/planner/nodes/window-function.js.map +0 -1
- package/dist/src/planner/nodes/window-node.js.map +0 -1
- package/dist/src/planner/optimizer-tuning.js.map +0 -1
- package/dist/src/planner/optimizer.js.map +0 -1
- package/dist/src/planner/planning-context.js.map +0 -1
- package/dist/src/planner/resolve.js.map +0 -1
- package/dist/src/planner/rules/access/rule-select-access-path.js.map +0 -1
- package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.js.map +0 -1
- package/dist/src/planner/rules/cache/rule-cte-optimization.js.map +0 -1
- package/dist/src/planner/rules/cache/rule-materialization-advisory.js.map +0 -1
- package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.js.map +0 -1
- package/dist/src/planner/rules/join/rule-join-greedy-commute.js.map +0 -1
- package/dist/src/planner/rules/join/rule-join-key-inference.js.map +0 -1
- package/dist/src/planner/rules/join/rule-quickpick-enumeration.js.map +0 -1
- package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js.map +0 -1
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +0 -1
- package/dist/src/planner/scopes/aliased.js.map +0 -1
- package/dist/src/planner/scopes/base.js.map +0 -1
- package/dist/src/planner/scopes/empty.js.map +0 -1
- package/dist/src/planner/scopes/global.js.map +0 -1
- package/dist/src/planner/scopes/multi.js.map +0 -1
- package/dist/src/planner/scopes/param.js.map +0 -1
- package/dist/src/planner/scopes/registered.js.map +0 -1
- package/dist/src/planner/scopes/scope.js.map +0 -1
- package/dist/src/planner/stats/basic-estimates.js.map +0 -1
- package/dist/src/planner/stats/index.js.map +0 -1
- package/dist/src/planner/type-utils.js.map +0 -1
- package/dist/src/planner/util/key-utils.js.map +0 -1
- package/dist/src/planner/validation/determinism-validator.js.map +0 -1
- package/dist/src/planner/validation/plan-validator.js.map +0 -1
- package/dist/src/runtime/async-util.js.map +0 -1
- package/dist/src/runtime/cache/shared-cache.js.map +0 -1
- package/dist/src/runtime/context-helpers.js.map +0 -1
- package/dist/src/runtime/deferred-constraint-queue.js.map +0 -1
- package/dist/src/runtime/emission-context.js.map +0 -1
- package/dist/src/runtime/emit/add-constraint.js.map +0 -1
- package/dist/src/runtime/emit/aggregate.js.map +0 -1
- package/dist/src/runtime/emit/array-index.js.map +0 -1
- package/dist/src/runtime/emit/between.js.map +0 -1
- package/dist/src/runtime/emit/binary.js.map +0 -1
- package/dist/src/runtime/emit/block.js.map +0 -1
- package/dist/src/runtime/emit/cache.js.map +0 -1
- package/dist/src/runtime/emit/case.js.map +0 -1
- package/dist/src/runtime/emit/cast.js.map +0 -1
- package/dist/src/runtime/emit/collate.js.map +0 -1
- package/dist/src/runtime/emit/column-reference.js.map +0 -1
- package/dist/src/runtime/emit/constraint-check.js.map +0 -1
- package/dist/src/runtime/emit/create-assertion.js.map +0 -1
- package/dist/src/runtime/emit/create-index.js.map +0 -1
- package/dist/src/runtime/emit/create-table.js.map +0 -1
- package/dist/src/runtime/emit/create-view.js.map +0 -1
- package/dist/src/runtime/emit/cte-reference.js.map +0 -1
- package/dist/src/runtime/emit/cte.js.map +0 -1
- package/dist/src/runtime/emit/delete.js.map +0 -1
- package/dist/src/runtime/emit/distinct.js.map +0 -1
- package/dist/src/runtime/emit/dml-executor.js.map +0 -1
- package/dist/src/runtime/emit/drop-assertion.js.map +0 -1
- package/dist/src/runtime/emit/drop-table.js.map +0 -1
- package/dist/src/runtime/emit/drop-view.js.map +0 -1
- package/dist/src/runtime/emit/filter.js.map +0 -1
- package/dist/src/runtime/emit/insert.js.map +0 -1
- package/dist/src/runtime/emit/internal-recursive-cte-ref.js.map +0 -1
- package/dist/src/runtime/emit/join.js.map +0 -1
- package/dist/src/runtime/emit/limit-offset.js.map +0 -1
- package/dist/src/runtime/emit/literal.js.map +0 -1
- package/dist/src/runtime/emit/parameter.js.map +0 -1
- package/dist/src/runtime/emit/pragma.js.map +0 -1
- package/dist/src/runtime/emit/project.js.map +0 -1
- package/dist/src/runtime/emit/recursive-cte.js.map +0 -1
- package/dist/src/runtime/emit/remote-query.js.map +0 -1
- package/dist/src/runtime/emit/retrieve.js.map +0 -1
- package/dist/src/runtime/emit/returning.js.map +0 -1
- package/dist/src/runtime/emit/scalar-function.js.map +0 -1
- package/dist/src/runtime/emit/scan.js.map +0 -1
- package/dist/src/runtime/emit/schema-declarative.js.map +0 -1
- package/dist/src/runtime/emit/sequencing.js.map +0 -1
- package/dist/src/runtime/emit/set-operation.js.map +0 -1
- package/dist/src/runtime/emit/sink.js.map +0 -1
- package/dist/src/runtime/emit/sort.js.map +0 -1
- package/dist/src/runtime/emit/subquery.js.map +0 -1
- package/dist/src/runtime/emit/table-valued-function.js.map +0 -1
- package/dist/src/runtime/emit/temporal-arithmetic.js.map +0 -1
- package/dist/src/runtime/emit/transaction.js.map +0 -1
- package/dist/src/runtime/emit/unary.js.map +0 -1
- package/dist/src/runtime/emit/update.js.map +0 -1
- package/dist/src/runtime/emit/values.js.map +0 -1
- package/dist/src/runtime/emit/window-function.js.map +0 -1
- package/dist/src/runtime/emit/window.js.map +0 -1
- package/dist/src/runtime/emitters.js.map +0 -1
- package/dist/src/runtime/register.js.map +0 -1
- package/dist/src/runtime/scheduler.js.map +0 -1
- package/dist/src/runtime/types.js.map +0 -1
- package/dist/src/runtime/utils.js.map +0 -1
- package/dist/src/schema/assertion.js.map +0 -1
- package/dist/src/schema/catalog.js.map +0 -1
- package/dist/src/schema/change-events.js.map +0 -1
- package/dist/src/schema/column.js.map +0 -1
- package/dist/src/schema/declared-schema-manager.js.map +0 -1
- package/dist/src/schema/function.js.map +0 -1
- package/dist/src/schema/manager.js.map +0 -1
- package/dist/src/schema/schema-differ.js.map +0 -1
- package/dist/src/schema/schema-hasher.js.map +0 -1
- package/dist/src/schema/schema.js.map +0 -1
- package/dist/src/schema/table.js.map +0 -1
- package/dist/src/schema/view.js.map +0 -1
- package/dist/src/schema/window-function.js.map +0 -1
- package/dist/src/types/builtin-types.js.map +0 -1
- package/dist/src/types/index.js.map +0 -1
- package/dist/src/types/json-type.js.map +0 -1
- package/dist/src/types/logical-type.js.map +0 -1
- package/dist/src/types/plugin-interface.js.map +0 -1
- package/dist/src/types/registry.js.map +0 -1
- package/dist/src/types/temporal-types.js.map +0 -1
- package/dist/src/types/validation.js.map +0 -1
- package/dist/src/util/affinity.js.map +0 -1
- package/dist/src/util/ast-stringify.js.map +0 -1
- package/dist/src/util/cached.js.map +0 -1
- package/dist/src/util/coercion.js.map +0 -1
- package/dist/src/util/comparison.js.map +0 -1
- package/dist/src/util/environment.js.map +0 -1
- package/dist/src/util/hash.js.map +0 -1
- package/dist/src/util/latches.js.map +0 -1
- package/dist/src/util/mutation-statement.js.map +0 -1
- package/dist/src/util/patterns.js.map +0 -1
- package/dist/src/util/plan-formatter.js.map +0 -1
- package/dist/src/util/plugin-helper.js.map +0 -1
- package/dist/src/util/row-descriptor.js.map +0 -1
- package/dist/src/util/serialization.js.map +0 -1
- package/dist/src/util/sql-literal.js.map +0 -1
- package/dist/src/util/working-table-iterable.js.map +0 -1
- package/dist/src/vtab/best-access-plan.js.map +0 -1
- package/dist/src/vtab/connection.js.map +0 -1
- package/dist/src/vtab/filter-info.js.map +0 -1
- package/dist/src/vtab/index-info.js.map +0 -1
- package/dist/src/vtab/manifest.js.map +0 -1
- package/dist/src/vtab/memory/connection.js.map +0 -1
- package/dist/src/vtab/memory/index.js.map +0 -1
- package/dist/src/vtab/memory/layer/base-cursor.js.map +0 -1
- package/dist/src/vtab/memory/layer/base.js.map +0 -1
- package/dist/src/vtab/memory/layer/connection.js.map +0 -1
- package/dist/src/vtab/memory/layer/interface.js.map +0 -1
- package/dist/src/vtab/memory/layer/manager.js.map +0 -1
- package/dist/src/vtab/memory/layer/safe-iterate.js.map +0 -1
- package/dist/src/vtab/memory/layer/scan-plan.js.map +0 -1
- package/dist/src/vtab/memory/layer/transaction-cursor.js.map +0 -1
- package/dist/src/vtab/memory/layer/transaction.js.map +0 -1
- package/dist/src/vtab/memory/module.js.map +0 -1
- package/dist/src/vtab/memory/table.js.map +0 -1
- package/dist/src/vtab/memory/types.js.map +0 -1
- package/dist/src/vtab/memory/utils/logging.js.map +0 -1
- package/dist/src/vtab/memory/utils/primary-key.js.map +0 -1
- package/dist/src/vtab/module.js.map +0 -1
- package/dist/src/vtab/table.js.map +0 -1
- package/src/common/constants.ts +0 -60
- package/src/common/datatype.ts +0 -85
- package/src/common/errors.ts +0 -189
- package/src/common/json-types.ts +0 -16
- package/src/common/logger.ts +0 -97
- package/src/common/type-inference.ts +0 -39
- package/src/common/types.ts +0 -151
- package/src/core/database-options.ts +0 -258
- package/src/core/database.ts +0 -1461
- package/src/core/param.ts +0 -56
- package/src/core/statement.ts +0 -528
- package/src/func/builtins/aggregate.ts +0 -269
- package/src/func/builtins/builtin-window-functions.ts +0 -166
- package/src/func/builtins/conversion.ts +0 -226
- package/src/func/builtins/datetime.ts +0 -500
- package/src/func/builtins/explain.ts +0 -779
- package/src/func/builtins/generation.ts +0 -43
- package/src/func/builtins/index.ts +0 -167
- package/src/func/builtins/json-helpers.ts +0 -237
- package/src/func/builtins/json-tvf.ts +0 -224
- package/src/func/builtins/json.ts +0 -588
- package/src/func/builtins/scalar.ts +0 -423
- package/src/func/builtins/schema.ts +0 -213
- package/src/func/builtins/string.ts +0 -306
- package/src/func/builtins/timespan.ts +0 -179
- package/src/func/context.ts +0 -258
- package/src/func/registration.ts +0 -201
- package/src/index.ts +0 -172
- package/src/parser/ast.ts +0 -581
- package/src/parser/index.ts +0 -65
- package/src/parser/lexer.ts +0 -806
- package/src/parser/parser.ts +0 -3352
- package/src/parser/utils.ts +0 -10
- package/src/parser/visitor.ts +0 -188
- package/src/planner/analysis/README.md +0 -93
- package/src/planner/analysis/binding-collector.ts +0 -83
- package/src/planner/analysis/const-evaluator.ts +0 -63
- package/src/planner/analysis/const-pass.ts +0 -282
- package/src/planner/analysis/constraint-extractor.ts +0 -764
- package/src/planner/analysis/predicate-normalizer.ts +0 -237
- package/src/planner/building/alter-table.ts +0 -49
- package/src/planner/building/block.ts +0 -93
- package/src/planner/building/constraint-builder.ts +0 -178
- package/src/planner/building/create-assertion.ts +0 -7
- package/src/planner/building/create-view.ts +0 -29
- package/src/planner/building/ddl.ts +0 -24
- package/src/planner/building/declare-schema.ts +0 -22
- package/src/planner/building/delete.ts +0 -218
- package/src/planner/building/drop-assertion.ts +0 -11
- package/src/planner/building/drop-table.ts +0 -13
- package/src/planner/building/drop-view.ts +0 -19
- package/src/planner/building/expression.ts +0 -205
- package/src/planner/building/function-call.ts +0 -129
- package/src/planner/building/insert.ts +0 -435
- package/src/planner/building/pragma.ts +0 -34
- package/src/planner/building/schema-resolution.ts +0 -176
- package/src/planner/building/select-aggregates.ts +0 -318
- package/src/planner/building/select-compound.ts +0 -119
- package/src/planner/building/select-context.ts +0 -85
- package/src/planner/building/select-modifiers.ts +0 -236
- package/src/planner/building/select-projections.ts +0 -177
- package/src/planner/building/select-window.ts +0 -259
- package/src/planner/building/select.ts +0 -567
- package/src/planner/building/table-function.ts +0 -49
- package/src/planner/building/table.ts +0 -40
- package/src/planner/building/transaction.ts +0 -23
- package/src/planner/building/update.ts +0 -331
- package/src/planner/building/with.ts +0 -180
- package/src/planner/cache/correlation-detector.ts +0 -83
- package/src/planner/cache/materialization-advisory.ts +0 -265
- package/src/planner/cache/reference-graph.ts +0 -196
- package/src/planner/cost/index.ts +0 -169
- package/src/planner/debug/logger-utils.ts +0 -68
- package/src/planner/debug.ts +0 -480
- package/src/planner/framework/README.md +0 -132
- package/src/planner/framework/characteristics.ts +0 -503
- package/src/planner/framework/context.ts +0 -239
- package/src/planner/framework/pass.ts +0 -354
- package/src/planner/framework/physical-utils.ts +0 -210
- package/src/planner/framework/registry.ts +0 -261
- package/src/planner/framework/trace.ts +0 -259
- package/src/planner/nodes/add-constraint-node.ts +0 -62
- package/src/planner/nodes/aggregate-function.ts +0 -155
- package/src/planner/nodes/aggregate-node.ts +0 -267
- package/src/planner/nodes/array-index-node.ts +0 -50
- package/src/planner/nodes/block.ts +0 -80
- package/src/planner/nodes/cache-node.ts +0 -103
- package/src/planner/nodes/constraint-check-node.ts +0 -138
- package/src/planner/nodes/create-assertion-node.ts +0 -51
- package/src/planner/nodes/create-index-node.ts +0 -41
- package/src/planner/nodes/create-table-node.ts +0 -35
- package/src/planner/nodes/create-view-node.ts +0 -44
- package/src/planner/nodes/cte-node.ts +0 -168
- package/src/planner/nodes/cte-reference-node.ts +0 -125
- package/src/planner/nodes/declarative-schema.ts +0 -221
- package/src/planner/nodes/delete-node.ts +0 -102
- package/src/planner/nodes/distinct-node.ts +0 -107
- package/src/planner/nodes/dml-executor-node.ts +0 -104
- package/src/planner/nodes/drop-assertion-node.ts +0 -50
- package/src/planner/nodes/drop-table-node.ts +0 -36
- package/src/planner/nodes/drop-view-node.ts +0 -37
- package/src/planner/nodes/filter.ts +0 -144
- package/src/planner/nodes/function.ts +0 -98
- package/src/planner/nodes/insert-node.ts +0 -126
- package/src/planner/nodes/internal-recursive-cte-ref-node.ts +0 -61
- package/src/planner/nodes/join-node.ts +0 -336
- package/src/planner/nodes/limit-offset.ts +0 -144
- package/src/planner/nodes/plan-node-type.ts +0 -95
- package/src/planner/nodes/plan-node.ts +0 -503
- package/src/planner/nodes/pragma.ts +0 -98
- package/src/planner/nodes/project-node.ts +0 -337
- package/src/planner/nodes/recursive-cte-node.ts +0 -158
- package/src/planner/nodes/reference.ts +0 -334
- package/src/planner/nodes/remote-query-node.ts +0 -73
- package/src/planner/nodes/retrieve-node.ts +0 -86
- package/src/planner/nodes/returning-node.ts +0 -269
- package/src/planner/nodes/scalar.ts +0 -772
- package/src/planner/nodes/sequencing-node.ts +0 -113
- package/src/planner/nodes/set-operation-node.ts +0 -87
- package/src/planner/nodes/single-row.ts +0 -85
- package/src/planner/nodes/sink-node.ts +0 -61
- package/src/planner/nodes/sort.ts +0 -166
- package/src/planner/nodes/stream-aggregate.ts +0 -293
- package/src/planner/nodes/subquery.ts +0 -268
- package/src/planner/nodes/table-access-nodes.ts +0 -323
- package/src/planner/nodes/table-function-call.ts +0 -134
- package/src/planner/nodes/transaction-node.ts +0 -55
- package/src/planner/nodes/update-node.ts +0 -138
- package/src/planner/nodes/values-node.ts +0 -244
- package/src/planner/nodes/view-reference-node.ts +0 -97
- package/src/planner/nodes/window-function.ts +0 -73
- package/src/planner/nodes/window-node.ts +0 -199
- package/src/planner/optimizer-tuning.ts +0 -105
- package/src/planner/optimizer.ts +0 -332
- package/src/planner/planning-context.ts +0 -190
- package/src/planner/resolve.ts +0 -101
- package/src/planner/rules/README.md +0 -96
- package/src/planner/rules/access/rule-select-access-path.ts +0 -399
- package/src/planner/rules/aggregate/rule-aggregate-streaming.ts +0 -162
- package/src/planner/rules/cache/rule-cte-optimization.ts +0 -79
- package/src/planner/rules/cache/rule-materialization-advisory.ts +0 -77
- package/src/planner/rules/cache/rule-mutating-subquery-cache.ts +0 -104
- package/src/planner/rules/join/rule-join-greedy-commute.ts +0 -48
- package/src/planner/rules/join/rule-join-key-inference.ts +0 -35
- package/src/planner/rules/join/rule-quickpick-enumeration.ts +0 -267
- package/src/planner/rules/predicate/rule-predicate-pushdown.ts +0 -144
- package/src/planner/rules/retrieve/rule-grow-retrieve.ts +0 -337
- package/src/planner/scopes/aliased.ts +0 -50
- package/src/planner/scopes/base.ts +0 -10
- package/src/planner/scopes/empty.ts +0 -12
- package/src/planner/scopes/global.ts +0 -73
- package/src/planner/scopes/multi.ts +0 -40
- package/src/planner/scopes/param.ts +0 -95
- package/src/planner/scopes/registered.ts +0 -67
- package/src/planner/scopes/scope.ts +0 -16
- package/src/planner/stats/basic-estimates.ts +0 -107
- package/src/planner/stats/index.ts +0 -158
- package/src/planner/type-utils.ts +0 -87
- package/src/planner/util/key-utils.ts +0 -46
- package/src/planner/validation/determinism-validator.ts +0 -104
- package/src/planner/validation/plan-validator.ts +0 -335
- package/src/runtime/async-util.ts +0 -283
- package/src/runtime/cache/shared-cache.ts +0 -169
- package/src/runtime/context-helpers.ts +0 -191
- package/src/runtime/deferred-constraint-queue.ts +0 -196
- package/src/runtime/emission-context.ts +0 -319
- package/src/runtime/emit/add-constraint.ts +0 -78
- package/src/runtime/emit/aggregate.ts +0 -581
- package/src/runtime/emit/array-index.ts +0 -25
- package/src/runtime/emit/between.ts +0 -51
- package/src/runtime/emit/binary.ts +0 -357
- package/src/runtime/emit/block.ts +0 -23
- package/src/runtime/emit/cache.ts +0 -64
- package/src/runtime/emit/case.ts +0 -87
- package/src/runtime/emit/cast.ts +0 -151
- package/src/runtime/emit/collate.ts +0 -9
- package/src/runtime/emit/column-reference.ts +0 -17
- package/src/runtime/emit/constraint-check.ts +0 -290
- package/src/runtime/emit/create-assertion.ts +0 -82
- package/src/runtime/emit/create-index.ts +0 -15
- package/src/runtime/emit/create-table.ts +0 -15
- package/src/runtime/emit/create-view.ts +0 -52
- package/src/runtime/emit/cte-reference.ts +0 -38
- package/src/runtime/emit/cte.ts +0 -39
- package/src/runtime/emit/delete.ts +0 -24
- package/src/runtime/emit/distinct.ts +0 -40
- package/src/runtime/emit/dml-executor.ts +0 -198
- package/src/runtime/emit/drop-assertion.ts +0 -45
- package/src/runtime/emit/drop-table.ts +0 -27
- package/src/runtime/emit/drop-view.ts +0 -49
- package/src/runtime/emit/filter.ts +0 -30
- package/src/runtime/emit/insert.ts +0 -42
- package/src/runtime/emit/internal-recursive-cte-ref.ts +0 -37
- package/src/runtime/emit/join.ts +0 -148
- package/src/runtime/emit/limit-offset.ts +0 -73
- package/src/runtime/emit/literal.ts +0 -17
- package/src/runtime/emit/parameter.ts +0 -59
- package/src/runtime/emit/pragma.ts +0 -56
- package/src/runtime/emit/project.ts +0 -46
- package/src/runtime/emit/recursive-cte.ts +0 -111
- package/src/runtime/emit/remote-query.ts +0 -47
- package/src/runtime/emit/retrieve.ts +0 -15
- package/src/runtime/emit/returning.ts +0 -41
- package/src/runtime/emit/scalar-function.ts +0 -69
- package/src/runtime/emit/scan.ts +0 -106
- package/src/runtime/emit/schema-declarative.ts +0 -215
- package/src/runtime/emit/sequencing.ts +0 -24
- package/src/runtime/emit/set-operation.ts +0 -141
- package/src/runtime/emit/sink.ts +0 -27
- package/src/runtime/emit/sort.ts +0 -75
- package/src/runtime/emit/subquery.ts +0 -203
- package/src/runtime/emit/table-valued-function.ts +0 -106
- package/src/runtime/emit/temporal-arithmetic.ts +0 -302
- package/src/runtime/emit/transaction.ts +0 -205
- package/src/runtime/emit/unary.ts +0 -101
- package/src/runtime/emit/update.ts +0 -66
- package/src/runtime/emit/values.ts +0 -66
- package/src/runtime/emit/window-function.ts +0 -42
- package/src/runtime/emit/window.ts +0 -458
- package/src/runtime/emitters.ts +0 -183
- package/src/runtime/register.ts +0 -150
- package/src/runtime/scheduler.ts +0 -488
- package/src/runtime/types.ts +0 -242
- package/src/runtime/utils.ts +0 -177
- package/src/schema/assertion.ts +0 -21
- package/src/schema/catalog.ts +0 -269
- package/src/schema/change-events.ts +0 -80
- package/src/schema/column.ts +0 -51
- package/src/schema/declared-schema-manager.ts +0 -82
- package/src/schema/function.ts +0 -188
- package/src/schema/manager.ts +0 -1034
- package/src/schema/schema-differ.ts +0 -214
- package/src/schema/schema-hasher.ts +0 -26
- package/src/schema/schema.ts +0 -222
- package/src/schema/table.ts +0 -409
- package/src/schema/view.ts +0 -19
- package/src/schema/window-function.ts +0 -56
- package/src/types/builtin-types.ts +0 -350
- package/src/types/index.ts +0 -17
- package/src/types/json-type.ts +0 -152
- package/src/types/logical-type.ts +0 -91
- package/src/types/plugin-interface.ts +0 -10
- package/src/types/registry.ts +0 -204
- package/src/types/temporal-types.ts +0 -290
- package/src/types/validation.ts +0 -120
- package/src/util/affinity.ts +0 -151
- package/src/util/ast-stringify.ts +0 -887
- package/src/util/cached.ts +0 -25
- package/src/util/coercion.ts +0 -113
- package/src/util/comparison.ts +0 -510
- package/src/util/environment.ts +0 -52
- package/src/util/hash.ts +0 -90
- package/src/util/latches.ts +0 -47
- package/src/util/mutation-statement.ts +0 -135
- package/src/util/patterns.ts +0 -56
- package/src/util/plan-formatter.ts +0 -48
- package/src/util/plugin-helper.ts +0 -110
- package/src/util/row-descriptor.ts +0 -105
- package/src/util/serialization.ts +0 -47
- package/src/util/sql-literal.ts +0 -22
- package/src/util/working-table-iterable.ts +0 -38
- package/src/vtab/best-access-plan.ts +0 -244
- package/src/vtab/connection.ts +0 -36
- package/src/vtab/filter-info.ts +0 -23
- package/src/vtab/index-info.ts +0 -84
- package/src/vtab/manifest.ts +0 -86
- package/src/vtab/memory/connection.ts +0 -73
- package/src/vtab/memory/index.ts +0 -191
- package/src/vtab/memory/layer/base-cursor.ts +0 -124
- package/src/vtab/memory/layer/base.ts +0 -275
- package/src/vtab/memory/layer/connection.ts +0 -203
- package/src/vtab/memory/layer/interface.ts +0 -47
- package/src/vtab/memory/layer/manager.ts +0 -909
- package/src/vtab/memory/layer/safe-iterate.ts +0 -49
- package/src/vtab/memory/layer/scan-plan.ts +0 -84
- package/src/vtab/memory/layer/transaction-cursor.ts +0 -162
- package/src/vtab/memory/layer/transaction.ts +0 -229
- package/src/vtab/memory/module.ts +0 -667
- package/src/vtab/memory/table.ts +0 -251
- package/src/vtab/memory/types.ts +0 -23
- package/src/vtab/memory/utils/logging.ts +0 -36
- package/src/vtab/memory/utils/primary-key.ts +0 -163
- package/src/vtab/module.ts +0 -162
- package/src/vtab/table.ts +0 -177
|
@@ -1,334 +0,0 @@
|
|
|
1
|
-
import type { BaseType, ScalarType, RelationType } from '../../common/datatype.js';
|
|
2
|
-
import { PlanNode, type ZeroAryRelationalNode, type ZeroAryScalarNode, type Attribute } from './plan-node.js';
|
|
3
|
-
import { PlanNodeType } from './plan-node-type.js';
|
|
4
|
-
import type { TableSchema } from '../../schema/table.js';
|
|
5
|
-
import type { Scope } from '../scopes/scope.js';
|
|
6
|
-
import type * as AST from '../../parser/ast.js';
|
|
7
|
-
import { relationTypeFromTableSchema } from '../type-utils.js';
|
|
8
|
-
import { Cached } from '../../util/cached.js';
|
|
9
|
-
import type { FunctionSchema } from '../../schema/function.js';
|
|
10
|
-
import { isTableValuedFunctionSchema } from '../../schema/function.js';
|
|
11
|
-
import { formatScalarType } from '../../util/plan-formatter.js';
|
|
12
|
-
import { quereusError } from '../../common/errors.js';
|
|
13
|
-
import { StatusCode } from '../../common/types.js';
|
|
14
|
-
import type { AnyVirtualTableModule } from '../../vtab/module.js';
|
|
15
|
-
import type { ColumnBindingProvider } from '../framework/characteristics.js';
|
|
16
|
-
import type { TableAccessCapable } from '../framework/characteristics.js';
|
|
17
|
-
|
|
18
|
-
/** Represents a reference to a table in the global schema. */
|
|
19
|
-
export class TableReferenceNode extends PlanNode implements ZeroAryRelationalNode, TableAccessCapable, ColumnBindingProvider {
|
|
20
|
-
override readonly nodeType = PlanNodeType.TableReference;
|
|
21
|
-
|
|
22
|
-
private typeCache: Cached<RelationType>;
|
|
23
|
-
private attributesCache: Cached<Attribute[]>;
|
|
24
|
-
|
|
25
|
-
constructor(
|
|
26
|
-
scope: Scope,
|
|
27
|
-
public readonly tableSchema: TableSchema,
|
|
28
|
-
public readonly vtabModule: AnyVirtualTableModule,
|
|
29
|
-
public readonly vtabAuxData?: unknown,
|
|
30
|
-
estimatedCostOverride?: number
|
|
31
|
-
) {
|
|
32
|
-
super(scope, estimatedCostOverride ?? 1);
|
|
33
|
-
this.typeCache = new Cached(() => relationTypeFromTableSchema(tableSchema));
|
|
34
|
-
this.attributesCache = new Cached(() => {
|
|
35
|
-
// Create attributes from table schema columns
|
|
36
|
-
return this.tableSchema.columns.map((column) => ({
|
|
37
|
-
id: PlanNode.nextAttrId(),
|
|
38
|
-
name: column.name,
|
|
39
|
-
type: {
|
|
40
|
-
typeClass: 'scalar' as const,
|
|
41
|
-
logicalType: column.logicalType,
|
|
42
|
-
nullable: !column.notNull,
|
|
43
|
-
isReadOnly: false,
|
|
44
|
-
collationName: column.collation
|
|
45
|
-
},
|
|
46
|
-
sourceRelation: `${this.tableSchema.schemaName}.${this.tableSchema.name}`,
|
|
47
|
-
relationName: this.tableSchema.name
|
|
48
|
-
}));
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
getType(): RelationType {
|
|
53
|
-
return this.typeCache.value;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
getAttributes(): Attribute[] {
|
|
57
|
-
return this.attributesCache.value;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
getChildren(): readonly [] {
|
|
61
|
-
return [];
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
getRelations(): readonly [] {
|
|
65
|
-
return [];
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
withChildren(newChildren: readonly PlanNode[]): PlanNode {
|
|
69
|
-
if (newChildren.length !== 0) {
|
|
70
|
-
quereusError(`TableReferenceNode expects 0 children, got ${newChildren.length}`, StatusCode.INTERNAL);
|
|
71
|
-
}
|
|
72
|
-
return this; // No children, so no change
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
get estimatedRows(): number | undefined {
|
|
76
|
-
return this.tableSchema.estimatedRows;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
override toString(): string {
|
|
80
|
-
return `${this.tableSchema.schemaName}.${this.tableSchema.name}`;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
getAccessMethod(): 'sequential' | 'index-scan' | 'index-seek' | 'virtual' {
|
|
84
|
-
// Logical table reference - will be converted to physical by optimizer
|
|
85
|
-
return 'virtual';
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
// ColumnBindingProvider implementation
|
|
89
|
-
getBindingRelationName(): string {
|
|
90
|
-
return `${this.tableSchema.schemaName}.${this.tableSchema.name}`;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
getBindingAttributes(): ReadonlyArray<{ id: number; name: string }> {
|
|
94
|
-
return this.getAttributes().map(a => ({ id: a.id, name: a.name }));
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
getColumnIndexForAttribute(attributeId: number): number | undefined {
|
|
98
|
-
const attrs = this.getAttributes();
|
|
99
|
-
const idx = attrs.findIndex(a => a.id === attributeId);
|
|
100
|
-
return idx >= 0 ? idx : undefined;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
override getLogicalAttributes(): Record<string, unknown> {
|
|
104
|
-
return {
|
|
105
|
-
schema: this.tableSchema.schemaName,
|
|
106
|
-
table: this.tableSchema.name,
|
|
107
|
-
columns: this.tableSchema.columns.map(col => col.name),
|
|
108
|
-
estimates: {
|
|
109
|
-
rows: this.tableSchema.estimatedRows
|
|
110
|
-
}
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
export class TableFunctionReferenceNode extends PlanNode implements ZeroAryRelationalNode {
|
|
116
|
-
override readonly nodeType = PlanNodeType.TableFunctionReference;
|
|
117
|
-
|
|
118
|
-
private attributesCache: Cached<Attribute[]>;
|
|
119
|
-
|
|
120
|
-
constructor(
|
|
121
|
-
scope: Scope,
|
|
122
|
-
public readonly functionSchema: FunctionSchema,
|
|
123
|
-
estimatedCostOverride?: number
|
|
124
|
-
) {
|
|
125
|
-
super(scope, estimatedCostOverride ?? 1);
|
|
126
|
-
|
|
127
|
-
this.attributesCache = new Cached(() => {
|
|
128
|
-
// Create attributes from function schema return type
|
|
129
|
-
if (isTableValuedFunctionSchema(this.functionSchema)) {
|
|
130
|
-
return this.functionSchema.returnType.columns.map((column) => ({
|
|
131
|
-
id: PlanNode.nextAttrId(),
|
|
132
|
-
name: column.name,
|
|
133
|
-
type: column.type,
|
|
134
|
-
sourceRelation: `${this.functionSchema.name}()`,
|
|
135
|
-
relationName: this.functionSchema.name
|
|
136
|
-
}));
|
|
137
|
-
}
|
|
138
|
-
return [];
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
getType(): RelationType {
|
|
143
|
-
if (isTableValuedFunctionSchema(this.functionSchema)) {
|
|
144
|
-
return this.functionSchema.returnType;
|
|
145
|
-
}
|
|
146
|
-
quereusError(
|
|
147
|
-
`Function ${this.functionSchema.name} is not a table-valued function`,
|
|
148
|
-
StatusCode.INTERNAL
|
|
149
|
-
);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
getAttributes(): Attribute[] {
|
|
153
|
-
return this.attributesCache.value;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
getChildren(): readonly [] {
|
|
157
|
-
return [];
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
getRelations(): readonly [] {
|
|
161
|
-
return [];
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
withChildren(newChildren: readonly PlanNode[]): PlanNode {
|
|
165
|
-
if (newChildren.length !== 0) {
|
|
166
|
-
quereusError(`TableFunctionReferenceNode expects 0 children, got ${newChildren.length}`, StatusCode.INTERNAL);
|
|
167
|
-
}
|
|
168
|
-
return this; // No children, so no change
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
get estimatedRows(): number | undefined {
|
|
172
|
-
return 100; // Default estimate for table functions
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
override toString(): string {
|
|
176
|
-
return `${this.functionSchema.name}()`;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
override getLogicalAttributes(): Record<string, unknown> {
|
|
180
|
-
const props: Record<string, unknown> = {
|
|
181
|
-
function: this.functionSchema.name,
|
|
182
|
-
numArgs: this.functionSchema.numArgs
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
if (isTableValuedFunctionSchema(this.functionSchema)) {
|
|
186
|
-
props.columns = this.functionSchema.returnType.columns.map(col => col.name);
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
return props;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
/**
|
|
194
|
-
* Represents a reference to a column from a relational node.
|
|
195
|
-
* Uses attribute IDs for stable references across plan transformations.
|
|
196
|
-
*/
|
|
197
|
-
export class ColumnReferenceNode extends PlanNode implements ZeroAryScalarNode {
|
|
198
|
-
override readonly nodeType = PlanNodeType.ColumnReference;
|
|
199
|
-
|
|
200
|
-
constructor(
|
|
201
|
-
scope: Scope,
|
|
202
|
-
public readonly expression: AST.ColumnExpr, // Original AST expression for this reference
|
|
203
|
-
public readonly columnType: ScalarType,
|
|
204
|
-
public readonly attributeId: number, // Stable attribute ID instead of node reference
|
|
205
|
-
public readonly columnIndex: number, // Position in the row (for runtime efficiency)
|
|
206
|
-
) {
|
|
207
|
-
super(scope, 0);
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
getType(): ScalarType {
|
|
211
|
-
return this.columnType;
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
getChildren(): readonly [] {
|
|
215
|
-
return [];
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
getRelations(): readonly [] {
|
|
219
|
-
return [];
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
withChildren(newChildren: readonly PlanNode[]): PlanNode {
|
|
223
|
-
if (newChildren.length !== 0) {
|
|
224
|
-
quereusError(`ColumnReferenceNode expects 0 children, got ${newChildren.length}`, StatusCode.INTERNAL);
|
|
225
|
-
}
|
|
226
|
-
return this; // No children, so no change
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
override toString(): string {
|
|
230
|
-
const columnName = this.expression.alias ??
|
|
231
|
-
(this.expression.schema ? this.expression.schema + '.' : '') + this.expression.name;
|
|
232
|
-
return columnName;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
override getLogicalAttributes(): Record<string, unknown> {
|
|
236
|
-
return {
|
|
237
|
-
column: this.expression.alias ?? this.expression.name,
|
|
238
|
-
schema: this.expression.schema,
|
|
239
|
-
attributeId: this.attributeId,
|
|
240
|
-
resultType: formatScalarType(this.columnType)
|
|
241
|
-
};
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
/**
|
|
246
|
-
* Represents a reference to a parameter (placeholder in a prepared statement).
|
|
247
|
-
* The actual value will be provided at execution time.
|
|
248
|
-
*/
|
|
249
|
-
export class ParameterReferenceNode extends PlanNode implements ZeroAryScalarNode {
|
|
250
|
-
override readonly nodeType = PlanNodeType.ParameterReference;
|
|
251
|
-
|
|
252
|
-
constructor(
|
|
253
|
-
scope: Scope,
|
|
254
|
-
public readonly expression: AST.ParameterExpr, // Original AST expression for this parameter
|
|
255
|
-
public readonly nameOrIndex: string | number, // Parameter name (e.g., ':foo') or 1-based index
|
|
256
|
-
public readonly targetType: ScalarType,
|
|
257
|
-
) {
|
|
258
|
-
super(scope, 0.01);
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
getType(): ScalarType {
|
|
262
|
-
return this.targetType;
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
getChildren(): readonly [] {
|
|
266
|
-
return [];
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
getRelations(): readonly [] {
|
|
270
|
-
return [];
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
withChildren(newChildren: readonly PlanNode[]): PlanNode {
|
|
274
|
-
if (newChildren.length !== 0) {
|
|
275
|
-
quereusError(`ParameterReferenceNode expects 0 children, got ${newChildren.length}`, StatusCode.INTERNAL);
|
|
276
|
-
}
|
|
277
|
-
return this; // No children, so no change
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
override toString(): string {
|
|
281
|
-
return `:${this.nameOrIndex}`;
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
override getLogicalAttributes(): Record<string, unknown> {
|
|
285
|
-
return {
|
|
286
|
-
parameter: this.nameOrIndex,
|
|
287
|
-
resultType: formatScalarType(this.targetType)
|
|
288
|
-
};
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
export class FunctionReferenceNode extends PlanNode {
|
|
293
|
-
override readonly nodeType = PlanNodeType.TableFunctionReference;
|
|
294
|
-
|
|
295
|
-
constructor(
|
|
296
|
-
scope: Scope,
|
|
297
|
-
public readonly functionSchema: FunctionSchema,
|
|
298
|
-
public readonly targetType: BaseType,
|
|
299
|
-
) {
|
|
300
|
-
super(scope);
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
// Type has to be determined by scalar or relation call node
|
|
304
|
-
getType(): BaseType {
|
|
305
|
-
return this.targetType;
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
getChildren(): readonly [] {
|
|
309
|
-
return [];
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
getRelations(): readonly [] {
|
|
313
|
-
return [];
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
withChildren(newChildren: readonly PlanNode[]): PlanNode {
|
|
317
|
-
if (newChildren.length !== 0) {
|
|
318
|
-
quereusError(`FunctionReferenceNode expects 0 children, got ${newChildren.length}`, StatusCode.INTERNAL);
|
|
319
|
-
}
|
|
320
|
-
return this; // No children, so no change
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
override toString(): string {
|
|
324
|
-
return `${this.functionSchema.name}`;
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
override getLogicalAttributes(): Record<string, unknown> {
|
|
328
|
-
return {
|
|
329
|
-
function: this.functionSchema.name,
|
|
330
|
-
numArgs: this.functionSchema.numArgs,
|
|
331
|
-
targetType: this.targetType.typeClass
|
|
332
|
-
};
|
|
333
|
-
}
|
|
334
|
-
}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import type { RelationType } from '../../common/datatype.js';
|
|
2
|
-
import { PlanNode, type RelationalPlanNode, type Attribute, type UnaryRelationalNode } from './plan-node.js';
|
|
3
|
-
import { PlanNodeType } from './plan-node-type.js';
|
|
4
|
-
import type { Scope } from '../scopes/scope.js';
|
|
5
|
-
import type { TableReferenceNode } from './reference.js';
|
|
6
|
-
import type { AnyVirtualTableModule } from '../../vtab/module.js';
|
|
7
|
-
import { Cached } from '../../util/cached.js';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* RemoteQueryNode represents a physical node for executing a pushed-down
|
|
11
|
-
* query pipeline in a virtual table module that supports arbitrary queries.
|
|
12
|
-
*/
|
|
13
|
-
export class RemoteQueryNode extends PlanNode implements UnaryRelationalNode {
|
|
14
|
-
override readonly nodeType = PlanNodeType.RemoteQuery;
|
|
15
|
-
|
|
16
|
-
private typeCache: Cached<RelationType>;
|
|
17
|
-
|
|
18
|
-
constructor(
|
|
19
|
-
scope: Scope,
|
|
20
|
-
/** The pipeline of operations the virtual table module will execute */
|
|
21
|
-
public readonly source: RelationalPlanNode,
|
|
22
|
-
/** The table reference at the leaf of the pipeline */
|
|
23
|
-
public readonly tableRef: TableReferenceNode,
|
|
24
|
-
/** Optional context data from the module's supports() assessment */
|
|
25
|
-
public readonly moduleCtx?: unknown
|
|
26
|
-
) {
|
|
27
|
-
super(scope, source.getTotalCost());
|
|
28
|
-
this.typeCache = new Cached(() => this.source.getType());
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
override getChildren(): readonly PlanNode[] {
|
|
32
|
-
return [this.source];
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
override withChildren(newChildren: readonly PlanNode[]): RemoteQueryNode {
|
|
36
|
-
if (newChildren.length !== 1) {
|
|
37
|
-
throw new Error('RemoteQueryNode requires exactly one child');
|
|
38
|
-
}
|
|
39
|
-
const newSource = newChildren[0] as RelationalPlanNode;
|
|
40
|
-
return new RemoteQueryNode(this.scope, newSource, this.tableRef, this.moduleCtx);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
getType(): RelationType {
|
|
44
|
-
return this.typeCache.value;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
getAttributes(): readonly Attribute[] {
|
|
48
|
-
return this.source.getAttributes();
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
getRelations(): readonly [RelationalPlanNode] {
|
|
52
|
-
return [this.source];
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/** Get the virtual table module for this remote query node */
|
|
56
|
-
get vtabModule(): AnyVirtualTableModule {
|
|
57
|
-
return this.tableRef.vtabModule;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
override toString(): string {
|
|
61
|
-
if (this.source === this.tableRef) {
|
|
62
|
-
return `REMOTE QUERY ${this.tableRef.tableSchema.name}`;
|
|
63
|
-
}
|
|
64
|
-
return `REMOTE QUERY pipeline over ${this.tableRef.tableSchema.name}`;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
getLogicalProperties(): Record<string, unknown> {
|
|
68
|
-
return {
|
|
69
|
-
table: this.tableRef.tableSchema.name,
|
|
70
|
-
moduleContext: this.moduleCtx,
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import type { RelationType } from '../../common/datatype.js';
|
|
2
|
-
import { PlanNode, type RelationalPlanNode, type Attribute, type UnaryRelationalNode, ScalarPlanNode } from './plan-node.js';
|
|
3
|
-
import { PlanNodeType } from './plan-node-type.js';
|
|
4
|
-
import type { Scope } from '../scopes/scope.js';
|
|
5
|
-
import type { TableReferenceNode } from './reference.js';
|
|
6
|
-
import type { AnyVirtualTableModule } from '../../vtab/module.js';
|
|
7
|
-
import { Cached } from '../../util/cached.js';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* RetrieveNode represents the boundary between virtual table module execution and Quereus execution.
|
|
11
|
-
* It wraps a (source) pipeline of logical operators that will be pushed down to the virtual table module for execution.
|
|
12
|
-
*
|
|
13
|
-
* The pipeline always ends with a TableReferenceNode as the leaf, and may contain additional operators (Filter, Project, etc.)
|
|
14
|
-
* that the module indicated via its supports() method that it can handle.
|
|
15
|
-
*/
|
|
16
|
-
export class RetrieveNode extends PlanNode implements UnaryRelationalNode {
|
|
17
|
-
override readonly nodeType = PlanNodeType.Retrieve;
|
|
18
|
-
|
|
19
|
-
private typeCache: Cached<RelationType>;
|
|
20
|
-
|
|
21
|
-
constructor(
|
|
22
|
-
scope: Scope,
|
|
23
|
-
/** The pipeline of operations the virtual table module will execute */
|
|
24
|
-
public readonly source: RelationalPlanNode,
|
|
25
|
-
/** The table reference at the leaf of the pipeline */
|
|
26
|
-
public readonly tableRef: TableReferenceNode,
|
|
27
|
-
/** Optional context data from the module's supports() assessment */
|
|
28
|
-
public readonly moduleCtx?: unknown,
|
|
29
|
-
/** Captured binding expressions used by the enveloped pipeline (params/correlated) */
|
|
30
|
-
public readonly bindings?: ReadonlyArray<ScalarPlanNode>
|
|
31
|
-
) {
|
|
32
|
-
super(scope, source.getTotalCost());
|
|
33
|
-
this.typeCache = new Cached(() => this.source.getType());
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
override getChildren(): readonly PlanNode[] {
|
|
37
|
-
return [this.source];
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
override withChildren(newChildren: readonly PlanNode[]): RetrieveNode {
|
|
41
|
-
if (newChildren.length !== 1) {
|
|
42
|
-
throw new Error('RetrieveNode requires exactly one child');
|
|
43
|
-
}
|
|
44
|
-
const newSource = newChildren[0] as RelationalPlanNode;
|
|
45
|
-
return new RetrieveNode(this.scope, newSource, this.tableRef, this.moduleCtx, this.bindings);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
getType(): RelationType {
|
|
49
|
-
return this.typeCache.value;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
getAttributes(): readonly Attribute[] {
|
|
53
|
-
return this.source.getAttributes();
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
getRelations(): readonly [RelationalPlanNode] {
|
|
57
|
-
return [this.source];
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/** Get the virtual table module for this retrieve node */
|
|
61
|
-
get vtabModule(): AnyVirtualTableModule {
|
|
62
|
-
return this.tableRef.vtabModule;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/** Create a new RetrieveNode with updated source pipeline and module context */
|
|
66
|
-
withPipeline(newSource: RelationalPlanNode, newModuleCtx?: unknown, newBindings?: ReadonlyArray<ScalarPlanNode>): RetrieveNode {
|
|
67
|
-
return new RetrieveNode(this.scope, newSource, this.tableRef, newModuleCtx, newBindings ?? this.bindings);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
override toString(): string {
|
|
71
|
-
if (this.source === this.tableRef) {
|
|
72
|
-
return `RETRIEVE ${this.tableRef.tableSchema.name}`;
|
|
73
|
-
}
|
|
74
|
-
return `RETRIEVE pipeline over ${this.tableRef.tableSchema.name}`;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
override getLogicalAttributes(): Record<string, unknown> {
|
|
78
|
-
const bindingNodeTypes = (this.bindings ?? []).map(b => b.nodeType);
|
|
79
|
-
return {
|
|
80
|
-
table: this.tableRef.tableSchema.name,
|
|
81
|
-
moduleContext: this.moduleCtx,
|
|
82
|
-
bindingsCount: bindingNodeTypes.length,
|
|
83
|
-
bindingsNodeTypes: bindingNodeTypes,
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
}
|