@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,397 @@
|
|
|
1
|
+
import { createLogger } from '../common/logger.js';
|
|
2
|
+
const log = createLogger('util:comparison');
|
|
3
|
+
const warnLog = log.extend('warn');
|
|
4
|
+
// Map to store registered collations
|
|
5
|
+
const collations = new Map();
|
|
6
|
+
/**
|
|
7
|
+
* Binary (default) collation function.
|
|
8
|
+
* Performs standard lexicographical comparison of strings.
|
|
9
|
+
*/
|
|
10
|
+
export const BINARY_COLLATION = (a, b) => {
|
|
11
|
+
return a < b ? -1 : a > b ? 1 : 0;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Case-insensitive collation function.
|
|
15
|
+
* Compares strings after converting them to lowercase.
|
|
16
|
+
*/
|
|
17
|
+
export const NOCASE_COLLATION = (a, b) => {
|
|
18
|
+
const lowerA = a.toLowerCase();
|
|
19
|
+
const lowerB = b.toLowerCase();
|
|
20
|
+
return lowerA < lowerB ? -1 : lowerA > lowerB ? 1 : 0;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Right-trim collation function.
|
|
24
|
+
* Compares strings after removing trailing spaces.
|
|
25
|
+
*/
|
|
26
|
+
export const RTRIM_COLLATION = (a, b) => {
|
|
27
|
+
let lenA = a.length;
|
|
28
|
+
let lenB = b.length;
|
|
29
|
+
while (lenA > 0 && a[lenA - 1] === ' ')
|
|
30
|
+
lenA--;
|
|
31
|
+
while (lenB > 0 && b[lenB - 1] === ' ')
|
|
32
|
+
lenB--;
|
|
33
|
+
const minLen = Math.min(lenA, lenB);
|
|
34
|
+
for (let i = 0; i < minLen; i++) {
|
|
35
|
+
if (a[i] !== b[i]) {
|
|
36
|
+
return a[i] < b[i] ? -1 : 1;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return lenA - lenB;
|
|
40
|
+
};
|
|
41
|
+
// Register built-in collations
|
|
42
|
+
collations.set('BINARY', BINARY_COLLATION);
|
|
43
|
+
collations.set('NOCASE', NOCASE_COLLATION);
|
|
44
|
+
collations.set('RTRIM', RTRIM_COLLATION);
|
|
45
|
+
/**
|
|
46
|
+
* Registers a collation function with the given name.
|
|
47
|
+
* @param name The name of the collation (case-insensitive)
|
|
48
|
+
* @param func The collation function to register
|
|
49
|
+
*/
|
|
50
|
+
export function registerCollation(name, func) {
|
|
51
|
+
const upperName = name.toUpperCase();
|
|
52
|
+
if (collations.has(upperName)) {
|
|
53
|
+
warnLog(`Overwriting existing collation: %s`, upperName);
|
|
54
|
+
}
|
|
55
|
+
collations.set(upperName, func);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Gets a registered collation function by name.
|
|
59
|
+
* @param name The collation name (case-insensitive)
|
|
60
|
+
* @returns The collation function, or undefined if not found
|
|
61
|
+
*/
|
|
62
|
+
export function getCollation(name) {
|
|
63
|
+
return collations.get(name.toUpperCase());
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Resolves a collation name to its function. Optimized for hot path usage.
|
|
67
|
+
* @param collationName The collation name
|
|
68
|
+
* @returns The collation function (defaults to BINARY if not found)
|
|
69
|
+
*/
|
|
70
|
+
export function resolveCollation(collationName) {
|
|
71
|
+
if (collationName === 'BINARY')
|
|
72
|
+
return BINARY_COLLATION; // Fast path for most common case
|
|
73
|
+
const func = collations.get(collationName.toUpperCase());
|
|
74
|
+
if (!func) {
|
|
75
|
+
warnLog(`Unknown collation requested: %s. Falling back to BINARY.`, collationName);
|
|
76
|
+
return BINARY_COLLATION;
|
|
77
|
+
}
|
|
78
|
+
return func;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Evaluates a JavaScript value according to simplified, JS-idiomatic truthiness rules.
|
|
82
|
+
* - null/undefined are false
|
|
83
|
+
* - boolean is its own value
|
|
84
|
+
* - number: 0 is false, non-zero is true
|
|
85
|
+
* - bigint: 0n is false, non-zero is true
|
|
86
|
+
* - string: empty string is false, non-empty is true
|
|
87
|
+
* - Uint8Array (BLOB): always false
|
|
88
|
+
*
|
|
89
|
+
* @param value The value to evaluate
|
|
90
|
+
* @returns True or false
|
|
91
|
+
*/
|
|
92
|
+
export function evaluateIsTrue(value) {
|
|
93
|
+
if (value === null || value === undefined) {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
switch (typeof value) {
|
|
97
|
+
case 'boolean':
|
|
98
|
+
return value;
|
|
99
|
+
case 'number':
|
|
100
|
+
return value !== 0;
|
|
101
|
+
case 'bigint':
|
|
102
|
+
return value !== 0n;
|
|
103
|
+
case 'string':
|
|
104
|
+
return value.length > 0;
|
|
105
|
+
case 'object':
|
|
106
|
+
if (value instanceof Uint8Array) {
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
return false;
|
|
110
|
+
default:
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/** Represents SQLite storage classes for comparison purposes */
|
|
115
|
+
var StorageClass;
|
|
116
|
+
(function (StorageClass) {
|
|
117
|
+
StorageClass[StorageClass["NULL"] = 0] = "NULL";
|
|
118
|
+
StorageClass[StorageClass["NUMERIC"] = 1] = "NUMERIC";
|
|
119
|
+
StorageClass[StorageClass["TEXT"] = 2] = "TEXT";
|
|
120
|
+
StorageClass[StorageClass["BLOB"] = 3] = "BLOB";
|
|
121
|
+
StorageClass[StorageClass["UNKNOWN"] = 99] = "UNKNOWN";
|
|
122
|
+
})(StorageClass || (StorageClass = {}));
|
|
123
|
+
/**
|
|
124
|
+
* Determines the effective storage class for comparison, converting boolean to numeric.
|
|
125
|
+
* Optimized with early returns for common cases.
|
|
126
|
+
*/
|
|
127
|
+
function getStorageClass(v) {
|
|
128
|
+
if (v === null)
|
|
129
|
+
return StorageClass.NULL; // Most common null check
|
|
130
|
+
const type = typeof v;
|
|
131
|
+
// Fast path for numbers (most common non-null case)
|
|
132
|
+
if (type === 'number')
|
|
133
|
+
return StorageClass.NUMERIC;
|
|
134
|
+
if (type === 'string')
|
|
135
|
+
return StorageClass.TEXT;
|
|
136
|
+
if (type === 'boolean' || type === 'bigint')
|
|
137
|
+
return StorageClass.NUMERIC;
|
|
138
|
+
if (type === 'object' && v instanceof Uint8Array)
|
|
139
|
+
return StorageClass.BLOB;
|
|
140
|
+
return StorageClass.UNKNOWN;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Returns the SQLite fundamental datatype name of a value.
|
|
144
|
+
* @param v The value
|
|
145
|
+
* @returns The datatype name as a string
|
|
146
|
+
*/
|
|
147
|
+
export function getSqlDataTypeName(v) {
|
|
148
|
+
if (v === null || v === undefined)
|
|
149
|
+
return 'null';
|
|
150
|
+
const type = typeof v;
|
|
151
|
+
if (type === 'boolean')
|
|
152
|
+
return 'integer';
|
|
153
|
+
if (type === 'number') {
|
|
154
|
+
return Number.isInteger(v) ? 'integer' : 'real';
|
|
155
|
+
}
|
|
156
|
+
if (type === 'bigint')
|
|
157
|
+
return 'integer';
|
|
158
|
+
if (type === 'string')
|
|
159
|
+
return 'text';
|
|
160
|
+
if (type === 'object' && v instanceof Uint8Array)
|
|
161
|
+
return 'blob';
|
|
162
|
+
return 'null';
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Fast path comparison for two numbers (most common case).
|
|
166
|
+
* @param a First number
|
|
167
|
+
* @param b Second number
|
|
168
|
+
* @returns -1 if a < b, 0 if a === b, 1 if a > b
|
|
169
|
+
*/
|
|
170
|
+
function compareNumbers(a, b) {
|
|
171
|
+
return a < b ? -1 : a > b ? 1 : 0;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Optimized comparison for same-type values.
|
|
175
|
+
* @param a First value
|
|
176
|
+
* @param b Second value
|
|
177
|
+
* @param storageClass The storage class of both values
|
|
178
|
+
* @param collationFunc The collation function (for TEXT types)
|
|
179
|
+
* @returns -1 if a < b, 0 if a === b, 1 if a > b
|
|
180
|
+
*/
|
|
181
|
+
function compareSameType(a, b, storageClass, collationFunc) {
|
|
182
|
+
switch (storageClass) {
|
|
183
|
+
case StorageClass.NUMERIC: {
|
|
184
|
+
// Convert booleans to numbers inline for efficiency
|
|
185
|
+
const valA = typeof a === 'boolean' ? (a ? 1 : 0) : a;
|
|
186
|
+
const valB = typeof b === 'boolean' ? (b ? 1 : 0) : b;
|
|
187
|
+
return compareNumbers(valA, valB);
|
|
188
|
+
}
|
|
189
|
+
case StorageClass.TEXT: {
|
|
190
|
+
return collationFunc(a, b);
|
|
191
|
+
}
|
|
192
|
+
case StorageClass.BLOB: {
|
|
193
|
+
const blobA = a;
|
|
194
|
+
const blobB = b;
|
|
195
|
+
const len = Math.min(blobA.length, blobB.length);
|
|
196
|
+
for (let i = 0; i < len; i++) {
|
|
197
|
+
if (blobA[i] !== blobB[i]) {
|
|
198
|
+
return blobA[i] < blobB[i] ? -1 : 1;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return blobA.length < blobB.length ? -1 : blobA.length > blobB.length ? 1 : 0;
|
|
202
|
+
}
|
|
203
|
+
default: {
|
|
204
|
+
return 0;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Compares two SQLite values based on SQLite's comparison rules.
|
|
210
|
+
* Follows SQLite's type ordering: NULL < Numeric < TEXT < BLOB
|
|
211
|
+
*
|
|
212
|
+
* @param a First value
|
|
213
|
+
* @param b Second value
|
|
214
|
+
* @param collationName The collation to use for text comparison (defaults to BINARY)
|
|
215
|
+
* @returns -1 if a < b, 0 if a === b, 1 if a > b
|
|
216
|
+
*/
|
|
217
|
+
export function compareSqlValues(a, b, collationName = 'BINARY') {
|
|
218
|
+
const collationFunc = collationName === 'BINARY' ? BINARY_COLLATION : resolveCollation(collationName);
|
|
219
|
+
return compareSqlValuesFast(a, b, collationFunc);
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Optimized version of compareSqlValues that takes a pre-resolved collation function.
|
|
223
|
+
* This avoids the collation lookup on every call.
|
|
224
|
+
*
|
|
225
|
+
* @param a First value
|
|
226
|
+
* @param b Second value
|
|
227
|
+
* @param collationFunc Pre-resolved collation function
|
|
228
|
+
* @returns -1 if a < b, 0 if a === b, 1 if a > b
|
|
229
|
+
*/
|
|
230
|
+
export function compareSqlValuesFast(a, b, collationFunc) {
|
|
231
|
+
const classA = getStorageClass(a);
|
|
232
|
+
const classB = getStorageClass(b);
|
|
233
|
+
// Fast path: NULL comparisons
|
|
234
|
+
if (classA === StorageClass.NULL) {
|
|
235
|
+
return classB === StorageClass.NULL ? 0 : -1;
|
|
236
|
+
}
|
|
237
|
+
if (classB === StorageClass.NULL) {
|
|
238
|
+
return 1;
|
|
239
|
+
}
|
|
240
|
+
// Fast path: same type comparison
|
|
241
|
+
if (classA === classB) {
|
|
242
|
+
return compareSameType(a, b, classA, collationFunc);
|
|
243
|
+
}
|
|
244
|
+
// Different types: compare by storage class ordering
|
|
245
|
+
return classA - classB;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Direction flags for optimized comparisons (avoids string comparison in hot path)
|
|
249
|
+
*/
|
|
250
|
+
export var SortDirection;
|
|
251
|
+
(function (SortDirection) {
|
|
252
|
+
SortDirection[SortDirection["ASC"] = 0] = "ASC";
|
|
253
|
+
SortDirection[SortDirection["DESC"] = 1] = "DESC";
|
|
254
|
+
})(SortDirection || (SortDirection = {}));
|
|
255
|
+
/**
|
|
256
|
+
* NULL ordering flags for optimized comparisons
|
|
257
|
+
*/
|
|
258
|
+
export var NullsOrdering;
|
|
259
|
+
(function (NullsOrdering) {
|
|
260
|
+
NullsOrdering[NullsOrdering["DEFAULT"] = 0] = "DEFAULT";
|
|
261
|
+
NullsOrdering[NullsOrdering["FIRST"] = 1] = "FIRST";
|
|
262
|
+
NullsOrdering[NullsOrdering["LAST"] = 2] = "LAST";
|
|
263
|
+
})(NullsOrdering || (NullsOrdering = {}));
|
|
264
|
+
/**
|
|
265
|
+
* Highly optimized comparison function for ORDER BY operations.
|
|
266
|
+
* Takes pre-resolved collation function and numeric flags to avoid string comparisons.
|
|
267
|
+
*
|
|
268
|
+
* @param a First value
|
|
269
|
+
* @param b Second value
|
|
270
|
+
* @param direction Sort direction (SortDirection.ASC or SortDirection.DESC)
|
|
271
|
+
* @param nullsOrdering NULL ordering (NullsOrdering enum)
|
|
272
|
+
* @param collationFunc Pre-resolved collation function
|
|
273
|
+
* @returns -1 if a < b, 0 if a === b, 1 if a > b (after applying direction and null ordering)
|
|
274
|
+
*/
|
|
275
|
+
export function compareWithOrderByFast(a, b, direction, nullsOrdering, collationFunc) {
|
|
276
|
+
let comparison;
|
|
277
|
+
// Fast path: both values are non-NULL (most common case)
|
|
278
|
+
if (a !== null && b !== null) {
|
|
279
|
+
comparison = compareSqlValuesFast(a, b, collationFunc);
|
|
280
|
+
}
|
|
281
|
+
else if (a === null && b === null) {
|
|
282
|
+
comparison = 0;
|
|
283
|
+
}
|
|
284
|
+
else if (a === null) {
|
|
285
|
+
// Handle NULL ordering with numeric flags (faster than string comparison)
|
|
286
|
+
if (nullsOrdering === NullsOrdering.LAST) {
|
|
287
|
+
comparison = 1; // nulls last
|
|
288
|
+
}
|
|
289
|
+
else if (nullsOrdering === NullsOrdering.FIRST) {
|
|
290
|
+
comparison = -1; // nulls first
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
// Default behavior: nulls first for ASC, nulls last for DESC
|
|
294
|
+
comparison = direction === SortDirection.DESC ? 1 : -1;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
else { // b === null
|
|
298
|
+
if (nullsOrdering === NullsOrdering.LAST) {
|
|
299
|
+
comparison = -1; // nulls last (b is null, so a comes first)
|
|
300
|
+
}
|
|
301
|
+
else if (nullsOrdering === NullsOrdering.FIRST) {
|
|
302
|
+
comparison = 1; // nulls first (b is null, so b comes first)
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
// Default behavior: nulls first for ASC, nulls last for DESC
|
|
306
|
+
comparison = direction === SortDirection.DESC ? -1 : 1;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
// Apply DESC direction (branchless when direction is ASC)
|
|
310
|
+
return direction === SortDirection.DESC ? -comparison : comparison;
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Compares two SQL values with ORDER BY semantics including direction and NULL ordering.
|
|
314
|
+
* This consolidates the comparison logic used by both sort and window operations.
|
|
315
|
+
*
|
|
316
|
+
* @param a First value
|
|
317
|
+
* @param b Second value
|
|
318
|
+
* @param direction Sort direction ('asc' or 'desc')
|
|
319
|
+
* @param nullsOrdering Explicit NULLS ordering ('first', 'last', or undefined for default)
|
|
320
|
+
* @param collationName The collation to use for text comparison (defaults to BINARY)
|
|
321
|
+
* @returns -1 if a < b, 0 if a === b, 1 if a > b (after applying direction and null ordering)
|
|
322
|
+
*/
|
|
323
|
+
export function compareWithOrderBy(a, b, direction = 'asc', nullsOrdering, collationName = 'BINARY') {
|
|
324
|
+
// Convert to optimized flags and use fast path
|
|
325
|
+
const directionFlag = direction === 'desc' ? SortDirection.DESC : SortDirection.ASC;
|
|
326
|
+
const nullsFlag = nullsOrdering === 'first' ? NullsOrdering.FIRST :
|
|
327
|
+
nullsOrdering === 'last' ? NullsOrdering.LAST :
|
|
328
|
+
NullsOrdering.DEFAULT;
|
|
329
|
+
const collationFunc = collationName === 'BINARY' ? BINARY_COLLATION : resolveCollation(collationName);
|
|
330
|
+
return compareWithOrderByFast(a, b, directionFlag, nullsFlag, collationFunc);
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Factory function to create optimized comparison functions for repeated use.
|
|
334
|
+
* Pre-resolves collation and converts string flags to numeric for maximum performance.
|
|
335
|
+
*
|
|
336
|
+
* @param direction Sort direction ('asc' or 'desc')
|
|
337
|
+
* @param nullsOrdering Explicit NULLS ordering ('first', 'last', or undefined for default)
|
|
338
|
+
* @param collationName The collation to use for text comparison (defaults to BINARY)
|
|
339
|
+
* @returns An optimized comparison function
|
|
340
|
+
*/
|
|
341
|
+
export function createOrderByComparator(direction = 'asc', nullsOrdering, collationName = 'BINARY') {
|
|
342
|
+
const collationFunc = collationName === 'BINARY' ? BINARY_COLLATION : resolveCollation(collationName);
|
|
343
|
+
return createOrderByComparatorFast(direction, nullsOrdering, collationFunc);
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Optimized factory function that takes a pre-resolved collation function.
|
|
347
|
+
* This is the most efficient option when the collation function is already available.
|
|
348
|
+
*
|
|
349
|
+
* @param direction Sort direction ('asc' or 'desc')
|
|
350
|
+
* @param nullsOrdering Explicit NULLS ordering ('first', 'last', or undefined for default)
|
|
351
|
+
* @param collationFunc Pre-resolved collation function
|
|
352
|
+
* @returns An optimized comparison function
|
|
353
|
+
*/
|
|
354
|
+
export function createOrderByComparatorFast(direction = 'asc', nullsOrdering, collationFunc = BINARY_COLLATION) {
|
|
355
|
+
const directionFlag = direction === 'desc' ? SortDirection.DESC : SortDirection.ASC;
|
|
356
|
+
const nullsFlag = nullsOrdering === 'first' ? NullsOrdering.FIRST :
|
|
357
|
+
nullsOrdering === 'last' ? NullsOrdering.LAST :
|
|
358
|
+
NullsOrdering.DEFAULT;
|
|
359
|
+
// Return a closure that captures the pre-resolved values
|
|
360
|
+
return (a, b) => {
|
|
361
|
+
return compareWithOrderByFast(a, b, directionFlag, nullsFlag, collationFunc);
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Determines if a SqlValue is truthy for filter purposes.
|
|
366
|
+
* In SQL semantics:
|
|
367
|
+
* - NULL is falsy
|
|
368
|
+
* - 0 (number) is falsy
|
|
369
|
+
* - Empty string is falsy
|
|
370
|
+
* - false (boolean) is falsy
|
|
371
|
+
* - Everything else is truthy
|
|
372
|
+
*/
|
|
373
|
+
export function isTruthy(value) {
|
|
374
|
+
return (typeof value === 'string') ? value.length > 0 : !!value;
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Compares two rows for SQL DISTINCT semantics.
|
|
378
|
+
* Returns -1, 0, or 1 for BTree ordering.
|
|
379
|
+
*/
|
|
380
|
+
export function compareRows(a, b) {
|
|
381
|
+
// Let's assume correct rows
|
|
382
|
+
// if (a.length !== b.length) {
|
|
383
|
+
// return a.length - b.length;
|
|
384
|
+
// }
|
|
385
|
+
// Compare each value using SQL semantics
|
|
386
|
+
for (let i = 0; i < a.length; i++) {
|
|
387
|
+
const comparison = compareSqlValues(a[i], b[i]);
|
|
388
|
+
if (comparison !== 0) {
|
|
389
|
+
return comparison;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
return 0;
|
|
393
|
+
}
|
|
394
|
+
// TODO: The main remaining task for comparison is implementing SQLite's
|
|
395
|
+
// type affinity rules (which affect how values are treated BEFORE comparison)
|
|
396
|
+
// and handling different TEXT collations.
|
|
397
|
+
//# sourceMappingURL=comparison.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparison.js","sourceRoot":"","sources":["../../../src/util/comparison.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-platform environment variable utilities
|
|
3
|
+
* Works in Node.js, browsers, and React Native
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Cross-platform environment variable accessor
|
|
7
|
+
* Works in Node.js, browsers, and React Native
|
|
8
|
+
*
|
|
9
|
+
* @param key The environment variable name
|
|
10
|
+
* @returns The environment variable value or undefined if not found
|
|
11
|
+
*/
|
|
12
|
+
export declare function getEnvVar(key: string): string | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* Check if debug logging is enabled for a specific namespace
|
|
15
|
+
* Uses the debug library's own enabled property via createLogger
|
|
16
|
+
*
|
|
17
|
+
* @param namespace The debug namespace to check (without the 'quereus:' prefix)
|
|
18
|
+
* @returns true if debug logging is enabled for the namespace
|
|
19
|
+
*/
|
|
20
|
+
export declare function isDebugEnabled(namespace: string): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Check if a feature flag is enabled
|
|
23
|
+
*
|
|
24
|
+
* @param flagName The feature flag name
|
|
25
|
+
* @returns true if the flag is set to 'true'
|
|
26
|
+
*/
|
|
27
|
+
export declare function isFeatureEnabled(flagName: string): boolean;
|
|
28
|
+
//# sourceMappingURL=environment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/util/environment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAezD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAGzD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1D"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-platform environment variable utilities
|
|
3
|
+
* Works in Node.js, browsers, and React Native
|
|
4
|
+
*/
|
|
5
|
+
import { createLogger } from '../common/logger.js';
|
|
6
|
+
/**
|
|
7
|
+
* Cross-platform environment variable accessor
|
|
8
|
+
* Works in Node.js, browsers, and React Native
|
|
9
|
+
*
|
|
10
|
+
* @param key The environment variable name
|
|
11
|
+
* @returns The environment variable value or undefined if not found
|
|
12
|
+
*/
|
|
13
|
+
export function getEnvVar(key) {
|
|
14
|
+
// Node.js environment
|
|
15
|
+
if (typeof process !== 'undefined' && process.env) {
|
|
16
|
+
return process.env[key];
|
|
17
|
+
}
|
|
18
|
+
// Browser environment - check if globalThis has the variable
|
|
19
|
+
// This allows setting environment variables like: globalThis.DEBUG = "quereus:*"
|
|
20
|
+
if (typeof globalThis !== 'undefined' && globalThis[key]) {
|
|
21
|
+
return globalThis[key];
|
|
22
|
+
}
|
|
23
|
+
// React Native or other environments might set environment variables differently
|
|
24
|
+
// For now, return undefined for unsupported environments
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Check if debug logging is enabled for a specific namespace
|
|
29
|
+
* Uses the debug library's own enabled property via createLogger
|
|
30
|
+
*
|
|
31
|
+
* @param namespace The debug namespace to check (without the 'quereus:' prefix)
|
|
32
|
+
* @returns true if debug logging is enabled for the namespace
|
|
33
|
+
*/
|
|
34
|
+
export function isDebugEnabled(namespace) {
|
|
35
|
+
const logger = createLogger(namespace);
|
|
36
|
+
return logger.enabled;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Check if a feature flag is enabled
|
|
40
|
+
*
|
|
41
|
+
* @param flagName The feature flag name
|
|
42
|
+
* @returns true if the flag is set to 'true'
|
|
43
|
+
*/
|
|
44
|
+
export function isFeatureEnabled(flagName) {
|
|
45
|
+
return getEnvVar(flagName) === 'true';
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=environment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/util/environment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACpC,sBAAsB;IACtB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACnD,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,6DAA6D;IAC7D,iFAAiF;IACjF,IAAI,OAAO,UAAU,KAAK,WAAW,IAAK,UAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;QACnE,OAAQ,UAAkB,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,iFAAiF;IACjF,yDAAyD;IACzD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC/C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC,OAAO,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAChD,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lightweight implementation of a mutex lock queue for managing concurrent access.
|
|
3
|
+
*/
|
|
4
|
+
export declare class Latches {
|
|
5
|
+
private static lockQueues;
|
|
6
|
+
/**
|
|
7
|
+
* Acquires a lock for the given key. Waits if another operation holds the lock.
|
|
8
|
+
* Returns a release function that must be called to release the lock.
|
|
9
|
+
*
|
|
10
|
+
* @param key A unique string identifier for the resource to lock.
|
|
11
|
+
* Should use `ClassName.methodName:${id}` format to avoid conflicts.
|
|
12
|
+
* @returns A function that must be called to release the lock
|
|
13
|
+
*/
|
|
14
|
+
static acquire(key: string): Promise<() => void>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=latches.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"latches.d.ts","sourceRoot":"","sources":["../../../src/util/latches.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,OAAO;IAEnB,OAAO,CAAC,MAAM,CAAC,UAAU,CAAoC;IAE7D;;;;;;;OAOG;WACU,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;CA+BtD"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lightweight implementation of a mutex lock queue for managing concurrent access.
|
|
3
|
+
*/
|
|
4
|
+
export class Latches {
|
|
5
|
+
// Stores the promise representing the completion of the last queued operation for a key.
|
|
6
|
+
static lockQueues = new Map();
|
|
7
|
+
/**
|
|
8
|
+
* Acquires a lock for the given key. Waits if another operation holds the lock.
|
|
9
|
+
* Returns a release function that must be called to release the lock.
|
|
10
|
+
*
|
|
11
|
+
* @param key A unique string identifier for the resource to lock.
|
|
12
|
+
* Should use `ClassName.methodName:${id}` format to avoid conflicts.
|
|
13
|
+
* @returns A function that must be called to release the lock
|
|
14
|
+
*/
|
|
15
|
+
static async acquire(key) {
|
|
16
|
+
// Get the promise the current operation needs to wait for (if any)
|
|
17
|
+
const currentTail = this.lockQueues.get(key) ?? Promise.resolve();
|
|
18
|
+
let resolveNewTail;
|
|
19
|
+
// Create the promise that the *next* operation will wait for
|
|
20
|
+
const newTail = new Promise(resolve => {
|
|
21
|
+
resolveNewTail = resolve;
|
|
22
|
+
});
|
|
23
|
+
// Immediately set the new promise as the tail for this key
|
|
24
|
+
this.lockQueues.set(key, newTail);
|
|
25
|
+
// Wait for the previous operation (if any) to complete
|
|
26
|
+
await currentTail;
|
|
27
|
+
// Return the function to release *this* lock
|
|
28
|
+
const release = () => {
|
|
29
|
+
// Signal that this operation is complete
|
|
30
|
+
resolveNewTail();
|
|
31
|
+
// If this promise is still the current tail in the map,
|
|
32
|
+
// it means no other operation queued up behind this one while it was running.
|
|
33
|
+
// We can safely remove the entry from the map to prevent unbounded growth.
|
|
34
|
+
if (this.lockQueues.get(key) === newTail) {
|
|
35
|
+
this.lockQueues.delete(key);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
return release;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=latches.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"latches.js","sourceRoot":"","sources":["../../../src/util/latches.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,OAAO;IACnB,yFAAyF;IACjF,MAAM,CAAC,UAAU,GAAG,IAAI,GAAG,EAAyB,CAAC;IAE7D;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAW;QAC/B,mEAAmE;QACnE,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAElE,IAAI,cAA2B,CAAC;QAChC,6DAA6D;QAC7D,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAC3C,cAAc,GAAG,OAAO,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,2DAA2D;QAC3D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAElC,uDAAuD;QACvD,MAAM,WAAW,CAAC;QAElB,6CAA6C;QAC7C,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,yCAAyC;YACzC,cAAc,EAAE,CAAC;YAEjB,wDAAwD;YACxD,8EAA8E;YAC9E,2EAA2E;YAC3E,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC;gBAC1C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC;QACF,CAAC,CAAC;QAEF,OAAO,OAAO,CAAC;IAChB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple LIKE pattern matching implementation.
|
|
3
|
+
* Supports SQL LIKE patterns:
|
|
4
|
+
* - % matches any sequence of characters (including empty sequence)
|
|
5
|
+
* - _ matches any single character
|
|
6
|
+
*
|
|
7
|
+
* @param pattern The LIKE pattern
|
|
8
|
+
* @param text The text to match against
|
|
9
|
+
* @returns true if the text matches the pattern, false otherwise
|
|
10
|
+
*/
|
|
11
|
+
export declare function simpleLike(pattern: string, text: string): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Simple GLOB pattern matching implementation.
|
|
14
|
+
* Supports SQL GLOB patterns:
|
|
15
|
+
* - * matches any sequence of characters (including empty sequence)
|
|
16
|
+
* - ? matches any single character
|
|
17
|
+
*
|
|
18
|
+
* @param pattern The GLOB pattern
|
|
19
|
+
* @param text The text to match against
|
|
20
|
+
* @returns true if the text matches the pattern, false otherwise
|
|
21
|
+
*/
|
|
22
|
+
export declare function simpleGlob(pattern: string, text: string): boolean;
|
|
23
|
+
//# sourceMappingURL=patterns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../../src/util/patterns.ts"],"names":[],"mappings":"AAKA;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAajE;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAejE"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { createLogger } from '../common/logger.js';
|
|
2
|
+
const log = createLogger('util:patterns');
|
|
3
|
+
const errorLog = log.extend('error');
|
|
4
|
+
/**
|
|
5
|
+
* Simple LIKE pattern matching implementation.
|
|
6
|
+
* Supports SQL LIKE patterns:
|
|
7
|
+
* - % matches any sequence of characters (including empty sequence)
|
|
8
|
+
* - _ matches any single character
|
|
9
|
+
*
|
|
10
|
+
* @param pattern The LIKE pattern
|
|
11
|
+
* @param text The text to match against
|
|
12
|
+
* @returns true if the text matches the pattern, false otherwise
|
|
13
|
+
*/
|
|
14
|
+
export function simpleLike(pattern, text) {
|
|
15
|
+
// Escape regex special characters except % and _
|
|
16
|
+
const escapedPattern = pattern.replace(/[.*+^${}()|[\]\\]/g, '\\$&');
|
|
17
|
+
// Convert SQL LIKE wildcards to regex equivalents
|
|
18
|
+
const regexPattern = escapedPattern.replace(/%/g, '.*').replace(/_/g, '.');
|
|
19
|
+
try {
|
|
20
|
+
const regex = new RegExp(`^${regexPattern}$`);
|
|
21
|
+
return regex.test(text);
|
|
22
|
+
}
|
|
23
|
+
catch (e) {
|
|
24
|
+
errorLog('Invalid LIKE pattern converted to regex: ^%s$, %O', regexPattern, e);
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Simple GLOB pattern matching implementation.
|
|
30
|
+
* Supports SQL GLOB patterns:
|
|
31
|
+
* - * matches any sequence of characters (including empty sequence)
|
|
32
|
+
* - ? matches any single character
|
|
33
|
+
*
|
|
34
|
+
* @param pattern The GLOB pattern
|
|
35
|
+
* @param text The text to match against
|
|
36
|
+
* @returns true if the text matches the pattern, false otherwise
|
|
37
|
+
*/
|
|
38
|
+
export function simpleGlob(pattern, text) {
|
|
39
|
+
// Escape regex special characters except * and ?
|
|
40
|
+
const escapedPattern = pattern.replace(/[.*+^${}()|[\]\\]/g, '\\$&');
|
|
41
|
+
// Convert SQL GLOB wildcards to regex equivalents
|
|
42
|
+
const regexPattern = escapedPattern
|
|
43
|
+
.replace(/\\\*/g, '.*')
|
|
44
|
+
.replace(/\\\?/g, '.');
|
|
45
|
+
try {
|
|
46
|
+
const regex = new RegExp(`^${regexPattern}$`);
|
|
47
|
+
return regex.test(text);
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
errorLog('Invalid GLOB pattern converted to regex: ^%s$, %O', regexPattern, e);
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=patterns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../../src/util/patterns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,GAAG,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;AAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAErC;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,IAAY;IACvD,iDAAiD;IACjD,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACrE,kDAAkD;IAClD,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAE3E,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC;QAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,QAAQ,CAAC,mDAAmD,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;QAC/E,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,IAAY;IACvD,iDAAiD;IACjD,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACrE,kDAAkD;IAClD,MAAM,YAAY,GAAG,cAAc;SACjC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;SACtB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAExB,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC;QAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,QAAQ,CAAC,mDAAmD,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;QAC/E,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC"}
|