@quereus/quereus 0.7.3 → 0.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/schema/manager.d.ts.map +1 -1
- package/dist/src/schema/manager.js +19 -18
- package/package.json +3 -3
- package/dist/src/common/constants.js.map +0 -1
- package/dist/src/common/datatype.js.map +0 -1
- package/dist/src/common/errors.js.map +0 -1
- package/dist/src/common/json-types.js.map +0 -1
- package/dist/src/common/logger.js.map +0 -1
- package/dist/src/common/type-inference.js.map +0 -1
- package/dist/src/common/types.js.map +0 -1
- package/dist/src/core/database-options.js.map +0 -1
- package/dist/src/core/database.js.map +0 -1
- package/dist/src/core/param.js.map +0 -1
- package/dist/src/core/statement.js.map +0 -1
- package/dist/src/func/builtins/aggregate.js.map +0 -1
- package/dist/src/func/builtins/builtin-window-functions.js.map +0 -1
- package/dist/src/func/builtins/conversion.js.map +0 -1
- package/dist/src/func/builtins/datetime.js.map +0 -1
- package/dist/src/func/builtins/explain.js.map +0 -1
- package/dist/src/func/builtins/generation.js.map +0 -1
- package/dist/src/func/builtins/index.js.map +0 -1
- package/dist/src/func/builtins/json-helpers.js.map +0 -1
- package/dist/src/func/builtins/json-tvf.js.map +0 -1
- package/dist/src/func/builtins/json.js.map +0 -1
- package/dist/src/func/builtins/scalar.js.map +0 -1
- package/dist/src/func/builtins/schema.js.map +0 -1
- package/dist/src/func/builtins/string.js.map +0 -1
- package/dist/src/func/builtins/timespan.js.map +0 -1
- package/dist/src/func/context.js.map +0 -1
- package/dist/src/func/registration.js.map +0 -1
- package/dist/src/index.js.map +0 -1
- package/dist/src/parser/ast.js.map +0 -1
- package/dist/src/parser/index.js.map +0 -1
- package/dist/src/parser/lexer.js.map +0 -1
- package/dist/src/parser/parser.js.map +0 -1
- package/dist/src/parser/utils.js.map +0 -1
- package/dist/src/parser/visitor.js.map +0 -1
- package/dist/src/planner/analysis/binding-collector.js.map +0 -1
- package/dist/src/planner/analysis/const-evaluator.js.map +0 -1
- package/dist/src/planner/analysis/const-pass.js.map +0 -1
- package/dist/src/planner/analysis/constraint-extractor.js.map +0 -1
- package/dist/src/planner/analysis/predicate-normalizer.js.map +0 -1
- package/dist/src/planner/building/alter-table.js.map +0 -1
- package/dist/src/planner/building/block.js.map +0 -1
- package/dist/src/planner/building/constraint-builder.js.map +0 -1
- package/dist/src/planner/building/create-assertion.js.map +0 -1
- package/dist/src/planner/building/create-view.js.map +0 -1
- package/dist/src/planner/building/ddl.js.map +0 -1
- package/dist/src/planner/building/declare-schema.js.map +0 -1
- package/dist/src/planner/building/delete.js.map +0 -1
- package/dist/src/planner/building/drop-assertion.js.map +0 -1
- package/dist/src/planner/building/drop-table.js.map +0 -1
- package/dist/src/planner/building/drop-view.js.map +0 -1
- package/dist/src/planner/building/expression.js.map +0 -1
- package/dist/src/planner/building/function-call.js.map +0 -1
- package/dist/src/planner/building/insert.js.map +0 -1
- package/dist/src/planner/building/pragma.js.map +0 -1
- package/dist/src/planner/building/schema-resolution.js.map +0 -1
- package/dist/src/planner/building/select-aggregates.js.map +0 -1
- package/dist/src/planner/building/select-compound.js.map +0 -1
- package/dist/src/planner/building/select-context.js.map +0 -1
- package/dist/src/planner/building/select-modifiers.js.map +0 -1
- package/dist/src/planner/building/select-projections.js.map +0 -1
- package/dist/src/planner/building/select-window.js.map +0 -1
- package/dist/src/planner/building/select.js.map +0 -1
- package/dist/src/planner/building/table-function.js.map +0 -1
- package/dist/src/planner/building/table.js.map +0 -1
- package/dist/src/planner/building/transaction.js.map +0 -1
- package/dist/src/planner/building/update.js.map +0 -1
- package/dist/src/planner/building/with.js.map +0 -1
- package/dist/src/planner/cache/correlation-detector.js.map +0 -1
- package/dist/src/planner/cache/materialization-advisory.js.map +0 -1
- package/dist/src/planner/cache/reference-graph.js.map +0 -1
- package/dist/src/planner/cost/index.js.map +0 -1
- package/dist/src/planner/debug/logger-utils.js.map +0 -1
- package/dist/src/planner/debug.js.map +0 -1
- package/dist/src/planner/framework/characteristics.js.map +0 -1
- package/dist/src/planner/framework/context.js.map +0 -1
- package/dist/src/planner/framework/pass.js.map +0 -1
- package/dist/src/planner/framework/physical-utils.js.map +0 -1
- package/dist/src/planner/framework/registry.js.map +0 -1
- package/dist/src/planner/framework/trace.js.map +0 -1
- package/dist/src/planner/nodes/add-constraint-node.js.map +0 -1
- package/dist/src/planner/nodes/aggregate-function.js.map +0 -1
- package/dist/src/planner/nodes/aggregate-node.js.map +0 -1
- package/dist/src/planner/nodes/array-index-node.js.map +0 -1
- package/dist/src/planner/nodes/block.js.map +0 -1
- package/dist/src/planner/nodes/cache-node.js.map +0 -1
- package/dist/src/planner/nodes/constraint-check-node.js.map +0 -1
- package/dist/src/planner/nodes/create-assertion-node.js.map +0 -1
- package/dist/src/planner/nodes/create-index-node.js.map +0 -1
- package/dist/src/planner/nodes/create-table-node.js.map +0 -1
- package/dist/src/planner/nodes/create-view-node.js.map +0 -1
- package/dist/src/planner/nodes/cte-node.js.map +0 -1
- package/dist/src/planner/nodes/cte-reference-node.js.map +0 -1
- package/dist/src/planner/nodes/declarative-schema.js.map +0 -1
- package/dist/src/planner/nodes/delete-node.js.map +0 -1
- package/dist/src/planner/nodes/distinct-node.js.map +0 -1
- package/dist/src/planner/nodes/dml-executor-node.js.map +0 -1
- package/dist/src/planner/nodes/drop-assertion-node.js.map +0 -1
- package/dist/src/planner/nodes/drop-table-node.js.map +0 -1
- package/dist/src/planner/nodes/drop-view-node.js.map +0 -1
- package/dist/src/planner/nodes/filter.js.map +0 -1
- package/dist/src/planner/nodes/function.js.map +0 -1
- package/dist/src/planner/nodes/insert-node.js.map +0 -1
- package/dist/src/planner/nodes/internal-recursive-cte-ref-node.js.map +0 -1
- package/dist/src/planner/nodes/join-node.js.map +0 -1
- package/dist/src/planner/nodes/limit-offset.js.map +0 -1
- package/dist/src/planner/nodes/plan-node-type.js.map +0 -1
- package/dist/src/planner/nodes/plan-node.js.map +0 -1
- package/dist/src/planner/nodes/pragma.js.map +0 -1
- package/dist/src/planner/nodes/project-node.js.map +0 -1
- package/dist/src/planner/nodes/recursive-cte-node.js.map +0 -1
- package/dist/src/planner/nodes/reference.js.map +0 -1
- package/dist/src/planner/nodes/remote-query-node.js.map +0 -1
- package/dist/src/planner/nodes/retrieve-node.js.map +0 -1
- package/dist/src/planner/nodes/returning-node.js.map +0 -1
- package/dist/src/planner/nodes/scalar.js.map +0 -1
- package/dist/src/planner/nodes/sequencing-node.js.map +0 -1
- package/dist/src/planner/nodes/set-operation-node.js.map +0 -1
- package/dist/src/planner/nodes/single-row.js.map +0 -1
- package/dist/src/planner/nodes/sink-node.js.map +0 -1
- package/dist/src/planner/nodes/sort.js.map +0 -1
- package/dist/src/planner/nodes/stream-aggregate.js.map +0 -1
- package/dist/src/planner/nodes/subquery.js.map +0 -1
- package/dist/src/planner/nodes/table-access-nodes.js.map +0 -1
- package/dist/src/planner/nodes/table-function-call.js.map +0 -1
- package/dist/src/planner/nodes/transaction-node.js.map +0 -1
- package/dist/src/planner/nodes/update-node.js.map +0 -1
- package/dist/src/planner/nodes/values-node.js.map +0 -1
- package/dist/src/planner/nodes/view-reference-node.js.map +0 -1
- package/dist/src/planner/nodes/window-function.js.map +0 -1
- package/dist/src/planner/nodes/window-node.js.map +0 -1
- package/dist/src/planner/optimizer-tuning.js.map +0 -1
- package/dist/src/planner/optimizer.js.map +0 -1
- package/dist/src/planner/planning-context.js.map +0 -1
- package/dist/src/planner/resolve.js.map +0 -1
- package/dist/src/planner/rules/access/rule-select-access-path.js.map +0 -1
- package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.js.map +0 -1
- package/dist/src/planner/rules/cache/rule-cte-optimization.js.map +0 -1
- package/dist/src/planner/rules/cache/rule-materialization-advisory.js.map +0 -1
- package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.js.map +0 -1
- package/dist/src/planner/rules/join/rule-join-greedy-commute.js.map +0 -1
- package/dist/src/planner/rules/join/rule-join-key-inference.js.map +0 -1
- package/dist/src/planner/rules/join/rule-quickpick-enumeration.js.map +0 -1
- package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js.map +0 -1
- package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +0 -1
- package/dist/src/planner/scopes/aliased.js.map +0 -1
- package/dist/src/planner/scopes/base.js.map +0 -1
- package/dist/src/planner/scopes/empty.js.map +0 -1
- package/dist/src/planner/scopes/global.js.map +0 -1
- package/dist/src/planner/scopes/multi.js.map +0 -1
- package/dist/src/planner/scopes/param.js.map +0 -1
- package/dist/src/planner/scopes/registered.js.map +0 -1
- package/dist/src/planner/scopes/scope.js.map +0 -1
- package/dist/src/planner/stats/basic-estimates.js.map +0 -1
- package/dist/src/planner/stats/index.js.map +0 -1
- package/dist/src/planner/type-utils.js.map +0 -1
- package/dist/src/planner/util/key-utils.js.map +0 -1
- package/dist/src/planner/validation/determinism-validator.js.map +0 -1
- package/dist/src/planner/validation/plan-validator.js.map +0 -1
- package/dist/src/runtime/async-util.js.map +0 -1
- package/dist/src/runtime/cache/shared-cache.js.map +0 -1
- package/dist/src/runtime/context-helpers.js.map +0 -1
- package/dist/src/runtime/deferred-constraint-queue.js.map +0 -1
- package/dist/src/runtime/emission-context.js.map +0 -1
- package/dist/src/runtime/emit/add-constraint.js.map +0 -1
- package/dist/src/runtime/emit/aggregate.js.map +0 -1
- package/dist/src/runtime/emit/array-index.js.map +0 -1
- package/dist/src/runtime/emit/between.js.map +0 -1
- package/dist/src/runtime/emit/binary.js.map +0 -1
- package/dist/src/runtime/emit/block.js.map +0 -1
- package/dist/src/runtime/emit/cache.js.map +0 -1
- package/dist/src/runtime/emit/case.js.map +0 -1
- package/dist/src/runtime/emit/cast.js.map +0 -1
- package/dist/src/runtime/emit/collate.js.map +0 -1
- package/dist/src/runtime/emit/column-reference.js.map +0 -1
- package/dist/src/runtime/emit/constraint-check.js.map +0 -1
- package/dist/src/runtime/emit/create-assertion.js.map +0 -1
- package/dist/src/runtime/emit/create-index.js.map +0 -1
- package/dist/src/runtime/emit/create-table.js.map +0 -1
- package/dist/src/runtime/emit/create-view.js.map +0 -1
- package/dist/src/runtime/emit/cte-reference.js.map +0 -1
- package/dist/src/runtime/emit/cte.js.map +0 -1
- package/dist/src/runtime/emit/delete.js.map +0 -1
- package/dist/src/runtime/emit/distinct.js.map +0 -1
- package/dist/src/runtime/emit/dml-executor.js.map +0 -1
- package/dist/src/runtime/emit/drop-assertion.js.map +0 -1
- package/dist/src/runtime/emit/drop-table.js.map +0 -1
- package/dist/src/runtime/emit/drop-view.js.map +0 -1
- package/dist/src/runtime/emit/filter.js.map +0 -1
- package/dist/src/runtime/emit/insert.js.map +0 -1
- package/dist/src/runtime/emit/internal-recursive-cte-ref.js.map +0 -1
- package/dist/src/runtime/emit/join.js.map +0 -1
- package/dist/src/runtime/emit/limit-offset.js.map +0 -1
- package/dist/src/runtime/emit/literal.js.map +0 -1
- package/dist/src/runtime/emit/parameter.js.map +0 -1
- package/dist/src/runtime/emit/pragma.js.map +0 -1
- package/dist/src/runtime/emit/project.js.map +0 -1
- package/dist/src/runtime/emit/recursive-cte.js.map +0 -1
- package/dist/src/runtime/emit/remote-query.js.map +0 -1
- package/dist/src/runtime/emit/retrieve.js.map +0 -1
- package/dist/src/runtime/emit/returning.js.map +0 -1
- package/dist/src/runtime/emit/scalar-function.js.map +0 -1
- package/dist/src/runtime/emit/scan.js.map +0 -1
- package/dist/src/runtime/emit/schema-declarative.js.map +0 -1
- package/dist/src/runtime/emit/sequencing.js.map +0 -1
- package/dist/src/runtime/emit/set-operation.js.map +0 -1
- package/dist/src/runtime/emit/sink.js.map +0 -1
- package/dist/src/runtime/emit/sort.js.map +0 -1
- package/dist/src/runtime/emit/subquery.js.map +0 -1
- package/dist/src/runtime/emit/table-valued-function.js.map +0 -1
- package/dist/src/runtime/emit/temporal-arithmetic.js.map +0 -1
- package/dist/src/runtime/emit/transaction.js.map +0 -1
- package/dist/src/runtime/emit/unary.js.map +0 -1
- package/dist/src/runtime/emit/update.js.map +0 -1
- package/dist/src/runtime/emit/values.js.map +0 -1
- package/dist/src/runtime/emit/window-function.js.map +0 -1
- package/dist/src/runtime/emit/window.js.map +0 -1
- package/dist/src/runtime/emitters.js.map +0 -1
- package/dist/src/runtime/register.js.map +0 -1
- package/dist/src/runtime/scheduler.js.map +0 -1
- package/dist/src/runtime/types.js.map +0 -1
- package/dist/src/runtime/utils.js.map +0 -1
- package/dist/src/schema/assertion.js.map +0 -1
- package/dist/src/schema/catalog.js.map +0 -1
- package/dist/src/schema/change-events.js.map +0 -1
- package/dist/src/schema/column.js.map +0 -1
- package/dist/src/schema/declared-schema-manager.js.map +0 -1
- package/dist/src/schema/function.js.map +0 -1
- package/dist/src/schema/manager.js.map +0 -1
- package/dist/src/schema/schema-differ.js.map +0 -1
- package/dist/src/schema/schema-hasher.js.map +0 -1
- package/dist/src/schema/schema.js.map +0 -1
- package/dist/src/schema/table.js.map +0 -1
- package/dist/src/schema/view.js.map +0 -1
- package/dist/src/schema/window-function.js.map +0 -1
- package/dist/src/types/builtin-types.js.map +0 -1
- package/dist/src/types/index.js.map +0 -1
- package/dist/src/types/json-type.js.map +0 -1
- package/dist/src/types/logical-type.js.map +0 -1
- package/dist/src/types/plugin-interface.js.map +0 -1
- package/dist/src/types/registry.js.map +0 -1
- package/dist/src/types/temporal-types.js.map +0 -1
- package/dist/src/types/validation.js.map +0 -1
- package/dist/src/util/affinity.js.map +0 -1
- package/dist/src/util/ast-stringify.js.map +0 -1
- package/dist/src/util/cached.js.map +0 -1
- package/dist/src/util/coercion.js.map +0 -1
- package/dist/src/util/comparison.js.map +0 -1
- package/dist/src/util/environment.js.map +0 -1
- package/dist/src/util/hash.js.map +0 -1
- package/dist/src/util/latches.js.map +0 -1
- package/dist/src/util/mutation-statement.js.map +0 -1
- package/dist/src/util/patterns.js.map +0 -1
- package/dist/src/util/plan-formatter.js.map +0 -1
- package/dist/src/util/plugin-helper.js.map +0 -1
- package/dist/src/util/row-descriptor.js.map +0 -1
- package/dist/src/util/serialization.js.map +0 -1
- package/dist/src/util/sql-literal.js.map +0 -1
- package/dist/src/util/working-table-iterable.js.map +0 -1
- package/dist/src/vtab/best-access-plan.js.map +0 -1
- package/dist/src/vtab/connection.js.map +0 -1
- package/dist/src/vtab/filter-info.js.map +0 -1
- package/dist/src/vtab/index-info.js.map +0 -1
- package/dist/src/vtab/manifest.js.map +0 -1
- package/dist/src/vtab/memory/connection.js.map +0 -1
- package/dist/src/vtab/memory/index.js.map +0 -1
- package/dist/src/vtab/memory/layer/base-cursor.js.map +0 -1
- package/dist/src/vtab/memory/layer/base.js.map +0 -1
- package/dist/src/vtab/memory/layer/connection.js.map +0 -1
- package/dist/src/vtab/memory/layer/interface.js.map +0 -1
- package/dist/src/vtab/memory/layer/manager.js.map +0 -1
- package/dist/src/vtab/memory/layer/safe-iterate.js.map +0 -1
- package/dist/src/vtab/memory/layer/scan-plan.js.map +0 -1
- package/dist/src/vtab/memory/layer/transaction-cursor.js.map +0 -1
- package/dist/src/vtab/memory/layer/transaction.js.map +0 -1
- package/dist/src/vtab/memory/module.js.map +0 -1
- package/dist/src/vtab/memory/table.js.map +0 -1
- package/dist/src/vtab/memory/types.js.map +0 -1
- package/dist/src/vtab/memory/utils/logging.js.map +0 -1
- package/dist/src/vtab/memory/utils/primary-key.js.map +0 -1
- package/dist/src/vtab/module.js.map +0 -1
- package/dist/src/vtab/table.js.map +0 -1
- package/src/common/constants.ts +0 -60
- package/src/common/datatype.ts +0 -85
- package/src/common/errors.ts +0 -189
- package/src/common/json-types.ts +0 -16
- package/src/common/logger.ts +0 -97
- package/src/common/type-inference.ts +0 -39
- package/src/common/types.ts +0 -151
- package/src/core/database-options.ts +0 -258
- package/src/core/database.ts +0 -1461
- package/src/core/param.ts +0 -56
- package/src/core/statement.ts +0 -528
- package/src/func/builtins/aggregate.ts +0 -269
- package/src/func/builtins/builtin-window-functions.ts +0 -166
- package/src/func/builtins/conversion.ts +0 -226
- package/src/func/builtins/datetime.ts +0 -500
- package/src/func/builtins/explain.ts +0 -779
- package/src/func/builtins/generation.ts +0 -43
- package/src/func/builtins/index.ts +0 -167
- package/src/func/builtins/json-helpers.ts +0 -237
- package/src/func/builtins/json-tvf.ts +0 -224
- package/src/func/builtins/json.ts +0 -588
- package/src/func/builtins/scalar.ts +0 -423
- package/src/func/builtins/schema.ts +0 -213
- package/src/func/builtins/string.ts +0 -306
- package/src/func/builtins/timespan.ts +0 -179
- package/src/func/context.ts +0 -258
- package/src/func/registration.ts +0 -201
- package/src/index.ts +0 -172
- package/src/parser/ast.ts +0 -581
- package/src/parser/index.ts +0 -65
- package/src/parser/lexer.ts +0 -806
- package/src/parser/parser.ts +0 -3352
- package/src/parser/utils.ts +0 -10
- package/src/parser/visitor.ts +0 -188
- package/src/planner/analysis/README.md +0 -93
- package/src/planner/analysis/binding-collector.ts +0 -83
- package/src/planner/analysis/const-evaluator.ts +0 -63
- package/src/planner/analysis/const-pass.ts +0 -282
- package/src/planner/analysis/constraint-extractor.ts +0 -764
- package/src/planner/analysis/predicate-normalizer.ts +0 -237
- package/src/planner/building/alter-table.ts +0 -49
- package/src/planner/building/block.ts +0 -93
- package/src/planner/building/constraint-builder.ts +0 -178
- package/src/planner/building/create-assertion.ts +0 -7
- package/src/planner/building/create-view.ts +0 -29
- package/src/planner/building/ddl.ts +0 -24
- package/src/planner/building/declare-schema.ts +0 -22
- package/src/planner/building/delete.ts +0 -218
- package/src/planner/building/drop-assertion.ts +0 -11
- package/src/planner/building/drop-table.ts +0 -13
- package/src/planner/building/drop-view.ts +0 -19
- package/src/planner/building/expression.ts +0 -205
- package/src/planner/building/function-call.ts +0 -129
- package/src/planner/building/insert.ts +0 -435
- package/src/planner/building/pragma.ts +0 -34
- package/src/planner/building/schema-resolution.ts +0 -176
- package/src/planner/building/select-aggregates.ts +0 -318
- package/src/planner/building/select-compound.ts +0 -119
- package/src/planner/building/select-context.ts +0 -85
- package/src/planner/building/select-modifiers.ts +0 -236
- package/src/planner/building/select-projections.ts +0 -177
- package/src/planner/building/select-window.ts +0 -259
- package/src/planner/building/select.ts +0 -567
- package/src/planner/building/table-function.ts +0 -49
- package/src/planner/building/table.ts +0 -40
- package/src/planner/building/transaction.ts +0 -23
- package/src/planner/building/update.ts +0 -331
- package/src/planner/building/with.ts +0 -180
- package/src/planner/cache/correlation-detector.ts +0 -83
- package/src/planner/cache/materialization-advisory.ts +0 -265
- package/src/planner/cache/reference-graph.ts +0 -196
- package/src/planner/cost/index.ts +0 -169
- package/src/planner/debug/logger-utils.ts +0 -68
- package/src/planner/debug.ts +0 -480
- package/src/planner/framework/README.md +0 -132
- package/src/planner/framework/characteristics.ts +0 -503
- package/src/planner/framework/context.ts +0 -239
- package/src/planner/framework/pass.ts +0 -354
- package/src/planner/framework/physical-utils.ts +0 -210
- package/src/planner/framework/registry.ts +0 -261
- package/src/planner/framework/trace.ts +0 -259
- package/src/planner/nodes/add-constraint-node.ts +0 -62
- package/src/planner/nodes/aggregate-function.ts +0 -155
- package/src/planner/nodes/aggregate-node.ts +0 -267
- package/src/planner/nodes/array-index-node.ts +0 -50
- package/src/planner/nodes/block.ts +0 -80
- package/src/planner/nodes/cache-node.ts +0 -103
- package/src/planner/nodes/constraint-check-node.ts +0 -138
- package/src/planner/nodes/create-assertion-node.ts +0 -51
- package/src/planner/nodes/create-index-node.ts +0 -41
- package/src/planner/nodes/create-table-node.ts +0 -35
- package/src/planner/nodes/create-view-node.ts +0 -44
- package/src/planner/nodes/cte-node.ts +0 -168
- package/src/planner/nodes/cte-reference-node.ts +0 -125
- package/src/planner/nodes/declarative-schema.ts +0 -221
- package/src/planner/nodes/delete-node.ts +0 -102
- package/src/planner/nodes/distinct-node.ts +0 -107
- package/src/planner/nodes/dml-executor-node.ts +0 -104
- package/src/planner/nodes/drop-assertion-node.ts +0 -50
- package/src/planner/nodes/drop-table-node.ts +0 -36
- package/src/planner/nodes/drop-view-node.ts +0 -37
- package/src/planner/nodes/filter.ts +0 -144
- package/src/planner/nodes/function.ts +0 -98
- package/src/planner/nodes/insert-node.ts +0 -126
- package/src/planner/nodes/internal-recursive-cte-ref-node.ts +0 -61
- package/src/planner/nodes/join-node.ts +0 -336
- package/src/planner/nodes/limit-offset.ts +0 -144
- package/src/planner/nodes/plan-node-type.ts +0 -95
- package/src/planner/nodes/plan-node.ts +0 -503
- package/src/planner/nodes/pragma.ts +0 -98
- package/src/planner/nodes/project-node.ts +0 -337
- package/src/planner/nodes/recursive-cte-node.ts +0 -158
- package/src/planner/nodes/reference.ts +0 -334
- package/src/planner/nodes/remote-query-node.ts +0 -73
- package/src/planner/nodes/retrieve-node.ts +0 -86
- package/src/planner/nodes/returning-node.ts +0 -269
- package/src/planner/nodes/scalar.ts +0 -772
- package/src/planner/nodes/sequencing-node.ts +0 -113
- package/src/planner/nodes/set-operation-node.ts +0 -87
- package/src/planner/nodes/single-row.ts +0 -85
- package/src/planner/nodes/sink-node.ts +0 -61
- package/src/planner/nodes/sort.ts +0 -166
- package/src/planner/nodes/stream-aggregate.ts +0 -293
- package/src/planner/nodes/subquery.ts +0 -268
- package/src/planner/nodes/table-access-nodes.ts +0 -323
- package/src/planner/nodes/table-function-call.ts +0 -134
- package/src/planner/nodes/transaction-node.ts +0 -55
- package/src/planner/nodes/update-node.ts +0 -138
- package/src/planner/nodes/values-node.ts +0 -244
- package/src/planner/nodes/view-reference-node.ts +0 -97
- package/src/planner/nodes/window-function.ts +0 -73
- package/src/planner/nodes/window-node.ts +0 -199
- package/src/planner/optimizer-tuning.ts +0 -105
- package/src/planner/optimizer.ts +0 -332
- package/src/planner/planning-context.ts +0 -190
- package/src/planner/resolve.ts +0 -101
- package/src/planner/rules/README.md +0 -96
- package/src/planner/rules/access/rule-select-access-path.ts +0 -399
- package/src/planner/rules/aggregate/rule-aggregate-streaming.ts +0 -162
- package/src/planner/rules/cache/rule-cte-optimization.ts +0 -79
- package/src/planner/rules/cache/rule-materialization-advisory.ts +0 -77
- package/src/planner/rules/cache/rule-mutating-subquery-cache.ts +0 -104
- package/src/planner/rules/join/rule-join-greedy-commute.ts +0 -48
- package/src/planner/rules/join/rule-join-key-inference.ts +0 -35
- package/src/planner/rules/join/rule-quickpick-enumeration.ts +0 -267
- package/src/planner/rules/predicate/rule-predicate-pushdown.ts +0 -144
- package/src/planner/rules/retrieve/rule-grow-retrieve.ts +0 -337
- package/src/planner/scopes/aliased.ts +0 -50
- package/src/planner/scopes/base.ts +0 -10
- package/src/planner/scopes/empty.ts +0 -12
- package/src/planner/scopes/global.ts +0 -73
- package/src/planner/scopes/multi.ts +0 -40
- package/src/planner/scopes/param.ts +0 -95
- package/src/planner/scopes/registered.ts +0 -67
- package/src/planner/scopes/scope.ts +0 -16
- package/src/planner/stats/basic-estimates.ts +0 -107
- package/src/planner/stats/index.ts +0 -158
- package/src/planner/type-utils.ts +0 -87
- package/src/planner/util/key-utils.ts +0 -46
- package/src/planner/validation/determinism-validator.ts +0 -104
- package/src/planner/validation/plan-validator.ts +0 -335
- package/src/runtime/async-util.ts +0 -283
- package/src/runtime/cache/shared-cache.ts +0 -169
- package/src/runtime/context-helpers.ts +0 -191
- package/src/runtime/deferred-constraint-queue.ts +0 -196
- package/src/runtime/emission-context.ts +0 -319
- package/src/runtime/emit/add-constraint.ts +0 -78
- package/src/runtime/emit/aggregate.ts +0 -581
- package/src/runtime/emit/array-index.ts +0 -25
- package/src/runtime/emit/between.ts +0 -51
- package/src/runtime/emit/binary.ts +0 -357
- package/src/runtime/emit/block.ts +0 -23
- package/src/runtime/emit/cache.ts +0 -64
- package/src/runtime/emit/case.ts +0 -87
- package/src/runtime/emit/cast.ts +0 -151
- package/src/runtime/emit/collate.ts +0 -9
- package/src/runtime/emit/column-reference.ts +0 -17
- package/src/runtime/emit/constraint-check.ts +0 -290
- package/src/runtime/emit/create-assertion.ts +0 -82
- package/src/runtime/emit/create-index.ts +0 -15
- package/src/runtime/emit/create-table.ts +0 -15
- package/src/runtime/emit/create-view.ts +0 -52
- package/src/runtime/emit/cte-reference.ts +0 -38
- package/src/runtime/emit/cte.ts +0 -39
- package/src/runtime/emit/delete.ts +0 -24
- package/src/runtime/emit/distinct.ts +0 -40
- package/src/runtime/emit/dml-executor.ts +0 -198
- package/src/runtime/emit/drop-assertion.ts +0 -45
- package/src/runtime/emit/drop-table.ts +0 -27
- package/src/runtime/emit/drop-view.ts +0 -49
- package/src/runtime/emit/filter.ts +0 -30
- package/src/runtime/emit/insert.ts +0 -42
- package/src/runtime/emit/internal-recursive-cte-ref.ts +0 -37
- package/src/runtime/emit/join.ts +0 -148
- package/src/runtime/emit/limit-offset.ts +0 -73
- package/src/runtime/emit/literal.ts +0 -17
- package/src/runtime/emit/parameter.ts +0 -59
- package/src/runtime/emit/pragma.ts +0 -56
- package/src/runtime/emit/project.ts +0 -46
- package/src/runtime/emit/recursive-cte.ts +0 -111
- package/src/runtime/emit/remote-query.ts +0 -47
- package/src/runtime/emit/retrieve.ts +0 -15
- package/src/runtime/emit/returning.ts +0 -41
- package/src/runtime/emit/scalar-function.ts +0 -69
- package/src/runtime/emit/scan.ts +0 -106
- package/src/runtime/emit/schema-declarative.ts +0 -215
- package/src/runtime/emit/sequencing.ts +0 -24
- package/src/runtime/emit/set-operation.ts +0 -141
- package/src/runtime/emit/sink.ts +0 -27
- package/src/runtime/emit/sort.ts +0 -75
- package/src/runtime/emit/subquery.ts +0 -203
- package/src/runtime/emit/table-valued-function.ts +0 -106
- package/src/runtime/emit/temporal-arithmetic.ts +0 -302
- package/src/runtime/emit/transaction.ts +0 -205
- package/src/runtime/emit/unary.ts +0 -101
- package/src/runtime/emit/update.ts +0 -66
- package/src/runtime/emit/values.ts +0 -66
- package/src/runtime/emit/window-function.ts +0 -42
- package/src/runtime/emit/window.ts +0 -458
- package/src/runtime/emitters.ts +0 -183
- package/src/runtime/register.ts +0 -150
- package/src/runtime/scheduler.ts +0 -488
- package/src/runtime/types.ts +0 -242
- package/src/runtime/utils.ts +0 -177
- package/src/schema/assertion.ts +0 -21
- package/src/schema/catalog.ts +0 -269
- package/src/schema/change-events.ts +0 -80
- package/src/schema/column.ts +0 -51
- package/src/schema/declared-schema-manager.ts +0 -82
- package/src/schema/function.ts +0 -188
- package/src/schema/manager.ts +0 -1034
- package/src/schema/schema-differ.ts +0 -214
- package/src/schema/schema-hasher.ts +0 -26
- package/src/schema/schema.ts +0 -222
- package/src/schema/table.ts +0 -409
- package/src/schema/view.ts +0 -19
- package/src/schema/window-function.ts +0 -56
- package/src/types/builtin-types.ts +0 -350
- package/src/types/index.ts +0 -17
- package/src/types/json-type.ts +0 -152
- package/src/types/logical-type.ts +0 -91
- package/src/types/plugin-interface.ts +0 -10
- package/src/types/registry.ts +0 -204
- package/src/types/temporal-types.ts +0 -290
- package/src/types/validation.ts +0 -120
- package/src/util/affinity.ts +0 -151
- package/src/util/ast-stringify.ts +0 -887
- package/src/util/cached.ts +0 -25
- package/src/util/coercion.ts +0 -113
- package/src/util/comparison.ts +0 -510
- package/src/util/environment.ts +0 -52
- package/src/util/hash.ts +0 -90
- package/src/util/latches.ts +0 -47
- package/src/util/mutation-statement.ts +0 -135
- package/src/util/patterns.ts +0 -56
- package/src/util/plan-formatter.ts +0 -48
- package/src/util/plugin-helper.ts +0 -110
- package/src/util/row-descriptor.ts +0 -105
- package/src/util/serialization.ts +0 -47
- package/src/util/sql-literal.ts +0 -22
- package/src/util/working-table-iterable.ts +0 -38
- package/src/vtab/best-access-plan.ts +0 -244
- package/src/vtab/connection.ts +0 -36
- package/src/vtab/filter-info.ts +0 -23
- package/src/vtab/index-info.ts +0 -84
- package/src/vtab/manifest.ts +0 -86
- package/src/vtab/memory/connection.ts +0 -73
- package/src/vtab/memory/index.ts +0 -191
- package/src/vtab/memory/layer/base-cursor.ts +0 -124
- package/src/vtab/memory/layer/base.ts +0 -275
- package/src/vtab/memory/layer/connection.ts +0 -203
- package/src/vtab/memory/layer/interface.ts +0 -47
- package/src/vtab/memory/layer/manager.ts +0 -909
- package/src/vtab/memory/layer/safe-iterate.ts +0 -49
- package/src/vtab/memory/layer/scan-plan.ts +0 -84
- package/src/vtab/memory/layer/transaction-cursor.ts +0 -162
- package/src/vtab/memory/layer/transaction.ts +0 -229
- package/src/vtab/memory/module.ts +0 -667
- package/src/vtab/memory/table.ts +0 -251
- package/src/vtab/memory/types.ts +0 -23
- package/src/vtab/memory/utils/logging.ts +0 -36
- package/src/vtab/memory/utils/primary-key.ts +0 -163
- package/src/vtab/module.ts +0 -162
- package/src/vtab/table.ts +0 -177
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { createLogger } from '../common/logger.js';
|
|
2
|
-
|
|
3
|
-
const log = createLogger('schema:change-events');
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Represents a schema change event.
|
|
7
|
-
*/
|
|
8
|
-
export interface SchemaChangeEvent {
|
|
9
|
-
type: 'table_added' | 'table_removed' | 'table_modified' |
|
|
10
|
-
'function_added' | 'function_removed' | 'function_modified' |
|
|
11
|
-
'module_added' | 'module_removed' | 'collation_added' | 'collation_removed';
|
|
12
|
-
schemaName?: string;
|
|
13
|
-
objectName: string;
|
|
14
|
-
oldObject?: unknown;
|
|
15
|
-
newObject?: unknown;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Function that handles schema change events.
|
|
20
|
-
*/
|
|
21
|
-
export type SchemaChangeListener = (event: SchemaChangeEvent) => void;
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Manages schema change listeners and notifications.
|
|
25
|
-
*/
|
|
26
|
-
export class SchemaChangeNotifier {
|
|
27
|
-
private listeners = new Set<SchemaChangeListener>();
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Adds a schema change listener.
|
|
31
|
-
* @returns A function to unsubscribe the listener.
|
|
32
|
-
*/
|
|
33
|
-
addListener(listener: SchemaChangeListener): () => void {
|
|
34
|
-
this.listeners.add(listener);
|
|
35
|
-
log('Added schema change listener, total listeners: %d', this.listeners.size);
|
|
36
|
-
return () => this.removeListener(listener);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Removes a schema change listener.
|
|
41
|
-
*/
|
|
42
|
-
removeListener(listener: SchemaChangeListener): void {
|
|
43
|
-
const removed = this.listeners.delete(listener);
|
|
44
|
-
if (removed) {
|
|
45
|
-
log('Removed schema change listener, total listeners: %d', this.listeners.size);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Notifies all listeners of a schema change event.
|
|
51
|
-
*/
|
|
52
|
-
notifyChange(event: SchemaChangeEvent): void {
|
|
53
|
-
log('Notifying %d listeners of schema change: %s %s',
|
|
54
|
-
this.listeners.size, event.type, event.objectName);
|
|
55
|
-
|
|
56
|
-
for (const listener of this.listeners) {
|
|
57
|
-
try {
|
|
58
|
-
listener(event);
|
|
59
|
-
} catch (error) {
|
|
60
|
-
log('Error in schema change listener: %s', error);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Gets the number of active listeners.
|
|
67
|
-
*/
|
|
68
|
-
getListenerCount(): number {
|
|
69
|
-
return this.listeners.size;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Clears all listeners.
|
|
74
|
-
*/
|
|
75
|
-
clearListeners(): void {
|
|
76
|
-
const count = this.listeners.size;
|
|
77
|
-
this.listeners.clear();
|
|
78
|
-
log('Cleared all %d schema change listeners', count);
|
|
79
|
-
}
|
|
80
|
-
}
|
package/src/schema/column.ts
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { SqlDataType } from '../common/types.js';
|
|
2
|
-
import type { Expression } from '../parser/ast.js';
|
|
3
|
-
import type { LogicalType } from '../types/logical-type.js';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Represents the schema definition of a single column in a table.
|
|
7
|
-
*/
|
|
8
|
-
export interface ColumnSchema {
|
|
9
|
-
/** Column name */
|
|
10
|
-
name: string;
|
|
11
|
-
/** Logical type definition */
|
|
12
|
-
logicalType: LogicalType;
|
|
13
|
-
/** Whether the column has a NOT NULL constraint */
|
|
14
|
-
notNull: boolean;
|
|
15
|
-
/** Whether the column is part of the primary key */
|
|
16
|
-
primaryKey: boolean;
|
|
17
|
-
/** Order within the primary key (1-based) or 0 if not PK */
|
|
18
|
-
pkOrder: number;
|
|
19
|
-
/** Default value expression */
|
|
20
|
-
defaultValue: Expression | null;
|
|
21
|
-
/** Declared collation sequence name (e.g., "BINARY", "NOCASE", "RTRIM") */
|
|
22
|
-
collation: string;
|
|
23
|
-
/** Is the column generated? */
|
|
24
|
-
generated: boolean;
|
|
25
|
-
/** Sort direction for primary key ('asc' | 'desc') */
|
|
26
|
-
pkDirection?: 'asc' | 'desc';
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Creates a default ColumnSchema with basic properties
|
|
31
|
-
* Following Third Manifesto principles, columns default to NOT NULL unless explicitly specified otherwise
|
|
32
|
-
*
|
|
33
|
-
* @param name The name for the column
|
|
34
|
-
* @param defaultNotNull Whether columns should be NOT NULL by default (defaults to true for Third Manifesto compliance)
|
|
35
|
-
* @returns A new column schema with default values
|
|
36
|
-
*/
|
|
37
|
-
export function createDefaultColumnSchema(name: string, defaultNotNull: boolean = true): ColumnSchema {
|
|
38
|
-
// Import TEXT_TYPE lazily to avoid circular dependencies
|
|
39
|
-
const { TEXT_TYPE } = require('../types/builtin-types.js');
|
|
40
|
-
|
|
41
|
-
return {
|
|
42
|
-
name: name,
|
|
43
|
-
logicalType: TEXT_TYPE,
|
|
44
|
-
notNull: defaultNotNull, // Third Manifesto: default to NOT NULL
|
|
45
|
-
primaryKey: false,
|
|
46
|
-
pkOrder: 0,
|
|
47
|
-
defaultValue: null,
|
|
48
|
-
collation: 'BINARY', // SQLite's default
|
|
49
|
-
generated: false,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import type * as AST from '../parser/ast.js';
|
|
2
|
-
import type { SqlValue } from '../common/types.js';
|
|
3
|
-
import { createLogger } from '../common/logger.js';
|
|
4
|
-
|
|
5
|
-
const log = createLogger('schema:declared');
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Manages declared schemas and their associated seed data
|
|
9
|
-
*/
|
|
10
|
-
export class DeclaredSchemaManager {
|
|
11
|
-
private declaredSchemas: Map<string, AST.DeclareSchemaStmt> = new Map();
|
|
12
|
-
private seedData: Map<string, Map<string, SqlValue[][]>> = new Map(); // schemaName -> tableName -> rows
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Stores a declared schema
|
|
16
|
-
*/
|
|
17
|
-
setDeclaredSchema(schemaName: string, declaration: AST.DeclareSchemaStmt): void {
|
|
18
|
-
this.declaredSchemas.set(schemaName.toLowerCase(), declaration);
|
|
19
|
-
log('Stored declared schema for: %s', schemaName);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Retrieves a declared schema
|
|
24
|
-
*/
|
|
25
|
-
getDeclaredSchema(schemaName: string): AST.DeclareSchemaStmt | undefined {
|
|
26
|
-
return this.declaredSchemas.get(schemaName.toLowerCase());
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Checks if a schema has been declared
|
|
31
|
-
*/
|
|
32
|
-
hasDeclaredSchema(schemaName: string): boolean {
|
|
33
|
-
return this.declaredSchemas.has(schemaName.toLowerCase());
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Stores seed data for a table in a schema
|
|
38
|
-
*/
|
|
39
|
-
setSeedData(schemaName: string, tableName: string, rows: SqlValue[][]): void {
|
|
40
|
-
const lowerSchema = schemaName.toLowerCase();
|
|
41
|
-
if (!this.seedData.has(lowerSchema)) {
|
|
42
|
-
this.seedData.set(lowerSchema, new Map());
|
|
43
|
-
}
|
|
44
|
-
const schemaSeedData = this.seedData.get(lowerSchema)!;
|
|
45
|
-
schemaSeedData.set(tableName.toLowerCase(), rows);
|
|
46
|
-
log('Stored seed data for %s.%s (%d rows)', schemaName, tableName, rows.length);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Retrieves seed data for a table
|
|
51
|
-
*/
|
|
52
|
-
getSeedData(schemaName: string, tableName: string): SqlValue[][] | undefined {
|
|
53
|
-
const schemaSeedData = this.seedData.get(schemaName.toLowerCase());
|
|
54
|
-
if (!schemaSeedData) return undefined;
|
|
55
|
-
return schemaSeedData.get(tableName.toLowerCase());
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Gets all seed data for a schema
|
|
60
|
-
*/
|
|
61
|
-
getAllSeedData(schemaName: string): Map<string, SqlValue[][]> {
|
|
62
|
-
return this.seedData.get(schemaName.toLowerCase()) || new Map();
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Clears all seed data for a schema
|
|
67
|
-
*/
|
|
68
|
-
clearSeedData(schemaName: string): void {
|
|
69
|
-
this.seedData.delete(schemaName.toLowerCase());
|
|
70
|
-
log('Cleared seed data for: %s', schemaName);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Removes a declared schema and its seed data
|
|
75
|
-
*/
|
|
76
|
-
removeDeclaredSchema(schemaName: string): void {
|
|
77
|
-
this.declaredSchemas.delete(schemaName.toLowerCase());
|
|
78
|
-
this.seedData.delete(schemaName.toLowerCase());
|
|
79
|
-
log('Removed declared schema: %s', schemaName);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
package/src/schema/function.ts
DELETED
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
import type { MaybePromise, Row, SqlValue, DeepReadonly } from '../common/types.js';
|
|
2
|
-
import { FunctionFlags } from '../common/constants.js';
|
|
3
|
-
import { SqlDataType } from '../common/types.js';
|
|
4
|
-
import type { Database } from '../core/database.js';
|
|
5
|
-
import type { BaseType, ScalarType, RelationType } from '../common/datatype.js';
|
|
6
|
-
import type { AggValue } from '../func/registration.js';
|
|
7
|
-
import type { LogicalType } from '../types/logical-type.js';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Type for a scalar function implementation.
|
|
11
|
-
*/
|
|
12
|
-
export type ScalarFunc = (...args: SqlValue[]) => MaybePromise<SqlValue>;
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Type for a table-valued function implementation.
|
|
16
|
-
*/
|
|
17
|
-
export type TableValuedFunc = (...args: SqlValue[]) => MaybePromise<AsyncIterable<Row>>;
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Type for a database-aware table-valued function implementation.
|
|
21
|
-
* Takes a database instance and SQL values, returns an async iterable of rows.
|
|
22
|
-
*/
|
|
23
|
-
export type IntegratedTableValuedFunc = (db: Database, ...args: SqlValue[]) => MaybePromise<AsyncIterable<Row>>;
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Type for aggregate step function.
|
|
27
|
-
*/
|
|
28
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
29
|
-
export type AggregateReducer<T = any> = (accumulator: T, ...args: SqlValue[]) => T;
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Type for aggregate finalizer function.
|
|
33
|
-
*/
|
|
34
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
35
|
-
export type AggregateFinalizer<T = any> = (accumulator: T) => SqlValue;
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Custom emitter hook for functions that need special emission logic.
|
|
39
|
-
* This allows functions to cache compiled state in the EmissionContext,
|
|
40
|
-
* optimize constant arguments, or perform other emission-time optimizations.
|
|
41
|
-
*/
|
|
42
|
-
export type CustomEmitterHook = (
|
|
43
|
-
plan: any, // ScalarFunctionCallNode, but we avoid circular dependency
|
|
44
|
-
ctx: any, // EmissionContext, but we avoid circular dependency
|
|
45
|
-
defaultEmit: (plan: any, ctx: any) => any // Instruction
|
|
46
|
-
) => any; // Instruction
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Base interface for all function schemas with common properties.
|
|
50
|
-
*/
|
|
51
|
-
interface BaseFunctionSchema {
|
|
52
|
-
/** Function name (lowercase for consistent lookup) */
|
|
53
|
-
name: string;
|
|
54
|
-
/** Number of arguments (-1 for variable) */
|
|
55
|
-
numArgs: number;
|
|
56
|
-
/** Combination of FunctionFlags */
|
|
57
|
-
flags: FunctionFlags;
|
|
58
|
-
/** User data pointer passed during registration */
|
|
59
|
-
userData?: unknown;
|
|
60
|
-
/** Return type information */
|
|
61
|
-
returnType: BaseType;
|
|
62
|
-
/**
|
|
63
|
-
* Optional custom emitter hook for emission-time optimizations.
|
|
64
|
-
* If provided, this function will be called during plan emission instead of
|
|
65
|
-
* the default scalar function emitter. The hook receives the plan node,
|
|
66
|
-
* emission context, and a reference to the default emitter.
|
|
67
|
-
*/
|
|
68
|
-
customEmitter?: CustomEmitterHook;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Schema for scalar functions that return a single value.
|
|
73
|
-
*/
|
|
74
|
-
export interface ScalarFunctionSchema extends BaseFunctionSchema {
|
|
75
|
-
returnType: ScalarType;
|
|
76
|
-
/** Direct scalar function implementation */
|
|
77
|
-
implementation: ScalarFunc;
|
|
78
|
-
/**
|
|
79
|
-
* Optional type inference function for polymorphic functions.
|
|
80
|
-
* If provided, this function will be called at planning time to determine
|
|
81
|
-
* the return type based on the actual argument types.
|
|
82
|
-
* This allows functions like abs() to return INTEGER when given INTEGER,
|
|
83
|
-
* and REAL when given REAL.
|
|
84
|
-
*/
|
|
85
|
-
inferReturnType?: (argTypes: ReadonlyArray<DeepReadonly<LogicalType>>) => ScalarType;
|
|
86
|
-
/**
|
|
87
|
-
* Optional argument type validation function.
|
|
88
|
-
* If provided, this function will be called at planning time to validate
|
|
89
|
-
* that the argument types are acceptable for this function.
|
|
90
|
-
* Should return true if types are valid, false otherwise.
|
|
91
|
-
*/
|
|
92
|
-
validateArgTypes?: (argTypes: ReadonlyArray<DeepReadonly<LogicalType>>) => boolean;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Schema for table-valued functions that return rows.
|
|
97
|
-
*/
|
|
98
|
-
export interface TableValuedFunctionSchema extends BaseFunctionSchema {
|
|
99
|
-
returnType: RelationType;
|
|
100
|
-
/** Table-valued function implementation */
|
|
101
|
-
implementation: TableValuedFunc | IntegratedTableValuedFunc;
|
|
102
|
-
/** Whether this TVF requires database access as first parameter */
|
|
103
|
-
isIntegrated?: boolean;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Schema for aggregate functions.
|
|
108
|
-
*/
|
|
109
|
-
export interface AggregateFunctionSchema extends BaseFunctionSchema {
|
|
110
|
-
returnType: ScalarType;
|
|
111
|
-
/** Aggregate step function */
|
|
112
|
-
stepFunction: AggregateReducer;
|
|
113
|
-
/** Aggregate finalizer function */
|
|
114
|
-
finalizeFunction: AggregateFinalizer;
|
|
115
|
-
/** Initial accumulator value for aggregates */
|
|
116
|
-
initialValue?: AggValue;
|
|
117
|
-
/**
|
|
118
|
-
* Optional type inference function for polymorphic aggregate functions.
|
|
119
|
-
* If provided, this function will be called at planning time to determine
|
|
120
|
-
* the return type based on the actual argument types.
|
|
121
|
-
*/
|
|
122
|
-
inferReturnType?: (argTypes: ReadonlyArray<DeepReadonly<LogicalType>>) => ScalarType;
|
|
123
|
-
/**
|
|
124
|
-
* Optional argument type validation function.
|
|
125
|
-
* If provided, this function will be called at planning time to validate
|
|
126
|
-
* that the argument types are acceptable for this function.
|
|
127
|
-
*/
|
|
128
|
-
validateArgTypes?: (argTypes: ReadonlyArray<DeepReadonly<LogicalType>>) => boolean;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Schema for window functions (for future use).
|
|
133
|
-
*/
|
|
134
|
-
export interface WindowFunctionSchema extends BaseFunctionSchema {
|
|
135
|
-
returnType: ScalarType;
|
|
136
|
-
/** Window function implementation */
|
|
137
|
-
implementation: (...args: SqlValue[]) => SqlValue;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* Union type representing all possible function schemas.
|
|
142
|
-
*/
|
|
143
|
-
export type FunctionSchema =
|
|
144
|
-
| ScalarFunctionSchema
|
|
145
|
-
| TableValuedFunctionSchema
|
|
146
|
-
| AggregateFunctionSchema
|
|
147
|
-
| WindowFunctionSchema;
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* Type guards for function schema types.
|
|
151
|
-
*/
|
|
152
|
-
export function isScalarFunctionSchema(schema: FunctionSchema): schema is ScalarFunctionSchema {
|
|
153
|
-
return schema.returnType.typeClass === 'scalar' && 'implementation' in schema && typeof schema.implementation === 'function';
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
export function isTableValuedFunctionSchema(schema: FunctionSchema): schema is TableValuedFunctionSchema {
|
|
157
|
-
return schema.returnType.typeClass === 'relation';
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
export function isAggregateFunctionSchema(schema: FunctionSchema): schema is AggregateFunctionSchema {
|
|
161
|
-
return 'stepFunction' in schema && 'finalizeFunction' in schema;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
export function isWindowFunctionSchema(schema: FunctionSchema): schema is WindowFunctionSchema {
|
|
165
|
-
return 'implementation' in schema && schema.returnType.typeClass === 'scalar' && !isScalarFunctionSchema(schema) && !isAggregateFunctionSchema(schema);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* Creates a consistent key for storing/looking up functions
|
|
170
|
-
*
|
|
171
|
-
* @param name Function name
|
|
172
|
-
* @param numArgs Number of arguments (-1 for variable argument count)
|
|
173
|
-
* @returns A string key in the format "name/numArgs"
|
|
174
|
-
*/
|
|
175
|
-
export function getFunctionKey(name: string, numArgs: number): string {
|
|
176
|
-
return `${name.toLowerCase()}/${numArgs}`;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
// Legacy compatibility - deprecated interfaces and column info
|
|
180
|
-
/**
|
|
181
|
-
* @deprecated Use RelationType.columns instead
|
|
182
|
-
* Column information for table-valued functions.
|
|
183
|
-
*/
|
|
184
|
-
export interface TVFColumnInfo {
|
|
185
|
-
name: string;
|
|
186
|
-
type: SqlDataType;
|
|
187
|
-
nullable?: boolean;
|
|
188
|
-
}
|