kysely 0.22.0 → 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 +25 -2
- 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 +10 -6
- package/dist/cjs/index.js +8 -2
- package/dist/cjs/migration/file-migration-provider.js +5 -3
- package/dist/cjs/operation-node/aggregate-function-node.d.ts +7 -4
- package/dist/cjs/operation-node/aggregate-function-node.js +17 -0
- package/dist/cjs/operation-node/alias-node.d.ts +3 -11
- 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/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 -5
- 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 +4 -2
- package/dist/cjs/operation-node/operation-node-transformer.js +22 -15
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +4 -2
- package/dist/cjs/operation-node/operation-node-visitor.js +2 -1
- 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/parens-node.d.ts +2 -3
- package/dist/cjs/operation-node/partition-by-item-node.d.ts +3 -4
- 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 +5 -6
- package/dist/cjs/operation-node/select-query-node.js +10 -10
- package/dist/cjs/operation-node/selection-node.d.ts +2 -3
- package/dist/cjs/operation-node/set-operation-node.d.ts +2 -5
- 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 -9
- 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/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/reference-parser.d.ts +14 -14
- package/dist/cjs/parser/reference-parser.js +12 -9
- package/dist/cjs/parser/select-parser.d.ts +6 -7
- package/dist/cjs/parser/select-parser.js +2 -2
- package/dist/cjs/parser/set-operation-parser.d.ts +2 -4
- 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 -9
- 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 +245 -14
- package/dist/cjs/query-builder/aggregate-function-builder.js +164 -12
- 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/function-module.d.ts +123 -22
- package/dist/cjs/query-builder/function-module.js +91 -48
- 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/select-query-builder.d.ts +82 -51
- package/dist/cjs/query-builder/select-query-builder.js +39 -37
- 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 +5 -3
- package/dist/cjs/query-compiler/default-query-compiler.js +37 -33
- 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 +4 -4
- 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 -17
- 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 +10 -6
- package/dist/esm/index.js +6 -2
- package/dist/esm/migration/file-migration-provider.js +5 -3
- package/dist/esm/operation-node/aggregate-function-node.d.ts +7 -4
- package/dist/esm/operation-node/aggregate-function-node.js +17 -0
- package/dist/esm/operation-node/alias-node.d.ts +3 -11
- 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/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 -5
- 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 +4 -2
- package/dist/esm/operation-node/operation-node-transformer.js +22 -15
- package/dist/esm/operation-node/operation-node-visitor.d.ts +4 -2
- package/dist/esm/operation-node/operation-node-visitor.js +2 -1
- 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/parens-node.d.ts +2 -3
- package/dist/esm/operation-node/partition-by-item-node.d.ts +3 -4
- 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 +5 -6
- package/dist/esm/operation-node/select-query-node.js +10 -10
- package/dist/esm/operation-node/selection-node.d.ts +2 -3
- package/dist/esm/operation-node/set-operation-node.d.ts +2 -5
- 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 -9
- 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/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/reference-parser.d.ts +14 -14
- package/dist/esm/parser/reference-parser.js +10 -8
- package/dist/esm/parser/select-parser.d.ts +6 -7
- package/dist/esm/parser/select-parser.js +2 -2
- package/dist/esm/parser/set-operation-parser.d.ts +2 -4
- 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 -9
- 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 +245 -14
- package/dist/esm/query-builder/aggregate-function-builder.js +164 -12
- 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/function-module.d.ts +123 -22
- package/dist/esm/query-builder/function-module.js +92 -49
- 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/select-query-builder.d.ts +82 -51
- package/dist/esm/query-builder/select-query-builder.js +38 -36
- 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 +5 -3
- package/dist/esm/query-compiler/default-query-compiler.js +38 -34
- 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 +4 -4
- 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 -17
- package/package.json +1 -1
- package/dist/cjs/operation-node/filter-node.d.ts +0 -18
- package/dist/cjs/operation-node/filter-node.js +0 -20
- package/dist/cjs/operation-node/operation-node-utils.d.ts +0 -18
- package/dist/cjs/parser/complex-expression-parser.d.ts +0 -12
- package/dist/cjs/parser/filter-parser.d.ts +0 -24
- package/dist/cjs/parser/filter-parser.js +0 -109
- 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 -18
- package/dist/esm/operation-node/operation-node-utils.js +0 -2
- package/dist/esm/parser/complex-expression-parser.d.ts +0 -12
- package/dist/esm/parser/filter-parser.d.ts +0 -24
- package/dist/esm/parser/filter-parser.js +0 -100
|
@@ -15,12 +15,12 @@ export const HavingNode = freeze({
|
|
|
15
15
|
having: filter,
|
|
16
16
|
});
|
|
17
17
|
},
|
|
18
|
-
|
|
18
|
+
cloneWithOperation(havingNode, operator, operation) {
|
|
19
19
|
return freeze({
|
|
20
20
|
...havingNode,
|
|
21
|
-
having:
|
|
22
|
-
? AndNode.create(havingNode.having,
|
|
23
|
-
: OrNode.create(havingNode.having,
|
|
21
|
+
having: operator === 'And'
|
|
22
|
+
? AndNode.create(havingNode.having, operation)
|
|
23
|
+
: OrNode.create(havingNode.having, operation),
|
|
24
24
|
});
|
|
25
25
|
},
|
|
26
26
|
});
|
|
@@ -1,21 +1,17 @@
|
|
|
1
|
-
import { AggregateFunctionNode } from './aggregate-function-node.js';
|
|
2
1
|
import { ColumnNode } from './column-node.js';
|
|
3
2
|
import { ExplainNode } from './explain-node.js';
|
|
4
3
|
import { OnConflictNode } from './on-conflict-node.js';
|
|
5
4
|
import { OnDuplicateKeyNode } from './on-duplicate-key-node.js';
|
|
6
5
|
import { OperationNode } from './operation-node.js';
|
|
7
|
-
import { RawNode } from './raw-node.js';
|
|
8
6
|
import { ReturningNode } from './returning-node.js';
|
|
9
|
-
import { SelectQueryNode } from './select-query-node.js';
|
|
10
7
|
import { TableNode } from './table-node.js';
|
|
11
|
-
import { ValuesNode } from './values-node.js';
|
|
12
8
|
import { WithNode } from './with-node.js';
|
|
13
9
|
export declare type InsertQueryNodeProps = Omit<InsertQueryNode, 'kind' | 'into'>;
|
|
14
10
|
export interface InsertQueryNode extends OperationNode {
|
|
15
11
|
readonly kind: 'InsertQueryNode';
|
|
16
12
|
readonly into: TableNode;
|
|
17
13
|
readonly columns?: ReadonlyArray<ColumnNode>;
|
|
18
|
-
readonly values?:
|
|
14
|
+
readonly values?: OperationNode;
|
|
19
15
|
readonly returning?: ReturningNode;
|
|
20
16
|
readonly onConflict?: OnConflictNode;
|
|
21
17
|
readonly onDuplicateKey?: OnDuplicateKeyNode;
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
import { AliasNode } from './alias-node.js';
|
|
2
1
|
import { OnNode } from './on-node.js';
|
|
3
|
-
import { FilterExpressionNode } from './operation-node-utils.js';
|
|
4
2
|
import { OperationNode } from './operation-node.js';
|
|
5
|
-
import { TableNode } from './table-node.js';
|
|
6
|
-
export declare type JoinTableNode = TableNode | AliasNode;
|
|
7
3
|
export declare type JoinType = 'InnerJoin' | 'LeftJoin' | 'RightJoin' | 'FullJoin' | 'LateralInnerJoin' | 'LateralLeftJoin';
|
|
8
4
|
export interface JoinNode extends OperationNode {
|
|
9
5
|
readonly kind: 'JoinNode';
|
|
10
6
|
readonly joinType: JoinType;
|
|
11
|
-
readonly table:
|
|
7
|
+
readonly table: OperationNode;
|
|
12
8
|
readonly on?: OnNode;
|
|
13
9
|
}
|
|
14
10
|
/**
|
|
@@ -16,8 +12,8 @@ export interface JoinNode extends OperationNode {
|
|
|
16
12
|
*/
|
|
17
13
|
export declare const JoinNode: Readonly<{
|
|
18
14
|
is(node: OperationNode): node is JoinNode;
|
|
19
|
-
create(joinType: JoinType, table:
|
|
20
|
-
createWithOn(joinType: JoinType, table:
|
|
21
|
-
cloneWithOn(joinNode: JoinNode,
|
|
22
|
-
cloneWithOrOn(joinNode: JoinNode,
|
|
15
|
+
create(joinType: JoinType, table: OperationNode): JoinNode;
|
|
16
|
+
createWithOn(joinType: JoinType, table: OperationNode, on: OperationNode): JoinNode;
|
|
17
|
+
cloneWithOn(joinNode: JoinNode, operation: OperationNode): JoinNode;
|
|
18
|
+
cloneWithOrOn(joinNode: JoinNode, operation: OperationNode): JoinNode;
|
|
23
19
|
}>;
|
|
@@ -24,20 +24,20 @@ export const JoinNode = freeze({
|
|
|
24
24
|
on: OnNode.create(on),
|
|
25
25
|
});
|
|
26
26
|
},
|
|
27
|
-
cloneWithOn(joinNode,
|
|
27
|
+
cloneWithOn(joinNode, operation) {
|
|
28
28
|
return freeze({
|
|
29
29
|
...joinNode,
|
|
30
30
|
on: joinNode.on
|
|
31
|
-
? OnNode.
|
|
32
|
-
: OnNode.create(
|
|
31
|
+
? OnNode.cloneWithOperation(joinNode.on, 'And', operation)
|
|
32
|
+
: OnNode.create(operation),
|
|
33
33
|
});
|
|
34
34
|
},
|
|
35
|
-
cloneWithOrOn(joinNode,
|
|
35
|
+
cloneWithOrOn(joinNode, operation) {
|
|
36
36
|
return freeze({
|
|
37
37
|
...joinNode,
|
|
38
38
|
on: joinNode.on
|
|
39
|
-
? OnNode.
|
|
40
|
-
: OnNode.create(
|
|
39
|
+
? OnNode.cloneWithOperation(joinNode.on, 'Or', operation)
|
|
40
|
+
: OnNode.create(operation),
|
|
41
41
|
});
|
|
42
42
|
},
|
|
43
43
|
});
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import { ColumnNode } from './column-node.js';
|
|
2
2
|
import { ColumnUpdateNode } from './column-update-node.js';
|
|
3
3
|
import { IdentifierNode } from './identifier-node.js';
|
|
4
|
-
import { FilterExpressionNode } from './operation-node-utils.js';
|
|
5
4
|
import { OperationNode } from './operation-node.js';
|
|
6
|
-
import { RawNode } from './raw-node.js';
|
|
7
5
|
import { WhereNode } from './where-node.js';
|
|
8
6
|
export declare type OnConflictNodeProps = Omit<OnConflictNode, 'kind' | 'indexWhere' | 'updateWhere'>;
|
|
9
7
|
export interface OnConflictNode extends OperationNode {
|
|
10
8
|
readonly kind: 'OnConflictNode';
|
|
11
9
|
readonly columns?: ReadonlyArray<ColumnNode>;
|
|
12
10
|
readonly constraint?: IdentifierNode;
|
|
13
|
-
readonly indexExpression?:
|
|
11
|
+
readonly indexExpression?: OperationNode;
|
|
14
12
|
readonly indexWhere?: WhereNode;
|
|
15
13
|
readonly updates?: ReadonlyArray<ColumnUpdateNode>;
|
|
16
14
|
readonly updateWhere?: WhereNode;
|
|
@@ -23,8 +21,8 @@ export declare const OnConflictNode: Readonly<{
|
|
|
23
21
|
is(node: OperationNode): node is OnConflictNode;
|
|
24
22
|
create(): OnConflictNode;
|
|
25
23
|
cloneWith(node: OnConflictNode, props: OnConflictNodeProps): OnConflictNode;
|
|
26
|
-
cloneWithIndexWhere(node: OnConflictNode,
|
|
27
|
-
cloneWithIndexOrWhere(node: OnConflictNode,
|
|
28
|
-
cloneWithUpdateWhere(node: OnConflictNode,
|
|
29
|
-
cloneWithUpdateOrWhere(node: OnConflictNode,
|
|
24
|
+
cloneWithIndexWhere(node: OnConflictNode, operation: OperationNode): OnConflictNode;
|
|
25
|
+
cloneWithIndexOrWhere(node: OnConflictNode, operation: OperationNode): OnConflictNode;
|
|
26
|
+
cloneWithUpdateWhere(node: OnConflictNode, operation: OperationNode): OnConflictNode;
|
|
27
|
+
cloneWithUpdateOrWhere(node: OnConflictNode, operation: OperationNode): OnConflictNode;
|
|
30
28
|
}>;
|
|
@@ -19,36 +19,36 @@ export const OnConflictNode = freeze({
|
|
|
19
19
|
...props,
|
|
20
20
|
});
|
|
21
21
|
},
|
|
22
|
-
cloneWithIndexWhere(node,
|
|
22
|
+
cloneWithIndexWhere(node, operation) {
|
|
23
23
|
return freeze({
|
|
24
24
|
...node,
|
|
25
25
|
indexWhere: node.indexWhere
|
|
26
|
-
? WhereNode.
|
|
27
|
-
: WhereNode.create(
|
|
26
|
+
? WhereNode.cloneWithOperation(node.indexWhere, 'And', operation)
|
|
27
|
+
: WhereNode.create(operation),
|
|
28
28
|
});
|
|
29
29
|
},
|
|
30
|
-
cloneWithIndexOrWhere(node,
|
|
30
|
+
cloneWithIndexOrWhere(node, operation) {
|
|
31
31
|
return freeze({
|
|
32
32
|
...node,
|
|
33
33
|
indexWhere: node.indexWhere
|
|
34
|
-
? WhereNode.
|
|
35
|
-
: WhereNode.create(
|
|
34
|
+
? WhereNode.cloneWithOperation(node.indexWhere, 'Or', operation)
|
|
35
|
+
: WhereNode.create(operation),
|
|
36
36
|
});
|
|
37
37
|
},
|
|
38
|
-
cloneWithUpdateWhere(node,
|
|
38
|
+
cloneWithUpdateWhere(node, operation) {
|
|
39
39
|
return freeze({
|
|
40
40
|
...node,
|
|
41
41
|
updateWhere: node.updateWhere
|
|
42
|
-
? WhereNode.
|
|
43
|
-
: WhereNode.create(
|
|
42
|
+
? WhereNode.cloneWithOperation(node.updateWhere, 'And', operation)
|
|
43
|
+
: WhereNode.create(operation),
|
|
44
44
|
});
|
|
45
45
|
},
|
|
46
|
-
cloneWithUpdateOrWhere(node,
|
|
46
|
+
cloneWithUpdateOrWhere(node, operation) {
|
|
47
47
|
return freeze({
|
|
48
48
|
...node,
|
|
49
49
|
updateWhere: node.updateWhere
|
|
50
|
-
? WhereNode.
|
|
51
|
-
: WhereNode.create(
|
|
50
|
+
? WhereNode.cloneWithOperation(node.updateWhere, 'Or', operation)
|
|
51
|
+
: WhereNode.create(operation),
|
|
52
52
|
});
|
|
53
53
|
},
|
|
54
54
|
});
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { FilterExpressionNode } from './operation-node-utils.js';
|
|
2
1
|
import { OperationNode } from './operation-node.js';
|
|
3
2
|
export interface OnNode extends OperationNode {
|
|
4
3
|
readonly kind: 'OnNode';
|
|
5
|
-
readonly on:
|
|
4
|
+
readonly on: OperationNode;
|
|
6
5
|
}
|
|
7
6
|
/**
|
|
8
7
|
* @internal
|
|
9
8
|
*/
|
|
10
9
|
export declare const OnNode: Readonly<{
|
|
11
10
|
is(node: OperationNode): node is OnNode;
|
|
12
|
-
create(filter:
|
|
13
|
-
|
|
11
|
+
create(filter: OperationNode): OnNode;
|
|
12
|
+
cloneWithOperation(onNode: OnNode, operator: 'And' | 'Or', operation: OperationNode): OnNode;
|
|
14
13
|
}>;
|
|
@@ -15,12 +15,12 @@ export const OnNode = freeze({
|
|
|
15
15
|
on: filter,
|
|
16
16
|
});
|
|
17
17
|
},
|
|
18
|
-
|
|
18
|
+
cloneWithOperation(onNode, operator, operation) {
|
|
19
19
|
return freeze({
|
|
20
20
|
...onNode,
|
|
21
|
-
on:
|
|
22
|
-
? AndNode.create(onNode.on,
|
|
23
|
-
: OrNode.create(onNode.on,
|
|
21
|
+
on: operator === 'And'
|
|
22
|
+
? AndNode.create(onNode.on, operation)
|
|
23
|
+
: OrNode.create(onNode.on, operation),
|
|
24
24
|
});
|
|
25
25
|
},
|
|
26
26
|
});
|
|
@@ -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';
|
|
@@ -75,6 +74,8 @@ import { OverNode } from './over-node.js';
|
|
|
75
74
|
import { PartitionByNode } from './partition-by-node.js';
|
|
76
75
|
import { PartitionByItemNode } from './partition-by-item-node.js';
|
|
77
76
|
import { SetOperationNode } from './set-operation-node.js';
|
|
77
|
+
import { BinaryOperationNode } from './binary-operation-node.js';
|
|
78
|
+
import { UnaryOperationNode } from './unary-operation-node.js';
|
|
78
79
|
/**
|
|
79
80
|
* Transforms an operation node tree into another one.
|
|
80
81
|
*
|
|
@@ -117,7 +118,6 @@ export declare class OperationNodeTransformer {
|
|
|
117
118
|
protected transformTable(node: TableNode): TableNode;
|
|
118
119
|
protected transformFrom(node: FromNode): FromNode;
|
|
119
120
|
protected transformReference(node: ReferenceNode): ReferenceNode;
|
|
120
|
-
protected transformFilter(node: FilterNode): FilterNode;
|
|
121
121
|
protected transformAnd(node: AndNode): AndNode;
|
|
122
122
|
protected transformOr(node: OrNode): OrNode;
|
|
123
123
|
protected transformValueList(node: ValueListNode): ValueListNode;
|
|
@@ -179,6 +179,8 @@ export declare class OperationNodeTransformer {
|
|
|
179
179
|
protected transformOver(node: OverNode): OverNode;
|
|
180
180
|
protected transformPartitionBy(node: PartitionByNode): PartitionByNode;
|
|
181
181
|
protected transformPartitionByItem(node: PartitionByItemNode): PartitionByItemNode;
|
|
182
|
+
protected transformBinaryOperation(node: BinaryOperationNode): BinaryOperationNode;
|
|
183
|
+
protected transformUnaryOperation(node: UnaryOperationNode): UnaryOperationNode;
|
|
182
184
|
protected transformDataType(node: DataTypeNode): DataTypeNode;
|
|
183
185
|
protected transformSelectAll(node: SelectAllNode): SelectAllNode;
|
|
184
186
|
protected transformIdentifier(node: IdentifierNode): IdentifierNode;
|
|
@@ -44,7 +44,6 @@ export class OperationNodeTransformer {
|
|
|
44
44
|
TableNode: this.transformTable.bind(this),
|
|
45
45
|
FromNode: this.transformFrom.bind(this),
|
|
46
46
|
SelectAllNode: this.transformSelectAll.bind(this),
|
|
47
|
-
FilterNode: this.transformFilter.bind(this),
|
|
48
47
|
AndNode: this.transformAnd.bind(this),
|
|
49
48
|
OrNode: this.transformOr.bind(this),
|
|
50
49
|
ValueNode: this.transformValue.bind(this),
|
|
@@ -109,6 +108,8 @@ export class OperationNodeTransformer {
|
|
|
109
108
|
PartitionByNode: this.transformPartitionBy.bind(this),
|
|
110
109
|
PartitionByItemNode: this.transformPartitionByItem.bind(this),
|
|
111
110
|
SetOperationNode: this.transformSetOperation.bind(this),
|
|
111
|
+
BinaryOperationNode: this.transformBinaryOperation.bind(this),
|
|
112
|
+
UnaryOperationNode: this.transformUnaryOperation.bind(this),
|
|
112
113
|
});
|
|
113
114
|
transformNode(node) {
|
|
114
115
|
if (!node) {
|
|
@@ -133,7 +134,7 @@ export class OperationNodeTransformer {
|
|
|
133
134
|
kind: 'SelectQueryNode',
|
|
134
135
|
from: this.transformNode(node.from),
|
|
135
136
|
selections: this.transformNodeList(node.selections),
|
|
136
|
-
|
|
137
|
+
distinctOn: this.transformNodeList(node.distinctOn),
|
|
137
138
|
joins: this.transformNodeList(node.joins),
|
|
138
139
|
groupBy: this.transformNode(node.groupBy),
|
|
139
140
|
orderBy: this.transformNode(node.orderBy),
|
|
@@ -186,14 +187,6 @@ export class OperationNodeTransformer {
|
|
|
186
187
|
column: this.transformNode(node.column),
|
|
187
188
|
});
|
|
188
189
|
}
|
|
189
|
-
transformFilter(node) {
|
|
190
|
-
return requireAllProps({
|
|
191
|
-
kind: 'FilterNode',
|
|
192
|
-
left: this.transformNode(node.left),
|
|
193
|
-
op: this.transformNode(node.op),
|
|
194
|
-
right: this.transformNode(node.right),
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
190
|
transformAnd(node) {
|
|
198
191
|
return requireAllProps({
|
|
199
192
|
kind: 'AndNode',
|
|
@@ -308,6 +301,8 @@ export class OperationNodeTransformer {
|
|
|
308
301
|
defaultTo: this.transformNode(node.defaultTo),
|
|
309
302
|
check: this.transformNode(node.check),
|
|
310
303
|
generated: this.transformNode(node.generated),
|
|
304
|
+
frontModifiers: this.transformNodeList(node.frontModifiers),
|
|
305
|
+
endModifiers: this.transformNodeList(node.endModifiers),
|
|
311
306
|
});
|
|
312
307
|
}
|
|
313
308
|
transformAddColumn(node) {
|
|
@@ -520,11 +515,7 @@ export class OperationNodeTransformer {
|
|
|
520
515
|
table: this.transformNode(node.table),
|
|
521
516
|
renameTo: this.transformNode(node.renameTo),
|
|
522
517
|
setSchema: this.transformNode(node.setSchema),
|
|
523
|
-
|
|
524
|
-
addColumn: this.transformNode(node.addColumn),
|
|
525
|
-
dropColumn: this.transformNode(node.dropColumn),
|
|
526
|
-
alterColumn: this.transformNode(node.alterColumn),
|
|
527
|
-
modifyColumn: this.transformNode(node.modifyColumn),
|
|
518
|
+
columnAlterations: this.transformNodeList(node.columnAlterations),
|
|
528
519
|
addConstraint: this.transformNode(node.addConstraint),
|
|
529
520
|
dropConstraint: this.transformNode(node.dropConstraint),
|
|
530
521
|
});
|
|
@@ -657,6 +648,7 @@ export class OperationNodeTransformer {
|
|
|
657
648
|
kind: 'AggregateFunctionNode',
|
|
658
649
|
column: this.transformNode(node.column),
|
|
659
650
|
distinct: node.distinct,
|
|
651
|
+
filter: this.transformNode(node.filter),
|
|
660
652
|
func: node.func,
|
|
661
653
|
over: this.transformNode(node.over),
|
|
662
654
|
});
|
|
@@ -680,6 +672,21 @@ export class OperationNodeTransformer {
|
|
|
680
672
|
partitionBy: this.transformNode(node.partitionBy),
|
|
681
673
|
});
|
|
682
674
|
}
|
|
675
|
+
transformBinaryOperation(node) {
|
|
676
|
+
return requireAllProps({
|
|
677
|
+
kind: 'BinaryOperationNode',
|
|
678
|
+
leftOperand: this.transformNode(node.leftOperand),
|
|
679
|
+
operator: this.transformNode(node.operator),
|
|
680
|
+
rightOperand: this.transformNode(node.rightOperand),
|
|
681
|
+
});
|
|
682
|
+
}
|
|
683
|
+
transformUnaryOperation(node) {
|
|
684
|
+
return requireAllProps({
|
|
685
|
+
kind: 'UnaryOperationNode',
|
|
686
|
+
operator: this.transformNode(node.operator),
|
|
687
|
+
operand: this.transformNode(node.operand),
|
|
688
|
+
});
|
|
689
|
+
}
|
|
683
690
|
transformDataType(node) {
|
|
684
691
|
// An Object.freezed leaf node. No need to clone.
|
|
685
692
|
return node;
|
|
@@ -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';
|
|
@@ -75,6 +74,8 @@ import { OverNode } from './over-node.js';
|
|
|
75
74
|
import { PartitionByNode } from './partition-by-node.js';
|
|
76
75
|
import { PartitionByItemNode } from './partition-by-item-node.js';
|
|
77
76
|
import { SetOperationNode } from './set-operation-node.js';
|
|
77
|
+
import { BinaryOperationNode } from './binary-operation-node.js';
|
|
78
|
+
import { UnaryOperationNode } from './unary-operation-node.js';
|
|
78
79
|
export declare abstract class OperationNodeVisitor {
|
|
79
80
|
#private;
|
|
80
81
|
protected readonly nodeStack: OperationNode[];
|
|
@@ -87,7 +88,6 @@ export declare abstract class OperationNodeVisitor {
|
|
|
87
88
|
protected abstract visitTable(node: TableNode): void;
|
|
88
89
|
protected abstract visitFrom(node: FromNode): void;
|
|
89
90
|
protected abstract visitReference(node: ReferenceNode): void;
|
|
90
|
-
protected abstract visitFilter(node: FilterNode): void;
|
|
91
91
|
protected abstract visitAnd(node: AndNode): void;
|
|
92
92
|
protected abstract visitOr(node: OrNode): void;
|
|
93
93
|
protected abstract visitValueList(node: ValueListNode): void;
|
|
@@ -156,4 +156,6 @@ export declare abstract class OperationNodeVisitor {
|
|
|
156
156
|
protected abstract visitPartitionBy(node: PartitionByNode): void;
|
|
157
157
|
protected abstract visitPartitionByItem(node: PartitionByItemNode): void;
|
|
158
158
|
protected abstract visitSetOperation(node: SetOperationNode): void;
|
|
159
|
+
protected abstract visitBinaryOperation(node: BinaryOperationNode): void;
|
|
160
|
+
protected abstract visitUnaryOperation(node: UnaryOperationNode): void;
|
|
159
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),
|
|
@@ -82,6 +81,8 @@ export class OperationNodeVisitor {
|
|
|
82
81
|
PartitionByNode: this.visitPartitionBy.bind(this),
|
|
83
82
|
PartitionByItemNode: this.visitPartitionByItem.bind(this),
|
|
84
83
|
SetOperationNode: this.visitSetOperation.bind(this),
|
|
84
|
+
BinaryOperationNode: this.visitBinaryOperation.bind(this),
|
|
85
|
+
UnaryOperationNode: this.visitUnaryOperation.bind(this),
|
|
85
86
|
});
|
|
86
87
|
visitNode = (node) => {
|
|
87
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
|
}>;
|
|
@@ -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
|
}>;
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { ColumnNode } from './column-node.js';
|
|
2
1
|
import { OperationNode } from './operation-node.js';
|
|
3
|
-
import {
|
|
2
|
+
import { SimpleReferenceExpressionNode } from './simple-reference-expression-node.js';
|
|
4
3
|
export interface PartitionByItemNode extends OperationNode {
|
|
5
4
|
readonly kind: 'PartitionByItemNode';
|
|
6
|
-
readonly partitionBy:
|
|
5
|
+
readonly partitionBy: SimpleReferenceExpressionNode;
|
|
7
6
|
}
|
|
8
7
|
/**
|
|
9
8
|
* @internal
|
|
10
9
|
*/
|
|
11
10
|
export declare const PartitionByItemNode: Readonly<{
|
|
12
11
|
is(node: OperationNode): node is PartitionByItemNode;
|
|
13
|
-
create(partitionBy:
|
|
12
|
+
create(partitionBy: SimpleReferenceExpressionNode): PartitionByItemNode;
|
|
14
13
|
}>;
|
|
@@ -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
|
}>;
|