kysely 0.21.6 → 0.23.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/CONTRIBUTING.md +70 -0
- package/README.md +27 -4
- package/dist/cjs/dialect/database-introspector.d.ts +4 -0
- package/dist/cjs/dialect/mysql/mysql-driver.js +6 -3
- package/dist/cjs/dialect/postgres/postgres-adapter.js +1 -1
- package/dist/cjs/dialect/postgres/postgres-driver.js +7 -2
- package/dist/cjs/dialect/postgres/postgres-introspector.js +8 -0
- package/dist/cjs/dialect/sqlite/sqlite-driver.js +4 -3
- package/dist/cjs/dialect/sqlite/sqlite-introspector.js +1 -0
- package/dist/cjs/driver/database-connection.d.ts +6 -2
- package/dist/cjs/dynamic/dynamic-reference-builder.d.ts +2 -3
- package/dist/cjs/dynamic/dynamic-reference-builder.js +1 -1
- package/dist/cjs/expression/expression.d.ts +100 -0
- package/dist/cjs/expression/expression.js +16 -0
- package/dist/cjs/index.d.ts +17 -8
- package/dist/cjs/index.js +15 -4
- package/dist/cjs/kysely.d.ts +3 -3
- package/dist/cjs/kysely.js +3 -3
- package/dist/cjs/migration/file-migration-provider.js +11 -4
- package/dist/cjs/operation-node/aggregate-function-node.d.ts +25 -0
- package/dist/cjs/operation-node/aggregate-function-node.js +48 -0
- package/dist/cjs/operation-node/alias-node.d.ts +3 -10
- package/dist/cjs/operation-node/alter-column-node.d.ts +1 -2
- package/dist/cjs/operation-node/alter-table-node.d.ts +5 -7
- package/dist/cjs/operation-node/alter-table-node.js +9 -1
- package/dist/cjs/operation-node/and-node.d.ts +3 -4
- package/dist/cjs/operation-node/binary-operation-node.d.ts +14 -0
- package/dist/cjs/operation-node/binary-operation-node.js +20 -0
- package/dist/cjs/operation-node/check-constraint-node.d.ts +2 -3
- package/dist/cjs/operation-node/column-definition-node.d.ts +6 -5
- package/dist/cjs/operation-node/column-definition-node.js +16 -0
- package/dist/cjs/operation-node/column-update-node.d.ts +2 -3
- package/dist/cjs/operation-node/common-table-expression-node.d.ts +2 -4
- package/dist/cjs/operation-node/create-index-node.d.ts +1 -3
- package/dist/cjs/operation-node/create-table-node.d.ts +4 -5
- package/dist/cjs/operation-node/create-type-node.d.ts +1 -1
- package/dist/cjs/operation-node/create-type-node.js +1 -2
- package/dist/cjs/operation-node/default-value-node.d.ts +2 -4
- package/dist/cjs/operation-node/delete-query-node.d.ts +1 -2
- package/dist/cjs/operation-node/drop-type-node.d.ts +1 -1
- package/dist/cjs/operation-node/drop-type-node.js +1 -2
- package/dist/cjs/operation-node/explain-node.d.ts +2 -4
- package/dist/cjs/operation-node/explain-node.js +1 -1
- package/dist/cjs/operation-node/from-node.d.ts +3 -4
- package/dist/cjs/operation-node/generated-node.d.ts +2 -3
- package/dist/cjs/operation-node/group-by-item-node.d.ts +2 -3
- package/dist/cjs/operation-node/group-by-node.d.ts +1 -1
- package/dist/cjs/operation-node/group-by-node.js +3 -3
- package/dist/cjs/operation-node/having-node.d.ts +3 -4
- package/dist/cjs/operation-node/having-node.js +4 -4
- package/dist/cjs/operation-node/insert-query-node.d.ts +1 -4
- package/dist/cjs/operation-node/join-node.d.ts +5 -9
- package/dist/cjs/operation-node/join-node.js +6 -6
- package/dist/cjs/operation-node/on-conflict-node.d.ts +5 -7
- package/dist/cjs/operation-node/on-conflict-node.js +12 -12
- package/dist/cjs/operation-node/on-node.d.ts +3 -4
- package/dist/cjs/operation-node/on-node.js +4 -4
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +14 -4
- package/dist/cjs/operation-node/operation-node-transformer.js +60 -20
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +14 -4
- package/dist/cjs/operation-node/operation-node-visitor.js +7 -2
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/operator-node.d.ts +5 -3
- package/dist/cjs/operation-node/operator-node.js +3 -5
- package/dist/cjs/operation-node/or-node.d.ts +3 -4
- package/dist/cjs/operation-node/order-by-item-node.d.ts +3 -5
- package/dist/cjs/operation-node/over-node.d.ts +19 -0
- package/dist/cjs/operation-node/over-node.js +35 -0
- package/dist/cjs/operation-node/parens-node.d.ts +2 -3
- package/dist/cjs/operation-node/partition-by-item-node.d.ts +13 -0
- package/dist/cjs/operation-node/{filter-node.js → partition-by-item-node.js} +6 -8
- package/dist/cjs/operation-node/partition-by-node.d.ts +14 -0
- package/dist/cjs/operation-node/partition-by-node.js +24 -0
- package/dist/cjs/operation-node/query-node.d.ts +2 -3
- package/dist/cjs/operation-node/query-node.js +6 -6
- package/dist/cjs/operation-node/select-modifier-node.d.ts +2 -3
- package/dist/cjs/operation-node/select-modifier-node.js +1 -1
- package/dist/cjs/operation-node/select-query-node.d.ts +8 -9
- package/dist/cjs/operation-node/select-query-node.js +14 -14
- package/dist/cjs/operation-node/selection-node.d.ts +2 -3
- package/dist/cjs/operation-node/set-operation-node.d.ts +15 -0
- package/dist/cjs/operation-node/{union-node.js → set-operation-node.js} +7 -6
- package/dist/cjs/operation-node/simple-reference-expression-node.d.ts +3 -0
- package/dist/cjs/operation-node/{operation-node-utils.js → simple-reference-expression-node.js} +0 -0
- package/dist/cjs/operation-node/unary-operation-node.d.ts +13 -0
- package/dist/cjs/operation-node/unary-operation-node.js +19 -0
- package/dist/cjs/operation-node/update-query-node.d.ts +3 -4
- package/dist/cjs/operation-node/value-list-node.d.ts +2 -8
- package/dist/cjs/operation-node/where-node.d.ts +3 -4
- package/dist/cjs/operation-node/where-node.js +4 -4
- package/dist/cjs/parser/binary-operation-parser.d.ts +20 -0
- package/dist/cjs/parser/binary-operation-parser.js +99 -0
- package/dist/cjs/parser/coalesce-parser.d.ts +4 -0
- package/dist/cjs/parser/coalesce-parser.js +11 -0
- package/dist/cjs/parser/data-type-parser.d.ts +5 -5
- package/dist/cjs/parser/default-value-parser.d.ts +4 -5
- package/dist/cjs/parser/default-value-parser.js +2 -2
- package/dist/cjs/parser/expression-parser.d.ts +10 -0
- package/dist/cjs/parser/{complex-expression-parser.js → expression-parser.js} +9 -8
- package/dist/cjs/parser/group-by-parser.d.ts +1 -1
- package/dist/cjs/parser/group-by-parser.js +2 -2
- package/dist/cjs/parser/identifier-parser.d.ts +2 -0
- package/dist/cjs/parser/identifier-parser.js +23 -0
- package/dist/cjs/parser/insert-values-parser.d.ts +1 -1
- package/dist/cjs/parser/insert-values-parser.js +2 -2
- package/dist/cjs/parser/join-parser.js +2 -2
- package/dist/cjs/parser/order-by-parser.d.ts +2 -2
- package/dist/cjs/parser/parse-utils.d.ts +2 -0
- package/dist/cjs/parser/parse-utils.js +9 -1
- package/dist/cjs/parser/partition-by-parser.d.ts +6 -0
- package/dist/cjs/parser/partition-by-parser.js +9 -0
- package/dist/cjs/parser/reference-parser.d.ts +14 -13
- package/dist/cjs/parser/reference-parser.js +12 -9
- package/dist/cjs/parser/select-parser.d.ts +6 -6
- package/dist/cjs/parser/select-parser.js +2 -2
- package/dist/cjs/parser/set-operation-parser.d.ts +3 -0
- package/dist/cjs/parser/set-operation-parser.js +8 -0
- package/dist/cjs/parser/table-parser.d.ts +11 -12
- package/dist/cjs/parser/table-parser.js +2 -2
- package/dist/cjs/parser/unary-operation-parser.d.ts +5 -0
- package/dist/cjs/parser/unary-operation-parser.js +17 -0
- package/dist/cjs/parser/update-set-parser.d.ts +1 -1
- package/dist/cjs/parser/value-parser.d.ts +5 -8
- package/dist/cjs/parser/value-parser.js +4 -4
- package/dist/cjs/parser/with-parser.d.ts +3 -4
- package/dist/cjs/plugin/camel-case/camel-case-plugin.js +1 -1
- package/dist/cjs/query-builder/aggregate-function-builder.d.ts +348 -0
- package/dist/cjs/query-builder/aggregate-function-builder.js +298 -0
- package/dist/cjs/query-builder/delete-query-builder.d.ts +20 -20
- package/dist/cjs/query-builder/delete-query-builder.js +19 -16
- package/dist/cjs/query-builder/expression-builder.d.ts +3 -3
- package/dist/cjs/query-builder/expression-builder.js +3 -3
- package/dist/cjs/query-builder/function-module.d.ts +241 -0
- package/dist/cjs/query-builder/function-module.js +214 -0
- package/dist/cjs/query-builder/having-interface.d.ts +9 -8
- package/dist/cjs/query-builder/insert-query-builder.d.ts +7 -6
- package/dist/cjs/query-builder/insert-query-builder.js +11 -9
- package/dist/cjs/query-builder/insert-result.d.ts +8 -1
- package/dist/cjs/query-builder/insert-result.js +12 -1
- package/dist/cjs/query-builder/join-builder.d.ts +9 -8
- package/dist/cjs/query-builder/join-builder.js +10 -9
- package/dist/cjs/query-builder/on-conflict-builder.d.ts +25 -24
- package/dist/cjs/query-builder/on-conflict-builder.js +18 -17
- package/dist/cjs/query-builder/over-builder.d.ts +59 -0
- package/dist/cjs/query-builder/over-builder.js +50 -0
- package/dist/cjs/query-builder/select-query-builder.d.ts +138 -47
- package/dist/cjs/query-builder/select-query-builder.js +122 -40
- package/dist/cjs/query-builder/update-query-builder.d.ts +20 -20
- package/dist/cjs/query-builder/update-query-builder.js +19 -16
- package/dist/cjs/query-builder/where-interface.d.ts +12 -11
- package/dist/cjs/query-compiler/compiled-query.d.ts +1 -1
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +15 -5
- package/dist/cjs/query-compiler/default-query-compiler.js +78 -47
- package/dist/cjs/query-executor/query-executor-base.js +16 -1
- package/dist/cjs/raw-builder/raw-builder.d.ts +49 -13
- package/dist/cjs/raw-builder/raw-builder.js +24 -14
- package/dist/cjs/raw-builder/sql.d.ts +15 -7
- package/dist/cjs/raw-builder/sql.js +6 -0
- package/dist/cjs/schema/alter-column-builder.d.ts +28 -0
- package/dist/cjs/schema/alter-column-builder.js +55 -0
- package/dist/cjs/schema/alter-table-builder.d.ts +39 -341
- package/dist/cjs/schema/alter-table-builder.js +65 -280
- package/dist/cjs/schema/column-definition-builder.d.ts +43 -155
- package/dist/cjs/schema/column-definition-builder.js +189 -0
- package/dist/cjs/schema/create-index-builder.d.ts +2 -2
- package/dist/cjs/schema/create-table-builder.d.ts +38 -5
- package/dist/cjs/schema/create-table-builder.js +36 -1
- package/dist/cjs/schema/create-view-builder.d.ts +3 -2
- package/dist/cjs/schema/schema.d.ts +2 -2
- package/dist/cjs/schema/schema.js +6 -5
- package/dist/cjs/util/compilable.d.ts +2 -2
- package/dist/cjs/util/explainable.d.ts +2 -2
- package/dist/cjs/util/infer-result.d.ts +46 -0
- package/dist/cjs/util/infer-result.js +2 -0
- package/dist/cjs/util/log-once.d.ts +5 -0
- package/dist/cjs/util/log-once.js +16 -0
- package/dist/cjs/util/object-utils.d.ts +1 -0
- package/dist/cjs/util/object-utils.js +5 -1
- package/dist/cjs/util/type-utils.d.ts +3 -13
- package/dist/esm/dialect/database-introspector.d.ts +4 -0
- package/dist/esm/dialect/mysql/mysql-driver.js +6 -3
- package/dist/esm/dialect/postgres/postgres-adapter.js +1 -1
- package/dist/esm/dialect/postgres/postgres-driver.js +7 -2
- package/dist/esm/dialect/postgres/postgres-introspector.js +8 -0
- package/dist/esm/dialect/sqlite/sqlite-driver.js +4 -3
- package/dist/esm/dialect/sqlite/sqlite-introspector.js +1 -0
- package/dist/esm/driver/database-connection.d.ts +6 -2
- package/dist/esm/dynamic/dynamic-reference-builder.d.ts +2 -3
- package/dist/esm/dynamic/dynamic-reference-builder.js +2 -2
- package/dist/esm/expression/expression.d.ts +100 -0
- package/dist/esm/expression/expression.js +12 -0
- package/dist/esm/index.d.ts +17 -8
- package/dist/esm/index.js +13 -4
- package/dist/esm/kysely.d.ts +3 -3
- package/dist/esm/kysely.js +3 -3
- package/dist/esm/migration/file-migration-provider.js +11 -4
- package/dist/esm/operation-node/aggregate-function-node.d.ts +25 -0
- package/dist/esm/operation-node/aggregate-function-node.js +46 -0
- package/dist/esm/operation-node/alias-node.d.ts +3 -10
- package/dist/esm/operation-node/alter-column-node.d.ts +1 -2
- package/dist/esm/operation-node/alter-table-node.d.ts +5 -7
- package/dist/esm/operation-node/alter-table-node.js +9 -1
- package/dist/esm/operation-node/and-node.d.ts +3 -4
- package/dist/esm/operation-node/binary-operation-node.d.ts +14 -0
- package/dist/esm/operation-node/binary-operation-node.js +18 -0
- package/dist/esm/operation-node/check-constraint-node.d.ts +2 -3
- package/dist/esm/operation-node/column-definition-node.d.ts +6 -5
- package/dist/esm/operation-node/column-definition-node.js +16 -0
- package/dist/esm/operation-node/column-update-node.d.ts +2 -3
- package/dist/esm/operation-node/common-table-expression-node.d.ts +2 -4
- package/dist/esm/operation-node/create-index-node.d.ts +1 -3
- package/dist/esm/operation-node/create-table-node.d.ts +4 -5
- package/dist/esm/operation-node/create-type-node.d.ts +1 -1
- package/dist/esm/operation-node/create-type-node.js +1 -2
- package/dist/esm/operation-node/default-value-node.d.ts +2 -4
- package/dist/esm/operation-node/delete-query-node.d.ts +1 -2
- package/dist/esm/operation-node/drop-type-node.d.ts +1 -1
- package/dist/esm/operation-node/drop-type-node.js +1 -2
- package/dist/esm/operation-node/explain-node.d.ts +2 -4
- package/dist/esm/operation-node/explain-node.js +1 -1
- package/dist/esm/operation-node/from-node.d.ts +3 -4
- package/dist/esm/operation-node/generated-node.d.ts +2 -3
- package/dist/esm/operation-node/group-by-item-node.d.ts +2 -3
- package/dist/esm/operation-node/group-by-node.d.ts +1 -1
- package/dist/esm/operation-node/group-by-node.js +3 -3
- package/dist/esm/operation-node/having-node.d.ts +3 -4
- package/dist/esm/operation-node/having-node.js +4 -4
- package/dist/esm/operation-node/insert-query-node.d.ts +1 -4
- package/dist/esm/operation-node/join-node.d.ts +5 -9
- package/dist/esm/operation-node/join-node.js +6 -6
- package/dist/esm/operation-node/on-conflict-node.d.ts +5 -7
- package/dist/esm/operation-node/on-conflict-node.js +12 -12
- package/dist/esm/operation-node/on-node.d.ts +3 -4
- package/dist/esm/operation-node/on-node.js +4 -4
- package/dist/esm/operation-node/operation-node-transformer.d.ts +14 -4
- package/dist/esm/operation-node/operation-node-transformer.js +60 -20
- package/dist/esm/operation-node/operation-node-visitor.d.ts +14 -4
- package/dist/esm/operation-node/operation-node-visitor.js +7 -2
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/operator-node.d.ts +5 -3
- package/dist/esm/operation-node/operator-node.js +2 -4
- package/dist/esm/operation-node/or-node.d.ts +3 -4
- package/dist/esm/operation-node/order-by-item-node.d.ts +3 -5
- package/dist/esm/operation-node/over-node.d.ts +19 -0
- package/dist/esm/operation-node/over-node.js +33 -0
- package/dist/esm/operation-node/parens-node.d.ts +2 -3
- package/dist/esm/operation-node/partition-by-item-node.d.ts +13 -0
- package/dist/esm/operation-node/partition-by-item-node.js +16 -0
- package/dist/esm/operation-node/partition-by-node.d.ts +14 -0
- package/dist/esm/operation-node/partition-by-node.js +22 -0
- package/dist/esm/operation-node/query-node.d.ts +2 -3
- package/dist/esm/operation-node/query-node.js +6 -6
- package/dist/esm/operation-node/select-modifier-node.d.ts +2 -3
- package/dist/esm/operation-node/select-modifier-node.js +1 -1
- package/dist/esm/operation-node/select-query-node.d.ts +8 -9
- package/dist/esm/operation-node/select-query-node.js +14 -14
- package/dist/esm/operation-node/selection-node.d.ts +2 -3
- package/dist/esm/operation-node/set-operation-node.d.ts +15 -0
- package/dist/esm/operation-node/set-operation-node.js +18 -0
- package/dist/esm/operation-node/simple-reference-expression-node.d.ts +3 -0
- package/dist/esm/operation-node/simple-reference-expression-node.js +2 -0
- package/dist/esm/operation-node/unary-operation-node.d.ts +13 -0
- package/dist/esm/operation-node/unary-operation-node.js +17 -0
- package/dist/esm/operation-node/update-query-node.d.ts +3 -4
- package/dist/esm/operation-node/value-list-node.d.ts +2 -8
- package/dist/esm/operation-node/where-node.d.ts +3 -4
- package/dist/esm/operation-node/where-node.js +4 -4
- package/dist/esm/parser/binary-operation-parser.d.ts +20 -0
- package/dist/esm/parser/binary-operation-parser.js +92 -0
- package/dist/esm/parser/coalesce-parser.d.ts +4 -0
- package/dist/esm/parser/coalesce-parser.js +8 -0
- package/dist/esm/parser/data-type-parser.d.ts +5 -5
- package/dist/esm/parser/default-value-parser.d.ts +4 -5
- package/dist/esm/parser/default-value-parser.js +2 -2
- package/dist/esm/parser/expression-parser.d.ts +10 -0
- package/dist/esm/parser/{complex-expression-parser.js → expression-parser.js} +6 -5
- package/dist/esm/parser/group-by-parser.d.ts +1 -1
- package/dist/esm/parser/group-by-parser.js +2 -2
- package/dist/esm/parser/identifier-parser.d.ts +2 -0
- package/dist/esm/parser/identifier-parser.js +20 -0
- package/dist/esm/parser/insert-values-parser.d.ts +1 -1
- package/dist/esm/parser/insert-values-parser.js +2 -2
- package/dist/esm/parser/join-parser.js +2 -2
- package/dist/esm/parser/order-by-parser.d.ts +2 -2
- package/dist/esm/parser/parse-utils.d.ts +2 -0
- package/dist/esm/parser/parse-utils.js +7 -0
- package/dist/esm/parser/partition-by-parser.d.ts +6 -0
- package/dist/esm/parser/partition-by-parser.js +6 -0
- package/dist/esm/parser/reference-parser.d.ts +14 -13
- package/dist/esm/parser/reference-parser.js +10 -8
- package/dist/esm/parser/select-parser.d.ts +6 -6
- package/dist/esm/parser/select-parser.js +2 -2
- package/dist/esm/parser/set-operation-parser.d.ts +3 -0
- package/dist/esm/parser/set-operation-parser.js +5 -0
- package/dist/esm/parser/table-parser.d.ts +11 -12
- package/dist/esm/parser/table-parser.js +2 -2
- package/dist/esm/parser/unary-operation-parser.d.ts +5 -0
- package/dist/esm/parser/unary-operation-parser.js +13 -0
- package/dist/esm/parser/update-set-parser.d.ts +1 -1
- package/dist/esm/parser/value-parser.d.ts +5 -8
- package/dist/esm/parser/value-parser.js +4 -4
- package/dist/esm/parser/with-parser.d.ts +3 -4
- package/dist/esm/plugin/camel-case/camel-case-plugin.js +2 -2
- package/dist/esm/query-builder/aggregate-function-builder.d.ts +348 -0
- package/dist/esm/query-builder/aggregate-function-builder.js +294 -0
- package/dist/esm/query-builder/delete-query-builder.d.ts +20 -20
- package/dist/esm/query-builder/delete-query-builder.js +19 -16
- package/dist/esm/query-builder/expression-builder.d.ts +3 -3
- package/dist/esm/query-builder/expression-builder.js +3 -3
- package/dist/esm/query-builder/function-module.d.ts +241 -0
- package/dist/esm/query-builder/function-module.js +211 -0
- package/dist/esm/query-builder/having-interface.d.ts +9 -8
- package/dist/esm/query-builder/insert-query-builder.d.ts +7 -6
- package/dist/esm/query-builder/insert-query-builder.js +11 -9
- package/dist/esm/query-builder/insert-result.d.ts +8 -1
- package/dist/esm/query-builder/insert-result.js +12 -1
- package/dist/esm/query-builder/join-builder.d.ts +9 -8
- package/dist/esm/query-builder/join-builder.js +10 -9
- package/dist/esm/query-builder/on-conflict-builder.d.ts +25 -24
- package/dist/esm/query-builder/on-conflict-builder.js +18 -17
- package/dist/esm/query-builder/over-builder.d.ts +59 -0
- package/dist/esm/query-builder/over-builder.js +47 -0
- package/dist/esm/query-builder/select-query-builder.d.ts +138 -47
- package/dist/esm/query-builder/select-query-builder.js +120 -38
- package/dist/esm/query-builder/update-query-builder.d.ts +20 -20
- package/dist/esm/query-builder/update-query-builder.js +19 -16
- package/dist/esm/query-builder/where-interface.d.ts +12 -11
- package/dist/esm/query-compiler/compiled-query.d.ts +1 -1
- package/dist/esm/query-compiler/default-query-compiler.d.ts +15 -5
- package/dist/esm/query-compiler/default-query-compiler.js +79 -48
- package/dist/esm/query-executor/query-executor-base.js +16 -1
- package/dist/esm/raw-builder/raw-builder.d.ts +49 -13
- package/dist/esm/raw-builder/raw-builder.js +23 -14
- package/dist/esm/raw-builder/sql.d.ts +15 -7
- package/dist/esm/raw-builder/sql.js +6 -0
- package/dist/esm/schema/alter-column-builder.d.ts +28 -0
- package/dist/esm/schema/alter-column-builder.js +51 -0
- package/dist/esm/schema/alter-table-builder.d.ts +39 -341
- package/dist/esm/schema/alter-table-builder.js +61 -274
- package/dist/esm/schema/column-definition-builder.d.ts +43 -155
- package/dist/esm/schema/column-definition-builder.js +189 -0
- package/dist/esm/schema/create-index-builder.d.ts +2 -2
- package/dist/esm/schema/create-table-builder.d.ts +38 -5
- package/dist/esm/schema/create-table-builder.js +36 -1
- package/dist/esm/schema/create-view-builder.d.ts +3 -2
- package/dist/esm/schema/schema.d.ts +2 -2
- package/dist/esm/schema/schema.js +6 -5
- package/dist/esm/util/compilable.d.ts +2 -2
- package/dist/esm/util/explainable.d.ts +2 -2
- package/dist/esm/util/infer-result.d.ts +46 -0
- package/dist/esm/util/infer-result.js +2 -0
- package/dist/esm/util/log-once.d.ts +5 -0
- package/dist/esm/util/log-once.js +13 -0
- package/dist/esm/util/object-utils.d.ts +1 -0
- package/dist/esm/util/object-utils.js +3 -0
- package/dist/esm/util/type-utils.d.ts +3 -13
- package/package.json +4 -1
- package/dist/cjs/operation-node/filter-node.d.ts +0 -18
- package/dist/cjs/operation-node/operation-node-utils.d.ts +0 -17
- package/dist/cjs/operation-node/union-node.d.ts +0 -16
- package/dist/cjs/parser/complex-expression-parser.d.ts +0 -10
- package/dist/cjs/parser/filter-parser.d.ts +0 -24
- package/dist/cjs/parser/filter-parser.js +0 -109
- package/dist/cjs/parser/union-parser.d.ts +0 -5
- package/dist/cjs/parser/union-parser.js +0 -8
- package/dist/cjs/query-builder/function-builder.d.ts +0 -133
- package/dist/cjs/query-builder/function-builder.js +0 -160
- package/dist/esm/operation-node/filter-node.d.ts +0 -18
- package/dist/esm/operation-node/filter-node.js +0 -18
- package/dist/esm/operation-node/operation-node-utils.d.ts +0 -17
- package/dist/esm/operation-node/operation-node-utils.js +0 -2
- package/dist/esm/operation-node/union-node.d.ts +0 -16
- package/dist/esm/operation-node/union-node.js +0 -17
- package/dist/esm/parser/complex-expression-parser.d.ts +0 -10
- package/dist/esm/parser/filter-parser.d.ts +0 -24
- package/dist/esm/parser/filter-parser.js +0 -100
- package/dist/esm/parser/union-parser.d.ts +0 -5
- package/dist/esm/parser/union-parser.js +0 -5
- package/dist/esm/query-builder/function-builder.d.ts +0 -133
- package/dist/esm/query-builder/function-builder.js +0 -157
|
@@ -15,7 +15,6 @@ import { RawNode } from './raw-node.js';
|
|
|
15
15
|
import { SelectQueryNode } from './select-query-node.js';
|
|
16
16
|
import { ValueListNode } from './value-list-node.js';
|
|
17
17
|
import { ValueNode } from './value-node.js';
|
|
18
|
-
import { FilterNode } from './filter-node.js';
|
|
19
18
|
import { OperatorNode } from './operator-node.js';
|
|
20
19
|
import { FromNode } from './from-node.js';
|
|
21
20
|
import { WhereNode } from './where-node.js';
|
|
@@ -58,7 +57,6 @@ import { ForeignKeyConstraintNode } from './foreign-key-constraint-node.js';
|
|
|
58
57
|
import { ColumnDefinitionNode } from './column-definition-node.js';
|
|
59
58
|
import { ModifyColumnNode } from './modify-column-node.js';
|
|
60
59
|
import { OnDuplicateKeyNode } from './on-duplicate-key-node.js';
|
|
61
|
-
import { UnionNode } from './union-node.js';
|
|
62
60
|
import { CreateViewNode } from './create-view-node.js';
|
|
63
61
|
import { DropViewNode } from './drop-view-node.js';
|
|
64
62
|
import { GeneratedNode } from './generated-node.js';
|
|
@@ -71,6 +69,13 @@ import { DropTypeNode } from './drop-type-node.js';
|
|
|
71
69
|
import { ExplainNode } from './explain-node.js';
|
|
72
70
|
import { SchemableIdentifierNode } from './schemable-identifier-node.js';
|
|
73
71
|
import { DefaultInsertValueNode } from './default-insert-value-node.js';
|
|
72
|
+
import { AggregateFunctionNode } from './aggregate-function-node.js';
|
|
73
|
+
import { OverNode } from './over-node.js';
|
|
74
|
+
import { PartitionByNode } from './partition-by-node.js';
|
|
75
|
+
import { PartitionByItemNode } from './partition-by-item-node.js';
|
|
76
|
+
import { SetOperationNode } from './set-operation-node.js';
|
|
77
|
+
import { BinaryOperationNode } from './binary-operation-node.js';
|
|
78
|
+
import { UnaryOperationNode } from './unary-operation-node.js';
|
|
74
79
|
export declare abstract class OperationNodeVisitor {
|
|
75
80
|
#private;
|
|
76
81
|
protected readonly nodeStack: OperationNode[];
|
|
@@ -83,7 +88,6 @@ export declare abstract class OperationNodeVisitor {
|
|
|
83
88
|
protected abstract visitTable(node: TableNode): void;
|
|
84
89
|
protected abstract visitFrom(node: FromNode): void;
|
|
85
90
|
protected abstract visitReference(node: ReferenceNode): void;
|
|
86
|
-
protected abstract visitFilter(node: FilterNode): void;
|
|
87
91
|
protected abstract visitAnd(node: AndNode): void;
|
|
88
92
|
protected abstract visitOr(node: OrNode): void;
|
|
89
93
|
protected abstract visitValueList(node: ValueListNode): void;
|
|
@@ -129,7 +133,6 @@ export declare abstract class OperationNodeVisitor {
|
|
|
129
133
|
protected abstract visitAddConstraint(node: AddConstraintNode): void;
|
|
130
134
|
protected abstract visitDropConstraint(node: DropConstraintNode): void;
|
|
131
135
|
protected abstract visitForeignKeyConstraint(node: ForeignKeyConstraintNode): void;
|
|
132
|
-
protected abstract visitUnion(node: UnionNode): void;
|
|
133
136
|
protected abstract visitDataType(node: DataTypeNode): void;
|
|
134
137
|
protected abstract visitSelectAll(node: SelectAllNode): void;
|
|
135
138
|
protected abstract visitIdentifier(node: IdentifierNode): void;
|
|
@@ -148,4 +151,11 @@ export declare abstract class OperationNodeVisitor {
|
|
|
148
151
|
protected abstract visitDropType(node: DropTypeNode): void;
|
|
149
152
|
protected abstract visitExplain(node: ExplainNode): void;
|
|
150
153
|
protected abstract visitDefaultInsertValue(node: DefaultInsertValueNode): void;
|
|
154
|
+
protected abstract visitAggregateFunction(node: AggregateFunctionNode): void;
|
|
155
|
+
protected abstract visitOver(node: OverNode): void;
|
|
156
|
+
protected abstract visitPartitionBy(node: PartitionByNode): void;
|
|
157
|
+
protected abstract visitPartitionByItem(node: PartitionByItemNode): void;
|
|
158
|
+
protected abstract visitSetOperation(node: SetOperationNode): void;
|
|
159
|
+
protected abstract visitBinaryOperation(node: BinaryOperationNode): void;
|
|
160
|
+
protected abstract visitUnaryOperation(node: UnaryOperationNode): void;
|
|
151
161
|
}
|
|
@@ -17,7 +17,6 @@ export class OperationNodeVisitor {
|
|
|
17
17
|
TableNode: this.visitTable.bind(this),
|
|
18
18
|
FromNode: this.visitFrom.bind(this),
|
|
19
19
|
SelectAllNode: this.visitSelectAll.bind(this),
|
|
20
|
-
FilterNode: this.visitFilter.bind(this),
|
|
21
20
|
AndNode: this.visitAnd.bind(this),
|
|
22
21
|
OrNode: this.visitOr.bind(this),
|
|
23
22
|
ValueNode: this.visitValue.bind(this),
|
|
@@ -66,7 +65,6 @@ export class OperationNodeVisitor {
|
|
|
66
65
|
AddConstraintNode: this.visitAddConstraint.bind(this),
|
|
67
66
|
DropConstraintNode: this.visitDropConstraint.bind(this),
|
|
68
67
|
ForeignKeyConstraintNode: this.visitForeignKeyConstraint.bind(this),
|
|
69
|
-
UnionNode: this.visitUnion.bind(this),
|
|
70
68
|
CreateViewNode: this.visitCreateView.bind(this),
|
|
71
69
|
DropViewNode: this.visitDropView.bind(this),
|
|
72
70
|
GeneratedNode: this.visitGenerated.bind(this),
|
|
@@ -78,6 +76,13 @@ export class OperationNodeVisitor {
|
|
|
78
76
|
DropTypeNode: this.visitDropType.bind(this),
|
|
79
77
|
ExplainNode: this.visitExplain.bind(this),
|
|
80
78
|
DefaultInsertValueNode: this.visitDefaultInsertValue.bind(this),
|
|
79
|
+
AggregateFunctionNode: this.visitAggregateFunction.bind(this),
|
|
80
|
+
OverNode: this.visitOver.bind(this),
|
|
81
|
+
PartitionByNode: this.visitPartitionBy.bind(this),
|
|
82
|
+
PartitionByItemNode: this.visitPartitionByItem.bind(this),
|
|
83
|
+
SetOperationNode: this.visitSetOperation.bind(this),
|
|
84
|
+
BinaryOperationNode: this.visitBinaryOperation.bind(this),
|
|
85
|
+
UnaryOperationNode: this.visitUnaryOperation.bind(this),
|
|
81
86
|
});
|
|
82
87
|
visitNode = (node) => {
|
|
83
88
|
this.nodeStack.push(node);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare type OperationNodeKind = 'IdentifierNode' | 'SchemableIdentifierNode' | 'RawNode' | 'SelectQueryNode' | 'SelectionNode' | 'ReferenceNode' | 'ColumnNode' | 'TableNode' | 'AliasNode' | 'FromNode' | 'SelectAllNode' | '
|
|
1
|
+
export declare type OperationNodeKind = 'IdentifierNode' | 'SchemableIdentifierNode' | 'RawNode' | 'SelectQueryNode' | 'SelectionNode' | 'ReferenceNode' | 'ColumnNode' | 'TableNode' | 'AliasNode' | 'FromNode' | 'SelectAllNode' | 'AndNode' | 'OrNode' | 'ParensNode' | 'ValueNode' | 'ValueListNode' | 'PrimitiveValueListNode' | 'JoinNode' | 'OperatorNode' | 'WhereNode' | 'InsertQueryNode' | 'DeleteQueryNode' | 'ReturningNode' | 'CreateTableNode' | 'ColumnDefinitionNode' | 'AddColumnNode' | 'DropTableNode' | 'DataTypeNode' | 'OrderByNode' | 'OrderByItemNode' | 'GroupByNode' | 'GroupByItemNode' | 'UpdateQueryNode' | 'ColumnUpdateNode' | 'LimitNode' | 'OffsetNode' | 'OnConflictNode' | 'OnDuplicateKeyNode' | 'CreateIndexNode' | 'DropIndexNode' | 'ListNode' | 'ReferencesNode' | 'PrimaryKeyConstraintNode' | 'UniqueConstraintNode' | 'CheckConstraintNode' | 'ForeignKeyConstraintNode' | 'WithNode' | 'CommonTableExpressionNode' | 'HavingNode' | 'CreateSchemaNode' | 'DropSchemaNode' | 'AlterTableNode' | 'ModifyColumnNode' | 'DropColumnNode' | 'RenameColumnNode' | 'AlterColumnNode' | 'AddConstraintNode' | 'DropConstraintNode' | 'CreateViewNode' | 'DropViewNode' | 'GeneratedNode' | 'DefaultValueNode' | 'OnNode' | 'ValuesNode' | 'CommonTableExpressionNameNode' | 'SelectModifierNode' | 'CreateTypeNode' | 'DropTypeNode' | 'ExplainNode' | 'DefaultInsertValueNode' | 'AggregateFunctionNode' | 'OverNode' | 'PartitionByNode' | 'PartitionByItemNode' | 'SetOperationNode' | 'BinaryOperationNode' | 'UnaryOperationNode';
|
|
2
2
|
export interface OperationNode {
|
|
3
3
|
readonly kind: OperationNodeKind;
|
|
4
4
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { ArrayItemType } from '../util/type-utils.js';
|
|
2
1
|
import { OperationNode } from './operation-node.js';
|
|
3
|
-
export declare const
|
|
4
|
-
export declare
|
|
2
|
+
export declare const COMPARISON_OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "ilike", "not ilike", "@>", "<@", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "&&", "||", "@@", "@@@", "!!", "<->"];
|
|
3
|
+
export declare const UNARY_FILTER_OPERATORS: readonly ["exists", "not exists"];
|
|
4
|
+
export declare type ComparisonOperator = typeof COMPARISON_OPERATORS[number];
|
|
5
|
+
export declare type UnaryFilterOperator = typeof UNARY_FILTER_OPERATORS[number];
|
|
6
|
+
export declare type Operator = ComparisonOperator | UnaryFilterOperator;
|
|
5
7
|
export interface OperatorNode extends OperationNode {
|
|
6
8
|
readonly kind: 'OperatorNode';
|
|
7
9
|
readonly operator: Operator;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="./operator-node.d.ts" />
|
|
2
2
|
import { freeze } from '../util/object-utils.js';
|
|
3
|
-
export const
|
|
3
|
+
export const COMPARISON_OPERATORS = [
|
|
4
4
|
'=',
|
|
5
5
|
'==',
|
|
6
6
|
'!=',
|
|
@@ -20,7 +20,6 @@ export const OPERATORS = [
|
|
|
20
20
|
'@>',
|
|
21
21
|
'<@',
|
|
22
22
|
'?',
|
|
23
|
-
'?',
|
|
24
23
|
'?&',
|
|
25
24
|
'!<',
|
|
26
25
|
'!>',
|
|
@@ -29,8 +28,6 @@ export const OPERATORS = [
|
|
|
29
28
|
'~',
|
|
30
29
|
'~*',
|
|
31
30
|
'!~*',
|
|
32
|
-
'exists',
|
|
33
|
-
'not exists',
|
|
34
31
|
'&&',
|
|
35
32
|
'||',
|
|
36
33
|
'@@',
|
|
@@ -38,6 +35,7 @@ export const OPERATORS = [
|
|
|
38
35
|
'!!',
|
|
39
36
|
'<->',
|
|
40
37
|
];
|
|
38
|
+
export const UNARY_FILTER_OPERATORS = ['exists', 'not exists'];
|
|
41
39
|
/**
|
|
42
40
|
* @internal
|
|
43
41
|
*/
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
|
-
import { FilterExpressionNode } from './operation-node-utils.js';
|
|
3
2
|
export interface OrNode extends OperationNode {
|
|
4
3
|
readonly kind: 'OrNode';
|
|
5
|
-
readonly left:
|
|
6
|
-
readonly right:
|
|
4
|
+
readonly left: OperationNode;
|
|
5
|
+
readonly right: OperationNode;
|
|
7
6
|
}
|
|
8
7
|
/**
|
|
9
8
|
* @internal
|
|
10
9
|
*/
|
|
11
10
|
export declare const OrNode: Readonly<{
|
|
12
11
|
is(node: OperationNode): node is OrNode;
|
|
13
|
-
create(left:
|
|
12
|
+
create(left: OperationNode, right: OperationNode): OrNode;
|
|
14
13
|
}>;
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
|
-
import { ReferenceExpressionNode } from './operation-node-utils.js';
|
|
3
|
-
import { RawNode } from './raw-node.js';
|
|
4
2
|
export interface OrderByItemNode extends OperationNode {
|
|
5
3
|
readonly kind: 'OrderByItemNode';
|
|
6
|
-
readonly orderBy:
|
|
7
|
-
readonly direction?:
|
|
4
|
+
readonly orderBy: OperationNode;
|
|
5
|
+
readonly direction?: OperationNode;
|
|
8
6
|
}
|
|
9
7
|
/**
|
|
10
8
|
* @internal
|
|
11
9
|
*/
|
|
12
10
|
export declare const OrderByItemNode: Readonly<{
|
|
13
11
|
is(node: OperationNode): node is OrderByItemNode;
|
|
14
|
-
create(orderBy:
|
|
12
|
+
create(orderBy: OperationNode, direction?: OperationNode): OrderByItemNode;
|
|
15
13
|
}>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { OperationNode } from './operation-node.js';
|
|
2
|
+
import { OrderByItemNode } from './order-by-item-node.js';
|
|
3
|
+
import { OrderByNode } from './order-by-node.js';
|
|
4
|
+
import { PartitionByItemNode } from './partition-by-item-node.js';
|
|
5
|
+
import { PartitionByNode } from './partition-by-node.js';
|
|
6
|
+
export interface OverNode extends OperationNode {
|
|
7
|
+
readonly kind: 'OverNode';
|
|
8
|
+
readonly orderBy?: OrderByNode;
|
|
9
|
+
readonly partitionBy?: PartitionByNode;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
export declare const OverNode: Readonly<{
|
|
15
|
+
is(node: OperationNode): node is OverNode;
|
|
16
|
+
create(): OverNode;
|
|
17
|
+
cloneWithOrderByItem(overNode: OverNode, item: OrderByItemNode): OverNode;
|
|
18
|
+
cloneWithPartitionByItems(overNode: OverNode, items: ReadonlyArray<PartitionByItemNode>): OverNode;
|
|
19
|
+
}>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/// <reference types="./over-node.d.ts" />
|
|
2
|
+
import { freeze } from '../util/object-utils.js';
|
|
3
|
+
import { OrderByNode } from './order-by-node.js';
|
|
4
|
+
import { PartitionByNode } from './partition-by-node.js';
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export const OverNode = freeze({
|
|
9
|
+
is(node) {
|
|
10
|
+
return node.kind === 'OverNode';
|
|
11
|
+
},
|
|
12
|
+
create() {
|
|
13
|
+
return freeze({
|
|
14
|
+
kind: 'OverNode',
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
cloneWithOrderByItem(overNode, item) {
|
|
18
|
+
return freeze({
|
|
19
|
+
...overNode,
|
|
20
|
+
orderBy: overNode.orderBy
|
|
21
|
+
? OrderByNode.cloneWithItem(overNode.orderBy, item)
|
|
22
|
+
: OrderByNode.create(item),
|
|
23
|
+
});
|
|
24
|
+
},
|
|
25
|
+
cloneWithPartitionByItems(overNode, items) {
|
|
26
|
+
return freeze({
|
|
27
|
+
...overNode,
|
|
28
|
+
partitionBy: overNode.partitionBy
|
|
29
|
+
? PartitionByNode.cloneWithItems(overNode.partitionBy, items)
|
|
30
|
+
: PartitionByNode.create(items),
|
|
31
|
+
});
|
|
32
|
+
},
|
|
33
|
+
});
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
|
-
import { FilterExpressionNode } from './operation-node-utils.js';
|
|
3
2
|
export interface ParensNode extends OperationNode {
|
|
4
3
|
readonly kind: 'ParensNode';
|
|
5
|
-
readonly node:
|
|
4
|
+
readonly node: OperationNode;
|
|
6
5
|
}
|
|
7
6
|
/**
|
|
8
7
|
* @internal
|
|
9
8
|
*/
|
|
10
9
|
export declare const ParensNode: Readonly<{
|
|
11
10
|
is(node: OperationNode): node is ParensNode;
|
|
12
|
-
create(node:
|
|
11
|
+
create(node: OperationNode): ParensNode;
|
|
13
12
|
}>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { OperationNode } from './operation-node.js';
|
|
2
|
+
import { SimpleReferenceExpressionNode } from './simple-reference-expression-node.js';
|
|
3
|
+
export interface PartitionByItemNode extends OperationNode {
|
|
4
|
+
readonly kind: 'PartitionByItemNode';
|
|
5
|
+
readonly partitionBy: SimpleReferenceExpressionNode;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export declare const PartitionByItemNode: Readonly<{
|
|
11
|
+
is(node: OperationNode): node is PartitionByItemNode;
|
|
12
|
+
create(partitionBy: SimpleReferenceExpressionNode): PartitionByItemNode;
|
|
13
|
+
}>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/// <reference types="./partition-by-item-node.d.ts" />
|
|
2
|
+
import { freeze } from '../util/object-utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export const PartitionByItemNode = freeze({
|
|
7
|
+
is(node) {
|
|
8
|
+
return node.kind === 'PartitionByItemNode';
|
|
9
|
+
},
|
|
10
|
+
create(partitionBy) {
|
|
11
|
+
return freeze({
|
|
12
|
+
kind: 'PartitionByItemNode',
|
|
13
|
+
partitionBy,
|
|
14
|
+
});
|
|
15
|
+
},
|
|
16
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PartitionByItemNode } from './partition-by-item-node.js';
|
|
2
|
+
import { OperationNode } from './operation-node.js';
|
|
3
|
+
export interface PartitionByNode extends OperationNode {
|
|
4
|
+
readonly kind: 'PartitionByNode';
|
|
5
|
+
readonly items: ReadonlyArray<PartitionByItemNode>;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export declare const PartitionByNode: Readonly<{
|
|
11
|
+
is(node: OperationNode): node is PartitionByNode;
|
|
12
|
+
create(items: ReadonlyArray<PartitionByItemNode>): PartitionByNode;
|
|
13
|
+
cloneWithItems(partitionBy: PartitionByNode, items: ReadonlyArray<PartitionByItemNode>): PartitionByNode;
|
|
14
|
+
}>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/// <reference types="./partition-by-node.d.ts" />
|
|
2
|
+
import { freeze } from '../util/object-utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export const PartitionByNode = freeze({
|
|
7
|
+
is(node) {
|
|
8
|
+
return node.kind === 'PartitionByNode';
|
|
9
|
+
},
|
|
10
|
+
create(items) {
|
|
11
|
+
return freeze({
|
|
12
|
+
kind: 'PartitionByNode',
|
|
13
|
+
items: freeze(items),
|
|
14
|
+
});
|
|
15
|
+
},
|
|
16
|
+
cloneWithItems(partitionBy, items) {
|
|
17
|
+
return freeze({
|
|
18
|
+
...partitionBy,
|
|
19
|
+
items: freeze([...partitionBy.items, ...items]),
|
|
20
|
+
});
|
|
21
|
+
},
|
|
22
|
+
});
|
|
@@ -5,7 +5,6 @@ import { DeleteQueryNode } from './delete-query-node.js';
|
|
|
5
5
|
import { JoinNode } from './join-node.js';
|
|
6
6
|
import { SelectionNode } from './selection-node.js';
|
|
7
7
|
import { OperationNode } from './operation-node.js';
|
|
8
|
-
import { FilterExpressionNode } from './operation-node-utils.js';
|
|
9
8
|
export declare type QueryNode = SelectQueryNode | DeleteQueryNode | InsertQueryNode | UpdateQueryNode;
|
|
10
9
|
export declare type MutatingQueryNode = DeleteQueryNode | InsertQueryNode | UpdateQueryNode;
|
|
11
10
|
export declare type FilterableQueryNode = SelectQueryNode | DeleteQueryNode | UpdateQueryNode;
|
|
@@ -14,8 +13,8 @@ export declare type FilterableQueryNode = SelectQueryNode | DeleteQueryNode | Up
|
|
|
14
13
|
*/
|
|
15
14
|
export declare const QueryNode: Readonly<{
|
|
16
15
|
is(node: OperationNode): node is QueryNode;
|
|
17
|
-
cloneWithWhere<T extends FilterableQueryNode>(node: T,
|
|
18
|
-
cloneWithOrWhere<T_1 extends FilterableQueryNode>(node: T_1,
|
|
16
|
+
cloneWithWhere<T extends FilterableQueryNode>(node: T, operation: OperationNode): T;
|
|
17
|
+
cloneWithOrWhere<T_1 extends FilterableQueryNode>(node: T_1, operation: OperationNode): T_1;
|
|
19
18
|
cloneWithJoin<T_2 extends FilterableQueryNode>(node: T_2, join: JoinNode): T_2;
|
|
20
19
|
cloneWithReturning<T_3 extends MutatingQueryNode>(node: T_3, selections: ReadonlyArray<SelectionNode>): T_3;
|
|
21
20
|
}>;
|
|
@@ -16,20 +16,20 @@ export const QueryNode = freeze({
|
|
|
16
16
|
UpdateQueryNode.is(node) ||
|
|
17
17
|
SelectQueryNode.is(node));
|
|
18
18
|
},
|
|
19
|
-
cloneWithWhere(node,
|
|
19
|
+
cloneWithWhere(node, operation) {
|
|
20
20
|
return freeze({
|
|
21
21
|
...node,
|
|
22
22
|
where: node.where
|
|
23
|
-
? WhereNode.
|
|
24
|
-
: WhereNode.create(
|
|
23
|
+
? WhereNode.cloneWithOperation(node.where, 'And', operation)
|
|
24
|
+
: WhereNode.create(operation),
|
|
25
25
|
});
|
|
26
26
|
},
|
|
27
|
-
cloneWithOrWhere(node,
|
|
27
|
+
cloneWithOrWhere(node, operation) {
|
|
28
28
|
return freeze({
|
|
29
29
|
...node,
|
|
30
30
|
where: node.where
|
|
31
|
-
? WhereNode.
|
|
32
|
-
: WhereNode.create(
|
|
31
|
+
? WhereNode.cloneWithOperation(node.where, 'Or', operation)
|
|
32
|
+
: WhereNode.create(operation),
|
|
33
33
|
});
|
|
34
34
|
},
|
|
35
35
|
cloneWithJoin(node, join) {
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
|
-
import { RawNode } from './raw-node.js';
|
|
3
2
|
export declare type SelectModifier = 'ForUpdate' | 'ForNoKeyUpdate' | 'ForShare' | 'ForKeyShare' | 'NoWait' | 'SkipLocked' | 'Distinct';
|
|
4
3
|
export interface SelectModifierNode extends OperationNode {
|
|
5
4
|
readonly kind: 'SelectModifierNode';
|
|
6
5
|
readonly modifier?: SelectModifier;
|
|
7
|
-
readonly rawModifier?:
|
|
6
|
+
readonly rawModifier?: OperationNode;
|
|
8
7
|
}
|
|
9
8
|
/**
|
|
10
9
|
* @internal
|
|
@@ -12,5 +11,5 @@ export interface SelectModifierNode extends OperationNode {
|
|
|
12
11
|
export declare const SelectModifierNode: Readonly<{
|
|
13
12
|
is(node: OperationNode): node is SelectModifierNode;
|
|
14
13
|
create(modifier: SelectModifier): SelectModifierNode;
|
|
15
|
-
|
|
14
|
+
createWithExpression(modifier: OperationNode): SelectModifierNode;
|
|
16
15
|
}>;
|
|
@@ -6,20 +6,19 @@ import { JoinNode } from './join-node.js';
|
|
|
6
6
|
import { LimitNode } from './limit-node.js';
|
|
7
7
|
import { OffsetNode } from './offset-node.js';
|
|
8
8
|
import { OperationNode } from './operation-node.js';
|
|
9
|
-
import { FilterExpressionNode, TableExpressionNode } from './operation-node-utils.js';
|
|
10
9
|
import { OrderByItemNode } from './order-by-item-node.js';
|
|
11
10
|
import { OrderByNode } from './order-by-node.js';
|
|
12
11
|
import { SelectionNode } from './selection-node.js';
|
|
13
12
|
import { WhereNode } from './where-node.js';
|
|
14
13
|
import { WithNode } from './with-node.js';
|
|
15
|
-
import { UnionNode } from './union-node.js';
|
|
16
14
|
import { SelectModifierNode } from './select-modifier-node.js';
|
|
17
15
|
import { ExplainNode } from './explain-node.js';
|
|
16
|
+
import { SetOperationNode } from './set-operation-node.js';
|
|
18
17
|
export interface SelectQueryNode extends OperationNode {
|
|
19
18
|
readonly kind: 'SelectQueryNode';
|
|
20
19
|
readonly from: FromNode;
|
|
21
20
|
readonly selections?: ReadonlyArray<SelectionNode>;
|
|
22
|
-
readonly
|
|
21
|
+
readonly distinctOn?: ReadonlyArray<OperationNode>;
|
|
23
22
|
readonly joins?: ReadonlyArray<JoinNode>;
|
|
24
23
|
readonly groupBy?: GroupByNode;
|
|
25
24
|
readonly orderBy?: OrderByNode;
|
|
@@ -30,25 +29,25 @@ export interface SelectQueryNode extends OperationNode {
|
|
|
30
29
|
readonly offset?: OffsetNode;
|
|
31
30
|
readonly with?: WithNode;
|
|
32
31
|
readonly having?: HavingNode;
|
|
33
|
-
readonly union?: ReadonlyArray<UnionNode>;
|
|
34
32
|
readonly explain?: ExplainNode;
|
|
33
|
+
readonly setOperations?: ReadonlyArray<SetOperationNode>;
|
|
35
34
|
}
|
|
36
35
|
/**
|
|
37
36
|
* @internal
|
|
38
37
|
*/
|
|
39
38
|
export declare const SelectQueryNode: Readonly<{
|
|
40
39
|
is(node: OperationNode): node is SelectQueryNode;
|
|
41
|
-
create(fromItems: ReadonlyArray<
|
|
40
|
+
create(fromItems: ReadonlyArray<OperationNode>, withNode?: WithNode): SelectQueryNode;
|
|
42
41
|
cloneWithSelections(select: SelectQueryNode, selections: ReadonlyArray<SelectionNode>): SelectQueryNode;
|
|
43
|
-
|
|
42
|
+
cloneWithDistinctOn(select: SelectQueryNode, expressions: ReadonlyArray<OperationNode>): SelectQueryNode;
|
|
44
43
|
cloneWithFrontModifier(select: SelectQueryNode, modifier: SelectModifierNode): SelectQueryNode;
|
|
45
44
|
cloneWithEndModifier(select: SelectQueryNode, modifier: SelectModifierNode): SelectQueryNode;
|
|
46
45
|
cloneWithOrderByItem(selectNode: SelectQueryNode, item: OrderByItemNode): SelectQueryNode;
|
|
47
46
|
cloneWithGroupByItems(selectNode: SelectQueryNode, items: ReadonlyArray<GroupByItemNode>): SelectQueryNode;
|
|
48
47
|
cloneWithLimit(selectNode: SelectQueryNode, limit: LimitNode): SelectQueryNode;
|
|
49
48
|
cloneWithOffset(selectNode: SelectQueryNode, offset: OffsetNode): SelectQueryNode;
|
|
50
|
-
cloneWithHaving(selectNode: SelectQueryNode,
|
|
51
|
-
cloneWithOrHaving(selectNode: SelectQueryNode,
|
|
52
|
-
|
|
49
|
+
cloneWithHaving(selectNode: SelectQueryNode, operation: OperationNode): SelectQueryNode;
|
|
50
|
+
cloneWithOrHaving(selectNode: SelectQueryNode, operation: OperationNode): SelectQueryNode;
|
|
51
|
+
cloneWithSetOperation(selectNode: SelectQueryNode, setOperation: SetOperationNode): SelectQueryNode;
|
|
53
52
|
cloneWithExplain(selectNode: SelectQueryNode, explain: ExplainNode): SelectQueryNode;
|
|
54
53
|
}>;
|
|
@@ -26,12 +26,12 @@ export const SelectQueryNode = freeze({
|
|
|
26
26
|
: freeze(selections),
|
|
27
27
|
});
|
|
28
28
|
},
|
|
29
|
-
|
|
29
|
+
cloneWithDistinctOn(select, expressions) {
|
|
30
30
|
return freeze({
|
|
31
31
|
...select,
|
|
32
|
-
|
|
33
|
-
? freeze([...select.
|
|
34
|
-
: freeze(
|
|
32
|
+
distinctOn: select.distinctOn
|
|
33
|
+
? freeze([...select.distinctOn, ...expressions])
|
|
34
|
+
: freeze(expressions),
|
|
35
35
|
});
|
|
36
36
|
},
|
|
37
37
|
cloneWithFrontModifier(select, modifier) {
|
|
@@ -78,28 +78,28 @@ export const SelectQueryNode = freeze({
|
|
|
78
78
|
offset,
|
|
79
79
|
});
|
|
80
80
|
},
|
|
81
|
-
cloneWithHaving(selectNode,
|
|
81
|
+
cloneWithHaving(selectNode, operation) {
|
|
82
82
|
return freeze({
|
|
83
83
|
...selectNode,
|
|
84
84
|
having: selectNode.having
|
|
85
|
-
? HavingNode.
|
|
86
|
-
: HavingNode.create(
|
|
85
|
+
? HavingNode.cloneWithOperation(selectNode.having, 'And', operation)
|
|
86
|
+
: HavingNode.create(operation),
|
|
87
87
|
});
|
|
88
88
|
},
|
|
89
|
-
cloneWithOrHaving(selectNode,
|
|
89
|
+
cloneWithOrHaving(selectNode, operation) {
|
|
90
90
|
return freeze({
|
|
91
91
|
...selectNode,
|
|
92
92
|
having: selectNode.having
|
|
93
|
-
? HavingNode.
|
|
94
|
-
: HavingNode.create(
|
|
93
|
+
? HavingNode.cloneWithOperation(selectNode.having, 'Or', operation)
|
|
94
|
+
: HavingNode.create(operation),
|
|
95
95
|
});
|
|
96
96
|
},
|
|
97
|
-
|
|
97
|
+
cloneWithSetOperation(selectNode, setOperation) {
|
|
98
98
|
return freeze({
|
|
99
99
|
...selectNode,
|
|
100
|
-
|
|
101
|
-
? freeze([...selectNode.
|
|
102
|
-
: freeze([
|
|
100
|
+
setOperations: selectNode.setOperations
|
|
101
|
+
? freeze([...selectNode.setOperations, setOperation])
|
|
102
|
+
: freeze([setOperation]),
|
|
103
103
|
});
|
|
104
104
|
},
|
|
105
105
|
cloneWithExplain(selectNode, explain) {
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { AliasNode } from './alias-node.js';
|
|
2
|
-
import { ColumnNode } from './column-node.js';
|
|
3
2
|
import { OperationNode } from './operation-node.js';
|
|
4
|
-
import { ReferenceNode } from './reference-node.js';
|
|
5
3
|
import { SelectAllNode } from './select-all-node.js';
|
|
4
|
+
import { SimpleReferenceExpressionNode } from './simple-reference-expression-node.js';
|
|
6
5
|
import { TableNode } from './table-node.js';
|
|
7
|
-
declare type SelectionNodeChild =
|
|
6
|
+
declare type SelectionNodeChild = SimpleReferenceExpressionNode | AliasNode | SelectAllNode;
|
|
8
7
|
export interface SelectionNode extends OperationNode {
|
|
9
8
|
readonly kind: 'SelectionNode';
|
|
10
9
|
readonly selection: SelectionNodeChild;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { OperationNode } from './operation-node.js';
|
|
2
|
+
export declare type SetOperator = 'union' | 'intersect' | 'except';
|
|
3
|
+
export interface SetOperationNode extends OperationNode {
|
|
4
|
+
kind: 'SetOperationNode';
|
|
5
|
+
operator: SetOperator;
|
|
6
|
+
expression: OperationNode;
|
|
7
|
+
all: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export declare const SetOperationNode: Readonly<{
|
|
13
|
+
is(node: OperationNode): node is SetOperationNode;
|
|
14
|
+
create(operator: SetOperator, expression: OperationNode, all: boolean): SetOperationNode;
|
|
15
|
+
}>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/// <reference types="./set-operation-node.d.ts" />
|
|
2
|
+
import { freeze } from '../util/object-utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export const SetOperationNode = freeze({
|
|
7
|
+
is(node) {
|
|
8
|
+
return node.kind === 'SetOperationNode';
|
|
9
|
+
},
|
|
10
|
+
create(operator, expression, all) {
|
|
11
|
+
return freeze({
|
|
12
|
+
kind: 'SetOperationNode',
|
|
13
|
+
operator,
|
|
14
|
+
expression,
|
|
15
|
+
all,
|
|
16
|
+
});
|
|
17
|
+
},
|
|
18
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { OperationNode } from './operation-node.js';
|
|
2
|
+
export interface UnaryOperationNode extends OperationNode {
|
|
3
|
+
readonly kind: 'UnaryOperationNode';
|
|
4
|
+
readonly operator: OperationNode;
|
|
5
|
+
readonly operand: OperationNode;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export declare const UnaryOperationNode: Readonly<{
|
|
11
|
+
is(node: OperationNode): node is UnaryOperationNode;
|
|
12
|
+
create(operator: OperationNode, operand: OperationNode): UnaryOperationNode;
|
|
13
|
+
}>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/// <reference types="./unary-operation-node.d.ts" />
|
|
2
|
+
import { freeze } from '../util/object-utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export const UnaryOperationNode = freeze({
|
|
7
|
+
is(node) {
|
|
8
|
+
return node.kind === 'UnaryOperationNode';
|
|
9
|
+
},
|
|
10
|
+
create(operator, operand) {
|
|
11
|
+
return freeze({
|
|
12
|
+
kind: 'UnaryOperationNode',
|
|
13
|
+
operator,
|
|
14
|
+
operand,
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
});
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ColumnUpdateNode } from './column-update-node.js';
|
|
2
2
|
import { JoinNode } from './join-node.js';
|
|
3
3
|
import { OperationNode } from './operation-node.js';
|
|
4
|
-
import { TableExpressionNode } from './operation-node-utils.js';
|
|
5
4
|
import { PrimitiveValueListNode } from './primitive-value-list-node.js';
|
|
6
5
|
import { ReturningNode } from './returning-node.js';
|
|
7
6
|
import { ValueListNode } from './value-list-node.js';
|
|
@@ -12,7 +11,7 @@ import { ExplainNode } from './explain-node.js';
|
|
|
12
11
|
export declare type UpdateValuesNode = ValueListNode | PrimitiveValueListNode;
|
|
13
12
|
export interface UpdateQueryNode extends OperationNode {
|
|
14
13
|
readonly kind: 'UpdateQueryNode';
|
|
15
|
-
readonly table:
|
|
14
|
+
readonly table: OperationNode;
|
|
16
15
|
readonly from?: FromNode;
|
|
17
16
|
readonly joins?: ReadonlyArray<JoinNode>;
|
|
18
17
|
readonly where?: WhereNode;
|
|
@@ -26,8 +25,8 @@ export interface UpdateQueryNode extends OperationNode {
|
|
|
26
25
|
*/
|
|
27
26
|
export declare const UpdateQueryNode: Readonly<{
|
|
28
27
|
is(node: OperationNode): node is UpdateQueryNode;
|
|
29
|
-
create(table:
|
|
30
|
-
cloneWithFromItems(updateQuery: UpdateQueryNode, fromItems: ReadonlyArray<
|
|
28
|
+
create(table: OperationNode, withNode?: WithNode): UpdateQueryNode;
|
|
29
|
+
cloneWithFromItems(updateQuery: UpdateQueryNode, fromItems: ReadonlyArray<OperationNode>): UpdateQueryNode;
|
|
31
30
|
cloneWithUpdates(updateQuery: UpdateQueryNode, updates: ReadonlyArray<ColumnUpdateNode>): UpdateQueryNode;
|
|
32
31
|
cloneWithExplain(updateQuery: UpdateQueryNode, explain: ExplainNode): UpdateQueryNode;
|
|
33
32
|
}>;
|