@quereus/quereus 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +228 -0
- package/dist/src/common/constants.d.ts +49 -0
- package/dist/src/common/constants.d.ts.map +1 -0
- package/dist/src/common/constants.js +62 -0
- package/dist/src/common/constants.js.map +1 -0
- package/dist/src/common/datatype.d.ts +72 -0
- package/dist/src/common/datatype.d.ts.map +1 -0
- package/dist/src/common/datatype.js +10 -0
- package/dist/src/common/datatype.js.map +1 -0
- package/dist/src/common/errors.d.ts +90 -0
- package/dist/src/common/errors.d.ts.map +1 -0
- package/dist/src/common/errors.js +142 -0
- package/dist/src/common/errors.js.map +1 -0
- package/dist/src/common/logger.d.ts +18 -0
- package/dist/src/common/logger.d.ts.map +1 -0
- package/dist/src/common/logger.js +22 -0
- package/dist/src/common/logger.js.map +1 -0
- package/dist/src/common/type-inference.d.ts +11 -0
- package/dist/src/common/type-inference.d.ts.map +1 -0
- package/dist/src/common/type-inference.js +44 -0
- package/dist/src/common/type-inference.js.map +1 -0
- package/dist/src/common/types.d.ts +131 -0
- package/dist/src/common/types.d.ts.map +1 -0
- package/dist/src/common/types.js +53 -0
- package/dist/src/common/types.js.map +1 -0
- package/dist/src/core/database-options.d.ts +67 -0
- package/dist/src/core/database-options.d.ts.map +1 -0
- package/dist/src/core/database-options.js +211 -0
- package/dist/src/core/database-options.js.map +1 -0
- package/dist/src/core/database.d.ts +214 -0
- package/dist/src/core/database.d.ts.map +1 -0
- package/dist/src/core/database.js +750 -0
- package/dist/src/core/database.js.map +1 -0
- package/dist/src/core/param.d.ts +4 -0
- package/dist/src/core/param.d.ts.map +1 -0
- package/dist/src/core/param.js +46 -0
- package/dist/src/core/param.js.map +1 -0
- package/dist/src/core/statement.d.ts +94 -0
- package/dist/src/core/statement.d.ts.map +1 -0
- package/dist/src/core/statement.js +482 -0
- package/dist/src/core/statement.js.map +1 -0
- package/dist/src/func/builtins/aggregate.d.ts +13 -0
- package/dist/src/func/builtins/aggregate.d.ts.map +1 -0
- package/dist/src/func/builtins/aggregate.js +190 -0
- package/dist/src/func/builtins/aggregate.js.map +1 -0
- package/dist/src/func/builtins/builtin-window-functions.d.ts +2 -0
- package/dist/src/func/builtins/builtin-window-functions.d.ts.map +1 -0
- package/dist/src/func/builtins/builtin-window-functions.js +161 -0
- package/dist/src/func/builtins/builtin-window-functions.js.map +1 -0
- package/dist/src/func/builtins/datetime.d.ts +6 -0
- package/dist/src/func/builtins/datetime.d.ts.map +1 -0
- package/dist/src/func/builtins/datetime.js +417 -0
- package/dist/src/func/builtins/datetime.js.map +1 -0
- package/dist/src/func/builtins/explain.d.ts +7 -0
- package/dist/src/func/builtins/explain.d.ts.map +1 -0
- package/dist/src/func/builtins/explain.js +570 -0
- package/dist/src/func/builtins/explain.js.map +1 -0
- package/dist/src/func/builtins/generation.d.ts +2 -0
- package/dist/src/func/builtins/generation.d.ts.map +1 -0
- package/dist/src/func/builtins/generation.js +36 -0
- package/dist/src/func/builtins/generation.js.map +1 -0
- package/dist/src/func/builtins/index.d.ts +4 -0
- package/dist/src/func/builtins/index.d.ts.map +1 -0
- package/dist/src/func/builtins/index.js +106 -0
- package/dist/src/func/builtins/index.js.map +1 -0
- package/dist/src/func/builtins/json-helpers.d.ts +64 -0
- package/dist/src/func/builtins/json-helpers.d.ts.map +1 -0
- package/dist/src/func/builtins/json-helpers.js +237 -0
- package/dist/src/func/builtins/json-helpers.js.map +1 -0
- package/dist/src/func/builtins/json-tvf.d.ts +3 -0
- package/dist/src/func/builtins/json-tvf.d.ts.map +1 -0
- package/dist/src/func/builtins/json-tvf.js +199 -0
- package/dist/src/func/builtins/json-tvf.js.map +1 -0
- package/dist/src/func/builtins/json.d.ts +15 -0
- package/dist/src/func/builtins/json.d.ts.map +1 -0
- package/dist/src/func/builtins/json.js +417 -0
- package/dist/src/func/builtins/json.js.map +1 -0
- package/dist/src/func/builtins/scalar.d.ts +19 -0
- package/dist/src/func/builtins/scalar.d.ts.map +1 -0
- package/dist/src/func/builtins/scalar.js +176 -0
- package/dist/src/func/builtins/scalar.js.map +1 -0
- package/dist/src/func/builtins/schema.d.ts +4 -0
- package/dist/src/func/builtins/schema.d.ts.map +1 -0
- package/dist/src/func/builtins/schema.js +167 -0
- package/dist/src/func/builtins/schema.js.map +1 -0
- package/dist/src/func/builtins/string.d.ts +18 -0
- package/dist/src/func/builtins/string.d.ts.map +1 -0
- package/dist/src/func/builtins/string.js +233 -0
- package/dist/src/func/builtins/string.js.map +1 -0
- package/dist/src/func/context.d.ts +102 -0
- package/dist/src/func/context.d.ts.map +1 -0
- package/dist/src/func/context.js +130 -0
- package/dist/src/func/context.js.map +1 -0
- package/dist/src/func/registration.d.ts +89 -0
- package/dist/src/func/registration.d.ts.map +1 -0
- package/dist/src/func/registration.js +103 -0
- package/dist/src/func/registration.js.map +1 -0
- package/dist/src/index.d.ts +34 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +35 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/parser/ast.d.ts +376 -0
- package/dist/src/parser/ast.d.ts.map +1 -0
- package/dist/src/parser/ast.js +2 -0
- package/dist/src/parser/ast.js.map +1 -0
- package/dist/src/parser/index.d.ts +29 -0
- package/dist/src/parser/index.d.ts.map +1 -0
- package/dist/src/parser/index.js +50 -0
- package/dist/src/parser/index.js.map +1 -0
- package/dist/src/parser/lexer.d.ts +197 -0
- package/dist/src/parser/lexer.d.ts.map +1 -0
- package/dist/src/parser/lexer.js +762 -0
- package/dist/src/parser/lexer.js.map +1 -0
- package/dist/src/parser/parser.d.ts +216 -0
- package/dist/src/parser/parser.d.ts.map +1 -0
- package/dist/src/parser/parser.js +2619 -0
- package/dist/src/parser/parser.js.map +1 -0
- package/dist/src/parser/utils.d.ts +4 -0
- package/dist/src/parser/utils.d.ts.map +1 -0
- package/dist/src/parser/utils.js +8 -0
- package/dist/src/parser/utils.js.map +1 -0
- package/dist/src/parser/visitor.d.ts +38 -0
- package/dist/src/parser/visitor.d.ts.map +1 -0
- package/dist/src/parser/visitor.js +153 -0
- package/dist/src/parser/visitor.js.map +1 -0
- package/dist/src/planner/analysis/const-evaluator.d.ts +14 -0
- package/dist/src/planner/analysis/const-evaluator.d.ts.map +1 -0
- package/dist/src/planner/analysis/const-evaluator.js +50 -0
- package/dist/src/planner/analysis/const-evaluator.js.map +1 -0
- package/dist/src/planner/analysis/const-pass.d.ts +51 -0
- package/dist/src/planner/analysis/const-pass.d.ts.map +1 -0
- package/dist/src/planner/analysis/const-pass.js +200 -0
- package/dist/src/planner/analysis/const-pass.js.map +1 -0
- package/dist/src/planner/analysis/constraint-extractor.d.ts +57 -0
- package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -0
- package/dist/src/planner/analysis/constraint-extractor.js +193 -0
- package/dist/src/planner/analysis/constraint-extractor.js.map +1 -0
- package/dist/src/planner/building/alter-table.d.ts +5 -0
- package/dist/src/planner/building/alter-table.d.ts.map +1 -0
- package/dist/src/planner/building/alter-table.js +26 -0
- package/dist/src/planner/building/alter-table.js.map +1 -0
- package/dist/src/planner/building/block.d.ts +5 -0
- package/dist/src/planner/building/block.d.ts.map +1 -0
- package/dist/src/planner/building/block.js +68 -0
- package/dist/src/planner/building/block.js.map +1 -0
- package/dist/src/planner/building/create-view.d.ts +8 -0
- package/dist/src/planner/building/create-view.d.ts.map +1 -0
- package/dist/src/planner/building/create-view.js +37 -0
- package/dist/src/planner/building/create-view.js.map +1 -0
- package/dist/src/planner/building/ddl.d.ts +7 -0
- package/dist/src/planner/building/ddl.d.ts.map +1 -0
- package/dist/src/planner/building/ddl.js +9 -0
- package/dist/src/planner/building/ddl.js.map +1 -0
- package/dist/src/planner/building/delete.d.ts +5 -0
- package/dist/src/planner/building/delete.d.ts.map +1 -0
- package/dist/src/planner/building/delete.js +105 -0
- package/dist/src/planner/building/delete.js.map +1 -0
- package/dist/src/planner/building/drop-table.d.ts +5 -0
- package/dist/src/planner/building/drop-table.d.ts.map +1 -0
- package/dist/src/planner/building/drop-table.js +5 -0
- package/dist/src/planner/building/drop-table.js.map +1 -0
- package/dist/src/planner/building/drop-view.d.ts +8 -0
- package/dist/src/planner/building/drop-view.d.ts.map +1 -0
- package/dist/src/planner/building/drop-view.js +11 -0
- package/dist/src/planner/building/drop-view.js.map +1 -0
- package/dist/src/planner/building/expression.d.ts +5 -0
- package/dist/src/planner/building/expression.d.ts.map +1 -0
- package/dist/src/planner/building/expression.js +147 -0
- package/dist/src/planner/building/expression.js.map +1 -0
- package/dist/src/planner/building/function-call.d.ts +5 -0
- package/dist/src/planner/building/function-call.d.ts.map +1 -0
- package/dist/src/planner/building/function-call.js +70 -0
- package/dist/src/planner/building/function-call.js.map +1 -0
- package/dist/src/planner/building/insert.d.ts +5 -0
- package/dist/src/planner/building/insert.d.ts.map +1 -0
- package/dist/src/planner/building/insert.js +261 -0
- package/dist/src/planner/building/insert.js.map +1 -0
- package/dist/src/planner/building/pragma.d.ts +5 -0
- package/dist/src/planner/building/pragma.d.ts.map +1 -0
- package/dist/src/planner/building/pragma.js +28 -0
- package/dist/src/planner/building/pragma.js.map +1 -0
- package/dist/src/planner/building/schema-resolution.d.ts +25 -0
- package/dist/src/planner/building/schema-resolution.d.ts.map +1 -0
- package/dist/src/planner/building/schema-resolution.js +119 -0
- package/dist/src/planner/building/schema-resolution.js.map +1 -0
- package/dist/src/planner/building/select-aggregates.d.ts +22 -0
- package/dist/src/planner/building/select-aggregates.d.ts.map +1 -0
- package/dist/src/planner/building/select-aggregates.js +164 -0
- package/dist/src/planner/building/select-aggregates.js.map +1 -0
- package/dist/src/planner/building/select-compound.d.ts +9 -0
- package/dist/src/planner/building/select-compound.d.ts.map +1 -0
- package/dist/src/planner/building/select-compound.js +78 -0
- package/dist/src/planner/building/select-compound.js.map +1 -0
- package/dist/src/planner/building/select-context.d.ts +18 -0
- package/dist/src/planner/building/select-context.d.ts.map +1 -0
- package/dist/src/planner/building/select-context.js +54 -0
- package/dist/src/planner/building/select-context.js.map +1 -0
- package/dist/src/planner/building/select-modifiers.d.ts +25 -0
- package/dist/src/planner/building/select-modifiers.d.ts.map +1 -0
- package/dist/src/planner/building/select-modifiers.js +120 -0
- package/dist/src/planner/building/select-modifiers.js.map +1 -0
- package/dist/src/planner/building/select-projections.d.ts +37 -0
- package/dist/src/planner/building/select-projections.d.ts.map +1 -0
- package/dist/src/planner/building/select-projections.js +132 -0
- package/dist/src/planner/building/select-projections.js.map +1 -0
- package/dist/src/planner/building/select-window.d.ts +12 -0
- package/dist/src/planner/building/select-window.d.ts.map +1 -0
- package/dist/src/planner/building/select-window.js +159 -0
- package/dist/src/planner/building/select-window.js.map +1 -0
- package/dist/src/planner/building/select.d.ts +28 -0
- package/dist/src/planner/building/select.d.ts.map +1 -0
- package/dist/src/planner/building/select.js +307 -0
- package/dist/src/planner/building/select.js.map +1 -0
- package/dist/src/planner/building/table-function.d.ts +5 -0
- package/dist/src/planner/building/table-function.d.ts.map +1 -0
- package/dist/src/planner/building/table-function.js +21 -0
- package/dist/src/planner/building/table-function.js.map +1 -0
- package/dist/src/planner/building/table.d.ts +23 -0
- package/dist/src/planner/building/table.d.ts.map +1 -0
- package/dist/src/planner/building/table.js +57 -0
- package/dist/src/planner/building/table.js.map +1 -0
- package/dist/src/planner/building/transaction.d.ts +9 -0
- package/dist/src/planner/building/transaction.d.ts.map +1 -0
- package/dist/src/planner/building/transaction.js +17 -0
- package/dist/src/planner/building/transaction.js.map +1 -0
- package/dist/src/planner/building/update.d.ts +5 -0
- package/dist/src/planner/building/update.d.ts.map +1 -0
- package/dist/src/planner/building/update.js +152 -0
- package/dist/src/planner/building/update.js.map +1 -0
- package/dist/src/planner/building/with.d.ts +13 -0
- package/dist/src/planner/building/with.d.ts.map +1 -0
- package/dist/src/planner/building/with.js +112 -0
- package/dist/src/planner/building/with.js.map +1 -0
- package/dist/src/planner/cache/materialization-advisory.d.ts +66 -0
- package/dist/src/planner/cache/materialization-advisory.d.ts.map +1 -0
- package/dist/src/planner/cache/materialization-advisory.js +187 -0
- package/dist/src/planner/cache/materialization-advisory.js.map +1 -0
- package/dist/src/planner/cache/reference-graph.d.ts +53 -0
- package/dist/src/planner/cache/reference-graph.d.ts.map +1 -0
- package/dist/src/planner/cache/reference-graph.js +139 -0
- package/dist/src/planner/cache/reference-graph.js.map +1 -0
- package/dist/src/planner/cost/index.d.ts +106 -0
- package/dist/src/planner/cost/index.d.ts.map +1 -0
- package/dist/src/planner/cost/index.js +143 -0
- package/dist/src/planner/cost/index.js.map +1 -0
- package/dist/src/planner/debug/logger-utils.d.ts +44 -0
- package/dist/src/planner/debug/logger-utils.d.ts.map +1 -0
- package/dist/src/planner/debug/logger-utils.js +58 -0
- package/dist/src/planner/debug/logger-utils.js.map +1 -0
- package/dist/src/planner/debug.d.ts +53 -0
- package/dist/src/planner/debug.d.ts.map +1 -0
- package/dist/src/planner/debug.js +228 -0
- package/dist/src/planner/debug.js.map +1 -0
- package/dist/src/planner/framework/context.d.ts +86 -0
- package/dist/src/planner/framework/context.d.ts.map +1 -0
- package/dist/src/planner/framework/context.js +117 -0
- package/dist/src/planner/framework/context.js.map +1 -0
- package/dist/src/planner/framework/physical-utils.d.ts +62 -0
- package/dist/src/planner/framework/physical-utils.d.ts.map +1 -0
- package/dist/src/planner/framework/physical-utils.js +149 -0
- package/dist/src/planner/framework/physical-utils.js.map +1 -0
- package/dist/src/planner/framework/registry.d.ts +75 -0
- package/dist/src/planner/framework/registry.d.ts.map +1 -0
- package/dist/src/planner/framework/registry.js +203 -0
- package/dist/src/planner/framework/registry.js.map +1 -0
- package/dist/src/planner/framework/trace.d.ts +84 -0
- package/dist/src/planner/framework/trace.d.ts.map +1 -0
- package/dist/src/planner/framework/trace.js +198 -0
- package/dist/src/planner/framework/trace.js.map +1 -0
- package/dist/src/planner/nodes/add-constraint-node.d.ts +23 -0
- package/dist/src/planner/nodes/add-constraint-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/add-constraint-node.js +47 -0
- package/dist/src/planner/nodes/add-constraint-node.js.map +1 -0
- package/dist/src/planner/nodes/aggregate-function.d.ts +34 -0
- package/dist/src/planner/nodes/aggregate-function.d.ts.map +1 -0
- package/dist/src/planner/nodes/aggregate-function.js +119 -0
- package/dist/src/planner/nodes/aggregate-function.js.map +1 -0
- package/dist/src/planner/nodes/aggregate-node.d.ts +35 -0
- package/dist/src/planner/nodes/aggregate-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/aggregate-node.js +176 -0
- package/dist/src/planner/nodes/aggregate-node.js.map +1 -0
- package/dist/src/planner/nodes/array-index-node.d.ts +22 -0
- package/dist/src/planner/nodes/array-index-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/array-index-node.js +41 -0
- package/dist/src/planner/nodes/array-index-node.js.map +1 -0
- package/dist/src/planner/nodes/block.d.ts +26 -0
- package/dist/src/planner/nodes/block.d.ts.map +1 -0
- package/dist/src/planner/nodes/block.js +58 -0
- package/dist/src/planner/nodes/block.js.map +1 -0
- package/dist/src/planner/nodes/cache-node.d.ts +29 -0
- package/dist/src/planner/nodes/cache-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/cache-node.js +73 -0
- package/dist/src/planner/nodes/cache-node.js.map +1 -0
- package/dist/src/planner/nodes/constraint-check-node.d.ts +28 -0
- package/dist/src/planner/nodes/constraint-check-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/constraint-check-node.js +73 -0
- package/dist/src/planner/nodes/constraint-check-node.js.map +1 -0
- package/dist/src/planner/nodes/create-index-node.d.ts +15 -0
- package/dist/src/planner/nodes/create-index-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/create-index-node.js +31 -0
- package/dist/src/planner/nodes/create-index-node.js.map +1 -0
- package/dist/src/planner/nodes/create-table-node.d.ts +15 -0
- package/dist/src/planner/nodes/create-table-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/create-table-node.js +25 -0
- package/dist/src/planner/nodes/create-table-node.js.map +1 -0
- package/dist/src/planner/nodes/create-view-node.d.ts +21 -0
- package/dist/src/planner/nodes/create-view-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/create-view-node.js +39 -0
- package/dist/src/planner/nodes/create-view-node.js.map +1 -0
- package/dist/src/planner/nodes/cte-node.d.ts +40 -0
- package/dist/src/planner/nodes/cte-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/cte-node.js +88 -0
- package/dist/src/planner/nodes/cte-node.js.map +1 -0
- package/dist/src/planner/nodes/cte-reference-node.d.ts +27 -0
- package/dist/src/planner/nodes/cte-reference-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/cte-reference-node.js +75 -0
- package/dist/src/planner/nodes/cte-reference-node.js.map +1 -0
- package/dist/src/planner/nodes/delete-node.d.ts +27 -0
- package/dist/src/planner/nodes/delete-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/delete-node.js +62 -0
- package/dist/src/planner/nodes/delete-node.js.map +1 -0
- package/dist/src/planner/nodes/distinct-node.d.ts +22 -0
- package/dist/src/planner/nodes/distinct-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/distinct-node.js +74 -0
- package/dist/src/planner/nodes/distinct-node.js.map +1 -0
- package/dist/src/planner/nodes/dml-executor-node.d.ts +30 -0
- package/dist/src/planner/nodes/dml-executor-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/dml-executor-node.js +73 -0
- package/dist/src/planner/nodes/dml-executor-node.js.map +1 -0
- package/dist/src/planner/nodes/drop-table-node.d.ts +15 -0
- package/dist/src/planner/nodes/drop-table-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/drop-table-node.js +25 -0
- package/dist/src/planner/nodes/drop-table-node.js.map +1 -0
- package/dist/src/planner/nodes/drop-view-node.d.ts +17 -0
- package/dist/src/planner/nodes/drop-view-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/drop-view-node.js +30 -0
- package/dist/src/planner/nodes/drop-view-node.js.map +1 -0
- package/dist/src/planner/nodes/filter.d.ts +24 -0
- package/dist/src/planner/nodes/filter.d.ts.map +1 -0
- package/dist/src/planner/nodes/filter.js +72 -0
- package/dist/src/planner/nodes/filter.js.map +1 -0
- package/dist/src/planner/nodes/function.d.ts +21 -0
- package/dist/src/planner/nodes/function.d.ts.map +1 -0
- package/dist/src/planner/nodes/function.js +70 -0
- package/dist/src/planner/nodes/function.js.map +1 -0
- package/dist/src/planner/nodes/insert-node.d.ts +26 -0
- package/dist/src/planner/nodes/insert-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/insert-node.js +82 -0
- package/dist/src/planner/nodes/insert-node.js.map +1 -0
- package/dist/src/planner/nodes/join-node.d.ts +30 -0
- package/dist/src/planner/nodes/join-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/join-node.js +177 -0
- package/dist/src/planner/nodes/join-node.js.map +1 -0
- package/dist/src/planner/nodes/limit-offset.d.ts +24 -0
- package/dist/src/planner/nodes/limit-offset.d.ts.map +1 -0
- package/dist/src/planner/nodes/limit-offset.js +103 -0
- package/dist/src/planner/nodes/limit-offset.js.map +1 -0
- package/dist/src/planner/nodes/physical-access-nodes.d.ts +83 -0
- package/dist/src/planner/nodes/physical-access-nodes.d.ts.map +1 -0
- package/dist/src/planner/nodes/physical-access-nodes.js +226 -0
- package/dist/src/planner/nodes/physical-access-nodes.js.map +1 -0
- package/dist/src/planner/nodes/plan-node-type.d.ts +71 -0
- package/dist/src/planner/nodes/plan-node-type.d.ts.map +1 -0
- package/dist/src/planner/nodes/plan-node-type.js +81 -0
- package/dist/src/planner/nodes/plan-node-type.js.map +1 -0
- package/dist/src/planner/nodes/plan-node.d.ts +297 -0
- package/dist/src/planner/nodes/plan-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/plan-node.js +198 -0
- package/dist/src/planner/nodes/plan-node.js.map +1 -0
- package/dist/src/planner/nodes/pragma.d.ts +21 -0
- package/dist/src/planner/nodes/pragma.d.ts.map +1 -0
- package/dist/src/planner/nodes/pragma.js +80 -0
- package/dist/src/planner/nodes/pragma.js.map +1 -0
- package/dist/src/planner/nodes/project-node.d.ts +34 -0
- package/dist/src/planner/nodes/project-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/project-node.js +181 -0
- package/dist/src/planner/nodes/project-node.js.map +1 -0
- package/dist/src/planner/nodes/recursive-cte-node.d.ts +41 -0
- package/dist/src/planner/nodes/recursive-cte-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/recursive-cte-node.js +114 -0
- package/dist/src/planner/nodes/recursive-cte-node.js.map +1 -0
- package/dist/src/planner/nodes/reference.d.ts +92 -0
- package/dist/src/planner/nodes/reference.d.ts.map +1 -0
- package/dist/src/planner/nodes/reference.js +258 -0
- package/dist/src/planner/nodes/reference.js.map +1 -0
- package/dist/src/planner/nodes/returning-node.d.ts +37 -0
- package/dist/src/planner/nodes/returning-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/returning-node.js +183 -0
- package/dist/src/planner/nodes/returning-node.js.map +1 -0
- package/dist/src/planner/nodes/scalar.d.ts +106 -0
- package/dist/src/planner/nodes/scalar.d.ts.map +1 -0
- package/dist/src/planner/nodes/scalar.js +618 -0
- package/dist/src/planner/nodes/scalar.js.map +1 -0
- package/dist/src/planner/nodes/scan.d.ts +27 -0
- package/dist/src/planner/nodes/scan.d.ts.map +1 -0
- package/dist/src/planner/nodes/scan.js +78 -0
- package/dist/src/planner/nodes/scan.js.map +1 -0
- package/dist/src/planner/nodes/sequencing-node.d.ts +25 -0
- package/dist/src/planner/nodes/sequencing-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/sequencing-node.js +88 -0
- package/dist/src/planner/nodes/sequencing-node.js.map +1 -0
- package/dist/src/planner/nodes/set-operation-node.d.ts +21 -0
- package/dist/src/planner/nodes/set-operation-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/set-operation-node.js +68 -0
- package/dist/src/planner/nodes/set-operation-node.js.map +1 -0
- package/dist/src/planner/nodes/single-row.d.ts +24 -0
- package/dist/src/planner/nodes/single-row.d.ts.map +1 -0
- package/dist/src/planner/nodes/single-row.js +65 -0
- package/dist/src/planner/nodes/single-row.js.map +1 -0
- package/dist/src/planner/nodes/sink-node.d.ts +25 -0
- package/dist/src/planner/nodes/sink-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/sink-node.js +52 -0
- package/dist/src/planner/nodes/sink-node.js.map +1 -0
- package/dist/src/planner/nodes/sort.d.ts +37 -0
- package/dist/src/planner/nodes/sort.d.ts.map +1 -0
- package/dist/src/planner/nodes/sort.js +97 -0
- package/dist/src/planner/nodes/sort.js.map +1 -0
- package/dist/src/planner/nodes/stream-aggregate.d.ts +35 -0
- package/dist/src/planner/nodes/stream-aggregate.d.ts.map +1 -0
- package/dist/src/planner/nodes/stream-aggregate.js +186 -0
- package/dist/src/planner/nodes/stream-aggregate.js.map +1 -0
- package/dist/src/planner/nodes/subquery.d.ts +54 -0
- package/dist/src/planner/nodes/subquery.d.ts.map +1 -0
- package/dist/src/planner/nodes/subquery.js +181 -0
- package/dist/src/planner/nodes/subquery.js.map +1 -0
- package/dist/src/planner/nodes/table-function-call.d.ts +27 -0
- package/dist/src/planner/nodes/table-function-call.d.ts.map +1 -0
- package/dist/src/planner/nodes/table-function-call.js +101 -0
- package/dist/src/planner/nodes/table-function-call.js.map +1 -0
- package/dist/src/planner/nodes/transaction-node.d.ts +22 -0
- package/dist/src/planner/nodes/transaction-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/transaction-node.js +47 -0
- package/dist/src/planner/nodes/transaction-node.js.map +1 -0
- package/dist/src/planner/nodes/update-executor-node.d.ts +24 -0
- package/dist/src/planner/nodes/update-executor-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/update-executor-node.js +57 -0
- package/dist/src/planner/nodes/update-executor-node.js.map +1 -0
- package/dist/src/planner/nodes/update-node.d.ts +38 -0
- package/dist/src/planner/nodes/update-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/update-node.js +88 -0
- package/dist/src/planner/nodes/update-node.js.map +1 -0
- package/dist/src/planner/nodes/values-node.d.ts +49 -0
- package/dist/src/planner/nodes/values-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/values-node.js +204 -0
- package/dist/src/planner/nodes/values-node.js.map +1 -0
- package/dist/src/planner/nodes/view-reference-node.d.ts +27 -0
- package/dist/src/planner/nodes/view-reference-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/view-reference-node.js +83 -0
- package/dist/src/planner/nodes/view-reference-node.js.map +1 -0
- package/dist/src/planner/nodes/window-function.d.ts +25 -0
- package/dist/src/planner/nodes/window-function.d.ts.map +1 -0
- package/dist/src/planner/nodes/window-function.js +62 -0
- package/dist/src/planner/nodes/window-function.js.map +1 -0
- package/dist/src/planner/nodes/window-node.d.ts +40 -0
- package/dist/src/planner/nodes/window-node.d.ts.map +1 -0
- package/dist/src/planner/nodes/window-node.js +156 -0
- package/dist/src/planner/nodes/window-node.js.map +1 -0
- package/dist/src/planner/optimizer-tuning.d.ts +55 -0
- package/dist/src/planner/optimizer-tuning.d.ts.map +1 -0
- package/dist/src/planner/optimizer-tuning.js +31 -0
- package/dist/src/planner/optimizer-tuning.js.map +1 -0
- package/dist/src/planner/optimizer.d.ts +34 -0
- package/dist/src/planner/optimizer.d.ts.map +1 -0
- package/dist/src/planner/optimizer.js +194 -0
- package/dist/src/planner/optimizer.js.map +1 -0
- package/dist/src/planner/physical-utils.d.ts +36 -0
- package/dist/src/planner/physical-utils.d.ts.map +1 -0
- package/dist/src/planner/physical-utils.js +122 -0
- package/dist/src/planner/physical-utils.js.map +1 -0
- package/dist/src/planner/planning-context.d.ts +111 -0
- package/dist/src/planner/planning-context.d.ts.map +1 -0
- package/dist/src/planner/planning-context.js +75 -0
- package/dist/src/planner/planning-context.js.map +1 -0
- package/dist/src/planner/resolve.d.ts +8 -0
- package/dist/src/planner/resolve.d.ts.map +1 -0
- package/dist/src/planner/resolve.js +91 -0
- package/dist/src/planner/resolve.js.map +1 -0
- package/dist/src/planner/rules/access/rule-select-access-path.d.ts +11 -0
- package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -0
- package/dist/src/planner/rules/access/rule-select-access-path.js +133 -0
- package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -0
- package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.d.ts +11 -0
- package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.d.ts.map +1 -0
- package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.js +53 -0
- package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.js.map +1 -0
- package/dist/src/planner/rules/cache/rule-cte-optimization.d.ts +11 -0
- package/dist/src/planner/rules/cache/rule-cte-optimization.d.ts.map +1 -0
- package/dist/src/planner/rules/cache/rule-cte-optimization.js +38 -0
- package/dist/src/planner/rules/cache/rule-cte-optimization.js.map +1 -0
- package/dist/src/planner/rules/cache/rule-materialization-advisory.d.ts +11 -0
- package/dist/src/planner/rules/cache/rule-materialization-advisory.d.ts.map +1 -0
- package/dist/src/planner/rules/cache/rule-materialization-advisory.js +51 -0
- package/dist/src/planner/rules/cache/rule-materialization-advisory.js.map +1 -0
- package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.d.ts +11 -0
- package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.d.ts.map +1 -0
- package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.js +79 -0
- package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.js.map +1 -0
- package/dist/src/planner/rules/physical/rule-filter-optimization.d.ts +11 -0
- package/dist/src/planner/rules/physical/rule-filter-optimization.d.ts.map +1 -0
- package/dist/src/planner/rules/physical/rule-filter-optimization.js +49 -0
- package/dist/src/planner/rules/physical/rule-filter-optimization.js.map +1 -0
- package/dist/src/planner/rules/physical/rule-mark-physical.d.ts +11 -0
- package/dist/src/planner/rules/physical/rule-mark-physical.d.ts.map +1 -0
- package/dist/src/planner/rules/physical/rule-mark-physical.js +29 -0
- package/dist/src/planner/rules/physical/rule-mark-physical.js.map +1 -0
- package/dist/src/planner/rules/physical/rule-project-optimization.d.ts +11 -0
- package/dist/src/planner/rules/physical/rule-project-optimization.d.ts.map +1 -0
- package/dist/src/planner/rules/physical/rule-project-optimization.js +44 -0
- package/dist/src/planner/rules/physical/rule-project-optimization.js.map +1 -0
- package/dist/src/planner/rules/physical/rule-sort-optimization.d.ts +11 -0
- package/dist/src/planner/rules/physical/rule-sort-optimization.d.ts.map +1 -0
- package/dist/src/planner/rules/physical/rule-sort-optimization.js +53 -0
- package/dist/src/planner/rules/physical/rule-sort-optimization.js.map +1 -0
- package/dist/src/planner/rules/rewrite/rule-constant-folding.d.ts +11 -0
- package/dist/src/planner/rules/rewrite/rule-constant-folding.d.ts.map +1 -0
- package/dist/src/planner/rules/rewrite/rule-constant-folding.js +59 -0
- package/dist/src/planner/rules/rewrite/rule-constant-folding.js.map +1 -0
- package/dist/src/planner/scopes/aliased.d.ts +18 -0
- package/dist/src/planner/scopes/aliased.d.ts.map +1 -0
- package/dist/src/planner/scopes/aliased.js +41 -0
- package/dist/src/planner/scopes/aliased.js.map +1 -0
- package/dist/src/planner/scopes/base.d.ts +20 -0
- package/dist/src/planner/scopes/base.d.ts.map +1 -0
- package/dist/src/planner/scopes/base.js +20 -0
- package/dist/src/planner/scopes/base.js.map +1 -0
- package/dist/src/planner/scopes/empty.d.ts +11 -0
- package/dist/src/planner/scopes/empty.d.ts.map +1 -0
- package/dist/src/planner/scopes/empty.js +16 -0
- package/dist/src/planner/scopes/empty.js.map +1 -0
- package/dist/src/planner/scopes/global.d.ts +12 -0
- package/dist/src/planner/scopes/global.d.ts.map +1 -0
- package/dist/src/planner/scopes/global.js +65 -0
- package/dist/src/planner/scopes/global.js.map +1 -0
- package/dist/src/planner/scopes/multi.d.ts +17 -0
- package/dist/src/planner/scopes/multi.d.ts.map +1 -0
- package/dist/src/planner/scopes/multi.js +35 -0
- package/dist/src/planner/scopes/multi.js.map +1 -0
- package/dist/src/planner/scopes/param.d.ts +23 -0
- package/dist/src/planner/scopes/param.d.ts.map +1 -0
- package/dist/src/planner/scopes/param.js +78 -0
- package/dist/src/planner/scopes/param.js.map +1 -0
- package/dist/src/planner/scopes/registered.d.ts +47 -0
- package/dist/src/planner/scopes/registered.d.ts.map +1 -0
- package/dist/src/planner/scopes/registered.js +70 -0
- package/dist/src/planner/scopes/registered.js.map +1 -0
- package/dist/src/planner/scopes/scope.d.ts +21 -0
- package/dist/src/planner/scopes/scope.d.ts.map +1 -0
- package/dist/src/planner/scopes/scope.js +3 -0
- package/dist/src/planner/scopes/scope.js.map +1 -0
- package/dist/src/planner/stats/basic-estimates.d.ts +47 -0
- package/dist/src/planner/stats/basic-estimates.d.ts.map +1 -0
- package/dist/src/planner/stats/basic-estimates.js +99 -0
- package/dist/src/planner/stats/basic-estimates.js.map +1 -0
- package/dist/src/planner/stats/index.d.ts +88 -0
- package/dist/src/planner/stats/index.d.ts.map +1 -0
- package/dist/src/planner/stats/index.js +152 -0
- package/dist/src/planner/stats/index.js.map +1 -0
- package/dist/src/planner/type-utils.d.ts +30 -0
- package/dist/src/planner/type-utils.d.ts.map +1 -0
- package/dist/src/planner/type-utils.js +91 -0
- package/dist/src/planner/type-utils.js.map +1 -0
- package/dist/src/planner/validation/plan-validator.d.ts +29 -0
- package/dist/src/planner/validation/plan-validator.d.ts.map +1 -0
- package/dist/src/planner/validation/plan-validator.js +238 -0
- package/dist/src/planner/validation/plan-validator.js.map +1 -0
- package/dist/src/runtime/async-util.d.ts +53 -0
- package/dist/src/runtime/async-util.d.ts.map +1 -0
- package/dist/src/runtime/async-util.js +238 -0
- package/dist/src/runtime/async-util.js.map +1 -0
- package/dist/src/runtime/cache/shared-cache.d.ts +68 -0
- package/dist/src/runtime/cache/shared-cache.d.ts.map +1 -0
- package/dist/src/runtime/cache/shared-cache.js +107 -0
- package/dist/src/runtime/cache/shared-cache.js.map +1 -0
- package/dist/src/runtime/emission-context.d.ts +121 -0
- package/dist/src/runtime/emission-context.d.ts.map +1 -0
- package/dist/src/runtime/emission-context.js +258 -0
- package/dist/src/runtime/emission-context.js.map +1 -0
- package/dist/src/runtime/emit/add-constraint.d.ts +5 -0
- package/dist/src/runtime/emit/add-constraint.d.ts.map +1 -0
- package/dist/src/runtime/emit/add-constraint.js +35 -0
- package/dist/src/runtime/emit/add-constraint.js.map +1 -0
- package/dist/src/runtime/emit/aggregate.d.ts +6 -0
- package/dist/src/runtime/emit/aggregate.d.ts.map +1 -0
- package/dist/src/runtime/emit/aggregate.js +465 -0
- package/dist/src/runtime/emit/aggregate.js.map +1 -0
- package/dist/src/runtime/emit/array-index.d.ts +5 -0
- package/dist/src/runtime/emit/array-index.d.ts.map +1 -0
- package/dist/src/runtime/emit/array-index.js +20 -0
- package/dist/src/runtime/emit/array-index.js.map +1 -0
- package/dist/src/runtime/emit/binary.d.ts +11 -0
- package/dist/src/runtime/emit/binary.d.ts.map +1 -0
- package/dist/src/runtime/emit/binary.js +310 -0
- package/dist/src/runtime/emit/binary.js.map +1 -0
- package/dist/src/runtime/emit/block.d.ts +5 -0
- package/dist/src/runtime/emit/block.d.ts.map +1 -0
- package/dist/src/runtime/emit/block.js +16 -0
- package/dist/src/runtime/emit/block.js.map +1 -0
- package/dist/src/runtime/emit/cache.d.ts +25 -0
- package/dist/src/runtime/emit/cache.d.ts.map +1 -0
- package/dist/src/runtime/emit/cache.js +52 -0
- package/dist/src/runtime/emit/cache.js.map +1 -0
- package/dist/src/runtime/emit/case.d.ts +5 -0
- package/dist/src/runtime/emit/case.d.ts.map +1 -0
- package/dist/src/runtime/emit/case.js +65 -0
- package/dist/src/runtime/emit/case.js.map +1 -0
- package/dist/src/runtime/emit/cast.d.ts +5 -0
- package/dist/src/runtime/emit/cast.d.ts.map +1 -0
- package/dist/src/runtime/emit/cast.js +132 -0
- package/dist/src/runtime/emit/cast.js.map +1 -0
- package/dist/src/runtime/emit/collate.d.ts +5 -0
- package/dist/src/runtime/emit/collate.d.ts.map +1 -0
- package/dist/src/runtime/emit/collate.js +6 -0
- package/dist/src/runtime/emit/collate.js.map +1 -0
- package/dist/src/runtime/emit/column-reference.d.ts +5 -0
- package/dist/src/runtime/emit/column-reference.d.ts.map +1 -0
- package/dist/src/runtime/emit/column-reference.js +36 -0
- package/dist/src/runtime/emit/column-reference.js.map +1 -0
- package/dist/src/runtime/emit/constraint-check.d.ts +5 -0
- package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -0
- package/dist/src/runtime/emit/constraint-check.js +211 -0
- package/dist/src/runtime/emit/constraint-check.js.map +1 -0
- package/dist/src/runtime/emit/create-index.d.ts +5 -0
- package/dist/src/runtime/emit/create-index.d.ts.map +1 -0
- package/dist/src/runtime/emit/create-index.js +9 -0
- package/dist/src/runtime/emit/create-index.js.map +1 -0
- package/dist/src/runtime/emit/create-table.d.ts +5 -0
- package/dist/src/runtime/emit/create-table.d.ts.map +1 -0
- package/dist/src/runtime/emit/create-table.js +9 -0
- package/dist/src/runtime/emit/create-table.js.map +1 -0
- package/dist/src/runtime/emit/create-view.d.ts +5 -0
- package/dist/src/runtime/emit/create-view.d.ts.map +1 -0
- package/dist/src/runtime/emit/create-view.js +36 -0
- package/dist/src/runtime/emit/create-view.js.map +1 -0
- package/dist/src/runtime/emit/cte-reference.d.ts +5 -0
- package/dist/src/runtime/emit/cte-reference.d.ts.map +1 -0
- package/dist/src/runtime/emit/cte-reference.js +56 -0
- package/dist/src/runtime/emit/cte-reference.js.map +1 -0
- package/dist/src/runtime/emit/cte.d.ts +5 -0
- package/dist/src/runtime/emit/cte.d.ts.map +1 -0
- package/dist/src/runtime/emit/cte.js +34 -0
- package/dist/src/runtime/emit/cte.js.map +1 -0
- package/dist/src/runtime/emit/delete.d.ts +5 -0
- package/dist/src/runtime/emit/delete.d.ts.map +1 -0
- package/dist/src/runtime/emit/delete.js +18 -0
- package/dist/src/runtime/emit/delete.js.map +1 -0
- package/dist/src/runtime/emit/distinct.d.ts +5 -0
- package/dist/src/runtime/emit/distinct.d.ts.map +1 -0
- package/dist/src/runtime/emit/distinct.js +35 -0
- package/dist/src/runtime/emit/distinct.js.map +1 -0
- package/dist/src/runtime/emit/dml-executor.d.ts +5 -0
- package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -0
- package/dist/src/runtime/emit/dml-executor.js +90 -0
- package/dist/src/runtime/emit/dml-executor.js.map +1 -0
- package/dist/src/runtime/emit/drop-table.d.ts +5 -0
- package/dist/src/runtime/emit/drop-table.d.ts.map +1 -0
- package/dist/src/runtime/emit/drop-table.js +19 -0
- package/dist/src/runtime/emit/drop-table.js.map +1 -0
- package/dist/src/runtime/emit/drop-view.d.ts +5 -0
- package/dist/src/runtime/emit/drop-view.d.ts.map +1 -0
- package/dist/src/runtime/emit/drop-view.js +31 -0
- package/dist/src/runtime/emit/drop-view.js.map +1 -0
- package/dist/src/runtime/emit/filter.d.ts +5 -0
- package/dist/src/runtime/emit/filter.d.ts.map +1 -0
- package/dist/src/runtime/emit/filter.js +30 -0
- package/dist/src/runtime/emit/filter.js.map +1 -0
- package/dist/src/runtime/emit/insert.d.ts +5 -0
- package/dist/src/runtime/emit/insert.d.ts.map +1 -0
- package/dist/src/runtime/emit/insert.js +52 -0
- package/dist/src/runtime/emit/insert.js.map +1 -0
- package/dist/src/runtime/emit/join.d.ts +9 -0
- package/dist/src/runtime/emit/join.d.ts.map +1 -0
- package/dist/src/runtime/emit/join.js +116 -0
- package/dist/src/runtime/emit/join.js.map +1 -0
- package/dist/src/runtime/emit/limit-offset.d.ts +5 -0
- package/dist/src/runtime/emit/limit-offset.d.ts.map +1 -0
- package/dist/src/runtime/emit/limit-offset.js +56 -0
- package/dist/src/runtime/emit/limit-offset.js.map +1 -0
- package/dist/src/runtime/emit/literal.d.ts +5 -0
- package/dist/src/runtime/emit/literal.d.ts.map +1 -0
- package/dist/src/runtime/emit/literal.js +12 -0
- package/dist/src/runtime/emit/literal.js.map +1 -0
- package/dist/src/runtime/emit/parameter.d.ts +5 -0
- package/dist/src/runtime/emit/parameter.d.ts.map +1 -0
- package/dist/src/runtime/emit/parameter.js +57 -0
- package/dist/src/runtime/emit/parameter.js.map +1 -0
- package/dist/src/runtime/emit/pragma.d.ts +5 -0
- package/dist/src/runtime/emit/pragma.d.ts.map +1 -0
- package/dist/src/runtime/emit/pragma.js +44 -0
- package/dist/src/runtime/emit/pragma.js.map +1 -0
- package/dist/src/runtime/emit/project.d.ts +5 -0
- package/dist/src/runtime/emit/project.d.ts.map +1 -0
- package/dist/src/runtime/emit/project.js +32 -0
- package/dist/src/runtime/emit/project.js.map +1 -0
- package/dist/src/runtime/emit/recursive-cte.d.ts +5 -0
- package/dist/src/runtime/emit/recursive-cte.d.ts.map +1 -0
- package/dist/src/runtime/emit/recursive-cte.js +92 -0
- package/dist/src/runtime/emit/recursive-cte.js.map +1 -0
- package/dist/src/runtime/emit/returning.d.ts +5 -0
- package/dist/src/runtime/emit/returning.d.ts.map +1 -0
- package/dist/src/runtime/emit/returning.js +34 -0
- package/dist/src/runtime/emit/returning.js.map +1 -0
- package/dist/src/runtime/emit/scalar-function.d.ts +5 -0
- package/dist/src/runtime/emit/scalar-function.d.ts.map +1 -0
- package/dist/src/runtime/emit/scalar-function.js +29 -0
- package/dist/src/runtime/emit/scalar-function.js.map +1 -0
- package/dist/src/runtime/emit/scan.d.ts +5 -0
- package/dist/src/runtime/emit/scan.d.ts.map +1 -0
- package/dist/src/runtime/emit/scan.js +63 -0
- package/dist/src/runtime/emit/scan.js.map +1 -0
- package/dist/src/runtime/emit/sequencing.d.ts +5 -0
- package/dist/src/runtime/emit/sequencing.d.ts.map +1 -0
- package/dist/src/runtime/emit/sequencing.js +17 -0
- package/dist/src/runtime/emit/sequencing.js.map +1 -0
- package/dist/src/runtime/emit/set-operation.d.ts +5 -0
- package/dist/src/runtime/emit/set-operation.d.ts.map +1 -0
- package/dist/src/runtime/emit/set-operation.js +99 -0
- package/dist/src/runtime/emit/set-operation.js.map +1 -0
- package/dist/src/runtime/emit/sink.d.ts +5 -0
- package/dist/src/runtime/emit/sink.d.ts.map +1 -0
- package/dist/src/runtime/emit/sink.js +19 -0
- package/dist/src/runtime/emit/sink.js.map +1 -0
- package/dist/src/runtime/emit/sort.d.ts +5 -0
- package/dist/src/runtime/emit/sort.d.ts.map +1 -0
- package/dist/src/runtime/emit/sort.js +59 -0
- package/dist/src/runtime/emit/sort.js.map +1 -0
- package/dist/src/runtime/emit/subquery.d.ts +7 -0
- package/dist/src/runtime/emit/subquery.d.ts.map +1 -0
- package/dist/src/runtime/emit/subquery.js +114 -0
- package/dist/src/runtime/emit/subquery.js.map +1 -0
- package/dist/src/runtime/emit/table-reference.d.ts +5 -0
- package/dist/src/runtime/emit/table-reference.d.ts.map +1 -0
- package/dist/src/runtime/emit/table-reference.js +67 -0
- package/dist/src/runtime/emit/table-reference.js.map +1 -0
- package/dist/src/runtime/emit/table-valued-function.d.ts +5 -0
- package/dist/src/runtime/emit/table-valued-function.d.ts.map +1 -0
- package/dist/src/runtime/emit/table-valued-function.js +98 -0
- package/dist/src/runtime/emit/table-valued-function.js.map +1 -0
- package/dist/src/runtime/emit/transaction.d.ts +5 -0
- package/dist/src/runtime/emit/transaction.d.ts.map +1 -0
- package/dist/src/runtime/emit/transaction.js +153 -0
- package/dist/src/runtime/emit/transaction.js.map +1 -0
- package/dist/src/runtime/emit/unary.d.ts +5 -0
- package/dist/src/runtime/emit/unary.d.ts.map +1 -0
- package/dist/src/runtime/emit/unary.js +81 -0
- package/dist/src/runtime/emit/unary.js.map +1 -0
- package/dist/src/runtime/emit/update-executor.d.ts +5 -0
- package/dist/src/runtime/emit/update-executor.d.ts.map +1 -0
- package/dist/src/runtime/emit/update-executor.js +54 -0
- package/dist/src/runtime/emit/update-executor.js.map +1 -0
- package/dist/src/runtime/emit/update.d.ts +5 -0
- package/dist/src/runtime/emit/update.d.ts.map +1 -0
- package/dist/src/runtime/emit/update.js +58 -0
- package/dist/src/runtime/emit/update.js.map +1 -0
- package/dist/src/runtime/emit/values.d.ts +9 -0
- package/dist/src/runtime/emit/values.d.ts.map +1 -0
- package/dist/src/runtime/emit/values.js +51 -0
- package/dist/src/runtime/emit/values.js.map +1 -0
- package/dist/src/runtime/emit/window-function.d.ts +5 -0
- package/dist/src/runtime/emit/window-function.d.ts.map +1 -0
- package/dist/src/runtime/emit/window-function.js +31 -0
- package/dist/src/runtime/emit/window-function.js.map +1 -0
- package/dist/src/runtime/emit/window.d.ts +5 -0
- package/dist/src/runtime/emit/window.d.ts.map +1 -0
- package/dist/src/runtime/emit/window.js +328 -0
- package/dist/src/runtime/emit/window.js.map +1 -0
- package/dist/src/runtime/emitters.d.ts +48 -0
- package/dist/src/runtime/emitters.d.ts.map +1 -0
- package/dist/src/runtime/emitters.js +73 -0
- package/dist/src/runtime/emitters.js.map +1 -0
- package/dist/src/runtime/register.d.ts +2 -0
- package/dist/src/runtime/register.d.ts.map +1 -0
- package/dist/src/runtime/register.js +122 -0
- package/dist/src/runtime/register.js.map +1 -0
- package/dist/src/runtime/scheduler.d.ts +27 -0
- package/dist/src/runtime/scheduler.d.ts.map +1 -0
- package/dist/src/runtime/scheduler.js +385 -0
- package/dist/src/runtime/scheduler.js.map +1 -0
- package/dist/src/runtime/types.d.ts +109 -0
- package/dist/src/runtime/types.d.ts.map +1 -0
- package/dist/src/runtime/types.js +90 -0
- package/dist/src/runtime/types.js.map +1 -0
- package/dist/src/runtime/utils.d.ts +32 -0
- package/dist/src/runtime/utils.d.ts.map +1 -0
- package/dist/src/runtime/utils.js +117 -0
- package/dist/src/runtime/utils.js.map +1 -0
- package/dist/src/schema/change-events.d.ts +42 -0
- package/dist/src/schema/change-events.d.ts.map +1 -0
- package/dist/src/schema/change-events.js +55 -0
- package/dist/src/schema/change-events.js.map +1 -0
- package/dist/src/schema/column.d.ts +33 -0
- package/dist/src/schema/column.d.ts.map +1 -0
- package/dist/src/schema/column.js +22 -0
- package/dist/src/schema/column.js.map +1 -0
- package/dist/src/schema/function.d.ts +109 -0
- package/dist/src/schema/function.d.ts.map +1 -0
- package/dist/src/schema/function.js +26 -0
- package/dist/src/schema/function.js.map +1 -0
- package/dist/src/schema/manager.d.ts +222 -0
- package/dist/src/schema/manager.d.ts.map +1 -0
- package/dist/src/schema/manager.js +608 -0
- package/dist/src/schema/manager.js.map +1 -0
- package/dist/src/schema/schema.d.ts +110 -0
- package/dist/src/schema/schema.d.ts.map +1 -0
- package/dist/src/schema/schema.js +179 -0
- package/dist/src/schema/schema.js.map +1 -0
- package/dist/src/schema/table.d.ts +143 -0
- package/dist/src/schema/table.d.ts.map +1 -0
- package/dist/src/schema/table.js +245 -0
- package/dist/src/schema/table.js.map +1 -0
- package/dist/src/schema/view.d.ts +18 -0
- package/dist/src/schema/view.d.ts.map +1 -0
- package/dist/src/schema/view.js +2 -0
- package/dist/src/schema/view.js.map +1 -0
- package/dist/src/schema/window-function.d.ts +26 -0
- package/dist/src/schema/window-function.d.ts.map +1 -0
- package/dist/src/schema/window-function.js +34 -0
- package/dist/src/schema/window-function.js.map +1 -0
- package/dist/src/util/affinity.d.ts +34 -0
- package/dist/src/util/affinity.d.ts.map +1 -0
- package/dist/src/util/affinity.js +153 -0
- package/dist/src/util/affinity.js.map +1 -0
- package/dist/src/util/ast-stringify.d.ts +23 -0
- package/dist/src/util/ast-stringify.d.ts.map +1 -0
- package/dist/src/util/ast-stringify.js +683 -0
- package/dist/src/util/ast-stringify.js.map +1 -0
- package/dist/src/util/cached.d.ts +11 -0
- package/dist/src/util/cached.d.ts.map +1 -0
- package/dist/src/util/cached.js +24 -0
- package/dist/src/util/cached.js.map +1 -0
- package/dist/src/util/coercion.d.ts +34 -0
- package/dist/src/util/coercion.d.ts.map +1 -0
- package/dist/src/util/coercion.js +106 -0
- package/dist/src/util/coercion.js.map +1 -0
- package/dist/src/util/comparison.d.ts +153 -0
- package/dist/src/util/comparison.d.ts.map +1 -0
- package/dist/src/util/comparison.js +397 -0
- package/dist/src/util/comparison.js.map +1 -0
- package/dist/src/util/environment.d.ts +28 -0
- package/dist/src/util/environment.d.ts.map +1 -0
- package/dist/src/util/environment.js +47 -0
- package/dist/src/util/environment.js.map +1 -0
- package/dist/src/util/latches.d.ts +16 -0
- package/dist/src/util/latches.d.ts.map +1 -0
- package/dist/src/util/latches.js +41 -0
- package/dist/src/util/latches.js.map +1 -0
- package/dist/src/util/patterns.d.ts +23 -0
- package/dist/src/util/patterns.d.ts.map +1 -0
- package/dist/src/util/patterns.js +54 -0
- package/dist/src/util/patterns.js.map +1 -0
- package/dist/src/util/plan-formatter.d.ts +23 -0
- package/dist/src/util/plan-formatter.d.ts.map +1 -0
- package/dist/src/util/plan-formatter.js +41 -0
- package/dist/src/util/plan-formatter.js.map +1 -0
- package/dist/src/util/plugin-loader.d.ts +20 -0
- package/dist/src/util/plugin-loader.d.ts.map +1 -0
- package/dist/src/util/plugin-loader.js +57 -0
- package/dist/src/util/plugin-loader.js.map +1 -0
- package/dist/src/util/row-descriptor.d.ts +35 -0
- package/dist/src/util/row-descriptor.d.ts.map +1 -0
- package/dist/src/util/row-descriptor.js +85 -0
- package/dist/src/util/row-descriptor.js.map +1 -0
- package/dist/src/util/serialization.d.ts +11 -0
- package/dist/src/util/serialization.d.ts.map +1 -0
- package/dist/src/util/serialization.js +41 -0
- package/dist/src/util/serialization.js.map +1 -0
- package/dist/src/util/working-table-iterable.d.ts +17 -0
- package/dist/src/util/working-table-iterable.d.ts.map +1 -0
- package/dist/src/util/working-table-iterable.js +30 -0
- package/dist/src/util/working-table-iterable.js.map +1 -0
- package/dist/src/vtab/best-access-plan.d.ts +144 -0
- package/dist/src/vtab/best-access-plan.d.ts.map +1 -0
- package/dist/src/vtab/best-access-plan.js +156 -0
- package/dist/src/vtab/best-access-plan.js.map +1 -0
- package/dist/src/vtab/connection.d.ts +27 -0
- package/dist/src/vtab/connection.d.ts.map +1 -0
- package/dist/src/vtab/connection.js +2 -0
- package/dist/src/vtab/connection.js.map +1 -0
- package/dist/src/vtab/filter-info.d.ts +26 -0
- package/dist/src/vtab/filter-info.d.ts.map +1 -0
- package/dist/src/vtab/filter-info.js +2 -0
- package/dist/src/vtab/filter-info.js.map +1 -0
- package/dist/src/vtab/index-info.d.ts +69 -0
- package/dist/src/vtab/index-info.d.ts.map +1 -0
- package/dist/src/vtab/index-info.js +7 -0
- package/dist/src/vtab/index-info.js.map +1 -0
- package/dist/src/vtab/manifest.d.ts +35 -0
- package/dist/src/vtab/manifest.d.ts.map +1 -0
- package/dist/src/vtab/manifest.js +2 -0
- package/dist/src/vtab/manifest.js.map +1 -0
- package/dist/src/vtab/memory/connection.d.ts +29 -0
- package/dist/src/vtab/memory/connection.d.ts.map +1 -0
- package/dist/src/vtab/memory/connection.js +61 -0
- package/dist/src/vtab/memory/connection.js.map +1 -0
- package/dist/src/vtab/memory/index.d.ts +38 -0
- package/dist/src/vtab/memory/index.d.ts.map +1 -0
- package/dist/src/vtab/memory/index.js +132 -0
- package/dist/src/vtab/memory/index.js.map +1 -0
- package/dist/src/vtab/memory/layer/base-cursor.d.ts +5 -0
- package/dist/src/vtab/memory/layer/base-cursor.d.ts.map +1 -0
- package/dist/src/vtab/memory/layer/base-cursor.js +111 -0
- package/dist/src/vtab/memory/layer/base-cursor.js.map +1 -0
- package/dist/src/vtab/memory/layer/base.d.ts +51 -0
- package/dist/src/vtab/memory/layer/base.d.ts.map +1 -0
- package/dist/src/vtab/memory/layer/base.js +199 -0
- package/dist/src/vtab/memory/layer/base.js.map +1 -0
- package/dist/src/vtab/memory/layer/connection.d.ts +38 -0
- package/dist/src/vtab/memory/layer/connection.d.ts.map +1 -0
- package/dist/src/vtab/memory/layer/connection.js +170 -0
- package/dist/src/vtab/memory/layer/connection.js.map +1 -0
- package/dist/src/vtab/memory/layer/interface.d.ts +41 -0
- package/dist/src/vtab/memory/layer/interface.d.ts.map +1 -0
- package/dist/src/vtab/memory/layer/interface.js +2 -0
- package/dist/src/vtab/memory/layer/interface.js.map +1 -0
- package/dist/src/vtab/memory/layer/manager.d.ts +68 -0
- package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -0
- package/dist/src/vtab/memory/layer/manager.js +752 -0
- package/dist/src/vtab/memory/layer/manager.js.map +1 -0
- package/dist/src/vtab/memory/layer/safe-iterate.d.ts +9 -0
- package/dist/src/vtab/memory/layer/safe-iterate.d.ts.map +1 -0
- package/dist/src/vtab/memory/layer/safe-iterate.js +47 -0
- package/dist/src/vtab/memory/layer/safe-iterate.js.map +1 -0
- package/dist/src/vtab/memory/layer/scan-plan.d.ts +37 -0
- package/dist/src/vtab/memory/layer/scan-plan.d.ts.map +1 -0
- package/dist/src/vtab/memory/layer/scan-plan.js +87 -0
- package/dist/src/vtab/memory/layer/scan-plan.js.map +1 -0
- package/dist/src/vtab/memory/layer/transaction-cursor.d.ts +5 -0
- package/dist/src/vtab/memory/layer/transaction-cursor.d.ts.map +1 -0
- package/dist/src/vtab/memory/layer/transaction-cursor.js +149 -0
- package/dist/src/vtab/memory/layer/transaction-cursor.js.map +1 -0
- package/dist/src/vtab/memory/layer/transaction.d.ts +44 -0
- package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -0
- package/dist/src/vtab/memory/layer/transaction.js +183 -0
- package/dist/src/vtab/memory/layer/transaction.js.map +1 -0
- package/dist/src/vtab/memory/module.d.ts +89 -0
- package/dist/src/vtab/memory/module.d.ts.map +1 -0
- package/dist/src/vtab/memory/module.js +533 -0
- package/dist/src/vtab/memory/module.js.map +1 -0
- package/dist/src/vtab/memory/table.d.ts +49 -0
- package/dist/src/vtab/memory/table.d.ts.map +1 -0
- package/dist/src/vtab/memory/table.js +209 -0
- package/dist/src/vtab/memory/table.js.map +1 -0
- package/dist/src/vtab/memory/types.d.ts +19 -0
- package/dist/src/vtab/memory/types.d.ts.map +1 -0
- package/dist/src/vtab/memory/types.js +2 -0
- package/dist/src/vtab/memory/types.js.map +1 -0
- package/dist/src/vtab/memory/utils/logging.d.ts +13 -0
- package/dist/src/vtab/memory/utils/logging.d.ts.map +1 -0
- package/dist/src/vtab/memory/utils/logging.js +28 -0
- package/dist/src/vtab/memory/utils/logging.js.map +1 -0
- package/dist/src/vtab/memory/utils/primary-key.d.ts +21 -0
- package/dist/src/vtab/memory/utils/primary-key.d.ts.map +1 -0
- package/dist/src/vtab/memory/utils/primary-key.js +107 -0
- package/dist/src/vtab/memory/utils/primary-key.js.map +1 -0
- package/dist/src/vtab/module.d.ts +111 -0
- package/dist/src/vtab/module.d.ts.map +1 -0
- package/dist/src/vtab/module.js +2 -0
- package/dist/src/vtab/module.js.map +1 -0
- package/dist/src/vtab/table.d.ts +114 -0
- package/dist/src/vtab/table.d.ts.map +1 -0
- package/dist/src/vtab/table.js +26 -0
- package/dist/src/vtab/table.js.map +1 -0
- package/package.json +61 -0
- package/src/common/constants.ts +60 -0
- package/src/common/datatype.ts +86 -0
- package/src/common/errors.ts +189 -0
- package/src/common/logger.ts +23 -0
- package/src/common/type-inference.ts +40 -0
- package/src/common/types.ts +148 -0
- package/src/core/database-options.ts +258 -0
- package/src/core/database.ts +875 -0
- package/src/core/param.ts +41 -0
- package/src/core/statement.ts +490 -0
- package/src/func/builtins/aggregate.ts +247 -0
- package/src/func/builtins/builtin-window-functions.ts +165 -0
- package/src/func/builtins/datetime.ts +453 -0
- package/src/func/builtins/explain.ts +648 -0
- package/src/func/builtins/generation.ts +43 -0
- package/src/func/builtins/index.ts +126 -0
- package/src/func/builtins/json-helpers.ts +237 -0
- package/src/func/builtins/json-tvf.ts +225 -0
- package/src/func/builtins/json.ts +466 -0
- package/src/func/builtins/scalar.ts +232 -0
- package/src/func/builtins/schema.ts +193 -0
- package/src/func/builtins/string.ts +293 -0
- package/src/func/context.ts +251 -0
- package/src/func/registration.ts +167 -0
- package/src/index.ts +67 -0
- package/src/parser/ast.ts +475 -0
- package/src/parser/index.ts +65 -0
- package/src/parser/lexer.ts +767 -0
- package/src/parser/parser.ts +2783 -0
- package/src/parser/utils.ts +10 -0
- package/src/parser/visitor.ts +187 -0
- package/src/planner/analysis/README.md +93 -0
- package/src/planner/analysis/const-evaluator.ts +63 -0
- package/src/planner/analysis/const-pass.ts +270 -0
- package/src/planner/analysis/constraint-extractor.ts +277 -0
- package/src/planner/building/alter-table.ts +47 -0
- package/src/planner/building/block.ts +78 -0
- package/src/planner/building/create-view.ts +56 -0
- package/src/planner/building/ddl.ts +24 -0
- package/src/planner/building/delete.ts +158 -0
- package/src/planner/building/drop-table.ts +13 -0
- package/src/planner/building/drop-view.ts +19 -0
- package/src/planner/building/expression.ts +176 -0
- package/src/planner/building/function-call.ts +87 -0
- package/src/planner/building/insert.ts +336 -0
- package/src/planner/building/pragma.ts +33 -0
- package/src/planner/building/schema-resolution.ts +176 -0
- package/src/planner/building/select-aggregates.ts +245 -0
- package/src/planner/building/select-compound.ts +110 -0
- package/src/planner/building/select-context.ts +75 -0
- package/src/planner/building/select-modifiers.ts +170 -0
- package/src/planner/building/select-projections.ts +177 -0
- package/src/planner/building/select-window.ts +248 -0
- package/src/planner/building/select.ts +388 -0
- package/src/planner/building/table-function.ts +48 -0
- package/src/planner/building/table.ts +73 -0
- package/src/planner/building/transaction.ts +23 -0
- package/src/planner/building/update.ts +255 -0
- package/src/planner/building/with.ts +181 -0
- package/src/planner/cache/materialization-advisory.ts +244 -0
- package/src/planner/cache/reference-graph.ts +172 -0
- package/src/planner/cost/index.ts +169 -0
- package/src/planner/debug/logger-utils.ts +68 -0
- package/src/planner/debug.ts +316 -0
- package/src/planner/framework/README.md +132 -0
- package/src/planner/framework/context.ts +188 -0
- package/src/planner/framework/physical-utils.ts +210 -0
- package/src/planner/framework/registry.ts +274 -0
- package/src/planner/framework/trace.ts +259 -0
- package/src/planner/nodes/add-constraint-node.ts +58 -0
- package/src/planner/nodes/aggregate-function.ts +145 -0
- package/src/planner/nodes/aggregate-node.ts +220 -0
- package/src/planner/nodes/array-index-node.ts +50 -0
- package/src/planner/nodes/block.ts +80 -0
- package/src/planner/nodes/cache-node.ts +94 -0
- package/src/planner/nodes/constraint-check-node.ts +95 -0
- package/src/planner/nodes/create-index-node.ts +37 -0
- package/src/planner/nodes/create-table-node.ts +31 -0
- package/src/planner/nodes/create-view-node.ts +40 -0
- package/src/planner/nodes/cte-node.ts +111 -0
- package/src/planner/nodes/cte-reference-node.ts +89 -0
- package/src/planner/nodes/delete-node.ts +72 -0
- package/src/planner/nodes/distinct-node.ts +93 -0
- package/src/planner/nodes/dml-executor-node.ts +98 -0
- package/src/planner/nodes/drop-table-node.ts +31 -0
- package/src/planner/nodes/drop-view-node.ts +33 -0
- package/src/planner/nodes/filter.ts +91 -0
- package/src/planner/nodes/function.ts +93 -0
- package/src/planner/nodes/insert-node.ts +97 -0
- package/src/planner/nodes/join-node.ts +213 -0
- package/src/planner/nodes/limit-offset.ts +125 -0
- package/src/planner/nodes/physical-access-nodes.ts +298 -0
- package/src/planner/nodes/plan-node-type.ts +87 -0
- package/src/planner/nodes/plan-node.ts +466 -0
- package/src/planner/nodes/pragma.ts +94 -0
- package/src/planner/nodes/project-node.ts +223 -0
- package/src/planner/nodes/recursive-cte-node.ts +130 -0
- package/src/planner/nodes/reference.ts +310 -0
- package/src/planner/nodes/returning-node.ts +215 -0
- package/src/planner/nodes/scalar.ts +736 -0
- package/src/planner/nodes/scan.ts +103 -0
- package/src/planner/nodes/sequencing-node.ts +113 -0
- package/src/planner/nodes/set-operation-node.ts +87 -0
- package/src/planner/nodes/single-row.ts +80 -0
- package/src/planner/nodes/sink-node.ts +61 -0
- package/src/planner/nodes/sort.ts +137 -0
- package/src/planner/nodes/stream-aggregate.ts +225 -0
- package/src/planner/nodes/subquery.ts +207 -0
- package/src/planner/nodes/table-function-call.ts +127 -0
- package/src/planner/nodes/transaction-node.ts +61 -0
- package/src/planner/nodes/update-node.ts +114 -0
- package/src/planner/nodes/values-node.ts +244 -0
- package/src/planner/nodes/view-reference-node.ts +97 -0
- package/src/planner/nodes/window-function.ts +73 -0
- package/src/planner/nodes/window-node.ts +193 -0
- package/src/planner/optimizer-tuning.ts +87 -0
- package/src/planner/optimizer.ts +263 -0
- package/src/planner/planning-context.ts +168 -0
- package/src/planner/resolve.ts +100 -0
- package/src/planner/rules/README.md +96 -0
- package/src/planner/rules/access/rule-select-access-path.ts +180 -0
- package/src/planner/rules/aggregate/rule-aggregate-streaming.ts +76 -0
- package/src/planner/rules/cache/rule-cte-optimization.ts +66 -0
- package/src/planner/rules/cache/rule-materialization-advisory.ts +66 -0
- package/src/planner/rules/cache/rule-mutating-subquery-cache.ts +110 -0
- package/src/planner/rules/physical/rule-mark-physical.ts +37 -0
- package/src/planner/scopes/aliased.ts +50 -0
- package/src/planner/scopes/base.ts +27 -0
- package/src/planner/scopes/empty.ts +22 -0
- package/src/planner/scopes/global.ts +73 -0
- package/src/planner/scopes/multi.ts +41 -0
- package/src/planner/scopes/param.ts +96 -0
- package/src/planner/scopes/registered.ts +78 -0
- package/src/planner/scopes/scope.ts +28 -0
- package/src/planner/stats/basic-estimates.ts +107 -0
- package/src/planner/stats/index.ts +223 -0
- package/src/planner/type-utils.ts +95 -0
- package/src/planner/validation/plan-validator.ts +340 -0
- package/src/runtime/async-util.ts +282 -0
- package/src/runtime/cache/shared-cache.ts +169 -0
- package/src/runtime/emission-context.ts +310 -0
- package/src/runtime/emit/add-constraint.ts +54 -0
- package/src/runtime/emit/aggregate.ts +533 -0
- package/src/runtime/emit/array-index.ts +25 -0
- package/src/runtime/emit/binary.ts +335 -0
- package/src/runtime/emit/block.ts +23 -0
- package/src/runtime/emit/cache.ts +64 -0
- package/src/runtime/emit/case.ts +87 -0
- package/src/runtime/emit/cast.ts +151 -0
- package/src/runtime/emit/collate.ts +9 -0
- package/src/runtime/emit/column-reference.ts +50 -0
- package/src/runtime/emit/constraint-check.ts +285 -0
- package/src/runtime/emit/create-index.ts +15 -0
- package/src/runtime/emit/create-table.ts +15 -0
- package/src/runtime/emit/create-view.ts +52 -0
- package/src/runtime/emit/cte-reference.ts +75 -0
- package/src/runtime/emit/cte.ts +39 -0
- package/src/runtime/emit/delete.ts +24 -0
- package/src/runtime/emit/distinct.ts +45 -0
- package/src/runtime/emit/dml-executor.ts +94 -0
- package/src/runtime/emit/drop-table.ts +27 -0
- package/src/runtime/emit/drop-view.ts +49 -0
- package/src/runtime/emit/filter.ts +37 -0
- package/src/runtime/emit/insert.ts +54 -0
- package/src/runtime/emit/join.ts +145 -0
- package/src/runtime/emit/limit-offset.ts +73 -0
- package/src/runtime/emit/literal.ts +17 -0
- package/src/runtime/emit/parameter.ts +59 -0
- package/src/runtime/emit/pragma.ts +56 -0
- package/src/runtime/emit/project.ts +40 -0
- package/src/runtime/emit/recursive-cte.ts +120 -0
- package/src/runtime/emit/returning.ts +48 -0
- package/src/runtime/emit/scalar-function.ts +43 -0
- package/src/runtime/emit/scan.ts +88 -0
- package/src/runtime/emit/sequencing.ts +24 -0
- package/src/runtime/emit/set-operation.ts +111 -0
- package/src/runtime/emit/sink.ts +27 -0
- package/src/runtime/emit/sort.ts +78 -0
- package/src/runtime/emit/subquery.ts +143 -0
- package/src/runtime/emit/table-reference.ts +92 -0
- package/src/runtime/emit/table-valued-function.ts +119 -0
- package/src/runtime/emit/transaction.ts +167 -0
- package/src/runtime/emit/unary.ts +85 -0
- package/src/runtime/emit/update.ts +73 -0
- package/src/runtime/emit/values.ts +66 -0
- package/src/runtime/emit/window-function.ts +42 -0
- package/src/runtime/emit/window.ts +472 -0
- package/src/runtime/emitters.ts +130 -0
- package/src/runtime/register.ts +134 -0
- package/src/runtime/scheduler.ts +488 -0
- package/src/runtime/types.ts +191 -0
- package/src/runtime/utils.ts +136 -0
- package/src/schema/change-events.ts +80 -0
- package/src/schema/column.ts +45 -0
- package/src/schema/function.ts +139 -0
- package/src/schema/manager.ts +694 -0
- package/src/schema/schema.ts +199 -0
- package/src/schema/table.ts +364 -0
- package/src/schema/view.ts +19 -0
- package/src/schema/window-function.ts +54 -0
- package/src/util/affinity.ts +151 -0
- package/src/util/ast-stringify.ts +764 -0
- package/src/util/cached.ts +25 -0
- package/src/util/coercion.ts +113 -0
- package/src/util/comparison.ts +437 -0
- package/src/util/environment.ts +52 -0
- package/src/util/latches.ts +47 -0
- package/src/util/patterns.ts +56 -0
- package/src/util/plan-formatter.ts +51 -0
- package/src/util/plugin-loader.ts +69 -0
- package/src/util/row-descriptor.ts +105 -0
- package/src/util/serialization.ts +45 -0
- package/src/util/working-table-iterable.ts +30 -0
- package/src/vtab/best-access-plan.ts +270 -0
- package/src/vtab/connection.ts +36 -0
- package/src/vtab/filter-info.ts +23 -0
- package/src/vtab/index-info.ts +84 -0
- package/src/vtab/manifest.ts +37 -0
- package/src/vtab/memory/connection.ts +73 -0
- package/src/vtab/memory/index.ts +178 -0
- package/src/vtab/memory/layer/base-cursor.ts +124 -0
- package/src/vtab/memory/layer/base.ts +273 -0
- package/src/vtab/memory/layer/connection.ts +203 -0
- package/src/vtab/memory/layer/interface.ts +47 -0
- package/src/vtab/memory/layer/manager.ts +861 -0
- package/src/vtab/memory/layer/safe-iterate.ts +49 -0
- package/src/vtab/memory/layer/scan-plan.ts +84 -0
- package/src/vtab/memory/layer/transaction-cursor.ts +162 -0
- package/src/vtab/memory/layer/transaction.ts +229 -0
- package/src/vtab/memory/module.ts +673 -0
- package/src/vtab/memory/table.ts +253 -0
- package/src/vtab/memory/types.ts +23 -0
- package/src/vtab/memory/utils/logging.ts +33 -0
- package/src/vtab/memory/utils/primary-key.ts +158 -0
- package/src/vtab/module.ts +140 -0
- package/src/vtab/table.ts +143 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { QuereusError } from '../common/errors.js';
|
|
2
|
+
import { StatusCode } from '../common/types.js';
|
|
3
|
+
import { createLogger } from '../common/logger.js';
|
|
4
|
+
const log = createLogger('runtime:utils');
|
|
5
|
+
const errorLog = log.extend('error');
|
|
6
|
+
export const ctxLog = createLogger('runtime:context');
|
|
7
|
+
export function isAsyncIterable(value) {
|
|
8
|
+
return typeof value === 'object' && value !== null && Symbol.asyncIterator in value;
|
|
9
|
+
}
|
|
10
|
+
export async function asyncIterableToArray(iterable) {
|
|
11
|
+
const result = [];
|
|
12
|
+
for await (const item of iterable) {
|
|
13
|
+
result.push(item);
|
|
14
|
+
}
|
|
15
|
+
return result;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Helper to get or create a VirtualTable connection for a given table.
|
|
19
|
+
* This ensures transaction consistency by reusing connections within the same context.
|
|
20
|
+
*/
|
|
21
|
+
export async function getVTableConnection(ctx, tableSchema) {
|
|
22
|
+
const tableName = tableSchema.name; // Use just the table name, not fully qualified
|
|
23
|
+
// Check if we already have an active connection for this table
|
|
24
|
+
const existingConnections = ctx.db.getConnectionsForTable(tableName);
|
|
25
|
+
if (existingConnections.length > 0) {
|
|
26
|
+
log(`Reusing existing connection for table ${tableName}`);
|
|
27
|
+
return existingConnections[0];
|
|
28
|
+
}
|
|
29
|
+
// Create a new VirtualTable instance
|
|
30
|
+
const vtab = await getVTable(ctx, tableSchema);
|
|
31
|
+
// Try to create a connection if the table supports it
|
|
32
|
+
let connection;
|
|
33
|
+
if (vtab.createConnection) {
|
|
34
|
+
connection = await vtab.createConnection();
|
|
35
|
+
log(`Created new connection ${connection.connectionId} for table ${tableName}`);
|
|
36
|
+
}
|
|
37
|
+
else if (vtab.getConnection) {
|
|
38
|
+
const existingConn = vtab.getConnection();
|
|
39
|
+
if (existingConn) {
|
|
40
|
+
connection = existingConn;
|
|
41
|
+
log(`Using existing internal connection ${connection.connectionId} for table ${tableName}`);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
throw new QuereusError(`Table '${tableName}' does not support connections`, StatusCode.INTERNAL);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
throw new QuereusError(`Table '${tableName}' does not support connections`, StatusCode.INTERNAL);
|
|
49
|
+
}
|
|
50
|
+
// Register the connection with the database
|
|
51
|
+
await ctx.db.registerConnection(connection);
|
|
52
|
+
// Set as the active connection in the runtime context if none is set
|
|
53
|
+
if (!ctx.activeConnection) {
|
|
54
|
+
ctx.activeConnection = connection;
|
|
55
|
+
}
|
|
56
|
+
return connection;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Helper to get the VirtualTable instance for a given TableReferenceNode.
|
|
60
|
+
* This is the legacy method that creates ephemeral instances.
|
|
61
|
+
* When reusing connections, this will also inject the existing connection into the VirtualTable.
|
|
62
|
+
*/
|
|
63
|
+
export async function getVTable(ctx, tableSchema) {
|
|
64
|
+
// All tables are virtual, so vtabModuleName should always be present.
|
|
65
|
+
if (!tableSchema.vtabModuleName) {
|
|
66
|
+
throw new QuereusError(`Table schema for '${tableSchema.name}' is missing vtabModuleName.`, StatusCode.INTERNAL);
|
|
67
|
+
}
|
|
68
|
+
const moduleInfo = ctx.db._getVtabModule(tableSchema.vtabModuleName);
|
|
69
|
+
if (!moduleInfo) {
|
|
70
|
+
throw new QuereusError(`Virtual table module '${tableSchema.vtabModuleName}' not found for table '${tableSchema.name}'`, StatusCode.ERROR);
|
|
71
|
+
}
|
|
72
|
+
const module = moduleInfo.module;
|
|
73
|
+
if (typeof module.xConnect !== 'function') {
|
|
74
|
+
throw new QuereusError(`Virtual table module '${tableSchema.vtabModuleName}' does not implement xConnect`, StatusCode.MISUSE);
|
|
75
|
+
}
|
|
76
|
+
const vtabArgs = tableSchema.vtabArgs || {};
|
|
77
|
+
const vtabInstance = module.xConnect(ctx.db, moduleInfo.auxData, tableSchema.vtabModuleName, tableSchema.schemaName, tableSchema.name, vtabArgs);
|
|
78
|
+
// If we have an active connection for this table, inject it into the VirtualTable
|
|
79
|
+
const tableName = tableSchema.name;
|
|
80
|
+
const existingConnections = ctx.db.getConnectionsForTable(tableName);
|
|
81
|
+
if (existingConnections.length > 0 && tableSchema.vtabModuleName === 'memory') {
|
|
82
|
+
const memoryConnection = existingConnections[0];
|
|
83
|
+
const memoryTable = vtabInstance;
|
|
84
|
+
if (memoryConnection.getMemoryConnection && memoryTable.setConnection) {
|
|
85
|
+
memoryTable.setConnection(memoryConnection.getMemoryConnection());
|
|
86
|
+
log(`Injected existing connection into VirtualTable for table ${tableName}`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return vtabInstance;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Helper to properly disconnect and unregister a VirtualTable instance.
|
|
93
|
+
*/
|
|
94
|
+
export async function disconnectVTable(ctx, vtab) {
|
|
95
|
+
// Disconnect the VirtualTable instance
|
|
96
|
+
if (typeof vtab.xDisconnect === 'function') {
|
|
97
|
+
await vtab.xDisconnect().catch((e) => {
|
|
98
|
+
errorLog(`Error during xDisconnect for table '${vtab.tableName}': ${e}`);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Helper function to log context push operations
|
|
104
|
+
*/
|
|
105
|
+
export function logContextPush(descriptor, note, attributes) {
|
|
106
|
+
const attrs = Object.keys(descriptor).filter(k => descriptor[parseInt(k)] !== undefined);
|
|
107
|
+
const attrNames = attributes ? attributes.map(attr => `${attr.name}(#${attr.id})`).join(',') : 'unknown';
|
|
108
|
+
ctxLog('PUSH context %s: attrs=[%s] names=[%s]', note, attrs.join(','), attrNames);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Helper function to log context pop operations
|
|
112
|
+
*/
|
|
113
|
+
export function logContextPop(descriptor, note) {
|
|
114
|
+
const attrs = Object.keys(descriptor).filter(k => descriptor[parseInt(k)] !== undefined);
|
|
115
|
+
ctxLog('POP context %s: attrs=[%s]', note, attrs.join(','));
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/runtime/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents a schema change event.
|
|
3
|
+
*/
|
|
4
|
+
export interface SchemaChangeEvent {
|
|
5
|
+
type: 'table_added' | 'table_removed' | 'table_modified' | 'function_added' | 'function_removed' | 'function_modified' | 'module_added' | 'module_removed' | 'collation_added' | 'collation_removed';
|
|
6
|
+
schemaName?: string;
|
|
7
|
+
objectName: string;
|
|
8
|
+
oldObject?: any;
|
|
9
|
+
newObject?: any;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Function that handles schema change events.
|
|
13
|
+
*/
|
|
14
|
+
export type SchemaChangeListener = (event: SchemaChangeEvent) => void;
|
|
15
|
+
/**
|
|
16
|
+
* Manages schema change listeners and notifications.
|
|
17
|
+
*/
|
|
18
|
+
export declare class SchemaChangeNotifier {
|
|
19
|
+
private listeners;
|
|
20
|
+
/**
|
|
21
|
+
* Adds a schema change listener.
|
|
22
|
+
* @returns A function to unsubscribe the listener.
|
|
23
|
+
*/
|
|
24
|
+
addListener(listener: SchemaChangeListener): () => void;
|
|
25
|
+
/**
|
|
26
|
+
* Removes a schema change listener.
|
|
27
|
+
*/
|
|
28
|
+
removeListener(listener: SchemaChangeListener): void;
|
|
29
|
+
/**
|
|
30
|
+
* Notifies all listeners of a schema change event.
|
|
31
|
+
*/
|
|
32
|
+
notifyChange(event: SchemaChangeEvent): void;
|
|
33
|
+
/**
|
|
34
|
+
* Gets the number of active listeners.
|
|
35
|
+
*/
|
|
36
|
+
getListenerCount(): number;
|
|
37
|
+
/**
|
|
38
|
+
* Clears all listeners.
|
|
39
|
+
*/
|
|
40
|
+
clearListeners(): void;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=change-events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-events.d.ts","sourceRoot":"","sources":["../../../src/schema/change-events.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,aAAa,GAAG,eAAe,GAAG,gBAAgB,GAClD,gBAAgB,GAAG,kBAAkB,GAAG,mBAAmB,GAC3D,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,mBAAmB,CAAC;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,SAAS,CAAC,EAAE,GAAG,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAEtE;;GAEG;AACH,qBAAa,oBAAoB;IAChC,OAAO,CAAC,SAAS,CAAmC;IAEpD;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,IAAI;IAMvD;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAOpD;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAa5C;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;OAEG;IACH,cAAc,IAAI,IAAI;CAKtB"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { createLogger } from '../common/logger.js';
|
|
2
|
+
const log = createLogger('schema:change-events');
|
|
3
|
+
/**
|
|
4
|
+
* Manages schema change listeners and notifications.
|
|
5
|
+
*/
|
|
6
|
+
export class SchemaChangeNotifier {
|
|
7
|
+
listeners = new Set();
|
|
8
|
+
/**
|
|
9
|
+
* Adds a schema change listener.
|
|
10
|
+
* @returns A function to unsubscribe the listener.
|
|
11
|
+
*/
|
|
12
|
+
addListener(listener) {
|
|
13
|
+
this.listeners.add(listener);
|
|
14
|
+
log('Added schema change listener, total listeners: %d', this.listeners.size);
|
|
15
|
+
return () => this.removeListener(listener);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Removes a schema change listener.
|
|
19
|
+
*/
|
|
20
|
+
removeListener(listener) {
|
|
21
|
+
const removed = this.listeners.delete(listener);
|
|
22
|
+
if (removed) {
|
|
23
|
+
log('Removed schema change listener, total listeners: %d', this.listeners.size);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Notifies all listeners of a schema change event.
|
|
28
|
+
*/
|
|
29
|
+
notifyChange(event) {
|
|
30
|
+
log('Notifying %d listeners of schema change: %s %s', this.listeners.size, event.type, event.objectName);
|
|
31
|
+
for (const listener of this.listeners) {
|
|
32
|
+
try {
|
|
33
|
+
listener(event);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
log('Error in schema change listener: %s', error);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Gets the number of active listeners.
|
|
42
|
+
*/
|
|
43
|
+
getListenerCount() {
|
|
44
|
+
return this.listeners.size;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Clears all listeners.
|
|
48
|
+
*/
|
|
49
|
+
clearListeners() {
|
|
50
|
+
const count = this.listeners.size;
|
|
51
|
+
this.listeners.clear();
|
|
52
|
+
log('Cleared all %d schema change listeners', count);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=change-events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-events.js","sourceRoot":"","sources":["../../../src/schema/change-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,GAAG,GAAG,YAAY,CAAC,sBAAsB,CAAC,CAAC;AAoBjD;;GAEG;AACH,MAAM,OAAO,oBAAoB;IACxB,SAAS,GAAG,IAAI,GAAG,EAAwB,CAAC;IAEpD;;;OAGG;IACH,WAAW,CAAC,QAA8B;QACzC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,GAAG,CAAC,mDAAmD,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9E,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,QAA8B;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,OAAO,EAAE,CAAC;YACb,GAAG,CAAC,qDAAqD,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjF,CAAC;IACF,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,KAAwB;QACpC,GAAG,CAAC,gDAAgD,EACnD,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAEpD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACvC,IAAI,CAAC;gBACJ,QAAQ,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,GAAG,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;YACnD,CAAC;QACF,CAAC;IACF,CAAC;IAED;;OAEG;IACH,gBAAgB;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,cAAc;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,GAAG,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;CACD"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { SqlDataType } from '../common/types.js';
|
|
2
|
+
import type { Expression } from '../parser/ast.js';
|
|
3
|
+
/**
|
|
4
|
+
* Represents the schema definition of a single column in a table.
|
|
5
|
+
*/
|
|
6
|
+
export interface ColumnSchema {
|
|
7
|
+
/** Column name */
|
|
8
|
+
name: string;
|
|
9
|
+
/** Data type affinity (TEXT, INTEGER, REAL, BLOB, NUMERIC) */
|
|
10
|
+
affinity: SqlDataType;
|
|
11
|
+
/** Whether the column has a NOT NULL constraint */
|
|
12
|
+
notNull: boolean;
|
|
13
|
+
/** Whether the column is part of the primary key */
|
|
14
|
+
primaryKey: boolean;
|
|
15
|
+
/** Order within the primary key (1-based) or 0 if not PK */
|
|
16
|
+
pkOrder: number;
|
|
17
|
+
/** Default value expression */
|
|
18
|
+
defaultValue: Expression | null;
|
|
19
|
+
/** Declared collation sequence name (e.g., "BINARY", "NOCASE", "RTRIM") */
|
|
20
|
+
collation: string;
|
|
21
|
+
/** Is the column generated? */
|
|
22
|
+
generated: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Creates a default ColumnSchema with basic properties
|
|
26
|
+
* Following Third Manifesto principles, columns default to NOT NULL unless explicitly specified otherwise
|
|
27
|
+
*
|
|
28
|
+
* @param name The name for the column
|
|
29
|
+
* @param defaultNotNull Whether columns should be NOT NULL by default (defaults to true for Third Manifesto compliance)
|
|
30
|
+
* @returns A new column schema with default values
|
|
31
|
+
*/
|
|
32
|
+
export declare function createDefaultColumnSchema(name: string, defaultNotNull?: boolean): ColumnSchema;
|
|
33
|
+
//# sourceMappingURL=column.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../../src/schema/column.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,QAAQ,EAAE,WAAW,CAAC;IACtB,mDAAmD;IACnD,OAAO,EAAE,OAAO,CAAC;IACjB,oDAAoD;IACpD,UAAU,EAAE,OAAO,CAAC;IACpB,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,YAAY,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,SAAS,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,GAAE,OAAc,GAAG,YAAY,CAWpG"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { SqlDataType } from '../common/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a default ColumnSchema with basic properties
|
|
4
|
+
* Following Third Manifesto principles, columns default to NOT NULL unless explicitly specified otherwise
|
|
5
|
+
*
|
|
6
|
+
* @param name The name for the column
|
|
7
|
+
* @param defaultNotNull Whether columns should be NOT NULL by default (defaults to true for Third Manifesto compliance)
|
|
8
|
+
* @returns A new column schema with default values
|
|
9
|
+
*/
|
|
10
|
+
export function createDefaultColumnSchema(name, defaultNotNull = true) {
|
|
11
|
+
return {
|
|
12
|
+
name: name,
|
|
13
|
+
affinity: SqlDataType.TEXT,
|
|
14
|
+
notNull: defaultNotNull, // Third Manifesto: default to NOT NULL
|
|
15
|
+
primaryKey: false,
|
|
16
|
+
pkOrder: 0,
|
|
17
|
+
defaultValue: null,
|
|
18
|
+
collation: 'BINARY', // SQLite's default
|
|
19
|
+
generated: false,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=column.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column.js","sourceRoot":"","sources":["../../../src/schema/column.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAyBjD;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAY,EAAE,iBAA0B,IAAI;IACrF,OAAO;QACN,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,WAAW,CAAC,IAAI;QAC1B,OAAO,EAAE,cAAc,EAAE,uCAAuC;QAChE,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,CAAC;QACV,YAAY,EAAE,IAAI;QAClB,SAAS,EAAE,QAAQ,EAAE,mBAAmB;QACxC,SAAS,EAAE,KAAK;KAChB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import type { MaybePromise, Row, SqlValue } 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
|
+
/**
|
|
7
|
+
* Type for a scalar function implementation.
|
|
8
|
+
*/
|
|
9
|
+
export type ScalarFunc = (...args: SqlValue[]) => MaybePromise<SqlValue>;
|
|
10
|
+
/**
|
|
11
|
+
* Type for a table-valued function implementation.
|
|
12
|
+
*/
|
|
13
|
+
export type TableValuedFunc = (...args: SqlValue[]) => MaybePromise<AsyncIterable<Row>>;
|
|
14
|
+
/**
|
|
15
|
+
* Type for a database-aware table-valued function implementation.
|
|
16
|
+
* Takes a database instance and SQL values, returns an async iterable of rows.
|
|
17
|
+
*/
|
|
18
|
+
export type IntegratedTableValuedFunc = (db: Database, ...args: SqlValue[]) => MaybePromise<AsyncIterable<Row>>;
|
|
19
|
+
/**
|
|
20
|
+
* Type for aggregate step function.
|
|
21
|
+
*/
|
|
22
|
+
export type AggregateReducer<T = any> = (accumulator: T, ...args: SqlValue[]) => T;
|
|
23
|
+
/**
|
|
24
|
+
* Type for aggregate finalizer function.
|
|
25
|
+
*/
|
|
26
|
+
export type AggregateFinalizer<T = any> = (accumulator: T) => SqlValue;
|
|
27
|
+
/**
|
|
28
|
+
* Base interface for all function schemas with common properties.
|
|
29
|
+
*/
|
|
30
|
+
interface BaseFunctionSchema {
|
|
31
|
+
/** Function name (lowercase for consistent lookup) */
|
|
32
|
+
name: string;
|
|
33
|
+
/** Number of arguments (-1 for variable) */
|
|
34
|
+
numArgs: number;
|
|
35
|
+
/** Combination of FunctionFlags */
|
|
36
|
+
flags: FunctionFlags;
|
|
37
|
+
/** User data pointer passed during registration */
|
|
38
|
+
userData?: unknown;
|
|
39
|
+
/** Return type information */
|
|
40
|
+
returnType: BaseType;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Schema for scalar functions that return a single value.
|
|
44
|
+
*/
|
|
45
|
+
export interface ScalarFunctionSchema extends BaseFunctionSchema {
|
|
46
|
+
returnType: ScalarType;
|
|
47
|
+
/** Direct scalar function implementation */
|
|
48
|
+
implementation: ScalarFunc;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Schema for table-valued functions that return rows.
|
|
52
|
+
*/
|
|
53
|
+
export interface TableValuedFunctionSchema extends BaseFunctionSchema {
|
|
54
|
+
returnType: RelationType;
|
|
55
|
+
/** Table-valued function implementation */
|
|
56
|
+
implementation: TableValuedFunc | IntegratedTableValuedFunc;
|
|
57
|
+
/** Whether this TVF requires database access as first parameter */
|
|
58
|
+
isIntegrated?: boolean;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Schema for aggregate functions.
|
|
62
|
+
*/
|
|
63
|
+
export interface AggregateFunctionSchema extends BaseFunctionSchema {
|
|
64
|
+
returnType: ScalarType;
|
|
65
|
+
/** Aggregate step function */
|
|
66
|
+
stepFunction: AggregateReducer;
|
|
67
|
+
/** Aggregate finalizer function */
|
|
68
|
+
finalizeFunction: AggregateFinalizer;
|
|
69
|
+
/** Initial accumulator value for aggregates */
|
|
70
|
+
initialValue?: any;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Schema for window functions (for future use).
|
|
74
|
+
*/
|
|
75
|
+
export interface WindowFunctionSchema extends BaseFunctionSchema {
|
|
76
|
+
returnType: ScalarType;
|
|
77
|
+
/** Window function implementation */
|
|
78
|
+
implementation: (...args: any[]) => any;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Union type representing all possible function schemas.
|
|
82
|
+
*/
|
|
83
|
+
export type FunctionSchema = ScalarFunctionSchema | TableValuedFunctionSchema | AggregateFunctionSchema | WindowFunctionSchema;
|
|
84
|
+
/**
|
|
85
|
+
* Type guards for function schema types.
|
|
86
|
+
*/
|
|
87
|
+
export declare function isScalarFunctionSchema(schema: FunctionSchema): schema is ScalarFunctionSchema;
|
|
88
|
+
export declare function isTableValuedFunctionSchema(schema: FunctionSchema): schema is TableValuedFunctionSchema;
|
|
89
|
+
export declare function isAggregateFunctionSchema(schema: FunctionSchema): schema is AggregateFunctionSchema;
|
|
90
|
+
export declare function isWindowFunctionSchema(schema: FunctionSchema): schema is WindowFunctionSchema;
|
|
91
|
+
/**
|
|
92
|
+
* Creates a consistent key for storing/looking up functions
|
|
93
|
+
*
|
|
94
|
+
* @param name Function name
|
|
95
|
+
* @param numArgs Number of arguments (-1 for variable argument count)
|
|
96
|
+
* @returns A string key in the format "name/numArgs"
|
|
97
|
+
*/
|
|
98
|
+
export declare function getFunctionKey(name: string, numArgs: number): string;
|
|
99
|
+
/**
|
|
100
|
+
* @deprecated Use RelationType.columns instead
|
|
101
|
+
* Column information for table-valued functions.
|
|
102
|
+
*/
|
|
103
|
+
export interface TVFColumnInfo {
|
|
104
|
+
name: string;
|
|
105
|
+
type: SqlDataType;
|
|
106
|
+
nullable?: boolean;
|
|
107
|
+
}
|
|
108
|
+
export {};
|
|
109
|
+
//# sourceMappingURL=function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../../../src/schema/function.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAC;AAEzE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AAExF;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AAEhH;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAEnF;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,QAAQ,CAAC;AAEvE;;GAEG;AACH,UAAU,kBAAkB;IAC3B,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,KAAK,EAAE,aAAa,CAAC;IACrB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8BAA8B;IAC9B,UAAU,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC/D,UAAU,EAAE,UAAU,CAAC;IACvB,4CAA4C;IAC5C,cAAc,EAAE,UAAU,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACpE,UAAU,EAAE,YAAY,CAAC;IACzB,2CAA2C;IAC3C,cAAc,EAAE,eAAe,GAAG,yBAAyB,CAAC;IAC5D,mEAAmE;IACnE,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IAClE,UAAU,EAAE,UAAU,CAAC;IACvB,8BAA8B;IAC9B,YAAY,EAAE,gBAAgB,CAAC;IAC/B,mCAAmC;IACnC,gBAAgB,EAAE,kBAAkB,CAAC;IACrC,+CAA+C;IAC/C,YAAY,CAAC,EAAE,GAAG,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC/D,UAAU,EAAE,UAAU,CAAC;IACvB,qCAAqC;IACrC,cAAc,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GACvB,oBAAoB,GACpB,yBAAyB,GACzB,uBAAuB,GACvB,oBAAoB,CAAC;AAExB;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,IAAI,oBAAoB,CAE7F;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,IAAI,yBAAyB,CAEvG;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,IAAI,uBAAuB,CAEnG;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,IAAI,oBAAoB,CAE7F;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpE;AAGD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type guards for function schema types.
|
|
3
|
+
*/
|
|
4
|
+
export function isScalarFunctionSchema(schema) {
|
|
5
|
+
return schema.returnType.typeClass === 'scalar' && 'implementation' in schema && typeof schema.implementation === 'function';
|
|
6
|
+
}
|
|
7
|
+
export function isTableValuedFunctionSchema(schema) {
|
|
8
|
+
return schema.returnType.typeClass === 'relation';
|
|
9
|
+
}
|
|
10
|
+
export function isAggregateFunctionSchema(schema) {
|
|
11
|
+
return 'stepFunction' in schema && 'finalizeFunction' in schema;
|
|
12
|
+
}
|
|
13
|
+
export function isWindowFunctionSchema(schema) {
|
|
14
|
+
return 'implementation' in schema && schema.returnType.typeClass === 'scalar' && !isScalarFunctionSchema(schema) && !isAggregateFunctionSchema(schema);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Creates a consistent key for storing/looking up functions
|
|
18
|
+
*
|
|
19
|
+
* @param name Function name
|
|
20
|
+
* @param numArgs Number of arguments (-1 for variable argument count)
|
|
21
|
+
* @returns A string key in the format "name/numArgs"
|
|
22
|
+
*/
|
|
23
|
+
export function getFunctionKey(name, numArgs) {
|
|
24
|
+
return `${name.toLowerCase()}/${numArgs}`;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function.js","sourceRoot":"","sources":["../../../src/schema/function.ts"],"names":[],"mappings":"AAmGA;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAsB;IAC5D,OAAO,MAAM,CAAC,UAAU,CAAC,SAAS,KAAK,QAAQ,IAAI,gBAAgB,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,UAAU,CAAC;AAC9H,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,MAAsB;IACjE,OAAO,MAAM,CAAC,UAAU,CAAC,SAAS,KAAK,UAAU,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAsB;IAC/D,OAAO,cAAc,IAAI,MAAM,IAAI,kBAAkB,IAAI,MAAM,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAsB;IAC5D,OAAO,gBAAgB,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;AACxJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,OAAe;IAC3D,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,OAAO,EAAE,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { Schema } from './schema.js';
|
|
2
|
+
import type { Database } from '../core/database.js';
|
|
3
|
+
import type { TableSchema } from './table.js';
|
|
4
|
+
import type { FunctionSchema } from './function.js';
|
|
5
|
+
import { type SqlValue } from '../common/types.js';
|
|
6
|
+
import type { VirtualTableModule, BaseModuleConfig } from '../vtab/module.js';
|
|
7
|
+
import type { ViewSchema } from './view.js';
|
|
8
|
+
import type * as AST from '../parser/ast.js';
|
|
9
|
+
import { SchemaChangeNotifier } from './change-events.js';
|
|
10
|
+
/**
|
|
11
|
+
* Generic options passed to VTab modules during CREATE TABLE.
|
|
12
|
+
* Modules are responsible for interpreting these.
|
|
13
|
+
*/
|
|
14
|
+
export interface GenericModuleCallOptions extends BaseModuleConfig {
|
|
15
|
+
moduleArgs?: readonly string[];
|
|
16
|
+
statementColumns?: readonly AST.ColumnDef[];
|
|
17
|
+
statementConstraints?: readonly AST.TableConstraint[];
|
|
18
|
+
isTemporary?: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Manages all schemas associated with a database connection (main, temp, attached).
|
|
22
|
+
* Handles lookup resolution according to SQLite's rules.
|
|
23
|
+
*/
|
|
24
|
+
export declare class SchemaManager {
|
|
25
|
+
private schemas;
|
|
26
|
+
private currentSchemaName;
|
|
27
|
+
private modules;
|
|
28
|
+
private defaultVTabModuleName;
|
|
29
|
+
private defaultVTabModuleArgs;
|
|
30
|
+
private db;
|
|
31
|
+
private changeNotifier;
|
|
32
|
+
/**
|
|
33
|
+
* Creates a new schema manager
|
|
34
|
+
*
|
|
35
|
+
* @param db Reference to the parent Database instance
|
|
36
|
+
*/
|
|
37
|
+
constructor(db: Database);
|
|
38
|
+
/**
|
|
39
|
+
* Sets the current default schema for unqualified names
|
|
40
|
+
*
|
|
41
|
+
* @param name Schema name to set as current
|
|
42
|
+
*/
|
|
43
|
+
setCurrentSchema(name: string): void;
|
|
44
|
+
/**
|
|
45
|
+
* Gets the name of the current default schema
|
|
46
|
+
*
|
|
47
|
+
* @returns Current schema name
|
|
48
|
+
*/
|
|
49
|
+
getCurrentSchemaName(): string;
|
|
50
|
+
/**
|
|
51
|
+
* Registers a virtual table module
|
|
52
|
+
*
|
|
53
|
+
* @param name Module name
|
|
54
|
+
* @param module Module implementation
|
|
55
|
+
* @param auxData Optional client data associated with the module registration
|
|
56
|
+
*/
|
|
57
|
+
registerModule(name: string, module: VirtualTableModule<any, any>, auxData?: unknown): void;
|
|
58
|
+
/**
|
|
59
|
+
* Retrieves a registered virtual table module by name
|
|
60
|
+
*
|
|
61
|
+
* @param name Module name to look up
|
|
62
|
+
* @returns The module and its auxData, or undefined if not found
|
|
63
|
+
*/
|
|
64
|
+
getModule(name: string): {
|
|
65
|
+
module: VirtualTableModule<any, any>;
|
|
66
|
+
auxData?: unknown;
|
|
67
|
+
} | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* Sets the default virtual table module to use when USING is omitted
|
|
70
|
+
*
|
|
71
|
+
* @param name Module name. Must be a registered module.
|
|
72
|
+
* @throws QuereusError if the module name is not registered
|
|
73
|
+
*/
|
|
74
|
+
setDefaultVTabModuleName(name: string): void;
|
|
75
|
+
/**
|
|
76
|
+
* Gets the currently configured default virtual table module name
|
|
77
|
+
*
|
|
78
|
+
* @returns The default module name
|
|
79
|
+
*/
|
|
80
|
+
getDefaultVTabModuleName(): string;
|
|
81
|
+
/**
|
|
82
|
+
* Gets the default virtual table module arguments.
|
|
83
|
+
* @returns A copy of the default arguments array.
|
|
84
|
+
*/
|
|
85
|
+
getDefaultVTabArgs(): Record<string, SqlValue>;
|
|
86
|
+
/**
|
|
87
|
+
* Gets the default virtual table module name and arguments.
|
|
88
|
+
* @returns An object containing the module name and arguments.
|
|
89
|
+
*/
|
|
90
|
+
getDefaultVTabModule(): {
|
|
91
|
+
name: string;
|
|
92
|
+
args: Record<string, SqlValue>;
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* Gets a specific schema by name
|
|
96
|
+
*
|
|
97
|
+
* @param name Schema name to retrieve
|
|
98
|
+
* @returns The schema or undefined if not found
|
|
99
|
+
*/
|
|
100
|
+
getSchema(name: string): Schema | undefined;
|
|
101
|
+
/**
|
|
102
|
+
* Gets the 'main' schema
|
|
103
|
+
*
|
|
104
|
+
* @returns The main schema
|
|
105
|
+
*/
|
|
106
|
+
getMainSchema(): Schema;
|
|
107
|
+
/**
|
|
108
|
+
* Gets the 'temp' schema
|
|
109
|
+
*
|
|
110
|
+
* @returns The temp schema
|
|
111
|
+
*/
|
|
112
|
+
getTempSchema(): Schema;
|
|
113
|
+
/**
|
|
114
|
+
* Gets the schema change notifier for listening to schema changes
|
|
115
|
+
*/
|
|
116
|
+
getChangeNotifier(): SchemaChangeNotifier;
|
|
117
|
+
/**
|
|
118
|
+
* Adds a new schema (e.g., for ATTACH)
|
|
119
|
+
*
|
|
120
|
+
* @param name Name of the schema to add
|
|
121
|
+
* @returns The newly created schema
|
|
122
|
+
* @throws QuereusError if the name conflicts with an existing schema
|
|
123
|
+
*/
|
|
124
|
+
addSchema(name: string): Schema;
|
|
125
|
+
/**
|
|
126
|
+
* Removes a schema (e.g., for DETACH)
|
|
127
|
+
*
|
|
128
|
+
* @param name Name of the schema to remove
|
|
129
|
+
* @returns true if found and removed, false otherwise
|
|
130
|
+
* @throws QuereusError if attempting to remove 'main' or 'temp'
|
|
131
|
+
*/
|
|
132
|
+
removeSchema(name: string): boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Finds a table by name, searching schemas according to SQLite rules
|
|
135
|
+
*
|
|
136
|
+
* @param tableName Name of the table
|
|
137
|
+
* @param dbName Optional specific schema name to search
|
|
138
|
+
* @returns The TableSchema or undefined if not found
|
|
139
|
+
*/
|
|
140
|
+
findTable(tableName: string, dbName?: string): TableSchema | undefined;
|
|
141
|
+
/**
|
|
142
|
+
* Finds a function by name and arg count, searching schemas
|
|
143
|
+
*
|
|
144
|
+
* @param funcName Name of the function
|
|
145
|
+
* @param nArg Number of arguments
|
|
146
|
+
* @returns The FunctionSchema or undefined if not found
|
|
147
|
+
*/
|
|
148
|
+
findFunction(funcName: string, nArg: number): FunctionSchema | undefined;
|
|
149
|
+
/**
|
|
150
|
+
* Retrieves a view schema definition
|
|
151
|
+
*
|
|
152
|
+
* @param schemaName The name of the schema ('main', 'temp', etc.). Defaults to current schema
|
|
153
|
+
* @param viewName The name of the view
|
|
154
|
+
* @returns The ViewSchema or undefined if not found
|
|
155
|
+
*/
|
|
156
|
+
getView(schemaName: string | null, viewName: string): ViewSchema | undefined;
|
|
157
|
+
/**
|
|
158
|
+
* Retrieves any schema item (table or view) by name. Checks views first
|
|
159
|
+
*
|
|
160
|
+
* @param schemaName The name of the schema ('main', 'temp', etc.). Defaults to current schema
|
|
161
|
+
* @param itemName The name of the table or view
|
|
162
|
+
* @returns The TableSchema or ViewSchema, or undefined if not found
|
|
163
|
+
*/
|
|
164
|
+
getSchemaItem(schemaName: string | null, itemName: string): TableSchema | ViewSchema | undefined;
|
|
165
|
+
/**
|
|
166
|
+
* Drops a table from the specified schema
|
|
167
|
+
*
|
|
168
|
+
* @param schemaName The name of the schema
|
|
169
|
+
* @param tableName The name of the table to drop
|
|
170
|
+
* @param ifExists If true, do not throw an error if the table does not exist.
|
|
171
|
+
* @returns True if the table was found and dropped, false otherwise.
|
|
172
|
+
*/
|
|
173
|
+
dropTable(schemaName: string, tableName: string, ifExists?: boolean): boolean;
|
|
174
|
+
/**
|
|
175
|
+
* Drops a view from the specified schema
|
|
176
|
+
*
|
|
177
|
+
* @param schemaName The name of the schema
|
|
178
|
+
* @param viewName The name of the view to drop
|
|
179
|
+
* @returns True if the view was found and dropped, false otherwise
|
|
180
|
+
*/
|
|
181
|
+
dropView(schemaName: string, viewName: string): boolean;
|
|
182
|
+
/**
|
|
183
|
+
* Clears all schema items (tables, functions, views)
|
|
184
|
+
*/
|
|
185
|
+
clearAll(): void;
|
|
186
|
+
/**
|
|
187
|
+
* Retrieves a schema object, throwing if it doesn't exist
|
|
188
|
+
*
|
|
189
|
+
* @param name Schema name ('main', 'temp', or custom). Case-insensitive
|
|
190
|
+
* @returns The Schema object
|
|
191
|
+
* @throws QuereusError if the schema does not exist
|
|
192
|
+
*/
|
|
193
|
+
getSchemaOrFail(name: string): Schema;
|
|
194
|
+
/**
|
|
195
|
+
* Retrieves a table from the specified schema
|
|
196
|
+
*
|
|
197
|
+
* @param schemaName The name of the schema ('main', 'temp', etc.). Defaults to current schema
|
|
198
|
+
* @param tableName The name of the table
|
|
199
|
+
* @returns The TableSchema or undefined if not found
|
|
200
|
+
*/
|
|
201
|
+
getTable(schemaName: string | undefined, tableName: string): TableSchema | undefined;
|
|
202
|
+
/**
|
|
203
|
+
* Creates a new index on an existing table based on an AST.CreateIndexStmt.
|
|
204
|
+
* This method validates the index definition and calls the virtual table's xCreateIndex method.
|
|
205
|
+
*
|
|
206
|
+
* @param stmt The AST node for the CREATE INDEX statement.
|
|
207
|
+
* @returns A Promise that resolves when the index is created.
|
|
208
|
+
* @throws QuereusError on errors (e.g., table not found, column not found, xCreateIndex fails).
|
|
209
|
+
*/
|
|
210
|
+
createIndex(stmt: AST.CreateIndexStmt): Promise<void>;
|
|
211
|
+
/**
|
|
212
|
+
* Defines a new table in the schema based on an AST.CreateTableStmt.
|
|
213
|
+
* This method encapsulates the logic for interacting with VTab modules (xCreate)
|
|
214
|
+
* and registering the new table schema.
|
|
215
|
+
*
|
|
216
|
+
* @param stmt The AST node for the CREATE TABLE statement.
|
|
217
|
+
* @returns A Promise that resolves to the created TableSchema.
|
|
218
|
+
* @throws QuereusError on errors (e.g., module not found, xCreate fails, table exists).
|
|
219
|
+
*/
|
|
220
|
+
createTable(stmt: AST.CreateTableStmt): Promise<TableSchema>;
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=manager.d.ts.map
|