@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/func/context.ts
DELETED
|
@@ -1,258 +0,0 @@
|
|
|
1
|
-
import { createLogger } from '../common/logger.js';
|
|
2
|
-
import { type SqlValue, StatusCode } from '../common/types.js';
|
|
3
|
-
import { QuereusError } from '../common/errors.js';
|
|
4
|
-
import type { Database } from '../core/database.js';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Represents the execution context passed to user-defined SQL functions
|
|
8
|
-
* (scalar, aggregate, window) and to virtual table methods.
|
|
9
|
-
* Provides methods for setting results and accessing auxiliary data.
|
|
10
|
-
*
|
|
11
|
-
* Methods that set a result should be the last action in a function
|
|
12
|
-
* implementation. Setting multiple results or setting a result then
|
|
13
|
-
* throwing an error leads to undefined behavior.
|
|
14
|
-
*/
|
|
15
|
-
export interface QuereusContext {
|
|
16
|
-
/**
|
|
17
|
-
* Sets the result of the function to a BLOB value.
|
|
18
|
-
* @param value The BLOB data
|
|
19
|
-
* @param destructor Optional hint that influences whether the engine copies the buffer
|
|
20
|
-
*/
|
|
21
|
-
resultBlob(value: Uint8Array, destructor?: unknown): void;
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Sets the result of the function to a floating-point value.
|
|
25
|
-
* @param value The double value
|
|
26
|
-
*/
|
|
27
|
-
resultDouble(value: number): void;
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Causes the function to return an error state.
|
|
31
|
-
* @param message The error message
|
|
32
|
-
* @param code Optional error code (defaults to ERROR)
|
|
33
|
-
*/
|
|
34
|
-
resultError(message: string, code?: StatusCode): void;
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Sets the result of the function to a 32-bit integer value.
|
|
38
|
-
* For larger integers, use resultInt64.
|
|
39
|
-
* @param value The integer value
|
|
40
|
-
*/
|
|
41
|
-
resultInt(value: number): void;
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Sets the result of the function to a 64-bit integer value.
|
|
45
|
-
* @param value The bigint value
|
|
46
|
-
*/
|
|
47
|
-
resultInt64(value: bigint): void;
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Sets the result of the function to SQL NULL.
|
|
51
|
-
*/
|
|
52
|
-
resultNull(): void;
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Sets the result of the function to a TEXT value.
|
|
56
|
-
* @param value The string value
|
|
57
|
-
* @param destructor Optional hint that influences whether the engine copies the string
|
|
58
|
-
*/
|
|
59
|
-
resultText(value: string, destructor?: unknown): void;
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Sets the result of the function to the provided SqlValue.
|
|
63
|
-
* @param value The SqlValue to set as the result
|
|
64
|
-
*/
|
|
65
|
-
resultValue(value: SqlValue): void;
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Sets the result to a zero-filled BLOB of a specified size.
|
|
69
|
-
* @param n The desired size of the zeroblob in bytes
|
|
70
|
-
*/
|
|
71
|
-
resultZeroblob(n: number): void;
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Sets the application-defined subtype for the result value.
|
|
75
|
-
* @param subtype An unsigned integer representing the subtype
|
|
76
|
-
*/
|
|
77
|
-
resultSubtype(subtype: number): void;
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Returns the user data associated with the function registration.
|
|
81
|
-
* @returns The user data specified during registration
|
|
82
|
-
*/
|
|
83
|
-
getUserData(): unknown;
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* Returns the Database connection associated with this context.
|
|
87
|
-
* @returns The database connection
|
|
88
|
-
*/
|
|
89
|
-
getDbConnection(): Database;
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Gets auxiliary data previously associated with a function argument.
|
|
93
|
-
* Used for caching computations across multiple calls with the same arguments.
|
|
94
|
-
* @param N The argument index (0-based)
|
|
95
|
-
* @returns The stored auxiliary data, or undefined if none exists
|
|
96
|
-
*/
|
|
97
|
-
getAuxData(N: number): unknown;
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Sets auxiliary data associated with a specific function argument.
|
|
101
|
-
* @param N The argument index (0-based)
|
|
102
|
-
* @param data The data to store
|
|
103
|
-
* @param destructor Optional cleanup function called when the data is discarded
|
|
104
|
-
*/
|
|
105
|
-
setAuxData(N: number, data: unknown, destructor?: (data: unknown) => void): void;
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Retrieves the context (accumulator) for an aggregate function.
|
|
109
|
-
* @param createIfNotFound If true and no context exists, creates a new empty object
|
|
110
|
-
* @returns The aggregate context for the current group, or undefined
|
|
111
|
-
*/
|
|
112
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
113
|
-
getAggregateContext<T = any>(createIfNotFound?: boolean): T | undefined;
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Sets the context (accumulator) for an aggregate function.
|
|
117
|
-
* @param context The new state for the aggregate context
|
|
118
|
-
*/
|
|
119
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
120
|
-
setAggregateContext<T = any>(context: T): void;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
const log = createLogger('func:context');
|
|
124
|
-
const errorLog = log.extend('error');
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Concrete implementation of QuereusContext used by the engine.
|
|
128
|
-
* @internal
|
|
129
|
-
*/
|
|
130
|
-
export class FunctionContext implements QuereusContext {
|
|
131
|
-
private _result: SqlValue | undefined = undefined;
|
|
132
|
-
private _result_set = false;
|
|
133
|
-
private _error: QuereusError | null = null;
|
|
134
|
-
private _subtype: number = 0;
|
|
135
|
-
private userData: unknown;
|
|
136
|
-
private db: Database;
|
|
137
|
-
private auxData: Map<number, { data: unknown, destructor?: (data: unknown) => void }> = new Map();
|
|
138
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
139
|
-
private _aggregateContext: any | undefined = undefined;
|
|
140
|
-
|
|
141
|
-
constructor(db: Database, userData?: unknown) {
|
|
142
|
-
this.db = db;
|
|
143
|
-
this.userData = userData;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* @internal Gets the function result or throws if in error state
|
|
148
|
-
*/
|
|
149
|
-
_getResult(): SqlValue | null {
|
|
150
|
-
if (this._error) throw this._error;
|
|
151
|
-
return this._result_set ? this._result! : null;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* @internal Gets the error if one occurred
|
|
156
|
-
*/
|
|
157
|
-
_getError(): QuereusError | null { return this._error; }
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* @internal Gets the result subtype
|
|
161
|
-
*/
|
|
162
|
-
_getSubtype(): number { return this._subtype; }
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* @internal Resets the context for reuse
|
|
166
|
-
*/
|
|
167
|
-
_clear(): void {
|
|
168
|
-
this._result = undefined;
|
|
169
|
-
this._result_set = false;
|
|
170
|
-
this._error = null;
|
|
171
|
-
this._subtype = 0;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* @internal Sets the aggregate context reference from VDBE
|
|
176
|
-
*/
|
|
177
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
178
|
-
_setAggregateContextRef(contextRef: any | undefined): void {
|
|
179
|
-
this._aggregateContext = contextRef;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
/**
|
|
183
|
-
* @internal Gets the potentially modified aggregate context
|
|
184
|
-
*/
|
|
185
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
186
|
-
_getAggregateContextRef(): any | undefined {
|
|
187
|
-
return this._aggregateContext;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
private setResult(value: SqlValue) {
|
|
191
|
-
if (this._result_set || this._error) return;
|
|
192
|
-
this._result = value;
|
|
193
|
-
this._result_set = true;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
resultBlob(value: Uint8Array): void { this.setResult(value); }
|
|
197
|
-
resultDouble(value: number): void { this.setResult(value); }
|
|
198
|
-
resultError(message: string, code: StatusCode = StatusCode.ERROR): void {
|
|
199
|
-
if (this._result_set || this._error) return;
|
|
200
|
-
this._error = new QuereusError(message, code);
|
|
201
|
-
}
|
|
202
|
-
resultInt(value: number): void { this.setResult(Math.trunc(value)); }
|
|
203
|
-
resultInt64(value: bigint): void { this.setResult(value); }
|
|
204
|
-
resultNull(): void { this.setResult(null); }
|
|
205
|
-
resultText(value: string): void { this.setResult(value); }
|
|
206
|
-
resultValue(value: SqlValue): void { this.setResult(value); }
|
|
207
|
-
resultZeroblob(n: number): void { this.setResult(new Uint8Array(n)); }
|
|
208
|
-
resultSubtype(subtype: number): void { this._subtype = subtype >>> 0; }
|
|
209
|
-
|
|
210
|
-
getUserData(): unknown { return this.userData; }
|
|
211
|
-
getDbConnection(): Database { return this.db; }
|
|
212
|
-
|
|
213
|
-
getAuxData(N: number): unknown {
|
|
214
|
-
return this.auxData.get(N)?.data;
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
setAuxData(N: number, data: unknown, destructor?: (data: unknown) => void): void {
|
|
218
|
-
if (this._error) return;
|
|
219
|
-
const existing = this.auxData.get(N);
|
|
220
|
-
if (existing?.destructor && existing.data !== data) {
|
|
221
|
-
try { existing.destructor(existing.data); } catch (e) {
|
|
222
|
-
errorLog("Internal: AuxData destructor failed: %O", e);
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
if (data === undefined && destructor === undefined) {
|
|
226
|
-
this.auxData.delete(N);
|
|
227
|
-
} else {
|
|
228
|
-
this.auxData.set(N, { data, destructor });
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
233
|
-
getAggregateContext<T = any>(createIfNotFound: boolean = false): T | undefined {
|
|
234
|
-
if (this._aggregateContext === undefined && createIfNotFound) {
|
|
235
|
-
return {} as T;
|
|
236
|
-
}
|
|
237
|
-
return this._aggregateContext as T | undefined;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
241
|
-
setAggregateContext<T = any>(context: T): void {
|
|
242
|
-
this._aggregateContext = context;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
/**
|
|
246
|
-
* @internal Cleans up auxiliary data during statement reset/finalize
|
|
247
|
-
*/
|
|
248
|
-
_cleanupAuxData(): void {
|
|
249
|
-
this.auxData.forEach(entry => {
|
|
250
|
-
if (entry.destructor) {
|
|
251
|
-
try { entry.destructor(entry.data); } catch (e) {
|
|
252
|
-
errorLog("Internal: AuxData destructor failed: %O", e);
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
});
|
|
256
|
-
this.auxData.clear();
|
|
257
|
-
}
|
|
258
|
-
}
|
package/src/func/registration.ts
DELETED
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
import type { AggregateFinalizer, AggregateReducer, IntegratedTableValuedFunc, ScalarFunc, TableValuedFunc, ScalarFunctionSchema,
|
|
2
|
-
TableValuedFunctionSchema, AggregateFunctionSchema } from '../schema/function.js';
|
|
3
|
-
import { FunctionFlags } from '../common/constants.js';
|
|
4
|
-
import type { ScalarType, RelationType } from '../common/datatype.js';
|
|
5
|
-
import { REAL_TYPE } from '../types/builtin-types.js';
|
|
6
|
-
import type { LogicalType } from '../types/logical-type.js';
|
|
7
|
-
import type { DeepReadonly } from '../common/types.js';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Configuration options for scalar functions
|
|
11
|
-
*/
|
|
12
|
-
interface ScalarFuncOptions {
|
|
13
|
-
/** Function name as it will be called in SQL */
|
|
14
|
-
name: string;
|
|
15
|
-
/** Number of arguments, or -1 for variable number */
|
|
16
|
-
numArgs: number;
|
|
17
|
-
/** Function behavior flags */
|
|
18
|
-
flags?: FunctionFlags;
|
|
19
|
-
/** Whether the function is deterministic (affects caching) */
|
|
20
|
-
deterministic?: boolean;
|
|
21
|
-
/** Return type information */
|
|
22
|
-
returnType?: ScalarType;
|
|
23
|
-
/**
|
|
24
|
-
* Optional type inference function for polymorphic functions.
|
|
25
|
-
* If provided, this function will be called at planning time to determine
|
|
26
|
-
* the return type based on the actual argument types.
|
|
27
|
-
*/
|
|
28
|
-
inferReturnType?: (argTypes: ReadonlyArray<DeepReadonly<LogicalType>>) => ScalarType;
|
|
29
|
-
/**
|
|
30
|
-
* Optional argument type validation function.
|
|
31
|
-
* If provided, this function will be called at planning time to validate
|
|
32
|
-
* that the argument types are acceptable for this function.
|
|
33
|
-
*/
|
|
34
|
-
validateArgTypes?: (argTypes: ReadonlyArray<DeepReadonly<LogicalType>>) => boolean;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Configuration options for table-valued functions
|
|
39
|
-
*/
|
|
40
|
-
interface TableValuedFuncOptions {
|
|
41
|
-
/** Function name as it will be called in SQL */
|
|
42
|
-
name: string;
|
|
43
|
-
/** Number of arguments, or -1 for variable number */
|
|
44
|
-
numArgs: number;
|
|
45
|
-
/** Function behavior flags */
|
|
46
|
-
flags?: FunctionFlags;
|
|
47
|
-
/** Whether the function is deterministic (affects caching) */
|
|
48
|
-
deterministic?: boolean;
|
|
49
|
-
/** Return type (relation) information */
|
|
50
|
-
returnType?: RelationType;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/* Interim values for aggregate functions don't have to be SqlValue; they can be anything */
|
|
54
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
55
|
-
export type AggValue = any;
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Configuration options for aggregate functions
|
|
59
|
-
*/
|
|
60
|
-
interface AggregateFuncOptions {
|
|
61
|
-
/** Function name as it will be called in SQL */
|
|
62
|
-
name: string;
|
|
63
|
-
/** Number of arguments, or -1 for variable number */
|
|
64
|
-
numArgs: number;
|
|
65
|
-
/** Function behavior flags */
|
|
66
|
-
flags?: FunctionFlags;
|
|
67
|
-
/** Whether the function is deterministic (affects caching) */
|
|
68
|
-
deterministic?: boolean;
|
|
69
|
-
/** Initial accumulator value */
|
|
70
|
-
initialValue?: AggValue;
|
|
71
|
-
/** Return type information */
|
|
72
|
-
returnType?: ScalarType;
|
|
73
|
-
/**
|
|
74
|
-
* Optional type inference function for polymorphic aggregate functions.
|
|
75
|
-
* If provided, this function will be called at planning time to determine
|
|
76
|
-
* the return type based on the actual argument types.
|
|
77
|
-
*/
|
|
78
|
-
inferReturnType?: (argTypes: ReadonlyArray<DeepReadonly<LogicalType>>) => ScalarType;
|
|
79
|
-
/**
|
|
80
|
-
* Optional argument type validation function.
|
|
81
|
-
* If provided, this function will be called at planning time to validate
|
|
82
|
-
* that the argument types are acceptable for this function.
|
|
83
|
-
*/
|
|
84
|
-
validateArgTypes?: (argTypes: ReadonlyArray<DeepReadonly<LogicalType>>) => boolean;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Creates a function schema for a scalar SQL function.
|
|
89
|
-
* This is the primary way to register scalar functions in Quereus.
|
|
90
|
-
*
|
|
91
|
-
* @param options Configuration options for the function
|
|
92
|
-
* @param jsFunc The JavaScript implementation function
|
|
93
|
-
* @returns A FunctionSchema ready for registration
|
|
94
|
-
*/
|
|
95
|
-
export function createScalarFunction(options: ScalarFuncOptions, jsFunc: ScalarFunc): ScalarFunctionSchema {
|
|
96
|
-
const returnType: ScalarType = options.returnType ?? {
|
|
97
|
-
typeClass: 'scalar',
|
|
98
|
-
logicalType: REAL_TYPE,
|
|
99
|
-
nullable: true,
|
|
100
|
-
isReadOnly: true
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
return {
|
|
104
|
-
name: options.name,
|
|
105
|
-
numArgs: options.numArgs,
|
|
106
|
-
flags: options.flags ?? (FunctionFlags.UTF8 | (options.deterministic !== false ? FunctionFlags.DETERMINISTIC : 0)),
|
|
107
|
-
returnType,
|
|
108
|
-
implementation: jsFunc,
|
|
109
|
-
inferReturnType: options.inferReturnType,
|
|
110
|
-
validateArgTypes: options.validateArgTypes
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Creates a function schema for a table-valued function.
|
|
116
|
-
* Table-valued functions return AsyncIterable<Row> and can be used in FROM clauses.
|
|
117
|
-
*
|
|
118
|
-
* @param options Configuration options for the function
|
|
119
|
-
* @param jsFunc The JavaScript implementation function
|
|
120
|
-
* @returns A FunctionSchema ready for registration
|
|
121
|
-
*/
|
|
122
|
-
export function createTableValuedFunction(options: TableValuedFuncOptions, jsFunc: TableValuedFunc): TableValuedFunctionSchema {
|
|
123
|
-
const returnType: RelationType = options.returnType ?? {
|
|
124
|
-
typeClass: 'relation',
|
|
125
|
-
isReadOnly: true,
|
|
126
|
-
isSet: false, // Table functions can return duplicates by default
|
|
127
|
-
columns: [],
|
|
128
|
-
keys: [],
|
|
129
|
-
rowConstraints: []
|
|
130
|
-
};
|
|
131
|
-
|
|
132
|
-
return {
|
|
133
|
-
name: options.name,
|
|
134
|
-
numArgs: options.numArgs,
|
|
135
|
-
flags: options.flags ?? (FunctionFlags.UTF8 | (options.deterministic !== false ? FunctionFlags.DETERMINISTIC : 0)),
|
|
136
|
-
returnType,
|
|
137
|
-
implementation: jsFunc
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* Creates a function schema for an integrated table-valued function.
|
|
143
|
-
* Integrated functions receive the database instance as their first parameter.
|
|
144
|
-
*
|
|
145
|
-
* @param options Configuration options for the function
|
|
146
|
-
* @param jsFunc The JavaScript implementation function
|
|
147
|
-
* @returns A FunctionSchema ready for registration
|
|
148
|
-
*/
|
|
149
|
-
export function createIntegratedTableValuedFunction(options: TableValuedFuncOptions, jsFunc: IntegratedTableValuedFunc): TableValuedFunctionSchema {
|
|
150
|
-
const returnType: RelationType = options.returnType ?? {
|
|
151
|
-
typeClass: 'relation',
|
|
152
|
-
isReadOnly: true,
|
|
153
|
-
isSet: false, // Table functions can return duplicates by default
|
|
154
|
-
columns: [],
|
|
155
|
-
keys: [],
|
|
156
|
-
rowConstraints: []
|
|
157
|
-
};
|
|
158
|
-
|
|
159
|
-
return {
|
|
160
|
-
name: options.name,
|
|
161
|
-
numArgs: options.numArgs,
|
|
162
|
-
flags: options.flags ?? (FunctionFlags.UTF8 | (options.deterministic !== false ? FunctionFlags.DETERMINISTIC : 0)),
|
|
163
|
-
returnType,
|
|
164
|
-
implementation: jsFunc,
|
|
165
|
-
isIntegrated: true
|
|
166
|
-
};
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* Creates a function schema for an aggregate function.
|
|
171
|
-
* Aggregate functions use a step/finalize pattern to accumulate values.
|
|
172
|
-
*
|
|
173
|
-
* @param options Configuration options for the function
|
|
174
|
-
* @param stepFunc Function called for each row
|
|
175
|
-
* @param finalizeFunc Function called to get final result
|
|
176
|
-
* @returns A FunctionSchema ready for registration
|
|
177
|
-
*/
|
|
178
|
-
export function createAggregateFunction(
|
|
179
|
-
options: AggregateFuncOptions,
|
|
180
|
-
stepFunc: AggregateReducer,
|
|
181
|
-
finalizeFunc: AggregateFinalizer
|
|
182
|
-
): AggregateFunctionSchema {
|
|
183
|
-
const returnType: ScalarType = options.returnType ?? {
|
|
184
|
-
typeClass: 'scalar',
|
|
185
|
-
logicalType: REAL_TYPE,
|
|
186
|
-
nullable: true,
|
|
187
|
-
isReadOnly: true
|
|
188
|
-
};
|
|
189
|
-
|
|
190
|
-
return {
|
|
191
|
-
name: options.name,
|
|
192
|
-
numArgs: options.numArgs,
|
|
193
|
-
flags: options.flags ?? (FunctionFlags.UTF8 | (options.deterministic !== false ? FunctionFlags.DETERMINISTIC : 0)),
|
|
194
|
-
returnType,
|
|
195
|
-
stepFunction: stepFunc,
|
|
196
|
-
finalizeFunction: finalizeFunc,
|
|
197
|
-
initialValue: options.initialValue,
|
|
198
|
-
inferReturnType: options.inferReturnType,
|
|
199
|
-
validateArgTypes: options.validateArgTypes
|
|
200
|
-
};
|
|
201
|
-
}
|
package/src/index.ts
DELETED
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Quereus - A TypeScript SQL Engine
|
|
3
|
-
*
|
|
4
|
-
* This module provides a TypeScript implementation of a SQL database engine
|
|
5
|
-
* with support for virtual tables and the full SQL query language.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
// Core database functionality
|
|
9
|
-
export { Database } from './core/database.js';
|
|
10
|
-
export { Statement } from './core/statement.js';
|
|
11
|
-
|
|
12
|
-
// Common data types and constants
|
|
13
|
-
export { StatusCode, SqlDataType } from './common/types.js';
|
|
14
|
-
export type { SqlValue, SqlParameters, Row, MaybePromise, RowOp } from './common/types.js';
|
|
15
|
-
export { ConflictResolution, IndexConstraintOp, VTabConfig, FunctionFlags } from './common/constants.js';
|
|
16
|
-
export { QuereusError, MisuseError, ConstraintError, unwrapError, formatErrorChain, getPrimaryError } from './common/errors.js';
|
|
17
|
-
export type { ErrorInfo } from './common/errors.js';
|
|
18
|
-
|
|
19
|
-
// Virtual Table API
|
|
20
|
-
export { VirtualTable } from './vtab/table.js';
|
|
21
|
-
export type { UpdateArgs } from './vtab/table.js';
|
|
22
|
-
export type { VirtualTableConnection } from './vtab/connection.js';
|
|
23
|
-
export { MemoryTableModule } from './vtab/memory/module.js';
|
|
24
|
-
export type { IndexInfo, IndexConstraint, IndexConstraintUsage, IndexOrderBy } from './vtab/index-info.js';
|
|
25
|
-
export { IndexScanFlags } from './vtab/index-info.js';
|
|
26
|
-
export type { FilterInfo } from './vtab/filter-info.js';
|
|
27
|
-
export type { BaseModuleConfig, SchemaChangeInfo } from './vtab/module.js';
|
|
28
|
-
|
|
29
|
-
// Best Access Plan API (modern vtable planning interface)
|
|
30
|
-
export type {
|
|
31
|
-
BestAccessPlanRequest,
|
|
32
|
-
BestAccessPlanResult,
|
|
33
|
-
ConstraintOp,
|
|
34
|
-
ColumnMeta,
|
|
35
|
-
PredicateConstraint,
|
|
36
|
-
OrderingSpec
|
|
37
|
-
} from './vtab/best-access-plan.js';
|
|
38
|
-
export { AccessPlanBuilder, validateAccessPlan } from './vtab/best-access-plan.js';
|
|
39
|
-
|
|
40
|
-
// Collation and comparison functions
|
|
41
|
-
export type { CollationFunction } from './util/comparison.js';
|
|
42
|
-
export {
|
|
43
|
-
// Collation registration and lookup
|
|
44
|
-
BINARY_COLLATION,
|
|
45
|
-
NOCASE_COLLATION,
|
|
46
|
-
RTRIM_COLLATION,
|
|
47
|
-
registerCollation,
|
|
48
|
-
getCollation,
|
|
49
|
-
resolveCollation,
|
|
50
|
-
// Core comparison functions (critical for module implementations)
|
|
51
|
-
compareSqlValues,
|
|
52
|
-
compareSqlValuesFast,
|
|
53
|
-
compareRows,
|
|
54
|
-
compareTypedValues,
|
|
55
|
-
createTypedComparator,
|
|
56
|
-
// ORDER BY comparison utilities
|
|
57
|
-
compareWithOrderBy,
|
|
58
|
-
compareWithOrderByFast,
|
|
59
|
-
createOrderByComparator,
|
|
60
|
-
createOrderByComparatorFast,
|
|
61
|
-
SortDirection,
|
|
62
|
-
NullsOrdering,
|
|
63
|
-
// Truthiness evaluation
|
|
64
|
-
evaluateIsTrue,
|
|
65
|
-
isTruthy,
|
|
66
|
-
// Type introspection
|
|
67
|
-
getSqlDataTypeName
|
|
68
|
-
} from './util/comparison.js';
|
|
69
|
-
|
|
70
|
-
// Type system
|
|
71
|
-
export type { LogicalType, CollationFunction as TypeCollationFunction } from './types/logical-type.js';
|
|
72
|
-
export { PhysicalType } from './types/logical-type.js';
|
|
73
|
-
export {
|
|
74
|
-
NULL_TYPE,
|
|
75
|
-
INTEGER_TYPE,
|
|
76
|
-
REAL_TYPE,
|
|
77
|
-
TEXT_TYPE,
|
|
78
|
-
BLOB_TYPE,
|
|
79
|
-
BOOLEAN_TYPE,
|
|
80
|
-
NUMERIC_TYPE,
|
|
81
|
-
ANY_TYPE
|
|
82
|
-
} from './types/builtin-types.js';
|
|
83
|
-
export {
|
|
84
|
-
DATE_TYPE,
|
|
85
|
-
TIME_TYPE,
|
|
86
|
-
DATETIME_TYPE,
|
|
87
|
-
TIMESPAN_TYPE
|
|
88
|
-
} from './types/temporal-types.js';
|
|
89
|
-
export { JSON_TYPE } from './types/json-type.js';
|
|
90
|
-
export {
|
|
91
|
-
typeRegistry,
|
|
92
|
-
registerType,
|
|
93
|
-
getType,
|
|
94
|
-
getTypeOrDefault,
|
|
95
|
-
inferType
|
|
96
|
-
} from './types/registry.js';
|
|
97
|
-
export {
|
|
98
|
-
validateValue,
|
|
99
|
-
parseValue,
|
|
100
|
-
validateAndParse,
|
|
101
|
-
isValidForType,
|
|
102
|
-
tryParse
|
|
103
|
-
} from './types/validation.js';
|
|
104
|
-
|
|
105
|
-
// SQL Parser and Compiler
|
|
106
|
-
export { Parser } from './parser/parser.js';
|
|
107
|
-
export { Lexer, TokenType, KEYWORDS } from './parser/lexer.js';
|
|
108
|
-
export { ParseError } from './parser/parser.js';
|
|
109
|
-
|
|
110
|
-
// Schema management
|
|
111
|
-
export { SchemaManager } from './schema/manager.js';
|
|
112
|
-
export type { TableSchema, IndexSchema as TableIndexSchema } from './schema/table.js';
|
|
113
|
-
export type { ColumnSchema } from './schema/column.js';
|
|
114
|
-
|
|
115
|
-
// Runtime utilities
|
|
116
|
-
export { isAsyncIterable, getAsyncIterator, asyncIterableToArray } from './runtime/utils.js';
|
|
117
|
-
|
|
118
|
-
// Function registration utilities
|
|
119
|
-
export {
|
|
120
|
-
createScalarFunction,
|
|
121
|
-
createTableValuedFunction,
|
|
122
|
-
createAggregateFunction
|
|
123
|
-
} from './func/registration.js';
|
|
124
|
-
|
|
125
|
-
export type {
|
|
126
|
-
ScalarFunc,
|
|
127
|
-
TableValuedFunc,
|
|
128
|
-
AggregateReducer,
|
|
129
|
-
AggregateFinalizer,
|
|
130
|
-
FunctionSchema
|
|
131
|
-
} from './schema/function.js';
|
|
132
|
-
|
|
133
|
-
// Coercion utilities (for module implementations)
|
|
134
|
-
export {
|
|
135
|
-
tryCoerceToNumber,
|
|
136
|
-
coerceToNumberForArithmetic,
|
|
137
|
-
coerceForComparison,
|
|
138
|
-
coerceForAggregate,
|
|
139
|
-
isNumericValue
|
|
140
|
-
} from './util/coercion.js';
|
|
141
|
-
|
|
142
|
-
// Utility functions
|
|
143
|
-
export { Latches } from './util/latches.js';
|
|
144
|
-
|
|
145
|
-
// Plugin helper for static loading (React Native, etc.)
|
|
146
|
-
export { registerPlugin } from './util/plugin-helper.js';
|
|
147
|
-
export type { PluginFunction } from './util/plugin-helper.js';
|
|
148
|
-
|
|
149
|
-
// Initialize runtime emitters (this ensures they are registered)
|
|
150
|
-
import './runtime/register.js';
|
|
151
|
-
|
|
152
|
-
// Re-export virtual table framework
|
|
153
|
-
export type { VirtualTableModule } from './vtab/module.js';
|
|
154
|
-
|
|
155
|
-
// Re-export plugin manifest types (for plugin authors, but not the loader)
|
|
156
|
-
export type {
|
|
157
|
-
PluginManifest,
|
|
158
|
-
PluginRecord,
|
|
159
|
-
PluginSetting,
|
|
160
|
-
VTablePluginInfo,
|
|
161
|
-
FunctionPluginInfo,
|
|
162
|
-
CollationPluginInfo,
|
|
163
|
-
TypePluginInfo,
|
|
164
|
-
PluginRegistrations
|
|
165
|
-
} from './vtab/manifest.js';
|
|
166
|
-
|
|
167
|
-
// Debug and development utilities
|
|
168
|
-
export { serializePlanTree, formatPlanTree, formatPlanSummary, serializePlanTreeWithOptions } from './planner/debug.js';
|
|
169
|
-
export type { PlanDisplayOptions } from './planner/debug.js';
|
|
170
|
-
|
|
171
|
-
// Logging control (for environments like React Native where env vars aren't available)
|
|
172
|
-
export { enableLogging, disableLogging, isLoggingEnabled } from './common/logger.js';
|