@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
package/src/parser/ast.ts
DELETED
|
@@ -1,581 +0,0 @@
|
|
|
1
|
-
import type { MaybePromise, RowOp, SqlValue } from '../common/types.js';
|
|
2
|
-
import type { ConflictResolution } from '../common/constants.js';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* SQL Abstract Syntax Tree (AST) definitions
|
|
6
|
-
* These interfaces define the structure of parsed SQL statements
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
// Base for all AST nodes
|
|
10
|
-
export interface AstNode {
|
|
11
|
-
type: 'literal' | 'identifier' | 'column' | 'binary' | 'unary' | 'function' | 'cast' | 'parameter' | 'subquery' | 'select'
|
|
12
|
-
| 'insert' | 'update' | 'delete' | 'createTable' | 'createIndex' | 'createView' | 'createAssertion' | 'alterTable' | 'drop' | 'begin' | 'commit'
|
|
13
|
-
| 'rollback' | 'table' | 'join' | 'savepoint' | 'release' | 'functionSource' | 'with' | 'commonTableExpr' | 'pragma'
|
|
14
|
-
| 'collate' | 'primaryKey' | 'notNull' | 'null' | 'unique' | 'check' | 'default' | 'foreignKey' | 'generated' | 'windowFunction'
|
|
15
|
-
| 'windowDefinition' | 'windowFrame' | 'currentRow' | 'unboundedPreceding' | 'unboundedFollowing' | 'preceding' | 'following'
|
|
16
|
-
| 'subquerySource' | 'mutatingSubquerySource' | 'case' | 'in' | 'exists' | 'values' | 'between'
|
|
17
|
-
| 'declareSchema' | 'diffSchema' | 'applySchema' | 'explainSchema'
|
|
18
|
-
| 'declaredTable' | 'declaredIndex' | 'declaredView' | 'declaredSeed' | 'declareIgnored';
|
|
19
|
-
loc?: {
|
|
20
|
-
start: { line: number, column: number, offset: number };
|
|
21
|
-
end: { line: number, column: number, offset: number };
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// Expression types
|
|
26
|
-
export type Expression = LiteralExpr | IdentifierExpr | BinaryExpr | UnaryExpr | FunctionExpr | CastExpr
|
|
27
|
-
| ParameterExpr | SubqueryExpr | ColumnExpr | FunctionSource | CollateExpr | WindowFunctionExpr | CaseExpr
|
|
28
|
-
| InExpr | ExistsExpr | BetweenExpr;
|
|
29
|
-
|
|
30
|
-
// Literal value expression (number, string, null, etc.)
|
|
31
|
-
export interface LiteralExpr extends AstNode {
|
|
32
|
-
type: 'literal';
|
|
33
|
-
value: MaybePromise<SqlValue>;
|
|
34
|
-
lexeme?: string; // Optional: Original text representation, e.g., for numbers like '2.0'
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
// Identifier expression (table name or pragma name)
|
|
38
|
-
export interface IdentifierExpr extends AstNode {
|
|
39
|
-
type: 'identifier';
|
|
40
|
-
name: string;
|
|
41
|
-
schema?: string; // Optional schema qualifier
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// Column reference expression
|
|
45
|
-
export interface ColumnExpr extends AstNode {
|
|
46
|
-
type: 'column';
|
|
47
|
-
name: string;
|
|
48
|
-
table?: string; // Optional table qualifier
|
|
49
|
-
schema?: string; // Optional schema qualifier
|
|
50
|
-
alias?: string; // Optional column alias
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// Binary operation expression
|
|
54
|
-
export interface BinaryExpr extends AstNode {
|
|
55
|
-
type: 'binary';
|
|
56
|
-
operator: string; // +, -, *, /, AND, OR, =, <, etc.
|
|
57
|
-
left: Expression;
|
|
58
|
-
right: Expression;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// Unary operation expression
|
|
62
|
-
export interface UnaryExpr extends AstNode {
|
|
63
|
-
type: 'unary';
|
|
64
|
-
operator: string; // NOT, -, +, etc.
|
|
65
|
-
expr: Expression;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// Function call expression
|
|
69
|
-
export interface FunctionExpr extends AstNode {
|
|
70
|
-
type: 'function';
|
|
71
|
-
name: string;
|
|
72
|
-
args: Expression[];
|
|
73
|
-
distinct?: boolean; // For DISTINCT in aggregate functions like COUNT(DISTINCT col)
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
// Window function expression
|
|
77
|
-
export interface WindowFunctionExpr extends AstNode {
|
|
78
|
-
type: 'windowFunction';
|
|
79
|
-
function: FunctionExpr;
|
|
80
|
-
window?: WindowDefinition;
|
|
81
|
-
alias?: string;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
// Window definition (OVER clause)
|
|
85
|
-
export interface WindowDefinition extends AstNode {
|
|
86
|
-
type: 'windowDefinition';
|
|
87
|
-
partitionBy?: Expression[];
|
|
88
|
-
orderBy?: OrderByClause[];
|
|
89
|
-
frame?: WindowFrame;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
// Window frame clause
|
|
93
|
-
export interface WindowFrame {
|
|
94
|
-
type: WindowFrameUnits; // Changed from 'windowFrame' to WindowFrameUnits
|
|
95
|
-
start: WindowFrameBound;
|
|
96
|
-
end: WindowFrameBound | null; // Can be just START bound
|
|
97
|
-
exclusion?: WindowFrameExclusion;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
// Window frame bound
|
|
101
|
-
export type WindowFrameBound =
|
|
102
|
-
| { type: 'currentRow' }
|
|
103
|
-
| { type: 'unboundedPreceding' }
|
|
104
|
-
| { type: 'unboundedFollowing' }
|
|
105
|
-
| { type: 'preceding', value: Expression }
|
|
106
|
-
| { type: 'following', value: Expression };
|
|
107
|
-
|
|
108
|
-
// Window frame units
|
|
109
|
-
export type WindowFrameUnits = 'rows' | 'range';
|
|
110
|
-
|
|
111
|
-
// Window frame exclusion
|
|
112
|
-
export type WindowFrameExclusion = 'no others' | 'current row' | 'group' | 'ties';
|
|
113
|
-
|
|
114
|
-
// CAST expression
|
|
115
|
-
export interface CastExpr extends AstNode {
|
|
116
|
-
type: 'cast';
|
|
117
|
-
expr: Expression;
|
|
118
|
-
targetType: string;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
// Parameter expression (? or :name or $name)
|
|
122
|
-
export interface ParameterExpr extends AstNode {
|
|
123
|
-
type: 'parameter';
|
|
124
|
-
index?: number; // For positional parameters (?)
|
|
125
|
-
name?: string; // For named parameters (:name or $name)
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
// Subquery expression
|
|
129
|
-
export interface SubqueryExpr extends AstNode {
|
|
130
|
-
type: 'subquery';
|
|
131
|
-
query: SelectStmt;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
// BETWEEN expression
|
|
135
|
-
export interface BetweenExpr extends AstNode {
|
|
136
|
-
type: 'between';
|
|
137
|
-
expr: Expression; // Left side of BETWEEN
|
|
138
|
-
lower: Expression; // Lower bound
|
|
139
|
-
upper: Expression; // Upper bound
|
|
140
|
-
not?: boolean; // For NOT BETWEEN
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
// IN expression
|
|
144
|
-
export interface InExpr extends AstNode {
|
|
145
|
-
type: 'in';
|
|
146
|
-
expr: Expression; // Left side of IN
|
|
147
|
-
values?: Expression[]; // For IN (value1, value2, ...)
|
|
148
|
-
subquery?: SelectStmt; // For IN (SELECT ...)
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
// EXISTS expression
|
|
152
|
-
export interface ExistsExpr extends AstNode {
|
|
153
|
-
type: 'exists';
|
|
154
|
-
subquery: SelectStmt; // EXISTS (SELECT ...)
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
// --- Statement Types ---
|
|
158
|
-
|
|
159
|
-
// --- Add FunctionSource type ---
|
|
160
|
-
export interface FunctionSource extends AstNode {
|
|
161
|
-
type: 'functionSource';
|
|
162
|
-
name: IdentifierExpr; // Function name (potentially schema.name)
|
|
163
|
-
args: Expression[]; // Arguments passed to the function
|
|
164
|
-
alias?: string; // Optional alias for the generated table
|
|
165
|
-
columns?: string[]; // Optional column list after alias: alias(col1, col2, ...)
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
// SELECT statement
|
|
169
|
-
export interface SelectStmt extends AstNode {
|
|
170
|
-
type: 'select';
|
|
171
|
-
withClause?: WithClause;
|
|
172
|
-
columns: ResultColumn[];
|
|
173
|
-
from?: FromClause[];
|
|
174
|
-
where?: Expression;
|
|
175
|
-
groupBy?: Expression[];
|
|
176
|
-
having?: Expression;
|
|
177
|
-
orderBy?: OrderByClause[];
|
|
178
|
-
limit?: Expression;
|
|
179
|
-
offset?: Expression;
|
|
180
|
-
distinct?: boolean;
|
|
181
|
-
all?: boolean;
|
|
182
|
-
union?: SelectStmt;
|
|
183
|
-
unionAll?: boolean;
|
|
184
|
-
compound?: { op: 'union' | 'unionAll' | 'intersect' | 'except' | 'diff'; select: SelectStmt };
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
// INSERT statement
|
|
188
|
-
export interface InsertStmt extends AstNode {
|
|
189
|
-
type: 'insert';
|
|
190
|
-
withClause?: WithClause;
|
|
191
|
-
table: IdentifierExpr;
|
|
192
|
-
columns?: string[];
|
|
193
|
-
values?: Expression[][]; // For VALUES (...), (...), ...
|
|
194
|
-
select?: SelectStmt; // For INSERT ... SELECT
|
|
195
|
-
onConflict?: ConflictResolution;
|
|
196
|
-
returning?: ResultColumn[];
|
|
197
|
-
contextValues?: ContextAssignment[]; // Optional mutation context assignments
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
// UPDATE statement
|
|
201
|
-
export interface UpdateStmt extends AstNode {
|
|
202
|
-
type: 'update';
|
|
203
|
-
withClause?: WithClause;
|
|
204
|
-
table: IdentifierExpr;
|
|
205
|
-
assignments: { column: string; value: Expression }[];
|
|
206
|
-
where?: Expression;
|
|
207
|
-
onConflict?: ConflictResolution;
|
|
208
|
-
returning?: ResultColumn[];
|
|
209
|
-
contextValues?: ContextAssignment[]; // Optional mutation context assignments
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
// DELETE statement
|
|
213
|
-
export interface DeleteStmt extends AstNode {
|
|
214
|
-
type: 'delete';
|
|
215
|
-
withClause?: WithClause;
|
|
216
|
-
table: IdentifierExpr;
|
|
217
|
-
where?: Expression;
|
|
218
|
-
returning?: ResultColumn[];
|
|
219
|
-
contextValues?: ContextAssignment[]; // Optional mutation context assignments
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
// VALUES statement
|
|
223
|
-
export interface ValuesStmt extends AstNode {
|
|
224
|
-
type: 'values';
|
|
225
|
-
values: Expression[][]; // Array of value lists: VALUES (1, 'a'), (2, 'b'), ...
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
// CREATE TABLE statement
|
|
229
|
-
export interface CreateTableStmt extends AstNode {
|
|
230
|
-
type: 'createTable';
|
|
231
|
-
table: IdentifierExpr;
|
|
232
|
-
ifNotExists: boolean;
|
|
233
|
-
columns: ColumnDef[];
|
|
234
|
-
constraints: TableConstraint[];
|
|
235
|
-
isTemporary?: boolean;
|
|
236
|
-
moduleName?: string; // Optional module name from USING clause
|
|
237
|
-
moduleArgs?: Record<string, SqlValue>; // Optional module arguments from USING clause
|
|
238
|
-
contextDefinitions?: MutationContextVar[]; // Optional mutation context variables
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
// CREATE INDEX statement
|
|
242
|
-
export interface CreateIndexStmt extends AstNode {
|
|
243
|
-
type: 'createIndex';
|
|
244
|
-
index: IdentifierExpr;
|
|
245
|
-
table: IdentifierExpr;
|
|
246
|
-
ifNotExists: boolean;
|
|
247
|
-
columns: IndexedColumn[];
|
|
248
|
-
where?: Expression;
|
|
249
|
-
isUnique?: boolean;
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
// CREATE ASSERTION statement
|
|
253
|
-
export interface CreateAssertionStmt extends AstNode {
|
|
254
|
-
type: 'createAssertion';
|
|
255
|
-
name: string;
|
|
256
|
-
check: Expression; // The CHECK (<violation-query>) expression
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
// CREATE VIEW statement
|
|
260
|
-
export interface CreateViewStmt extends AstNode {
|
|
261
|
-
type: 'createView';
|
|
262
|
-
view: IdentifierExpr;
|
|
263
|
-
ifNotExists: boolean;
|
|
264
|
-
columns?: string[];
|
|
265
|
-
select: SelectStmt;
|
|
266
|
-
isTemporary?: boolean;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
// ALTER TABLE statement
|
|
270
|
-
export interface AlterTableStmt extends AstNode {
|
|
271
|
-
type: 'alterTable';
|
|
272
|
-
table: IdentifierExpr;
|
|
273
|
-
action: AlterTableAction;
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
// DROP statement
|
|
277
|
-
export interface DropStmt extends AstNode {
|
|
278
|
-
type: 'drop';
|
|
279
|
-
objectType: 'table' | 'view' | 'index' | 'trigger' | 'assertion';
|
|
280
|
-
name: IdentifierExpr;
|
|
281
|
-
ifExists: boolean;
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
// TRANSACTION statements
|
|
285
|
-
export interface BeginStmt extends AstNode {
|
|
286
|
-
type: 'begin';
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
export interface CommitStmt extends AstNode {
|
|
290
|
-
type: 'commit';
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
export interface RollbackStmt extends AstNode {
|
|
294
|
-
type: 'rollback';
|
|
295
|
-
savepoint?: string;
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
// --- Add Savepoint/Release ---
|
|
299
|
-
export interface SavepointStmt extends AstNode {
|
|
300
|
-
type: 'savepoint';
|
|
301
|
-
name: string;
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
export interface ReleaseStmt extends AstNode {
|
|
305
|
-
type: 'release';
|
|
306
|
-
savepoint?: string; // Optional savepoint name
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
// --- Supporting Types ---
|
|
310
|
-
|
|
311
|
-
export type ResultColumnExpr = {
|
|
312
|
-
type: 'column',
|
|
313
|
-
expr: Expression,
|
|
314
|
-
alias?: string
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
// Result column in SELECT
|
|
318
|
-
export type ResultColumn =
|
|
319
|
-
| { type: 'all', table?: string }
|
|
320
|
-
| ResultColumnExpr;
|
|
321
|
-
|
|
322
|
-
// FROM clause item (table, join, function call, or subquery)
|
|
323
|
-
export type FromClause = TableSource | JoinClause | FunctionSource | SubquerySource | MutatingSubquerySource;
|
|
324
|
-
|
|
325
|
-
// Table source in FROM clause
|
|
326
|
-
export interface TableSource extends AstNode {
|
|
327
|
-
type: 'table';
|
|
328
|
-
table: IdentifierExpr;
|
|
329
|
-
alias?: string;
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
// Subquery source in FROM clause: (SELECT ...) AS alias
|
|
333
|
-
export interface SubquerySource extends AstNode {
|
|
334
|
-
type: 'subquerySource';
|
|
335
|
-
subquery: SelectStmt | ValuesStmt;
|
|
336
|
-
alias: string;
|
|
337
|
-
columns?: string[]; // Optional column list: AS alias(col1, col2, ...)
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
// Mutating subquery source in FROM clause: (INSERT/UPDATE/DELETE ... RETURNING ...) AS alias
|
|
341
|
-
export interface MutatingSubquerySource extends AstNode {
|
|
342
|
-
type: 'mutatingSubquerySource';
|
|
343
|
-
stmt: InsertStmt | UpdateStmt | DeleteStmt; // Must have RETURNING clause
|
|
344
|
-
alias: string;
|
|
345
|
-
columns?: string[]; // Optional column list: AS alias(col1, col2, ...)
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
// JOIN clause in FROM
|
|
349
|
-
export interface JoinClause extends AstNode {
|
|
350
|
-
type: 'join';
|
|
351
|
-
joinType: 'inner' | 'left' | 'right' | 'full' | 'cross';
|
|
352
|
-
left: FromClause;
|
|
353
|
-
right: FromClause;
|
|
354
|
-
condition?: Expression; // For ON clause
|
|
355
|
-
columns?: string[]; // For USING clause
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
// ORDER BY clause
|
|
359
|
-
export interface OrderByClause {
|
|
360
|
-
expr: Expression;
|
|
361
|
-
direction: 'asc' | 'desc';
|
|
362
|
-
nulls?: 'first' | 'last';
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
// Column definition in CREATE TABLE
|
|
366
|
-
export interface ColumnDef {
|
|
367
|
-
name: string;
|
|
368
|
-
dataType?: string;
|
|
369
|
-
constraints: ColumnConstraint[];
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
// Mutation context variable definition
|
|
373
|
-
export interface MutationContextVar {
|
|
374
|
-
name: string;
|
|
375
|
-
dataType?: string;
|
|
376
|
-
notNull?: boolean;
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
// Mutation context assignment
|
|
380
|
-
export interface ContextAssignment {
|
|
381
|
-
name: string;
|
|
382
|
-
value: Expression;
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
// Column constraint (PRIMARY KEY, NOT NULL, etc.)
|
|
386
|
-
export interface ColumnConstraint extends AstNode {
|
|
387
|
-
type: 'primaryKey' | 'notNull' | 'null' | 'unique' | 'check' | 'default' | 'foreignKey' | 'collate' | 'generated';
|
|
388
|
-
name?: string;
|
|
389
|
-
expr?: Expression; // For CHECK or DEFAULT
|
|
390
|
-
operations?: RowOp[]; // ADDED: For CHECK ON (...)
|
|
391
|
-
collation?: string; // For COLLATE
|
|
392
|
-
autoincrement?: boolean; // For PRIMARY KEY AUTOINCREMENT
|
|
393
|
-
direction?: 'asc' | 'desc'; // ADDED: For PRIMARY KEY ASC/DESC
|
|
394
|
-
onConflict?: ConflictResolution;
|
|
395
|
-
foreignKey?: ForeignKeyClause;
|
|
396
|
-
generated?: {
|
|
397
|
-
expr: Expression;
|
|
398
|
-
stored: boolean; // STORED or VIRTUAL
|
|
399
|
-
};
|
|
400
|
-
deferrable?: boolean;
|
|
401
|
-
initiallyDeferred?: boolean;
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
// Table constraint (PRIMARY KEY, UNIQUE, etc.)
|
|
405
|
-
export interface TableConstraint extends AstNode {
|
|
406
|
-
type: 'primaryKey' | 'unique' | 'check' | 'foreignKey';
|
|
407
|
-
name?: string;
|
|
408
|
-
columns?: { name: string; direction?: 'asc' | 'desc' }[];
|
|
409
|
-
expr?: Expression; // For CHECK
|
|
410
|
-
operations?: RowOp[]; // ADDED: For CHECK ON (...)
|
|
411
|
-
onConflict?: ConflictResolution;
|
|
412
|
-
foreignKey?: ForeignKeyClause;
|
|
413
|
-
deferrable?: boolean;
|
|
414
|
-
initiallyDeferred?: boolean;
|
|
415
|
-
}
|
|
416
|
-
|
|
417
|
-
// Foreign key clause
|
|
418
|
-
export interface ForeignKeyClause {
|
|
419
|
-
table: string;
|
|
420
|
-
columns?: string[];
|
|
421
|
-
onDelete?: ForeignKeyAction;
|
|
422
|
-
onUpdate?: ForeignKeyAction;
|
|
423
|
-
deferrable?: boolean;
|
|
424
|
-
initiallyDeferred?: boolean;
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
// Foreign key action
|
|
428
|
-
export type ForeignKeyAction = 'setNull' | 'setDefault' | 'cascade' | 'restrict' | 'noAction';
|
|
429
|
-
|
|
430
|
-
// Column in index definition
|
|
431
|
-
export interface IndexedColumn {
|
|
432
|
-
name?: string; // Column name
|
|
433
|
-
expr?: Expression; // Or expression
|
|
434
|
-
collation?: string;
|
|
435
|
-
direction?: 'asc' | 'desc';
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
// Alter table action
|
|
439
|
-
export type AlterTableAction =
|
|
440
|
-
| { type: 'renameTable', newName: string }
|
|
441
|
-
| { type: 'renameColumn', oldName: string, newName: string }
|
|
442
|
-
| { type: 'addColumn', column: ColumnDef }
|
|
443
|
-
| { type: 'dropColumn', name: string }
|
|
444
|
-
| { type: 'addConstraint', constraint: TableConstraint };
|
|
445
|
-
|
|
446
|
-
// Add PragmaStmt interface
|
|
447
|
-
export interface PragmaStmt extends AstNode {
|
|
448
|
-
type: 'pragma';
|
|
449
|
-
name: string; // Name of the pragma
|
|
450
|
-
value?: LiteralExpr | IdentifierExpr; // Value being assigned (optional for some pragmas)
|
|
451
|
-
}
|
|
452
|
-
|
|
453
|
-
export interface WithClause extends AstNode {
|
|
454
|
-
type: 'with';
|
|
455
|
-
recursive: boolean;
|
|
456
|
-
ctes: CommonTableExpr[];
|
|
457
|
-
options?: WithClauseOptions;
|
|
458
|
-
}
|
|
459
|
-
|
|
460
|
-
export interface WithClauseOptions {
|
|
461
|
-
maxRecursion?: number;
|
|
462
|
-
}
|
|
463
|
-
|
|
464
|
-
export interface CommonTableExpr extends AstNode {
|
|
465
|
-
type: 'commonTableExpr';
|
|
466
|
-
name: string;
|
|
467
|
-
columns?: string[];
|
|
468
|
-
query: SelectStmt | InsertStmt | UpdateStmt | DeleteStmt; // CTE body
|
|
469
|
-
materializationHint?: 'materialized' | 'not_materialized';
|
|
470
|
-
}
|
|
471
|
-
|
|
472
|
-
/**
|
|
473
|
-
* Represents a COLLATE expression in SQL, which specifies the collation sequence
|
|
474
|
-
* to use for a string operation
|
|
475
|
-
*/
|
|
476
|
-
export interface CollateExpr extends AstNode {
|
|
477
|
-
type: 'collate';
|
|
478
|
-
expr: Expression;
|
|
479
|
-
collation: string;
|
|
480
|
-
}
|
|
481
|
-
|
|
482
|
-
export interface CaseExprWhenThenClause {
|
|
483
|
-
when: Expression;
|
|
484
|
-
then: Expression;
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
export interface CaseExpr extends AstNode {
|
|
488
|
-
type: 'case'; // New type
|
|
489
|
-
baseExpr?: Expression; // Optional: for CASE expr WHEN ...
|
|
490
|
-
whenThenClauses: CaseExprWhenThenClause[];
|
|
491
|
-
elseExpr?: Expression; // Optional: for ELSE ...
|
|
492
|
-
}
|
|
493
|
-
|
|
494
|
-
// --- Utility Type for Top-Level Statements ---
|
|
495
|
-
export type Statement =
|
|
496
|
-
| SelectStmt
|
|
497
|
-
| InsertStmt
|
|
498
|
-
| UpdateStmt
|
|
499
|
-
| DeleteStmt
|
|
500
|
-
| ValuesStmt
|
|
501
|
-
| CreateTableStmt
|
|
502
|
-
| CreateIndexStmt
|
|
503
|
-
| CreateViewStmt
|
|
504
|
-
| CreateAssertionStmt
|
|
505
|
-
| DropStmt
|
|
506
|
-
| AlterTableStmt
|
|
507
|
-
| BeginStmt
|
|
508
|
-
| CommitStmt
|
|
509
|
-
| RollbackStmt
|
|
510
|
-
| SavepointStmt
|
|
511
|
-
| ReleaseStmt
|
|
512
|
-
| PragmaStmt
|
|
513
|
-
| DeclareSchemaStmt
|
|
514
|
-
| DiffSchemaStmt
|
|
515
|
-
| ApplySchemaStmt
|
|
516
|
-
| ExplainSchemaStmt;
|
|
517
|
-
|
|
518
|
-
// === Declarative Schema AST ===
|
|
519
|
-
|
|
520
|
-
export interface DeclareSchemaStmt extends AstNode {
|
|
521
|
-
type: 'declareSchema';
|
|
522
|
-
schemaName?: string;
|
|
523
|
-
version?: string;
|
|
524
|
-
using?: { defaultVtabModule?: string; defaultVtabArgs?: string };
|
|
525
|
-
items: readonly DeclareItem[];
|
|
526
|
-
}
|
|
527
|
-
|
|
528
|
-
export type DeclareItem = DeclaredTable | DeclaredIndex | DeclaredView | DeclaredSeed | DeclareIgnoredItem;
|
|
529
|
-
|
|
530
|
-
export interface DeclaredTable extends AstNode {
|
|
531
|
-
type: 'declaredTable';
|
|
532
|
-
tableStmt: CreateTableStmt;
|
|
533
|
-
}
|
|
534
|
-
|
|
535
|
-
export interface DeclaredIndex extends AstNode {
|
|
536
|
-
type: 'declaredIndex';
|
|
537
|
-
indexStmt: CreateIndexStmt;
|
|
538
|
-
}
|
|
539
|
-
|
|
540
|
-
export interface DeclaredView extends AstNode {
|
|
541
|
-
type: 'declaredView';
|
|
542
|
-
viewStmt: CreateViewStmt;
|
|
543
|
-
}
|
|
544
|
-
|
|
545
|
-
export interface DeclaredSeed extends AstNode {
|
|
546
|
-
type: 'declaredSeed';
|
|
547
|
-
tableName: string;
|
|
548
|
-
columns?: readonly string[];
|
|
549
|
-
seedData?: readonly SqlValue[][];
|
|
550
|
-
}
|
|
551
|
-
|
|
552
|
-
/** Placeholder for domain/collation/import items to keep parser forward-compatible */
|
|
553
|
-
export interface DeclareIgnoredItem extends AstNode {
|
|
554
|
-
type: 'declareIgnored';
|
|
555
|
-
kind: 'domain' | 'collation' | 'import';
|
|
556
|
-
text: string; // original text snippet for hashing/canonicalization if needed
|
|
557
|
-
}
|
|
558
|
-
|
|
559
|
-
export interface DiffSchemaStmt extends AstNode {
|
|
560
|
-
type: 'diffSchema';
|
|
561
|
-
schemaName?: string;
|
|
562
|
-
}
|
|
563
|
-
|
|
564
|
-
export interface ApplySchemaStmt extends AstNode {
|
|
565
|
-
type: 'applySchema';
|
|
566
|
-
schemaName?: string;
|
|
567
|
-
toVersion?: string;
|
|
568
|
-
withSeed?: boolean;
|
|
569
|
-
options?: {
|
|
570
|
-
dryRun?: boolean;
|
|
571
|
-
validateOnly?: boolean;
|
|
572
|
-
allowDestructive?: boolean;
|
|
573
|
-
renamePolicy?: 'require-hint' | 'infer-id';
|
|
574
|
-
};
|
|
575
|
-
}
|
|
576
|
-
|
|
577
|
-
export interface ExplainSchemaStmt extends AstNode {
|
|
578
|
-
type: 'explainSchema';
|
|
579
|
-
schemaName?: string;
|
|
580
|
-
version?: string;
|
|
581
|
-
}
|
package/src/parser/index.ts
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { quereusError } from '../common/errors.js';
|
|
2
|
-
import { StatusCode } from '../common/types.js';
|
|
3
|
-
export * from './ast.js';
|
|
4
|
-
export * from './parser.js';
|
|
5
|
-
export * from './lexer.js';
|
|
6
|
-
|
|
7
|
-
import { Parser } from './parser.js';
|
|
8
|
-
import type { SelectStmt, InsertStmt } from './ast.js';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Parse a SQL SELECT statement
|
|
12
|
-
*
|
|
13
|
-
* @param sql SQL SELECT statement
|
|
14
|
-
* @returns AST for the SELECT statement
|
|
15
|
-
* @throws ParseError if the SQL is invalid or not a SELECT statement
|
|
16
|
-
*/
|
|
17
|
-
export function parseSelect(sql: string): SelectStmt {
|
|
18
|
-
const parser = new Parser();
|
|
19
|
-
return parser.initialize(sql).selectStatement();
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Parse a SQL INSERT statement
|
|
24
|
-
*
|
|
25
|
-
* @param sql SQL INSERT statement
|
|
26
|
-
* @returns AST for the INSERT statement
|
|
27
|
-
* @throws Error if the SQL is not an INSERT statement
|
|
28
|
-
*/
|
|
29
|
-
export function parseInsert(sql: string): InsertStmt {
|
|
30
|
-
const stmt = parse(sql);
|
|
31
|
-
if (stmt.type !== 'insert') {
|
|
32
|
-
quereusError(
|
|
33
|
-
`Expected INSERT statement, but got ${stmt.type}`,
|
|
34
|
-
StatusCode.ERROR,
|
|
35
|
-
undefined,
|
|
36
|
-
stmt
|
|
37
|
-
);
|
|
38
|
-
}
|
|
39
|
-
return stmt as InsertStmt;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Parse a SQL statement
|
|
44
|
-
*
|
|
45
|
-
* @param sql SQL statement
|
|
46
|
-
* @returns AST for the statement
|
|
47
|
-
* @throws Error if the statement type is not supported
|
|
48
|
-
*/
|
|
49
|
-
export function parse(sql: string): SelectStmt | InsertStmt {
|
|
50
|
-
const parser = new Parser();
|
|
51
|
-
const stmt = parser.parse(sql);
|
|
52
|
-
|
|
53
|
-
if (stmt.type === 'select') {
|
|
54
|
-
return stmt as SelectStmt;
|
|
55
|
-
} else if (stmt.type === 'insert') {
|
|
56
|
-
return stmt as InsertStmt;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
quereusError(
|
|
60
|
-
`Unsupported SQL statement type: ${stmt.type}`,
|
|
61
|
-
StatusCode.UNSUPPORTED,
|
|
62
|
-
undefined,
|
|
63
|
-
stmt
|
|
64
|
-
);
|
|
65
|
-
}
|