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
|
@@ -21,36 +21,36 @@ exports.OnConflictNode = (0, object_utils_js_1.freeze)({
|
|
|
21
21
|
...props,
|
|
22
22
|
});
|
|
23
23
|
},
|
|
24
|
-
cloneWithIndexWhere(node,
|
|
24
|
+
cloneWithIndexWhere(node, operation) {
|
|
25
25
|
return (0, object_utils_js_1.freeze)({
|
|
26
26
|
...node,
|
|
27
27
|
indexWhere: node.indexWhere
|
|
28
|
-
? where_node_js_1.WhereNode.
|
|
29
|
-
: where_node_js_1.WhereNode.create(
|
|
28
|
+
? where_node_js_1.WhereNode.cloneWithOperation(node.indexWhere, 'And', operation)
|
|
29
|
+
: where_node_js_1.WhereNode.create(operation),
|
|
30
30
|
});
|
|
31
31
|
},
|
|
32
|
-
cloneWithIndexOrWhere(node,
|
|
32
|
+
cloneWithIndexOrWhere(node, operation) {
|
|
33
33
|
return (0, object_utils_js_1.freeze)({
|
|
34
34
|
...node,
|
|
35
35
|
indexWhere: node.indexWhere
|
|
36
|
-
? where_node_js_1.WhereNode.
|
|
37
|
-
: where_node_js_1.WhereNode.create(
|
|
36
|
+
? where_node_js_1.WhereNode.cloneWithOperation(node.indexWhere, 'Or', operation)
|
|
37
|
+
: where_node_js_1.WhereNode.create(operation),
|
|
38
38
|
});
|
|
39
39
|
},
|
|
40
|
-
cloneWithUpdateWhere(node,
|
|
40
|
+
cloneWithUpdateWhere(node, operation) {
|
|
41
41
|
return (0, object_utils_js_1.freeze)({
|
|
42
42
|
...node,
|
|
43
43
|
updateWhere: node.updateWhere
|
|
44
|
-
? where_node_js_1.WhereNode.
|
|
45
|
-
: where_node_js_1.WhereNode.create(
|
|
44
|
+
? where_node_js_1.WhereNode.cloneWithOperation(node.updateWhere, 'And', operation)
|
|
45
|
+
: where_node_js_1.WhereNode.create(operation),
|
|
46
46
|
});
|
|
47
47
|
},
|
|
48
|
-
cloneWithUpdateOrWhere(node,
|
|
48
|
+
cloneWithUpdateOrWhere(node, operation) {
|
|
49
49
|
return (0, object_utils_js_1.freeze)({
|
|
50
50
|
...node,
|
|
51
51
|
updateWhere: node.updateWhere
|
|
52
|
-
? where_node_js_1.WhereNode.
|
|
53
|
-
: where_node_js_1.WhereNode.create(
|
|
52
|
+
? where_node_js_1.WhereNode.cloneWithOperation(node.updateWhere, 'Or', operation)
|
|
53
|
+
: where_node_js_1.WhereNode.create(operation),
|
|
54
54
|
});
|
|
55
55
|
},
|
|
56
56
|
});
|
|
@@ -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
|
}>;
|
|
@@ -17,12 +17,12 @@ exports.OnNode = (0, object_utils_js_1.freeze)({
|
|
|
17
17
|
on: filter,
|
|
18
18
|
});
|
|
19
19
|
},
|
|
20
|
-
|
|
20
|
+
cloneWithOperation(onNode, operator, operation) {
|
|
21
21
|
return (0, object_utils_js_1.freeze)({
|
|
22
22
|
...onNode,
|
|
23
|
-
on:
|
|
24
|
-
? and_node_js_1.AndNode.create(onNode.on,
|
|
25
|
-
: or_node_js_1.OrNode.create(onNode.on,
|
|
23
|
+
on: operator === 'And'
|
|
24
|
+
? and_node_js_1.AndNode.create(onNode.on, operation)
|
|
25
|
+
: or_node_js_1.OrNode.create(onNode.on, operation),
|
|
26
26
|
});
|
|
27
27
|
},
|
|
28
28
|
});
|
|
@@ -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;
|
|
@@ -46,7 +46,6 @@ class OperationNodeTransformer {
|
|
|
46
46
|
TableNode: this.transformTable.bind(this),
|
|
47
47
|
FromNode: this.transformFrom.bind(this),
|
|
48
48
|
SelectAllNode: this.transformSelectAll.bind(this),
|
|
49
|
-
FilterNode: this.transformFilter.bind(this),
|
|
50
49
|
AndNode: this.transformAnd.bind(this),
|
|
51
50
|
OrNode: this.transformOr.bind(this),
|
|
52
51
|
ValueNode: this.transformValue.bind(this),
|
|
@@ -111,6 +110,8 @@ class OperationNodeTransformer {
|
|
|
111
110
|
PartitionByNode: this.transformPartitionBy.bind(this),
|
|
112
111
|
PartitionByItemNode: this.transformPartitionByItem.bind(this),
|
|
113
112
|
SetOperationNode: this.transformSetOperation.bind(this),
|
|
113
|
+
BinaryOperationNode: this.transformBinaryOperation.bind(this),
|
|
114
|
+
UnaryOperationNode: this.transformUnaryOperation.bind(this),
|
|
114
115
|
});
|
|
115
116
|
transformNode(node) {
|
|
116
117
|
if (!node) {
|
|
@@ -135,7 +136,7 @@ class OperationNodeTransformer {
|
|
|
135
136
|
kind: 'SelectQueryNode',
|
|
136
137
|
from: this.transformNode(node.from),
|
|
137
138
|
selections: this.transformNodeList(node.selections),
|
|
138
|
-
|
|
139
|
+
distinctOn: this.transformNodeList(node.distinctOn),
|
|
139
140
|
joins: this.transformNodeList(node.joins),
|
|
140
141
|
groupBy: this.transformNode(node.groupBy),
|
|
141
142
|
orderBy: this.transformNode(node.orderBy),
|
|
@@ -188,14 +189,6 @@ class OperationNodeTransformer {
|
|
|
188
189
|
column: this.transformNode(node.column),
|
|
189
190
|
});
|
|
190
191
|
}
|
|
191
|
-
transformFilter(node) {
|
|
192
|
-
return (0, require_all_props_js_1.requireAllProps)({
|
|
193
|
-
kind: 'FilterNode',
|
|
194
|
-
left: this.transformNode(node.left),
|
|
195
|
-
op: this.transformNode(node.op),
|
|
196
|
-
right: this.transformNode(node.right),
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
192
|
transformAnd(node) {
|
|
200
193
|
return (0, require_all_props_js_1.requireAllProps)({
|
|
201
194
|
kind: 'AndNode',
|
|
@@ -310,6 +303,8 @@ class OperationNodeTransformer {
|
|
|
310
303
|
defaultTo: this.transformNode(node.defaultTo),
|
|
311
304
|
check: this.transformNode(node.check),
|
|
312
305
|
generated: this.transformNode(node.generated),
|
|
306
|
+
frontModifiers: this.transformNodeList(node.frontModifiers),
|
|
307
|
+
endModifiers: this.transformNodeList(node.endModifiers),
|
|
313
308
|
});
|
|
314
309
|
}
|
|
315
310
|
transformAddColumn(node) {
|
|
@@ -522,11 +517,7 @@ class OperationNodeTransformer {
|
|
|
522
517
|
table: this.transformNode(node.table),
|
|
523
518
|
renameTo: this.transformNode(node.renameTo),
|
|
524
519
|
setSchema: this.transformNode(node.setSchema),
|
|
525
|
-
|
|
526
|
-
addColumn: this.transformNode(node.addColumn),
|
|
527
|
-
dropColumn: this.transformNode(node.dropColumn),
|
|
528
|
-
alterColumn: this.transformNode(node.alterColumn),
|
|
529
|
-
modifyColumn: this.transformNode(node.modifyColumn),
|
|
520
|
+
columnAlterations: this.transformNodeList(node.columnAlterations),
|
|
530
521
|
addConstraint: this.transformNode(node.addConstraint),
|
|
531
522
|
dropConstraint: this.transformNode(node.dropConstraint),
|
|
532
523
|
});
|
|
@@ -659,6 +650,7 @@ class OperationNodeTransformer {
|
|
|
659
650
|
kind: 'AggregateFunctionNode',
|
|
660
651
|
column: this.transformNode(node.column),
|
|
661
652
|
distinct: node.distinct,
|
|
653
|
+
filter: this.transformNode(node.filter),
|
|
662
654
|
func: node.func,
|
|
663
655
|
over: this.transformNode(node.over),
|
|
664
656
|
});
|
|
@@ -682,6 +674,21 @@ class OperationNodeTransformer {
|
|
|
682
674
|
partitionBy: this.transformNode(node.partitionBy),
|
|
683
675
|
});
|
|
684
676
|
}
|
|
677
|
+
transformBinaryOperation(node) {
|
|
678
|
+
return (0, require_all_props_js_1.requireAllProps)({
|
|
679
|
+
kind: 'BinaryOperationNode',
|
|
680
|
+
leftOperand: this.transformNode(node.leftOperand),
|
|
681
|
+
operator: this.transformNode(node.operator),
|
|
682
|
+
rightOperand: this.transformNode(node.rightOperand),
|
|
683
|
+
});
|
|
684
|
+
}
|
|
685
|
+
transformUnaryOperation(node) {
|
|
686
|
+
return (0, require_all_props_js_1.requireAllProps)({
|
|
687
|
+
kind: 'UnaryOperationNode',
|
|
688
|
+
operator: this.transformNode(node.operator),
|
|
689
|
+
operand: this.transformNode(node.operand),
|
|
690
|
+
});
|
|
691
|
+
}
|
|
685
692
|
transformDataType(node) {
|
|
686
693
|
// An Object.freezed leaf node. No need to clone.
|
|
687
694
|
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
|
}
|
|
@@ -19,7 +19,6 @@ class OperationNodeVisitor {
|
|
|
19
19
|
TableNode: this.visitTable.bind(this),
|
|
20
20
|
FromNode: this.visitFrom.bind(this),
|
|
21
21
|
SelectAllNode: this.visitSelectAll.bind(this),
|
|
22
|
-
FilterNode: this.visitFilter.bind(this),
|
|
23
22
|
AndNode: this.visitAnd.bind(this),
|
|
24
23
|
OrNode: this.visitOr.bind(this),
|
|
25
24
|
ValueNode: this.visitValue.bind(this),
|
|
@@ -84,6 +83,8 @@ class OperationNodeVisitor {
|
|
|
84
83
|
PartitionByNode: this.visitPartitionBy.bind(this),
|
|
85
84
|
PartitionByItemNode: this.visitPartitionByItem.bind(this),
|
|
86
85
|
SetOperationNode: this.visitSetOperation.bind(this),
|
|
86
|
+
BinaryOperationNode: this.visitBinaryOperation.bind(this),
|
|
87
|
+
UnaryOperationNode: this.visitUnaryOperation.bind(this),
|
|
87
88
|
});
|
|
88
89
|
visitNode = (node) => {
|
|
89
90
|
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,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OperatorNode = exports.
|
|
3
|
+
exports.OperatorNode = exports.UNARY_FILTER_OPERATORS = exports.COMPARISON_OPERATORS = void 0;
|
|
4
4
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
5
|
-
exports.
|
|
5
|
+
exports.COMPARISON_OPERATORS = [
|
|
6
6
|
'=',
|
|
7
7
|
'==',
|
|
8
8
|
'!=',
|
|
@@ -22,7 +22,6 @@ exports.OPERATORS = [
|
|
|
22
22
|
'@>',
|
|
23
23
|
'<@',
|
|
24
24
|
'?',
|
|
25
|
-
'?',
|
|
26
25
|
'?&',
|
|
27
26
|
'!<',
|
|
28
27
|
'!>',
|
|
@@ -31,8 +30,6 @@ exports.OPERATORS = [
|
|
|
31
30
|
'~',
|
|
32
31
|
'~*',
|
|
33
32
|
'!~*',
|
|
34
|
-
'exists',
|
|
35
|
-
'not exists',
|
|
36
33
|
'&&',
|
|
37
34
|
'||',
|
|
38
35
|
'@@',
|
|
@@ -40,6 +37,7 @@ exports.OPERATORS = [
|
|
|
40
37
|
'!!',
|
|
41
38
|
'<->',
|
|
42
39
|
];
|
|
40
|
+
exports.UNARY_FILTER_OPERATORS = ['exists', 'not exists'];
|
|
43
41
|
/**
|
|
44
42
|
* @internal
|
|
45
43
|
*/
|
|
@@ -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
|
}>;
|
|
@@ -18,20 +18,20 @@ exports.QueryNode = (0, object_utils_js_1.freeze)({
|
|
|
18
18
|
update_query_node_js_1.UpdateQueryNode.is(node) ||
|
|
19
19
|
select_query_node_js_1.SelectQueryNode.is(node));
|
|
20
20
|
},
|
|
21
|
-
cloneWithWhere(node,
|
|
21
|
+
cloneWithWhere(node, operation) {
|
|
22
22
|
return (0, object_utils_js_1.freeze)({
|
|
23
23
|
...node,
|
|
24
24
|
where: node.where
|
|
25
|
-
? where_node_js_1.WhereNode.
|
|
26
|
-
: where_node_js_1.WhereNode.create(
|
|
25
|
+
? where_node_js_1.WhereNode.cloneWithOperation(node.where, 'And', operation)
|
|
26
|
+
: where_node_js_1.WhereNode.create(operation),
|
|
27
27
|
});
|
|
28
28
|
},
|
|
29
|
-
cloneWithOrWhere(node,
|
|
29
|
+
cloneWithOrWhere(node, operation) {
|
|
30
30
|
return (0, object_utils_js_1.freeze)({
|
|
31
31
|
...node,
|
|
32
32
|
where: node.where
|
|
33
|
-
? where_node_js_1.WhereNode.
|
|
34
|
-
: where_node_js_1.WhereNode.create(
|
|
33
|
+
? where_node_js_1.WhereNode.cloneWithOperation(node.where, 'Or', operation)
|
|
34
|
+
: where_node_js_1.WhereNode.create(operation),
|
|
35
35
|
});
|
|
36
36
|
},
|
|
37
37
|
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,7 +6,6 @@ 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';
|
|
@@ -19,7 +18,7 @@ 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;
|
|
@@ -38,17 +37,17 @@ export interface SelectQueryNode extends OperationNode {
|
|
|
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,
|
|
49
|
+
cloneWithHaving(selectNode: SelectQueryNode, operation: OperationNode): SelectQueryNode;
|
|
50
|
+
cloneWithOrHaving(selectNode: SelectQueryNode, operation: OperationNode): SelectQueryNode;
|
|
52
51
|
cloneWithSetOperation(selectNode: SelectQueryNode, setOperation: SetOperationNode): SelectQueryNode;
|
|
53
52
|
cloneWithExplain(selectNode: SelectQueryNode, explain: ExplainNode): SelectQueryNode;
|
|
54
53
|
}>;
|
|
@@ -28,12 +28,12 @@ exports.SelectQueryNode = (0, object_utils_js_1.freeze)({
|
|
|
28
28
|
: (0, object_utils_js_1.freeze)(selections),
|
|
29
29
|
});
|
|
30
30
|
},
|
|
31
|
-
|
|
31
|
+
cloneWithDistinctOn(select, expressions) {
|
|
32
32
|
return (0, object_utils_js_1.freeze)({
|
|
33
33
|
...select,
|
|
34
|
-
|
|
35
|
-
? (0, object_utils_js_1.freeze)([...select.
|
|
36
|
-
: (0, object_utils_js_1.freeze)(
|
|
34
|
+
distinctOn: select.distinctOn
|
|
35
|
+
? (0, object_utils_js_1.freeze)([...select.distinctOn, ...expressions])
|
|
36
|
+
: (0, object_utils_js_1.freeze)(expressions),
|
|
37
37
|
});
|
|
38
38
|
},
|
|
39
39
|
cloneWithFrontModifier(select, modifier) {
|
|
@@ -80,20 +80,20 @@ exports.SelectQueryNode = (0, object_utils_js_1.freeze)({
|
|
|
80
80
|
offset,
|
|
81
81
|
});
|
|
82
82
|
},
|
|
83
|
-
cloneWithHaving(selectNode,
|
|
83
|
+
cloneWithHaving(selectNode, operation) {
|
|
84
84
|
return (0, object_utils_js_1.freeze)({
|
|
85
85
|
...selectNode,
|
|
86
86
|
having: selectNode.having
|
|
87
|
-
? having_node_js_1.HavingNode.
|
|
88
|
-
: having_node_js_1.HavingNode.create(
|
|
87
|
+
? having_node_js_1.HavingNode.cloneWithOperation(selectNode.having, 'And', operation)
|
|
88
|
+
: having_node_js_1.HavingNode.create(operation),
|
|
89
89
|
});
|
|
90
90
|
},
|
|
91
|
-
cloneWithOrHaving(selectNode,
|
|
91
|
+
cloneWithOrHaving(selectNode, operation) {
|
|
92
92
|
return (0, object_utils_js_1.freeze)({
|
|
93
93
|
...selectNode,
|
|
94
94
|
having: selectNode.having
|
|
95
|
-
? having_node_js_1.HavingNode.
|
|
96
|
-
: having_node_js_1.HavingNode.create(
|
|
95
|
+
? having_node_js_1.HavingNode.cloneWithOperation(selectNode.having, 'Or', operation)
|
|
96
|
+
: having_node_js_1.HavingNode.create(operation),
|
|
97
97
|
});
|
|
98
98
|
},
|
|
99
99
|
cloneWithSetOperation(selectNode, setOperation) {
|
|
@@ -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;
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
|
-
import { RawNode } from './raw-node.js';
|
|
3
|
-
import { SelectQueryNode } from './select-query-node.js';
|
|
4
|
-
export declare type SetOperationExpressionNode = SelectQueryNode | RawNode;
|
|
5
2
|
export declare type SetOperator = 'union' | 'intersect' | 'except';
|
|
6
3
|
export interface SetOperationNode extends OperationNode {
|
|
7
4
|
kind: 'SetOperationNode';
|
|
8
5
|
operator: SetOperator;
|
|
9
|
-
expression:
|
|
6
|
+
expression: OperationNode;
|
|
10
7
|
all: boolean;
|
|
11
8
|
}
|
|
12
9
|
/**
|
|
@@ -14,5 +11,5 @@ export interface SetOperationNode extends OperationNode {
|
|
|
14
11
|
*/
|
|
15
12
|
export declare const SetOperationNode: Readonly<{
|
|
16
13
|
is(node: OperationNode): node is SetOperationNode;
|
|
17
|
-
create(operator: SetOperator, expression:
|
|
14
|
+
create(operator: SetOperator, expression: OperationNode, all: boolean): SetOperationNode;
|
|
18
15
|
}>;
|
package/dist/cjs/operation-node/{operation-node-utils.js → simple-reference-expression-node.js}
RENAMED
|
File without changes
|
|
@@ -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
|
+
}>;
|