kysely 0.25.0 → 0.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -563
- package/dist/cjs/dialect/database-introspector.d.ts +1 -1
- package/dist/cjs/dialect/mysql/mysql-dialect-config.d.ts +2 -2
- package/dist/cjs/dialect/mysql/mysql-driver.js +5 -1
- package/dist/cjs/dialect/postgres/postgres-dialect-config.d.ts +1 -1
- package/dist/cjs/dialect/postgres/postgres-introspector.js +1 -4
- package/dist/cjs/dialect/sqlite/sqlite-introspector.js +1 -1
- package/dist/cjs/driver/database-connection.d.ts +6 -0
- package/dist/cjs/driver/driver.d.ts +1 -1
- package/dist/cjs/expression/expression-builder.d.ts +207 -108
- package/dist/cjs/expression/expression-builder.js +28 -7
- package/dist/cjs/expression/expression-wrapper.d.ts +296 -5
- package/dist/cjs/expression/expression-wrapper.js +70 -2
- package/dist/cjs/helpers/postgres.d.ts +30 -18
- package/dist/cjs/helpers/postgres.js +30 -18
- package/dist/cjs/index.d.ts +6 -0
- package/dist/cjs/index.js +6 -0
- package/dist/cjs/kysely.d.ts +23 -13
- package/dist/cjs/kysely.js +13 -9
- package/dist/cjs/migration/file-migration-provider.js +2 -2
- package/dist/cjs/operation-node/alter-column-node.d.ts +2 -3
- package/dist/cjs/operation-node/alter-column-node.js +2 -7
- package/dist/cjs/operation-node/alter-table-node.d.ts +2 -2
- package/dist/cjs/operation-node/column-definition-node.d.ts +1 -1
- package/dist/cjs/operation-node/constraint-node.d.ts +1 -1
- package/dist/cjs/operation-node/create-index-node.d.ts +2 -2
- package/dist/cjs/operation-node/create-schema-node.d.ts +1 -1
- package/dist/cjs/operation-node/create-table-node.d.ts +2 -2
- package/dist/cjs/operation-node/create-type-node.d.ts +1 -1
- package/dist/cjs/operation-node/create-view-node.d.ts +1 -1
- package/dist/cjs/operation-node/data-type-node.d.ts +2 -2
- package/dist/cjs/operation-node/drop-constraint-node.d.ts +1 -1
- package/dist/cjs/operation-node/drop-index-node.d.ts +1 -1
- package/dist/cjs/operation-node/drop-schema-node.d.ts +1 -1
- package/dist/cjs/operation-node/drop-table-node.d.ts +1 -1
- package/dist/cjs/operation-node/drop-type-node.d.ts +1 -1
- package/dist/cjs/operation-node/drop-view-node.d.ts +1 -1
- package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +1 -1
- package/dist/cjs/operation-node/generated-node.d.ts +1 -1
- package/dist/cjs/operation-node/insert-query-node.d.ts +1 -1
- package/dist/cjs/operation-node/join-node.d.ts +1 -2
- package/dist/cjs/operation-node/join-node.js +0 -8
- package/dist/cjs/operation-node/json-operator-chain-node.d.ts +16 -0
- package/dist/cjs/operation-node/json-operator-chain-node.js +25 -0
- package/dist/cjs/operation-node/json-path-leg-node.d.ts +14 -0
- package/dist/cjs/operation-node/json-path-leg-node.js +19 -0
- package/dist/cjs/operation-node/json-path-node.d.ts +16 -0
- package/dist/cjs/operation-node/json-path-node.js +25 -0
- package/dist/cjs/operation-node/json-reference-node.d.ts +17 -0
- package/dist/cjs/operation-node/json-reference-node.js +25 -0
- package/dist/cjs/operation-node/on-conflict-node.d.ts +1 -1
- package/dist/cjs/operation-node/on-duplicate-key-node.d.ts +1 -1
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +8 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +33 -1
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +8 -0
- package/dist/cjs/operation-node/operation-node-visitor.js +4 -0
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/operator-node.d.ts +13 -9
- package/dist/cjs/operation-node/operator-node.js +12 -2
- package/dist/cjs/operation-node/query-node.d.ts +9 -10
- package/dist/cjs/operation-node/query-node.js +0 -8
- package/dist/cjs/operation-node/reference-node.d.ts +2 -2
- package/dist/cjs/operation-node/reference-node.js +1 -1
- package/dist/cjs/operation-node/references-node.d.ts +1 -1
- package/dist/cjs/operation-node/select-modifier-node.d.ts +1 -1
- package/dist/cjs/operation-node/select-query-node.d.ts +0 -1
- package/dist/cjs/operation-node/select-query-node.js +0 -8
- package/dist/cjs/operation-node/selection-node.d.ts +1 -1
- package/dist/cjs/operation-node/set-operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/simple-reference-expression-node.d.ts +1 -1
- package/dist/cjs/operation-node/update-query-node.d.ts +1 -1
- package/dist/cjs/operation-node/values-node.d.ts +1 -1
- package/dist/cjs/operation-node/with-node.d.ts +1 -1
- package/dist/cjs/parser/binary-operation-parser.d.ts +9 -12
- package/dist/cjs/parser/binary-operation-parser.js +40 -119
- package/dist/cjs/parser/coalesce-parser.d.ts +1 -1
- package/dist/cjs/parser/data-type-parser.d.ts +1 -1
- package/dist/cjs/parser/default-value-parser.d.ts +1 -1
- package/dist/cjs/parser/expression-parser.d.ts +5 -5
- package/dist/cjs/parser/group-by-parser.d.ts +2 -2
- package/dist/cjs/parser/insert-values-parser.d.ts +4 -4
- package/dist/cjs/parser/join-parser.d.ts +4 -4
- package/dist/cjs/parser/order-by-parser.d.ts +3 -3
- package/dist/cjs/parser/partition-by-parser.d.ts +2 -2
- package/dist/cjs/parser/reference-parser.d.ts +13 -9
- package/dist/cjs/parser/reference-parser.js +28 -16
- package/dist/cjs/parser/returning-parser.d.ts +2 -2
- package/dist/cjs/parser/select-parser.d.ts +10 -10
- package/dist/cjs/parser/table-parser.d.ts +12 -12
- package/dist/cjs/parser/unary-operation-parser.d.ts +1 -1
- package/dist/cjs/parser/update-set-parser.d.ts +3 -3
- package/dist/cjs/parser/update-set-parser.js +1 -3
- package/dist/cjs/parser/value-parser.d.ts +4 -4
- package/dist/cjs/parser/with-parser.d.ts +12 -8
- package/dist/cjs/plugin/camel-case/camel-case.d.ts +1 -1
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.d.ts +42 -0
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.js +32 -0
- package/dist/cjs/plugin/with-schema/with-schema-transformer.js +22 -6
- package/dist/cjs/query-builder/aggregate-function-builder.d.ts +5 -38
- package/dist/cjs/query-builder/aggregate-function-builder.js +4 -59
- package/dist/cjs/query-builder/case-builder.d.ts +11 -11
- package/dist/cjs/query-builder/case-builder.js +2 -2
- package/dist/cjs/query-builder/delete-query-builder.d.ts +84 -59
- package/dist/cjs/query-builder/delete-query-builder.js +1 -62
- package/dist/cjs/query-builder/delete-result.d.ts +1 -2
- package/dist/cjs/query-builder/delete-result.js +2 -8
- package/dist/cjs/query-builder/function-module.d.ts +44 -66
- package/dist/cjs/query-builder/having-interface.d.ts +2 -35
- package/dist/cjs/query-builder/insert-query-builder.d.ts +58 -47
- package/dist/cjs/query-builder/insert-query-builder.js +17 -34
- package/dist/cjs/query-builder/insert-result.d.ts +3 -4
- package/dist/cjs/query-builder/insert-result.js +5 -14
- package/dist/cjs/query-builder/join-builder.d.ts +2 -35
- package/dist/cjs/query-builder/join-builder.js +1 -56
- package/dist/cjs/query-builder/json-path-builder.d.ts +212 -0
- package/dist/cjs/query-builder/json-path-builder.js +191 -0
- package/dist/cjs/query-builder/no-result-error.d.ts +1 -1
- package/dist/cjs/query-builder/on-conflict-builder.d.ts +144 -73
- package/dist/cjs/query-builder/on-conflict-builder.js +2 -111
- package/dist/cjs/query-builder/over-builder.d.ts +2 -2
- package/dist/cjs/query-builder/over-builder.js +1 -1
- package/dist/cjs/query-builder/returning-interface.d.ts +1 -1
- package/dist/cjs/query-builder/select-query-builder.d.ts +139 -134
- package/dist/cjs/query-builder/select-query-builder.js +24 -133
- package/dist/cjs/query-builder/update-query-builder.d.ts +89 -62
- package/dist/cjs/query-builder/update-query-builder.js +3 -63
- package/dist/cjs/query-builder/update-result.d.ts +3 -3
- package/dist/cjs/query-builder/update-result.js +5 -9
- package/dist/cjs/query-builder/where-interface.d.ts +73 -38
- package/dist/cjs/query-compiler/compiled-query.d.ts +1 -1
- package/dist/cjs/query-compiler/compiled-query.js +2 -2
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +8 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +37 -2
- package/dist/cjs/query-compiler/query-compiler.d.ts +1 -1
- package/dist/cjs/query-creator.d.ts +4 -2
- package/dist/cjs/schema/alter-column-builder.d.ts +11 -5
- package/dist/cjs/schema/alter-column-builder.js +19 -21
- package/dist/cjs/schema/alter-table-builder.d.ts +0 -4
- package/dist/cjs/schema/alter-table-builder.js +2 -9
- package/dist/cjs/schema/column-definition-builder.d.ts +1 -1
- package/dist/cjs/schema/column-definition-builder.js +1 -2
- package/dist/cjs/schema/create-index-builder.js +1 -1
- package/dist/cjs/schema/create-table-builder.d.ts +2 -6
- package/dist/cjs/schema/create-table-builder.js +0 -6
- package/dist/cjs/schema/schema.d.ts +1 -2
- package/dist/cjs/schema/schema.js +1 -2
- package/dist/cjs/util/column-type.d.ts +22 -18
- package/dist/cjs/util/explainable.d.ts +1 -1
- package/dist/cjs/util/infer-result.d.ts +2 -2
- package/dist/cjs/util/log.d.ts +4 -4
- package/dist/cjs/util/require-all-props.d.ts +1 -1
- package/dist/cjs/util/type-utils.d.ts +19 -19
- package/dist/esm/dialect/database-introspector.d.ts +1 -1
- package/dist/esm/dialect/mysql/mysql-dialect-config.d.ts +2 -2
- package/dist/esm/dialect/mysql/mysql-driver.js +5 -1
- package/dist/esm/dialect/postgres/postgres-dialect-config.d.ts +1 -1
- package/dist/esm/dialect/postgres/postgres-introspector.js +1 -4
- package/dist/esm/dialect/sqlite/sqlite-introspector.js +1 -1
- package/dist/esm/driver/database-connection.d.ts +6 -0
- package/dist/esm/driver/driver.d.ts +1 -1
- package/dist/esm/expression/expression-builder.d.ts +207 -108
- package/dist/esm/expression/expression-builder.js +30 -9
- package/dist/esm/expression/expression-wrapper.d.ts +296 -5
- package/dist/esm/expression/expression-wrapper.js +67 -1
- package/dist/esm/helpers/postgres.d.ts +30 -18
- package/dist/esm/helpers/postgres.js +30 -18
- package/dist/esm/index.d.ts +6 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/kysely.d.ts +23 -13
- package/dist/esm/kysely.js +13 -9
- package/dist/esm/operation-node/alter-column-node.d.ts +2 -3
- package/dist/esm/operation-node/alter-column-node.js +2 -7
- package/dist/esm/operation-node/alter-table-node.d.ts +2 -2
- package/dist/esm/operation-node/column-definition-node.d.ts +1 -1
- package/dist/esm/operation-node/constraint-node.d.ts +1 -1
- package/dist/esm/operation-node/create-index-node.d.ts +2 -2
- package/dist/esm/operation-node/create-schema-node.d.ts +1 -1
- package/dist/esm/operation-node/create-table-node.d.ts +2 -2
- package/dist/esm/operation-node/create-type-node.d.ts +1 -1
- package/dist/esm/operation-node/create-view-node.d.ts +1 -1
- package/dist/esm/operation-node/data-type-node.d.ts +2 -2
- package/dist/esm/operation-node/drop-constraint-node.d.ts +1 -1
- package/dist/esm/operation-node/drop-index-node.d.ts +1 -1
- package/dist/esm/operation-node/drop-schema-node.d.ts +1 -1
- package/dist/esm/operation-node/drop-table-node.d.ts +1 -1
- package/dist/esm/operation-node/drop-type-node.d.ts +1 -1
- package/dist/esm/operation-node/drop-view-node.d.ts +1 -1
- package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +1 -1
- package/dist/esm/operation-node/generated-node.d.ts +1 -1
- package/dist/esm/operation-node/insert-query-node.d.ts +1 -1
- package/dist/esm/operation-node/join-node.d.ts +1 -2
- package/dist/esm/operation-node/join-node.js +0 -8
- package/dist/esm/operation-node/json-operator-chain-node.d.ts +16 -0
- package/dist/esm/operation-node/json-operator-chain-node.js +23 -0
- package/dist/esm/operation-node/json-path-leg-node.d.ts +14 -0
- package/dist/esm/operation-node/json-path-leg-node.js +17 -0
- package/dist/esm/operation-node/json-path-node.d.ts +16 -0
- package/dist/esm/operation-node/json-path-node.js +23 -0
- package/dist/esm/operation-node/json-reference-node.d.ts +17 -0
- package/dist/esm/operation-node/json-reference-node.js +23 -0
- package/dist/esm/operation-node/on-conflict-node.d.ts +1 -1
- package/dist/esm/operation-node/on-duplicate-key-node.d.ts +1 -1
- package/dist/esm/operation-node/operation-node-transformer.d.ts +8 -0
- package/dist/esm/operation-node/operation-node-transformer.js +33 -1
- package/dist/esm/operation-node/operation-node-visitor.d.ts +8 -0
- package/dist/esm/operation-node/operation-node-visitor.js +4 -0
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/operator-node.d.ts +13 -9
- package/dist/esm/operation-node/operator-node.js +10 -1
- package/dist/esm/operation-node/query-node.d.ts +9 -10
- package/dist/esm/operation-node/query-node.js +0 -8
- package/dist/esm/operation-node/reference-node.d.ts +2 -2
- package/dist/esm/operation-node/reference-node.js +1 -1
- package/dist/esm/operation-node/references-node.d.ts +1 -1
- package/dist/esm/operation-node/select-modifier-node.d.ts +1 -1
- package/dist/esm/operation-node/select-query-node.d.ts +0 -1
- package/dist/esm/operation-node/select-query-node.js +0 -8
- package/dist/esm/operation-node/selection-node.d.ts +1 -1
- package/dist/esm/operation-node/set-operation-node.d.ts +1 -1
- package/dist/esm/operation-node/simple-reference-expression-node.d.ts +1 -1
- package/dist/esm/operation-node/update-query-node.d.ts +1 -1
- package/dist/esm/operation-node/values-node.d.ts +1 -1
- package/dist/esm/operation-node/with-node.d.ts +1 -1
- package/dist/esm/parser/binary-operation-parser.d.ts +9 -12
- package/dist/esm/parser/binary-operation-parser.js +38 -114
- package/dist/esm/parser/coalesce-parser.d.ts +1 -1
- package/dist/esm/parser/data-type-parser.d.ts +1 -1
- package/dist/esm/parser/default-value-parser.d.ts +1 -1
- package/dist/esm/parser/expression-parser.d.ts +5 -5
- package/dist/esm/parser/group-by-parser.d.ts +2 -2
- package/dist/esm/parser/insert-values-parser.d.ts +4 -4
- package/dist/esm/parser/join-parser.d.ts +4 -4
- package/dist/esm/parser/order-by-parser.d.ts +3 -3
- package/dist/esm/parser/partition-by-parser.d.ts +2 -2
- package/dist/esm/parser/reference-parser.d.ts +13 -9
- package/dist/esm/parser/reference-parser.js +26 -15
- package/dist/esm/parser/returning-parser.d.ts +2 -2
- package/dist/esm/parser/select-parser.d.ts +10 -10
- package/dist/esm/parser/table-parser.d.ts +12 -12
- package/dist/esm/parser/unary-operation-parser.d.ts +1 -1
- package/dist/esm/parser/update-set-parser.d.ts +3 -3
- package/dist/esm/parser/update-set-parser.js +2 -4
- package/dist/esm/parser/value-parser.d.ts +4 -4
- package/dist/esm/parser/with-parser.d.ts +12 -8
- package/dist/esm/plugin/camel-case/camel-case.d.ts +1 -1
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.d.ts +42 -0
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.js +29 -0
- package/dist/esm/plugin/with-schema/with-schema-transformer.js +22 -6
- package/dist/esm/query-builder/aggregate-function-builder.d.ts +5 -38
- package/dist/esm/query-builder/aggregate-function-builder.js +5 -60
- package/dist/esm/query-builder/case-builder.d.ts +11 -11
- package/dist/esm/query-builder/case-builder.js +3 -3
- package/dist/esm/query-builder/delete-query-builder.d.ts +84 -59
- package/dist/esm/query-builder/delete-query-builder.js +2 -63
- package/dist/esm/query-builder/delete-result.d.ts +1 -2
- package/dist/esm/query-builder/delete-result.js +2 -8
- package/dist/esm/query-builder/function-module.d.ts +44 -66
- package/dist/esm/query-builder/having-interface.d.ts +2 -35
- package/dist/esm/query-builder/insert-query-builder.d.ts +58 -47
- package/dist/esm/query-builder/insert-query-builder.js +17 -34
- package/dist/esm/query-builder/insert-result.d.ts +3 -4
- package/dist/esm/query-builder/insert-result.js +5 -14
- package/dist/esm/query-builder/join-builder.d.ts +2 -35
- package/dist/esm/query-builder/join-builder.js +2 -57
- package/dist/esm/query-builder/json-path-builder.d.ts +212 -0
- package/dist/esm/query-builder/json-path-builder.js +186 -0
- package/dist/esm/query-builder/no-result-error.d.ts +1 -1
- package/dist/esm/query-builder/on-conflict-builder.d.ts +144 -73
- package/dist/esm/query-builder/on-conflict-builder.js +3 -112
- package/dist/esm/query-builder/over-builder.d.ts +2 -2
- package/dist/esm/query-builder/over-builder.js +1 -1
- package/dist/esm/query-builder/returning-interface.d.ts +1 -1
- package/dist/esm/query-builder/select-query-builder.d.ts +139 -134
- package/dist/esm/query-builder/select-query-builder.js +25 -134
- package/dist/esm/query-builder/update-query-builder.d.ts +89 -62
- package/dist/esm/query-builder/update-query-builder.js +4 -64
- package/dist/esm/query-builder/update-result.d.ts +3 -3
- package/dist/esm/query-builder/update-result.js +5 -9
- package/dist/esm/query-builder/where-interface.d.ts +73 -38
- package/dist/esm/query-compiler/compiled-query.d.ts +1 -1
- package/dist/esm/query-compiler/compiled-query.js +2 -2
- package/dist/esm/query-compiler/default-query-compiler.d.ts +8 -0
- package/dist/esm/query-compiler/default-query-compiler.js +37 -2
- package/dist/esm/query-compiler/query-compiler.d.ts +1 -1
- package/dist/esm/query-creator.d.ts +4 -2
- package/dist/esm/schema/alter-column-builder.d.ts +11 -5
- package/dist/esm/schema/alter-column-builder.js +19 -21
- package/dist/esm/schema/alter-table-builder.d.ts +0 -4
- package/dist/esm/schema/alter-table-builder.js +2 -9
- package/dist/esm/schema/column-definition-builder.d.ts +1 -1
- package/dist/esm/schema/column-definition-builder.js +1 -2
- package/dist/esm/schema/create-index-builder.js +2 -2
- package/dist/esm/schema/create-table-builder.d.ts +2 -6
- package/dist/esm/schema/create-table-builder.js +0 -6
- package/dist/esm/schema/schema.d.ts +1 -2
- package/dist/esm/schema/schema.js +1 -2
- package/dist/esm/util/column-type.d.ts +22 -18
- package/dist/esm/util/explainable.d.ts +1 -1
- package/dist/esm/util/infer-result.d.ts +2 -2
- package/dist/esm/util/log.d.ts +4 -4
- package/dist/esm/util/require-all-props.d.ts +1 -1
- package/dist/esm/util/type-utils.d.ts +19 -19
- package/package.json +25 -23
- package/dist/cjs/query-builder/deprecated-having-expression-builder.d.ts +0 -62
- package/dist/cjs/query-builder/deprecated-having-expression-builder.js +0 -2
- package/dist/cjs/query-builder/deprecated-on-expression-builder.d.ts +0 -62
- package/dist/cjs/query-builder/deprecated-on-expression-builder.js +0 -2
- package/dist/cjs/query-builder/deprecated-where-expression-builder.d.ts +0 -62
- package/dist/cjs/query-builder/deprecated-where-expression-builder.js +0 -2
- package/dist/esm/query-builder/deprecated-having-expression-builder.d.ts +0 -62
- package/dist/esm/query-builder/deprecated-having-expression-builder.js +0 -2
- package/dist/esm/query-builder/deprecated-on-expression-builder.d.ts +0 -62
- package/dist/esm/query-builder/deprecated-on-expression-builder.js +0 -2
- package/dist/esm/query-builder/deprecated-where-expression-builder.d.ts +0 -62
- package/dist/esm/query-builder/deprecated-where-expression-builder.js +0 -2
|
@@ -12,7 +12,6 @@ const object_utils_js_1 = require("../util/object-utils.js");
|
|
|
12
12
|
const update_result_js_1 = require("./update-result.js");
|
|
13
13
|
const no_result_error_js_1 = require("./no-result-error.js");
|
|
14
14
|
const binary_operation_parser_js_1 = require("../parser/binary-operation-parser.js");
|
|
15
|
-
const unary_operation_parser_js_1 = require("../parser/unary-operation-parser.js");
|
|
16
15
|
class UpdateQueryBuilder {
|
|
17
16
|
#props;
|
|
18
17
|
constructor(props) {
|
|
@@ -21,7 +20,7 @@ class UpdateQueryBuilder {
|
|
|
21
20
|
where(...args) {
|
|
22
21
|
return new UpdateQueryBuilder({
|
|
23
22
|
...this.#props,
|
|
24
|
-
queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, (0, binary_operation_parser_js_1.
|
|
23
|
+
queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, (0, binary_operation_parser_js_1.parseFilter)(args)),
|
|
25
24
|
});
|
|
26
25
|
}
|
|
27
26
|
whereRef(lhs, op, rhs) {
|
|
@@ -30,42 +29,6 @@ class UpdateQueryBuilder {
|
|
|
30
29
|
queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, (0, binary_operation_parser_js_1.parseReferentialComparison)(lhs, op, rhs)),
|
|
31
30
|
});
|
|
32
31
|
}
|
|
33
|
-
orWhere(...args) {
|
|
34
|
-
return new UpdateQueryBuilder({
|
|
35
|
-
...this.#props,
|
|
36
|
-
queryNode: query_node_js_1.QueryNode.cloneWithOrWhere(this.#props.queryNode, (0, binary_operation_parser_js_1.parseWhere)(args)),
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
orWhereRef(lhs, op, rhs) {
|
|
40
|
-
return new UpdateQueryBuilder({
|
|
41
|
-
...this.#props,
|
|
42
|
-
queryNode: query_node_js_1.QueryNode.cloneWithOrWhere(this.#props.queryNode, (0, binary_operation_parser_js_1.parseReferentialComparison)(lhs, op, rhs)),
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
whereExists(arg) {
|
|
46
|
-
return new UpdateQueryBuilder({
|
|
47
|
-
...this.#props,
|
|
48
|
-
queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, (0, unary_operation_parser_js_1.parseExists)(arg)),
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
whereNotExists(arg) {
|
|
52
|
-
return new UpdateQueryBuilder({
|
|
53
|
-
...this.#props,
|
|
54
|
-
queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, (0, unary_operation_parser_js_1.parseNotExists)(arg)),
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
orWhereExists(arg) {
|
|
58
|
-
return new UpdateQueryBuilder({
|
|
59
|
-
...this.#props,
|
|
60
|
-
queryNode: query_node_js_1.QueryNode.cloneWithOrWhere(this.#props.queryNode, (0, unary_operation_parser_js_1.parseExists)(arg)),
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
orWhereNotExists(arg) {
|
|
64
|
-
return new UpdateQueryBuilder({
|
|
65
|
-
...this.#props,
|
|
66
|
-
queryNode: query_node_js_1.QueryNode.cloneWithOrWhere(this.#props.queryNode, (0, unary_operation_parser_js_1.parseNotExists)(arg)),
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
32
|
clearWhere() {
|
|
70
33
|
return new UpdateQueryBuilder({
|
|
71
34
|
...this.#props,
|
|
@@ -146,12 +109,6 @@ class UpdateQueryBuilder {
|
|
|
146
109
|
$call(func) {
|
|
147
110
|
return func(this);
|
|
148
111
|
}
|
|
149
|
-
/**
|
|
150
|
-
* @deprecated Use `$call` instead
|
|
151
|
-
*/
|
|
152
|
-
call(func) {
|
|
153
|
-
return this.$call(func);
|
|
154
|
-
}
|
|
155
112
|
/**
|
|
156
113
|
* Call `func(this)` if `condition` is true.
|
|
157
114
|
*
|
|
@@ -196,12 +153,6 @@ class UpdateQueryBuilder {
|
|
|
196
153
|
...this.#props,
|
|
197
154
|
});
|
|
198
155
|
}
|
|
199
|
-
/**
|
|
200
|
-
* @deprecated Use `$if` instead
|
|
201
|
-
*/
|
|
202
|
-
if(condition, func) {
|
|
203
|
-
return this.$if(condition, func);
|
|
204
|
-
}
|
|
205
156
|
/**
|
|
206
157
|
* Change the output type of the query.
|
|
207
158
|
*
|
|
@@ -211,12 +162,6 @@ class UpdateQueryBuilder {
|
|
|
211
162
|
$castTo() {
|
|
212
163
|
return new UpdateQueryBuilder(this.#props);
|
|
213
164
|
}
|
|
214
|
-
/**
|
|
215
|
-
* @deprecated Use `$castTo` instead.
|
|
216
|
-
*/
|
|
217
|
-
castTo() {
|
|
218
|
-
return this.$castTo();
|
|
219
|
-
}
|
|
220
165
|
/**
|
|
221
166
|
* Narrows (parts of) the output type of the query.
|
|
222
167
|
*
|
|
@@ -310,12 +255,6 @@ class UpdateQueryBuilder {
|
|
|
310
255
|
$assertType() {
|
|
311
256
|
return new UpdateQueryBuilder(this.#props);
|
|
312
257
|
}
|
|
313
|
-
/**
|
|
314
|
-
* @deprecated Use `$assertType` instead.
|
|
315
|
-
*/
|
|
316
|
-
assertType() {
|
|
317
|
-
return new UpdateQueryBuilder(this.#props);
|
|
318
|
-
}
|
|
319
258
|
/**
|
|
320
259
|
* Returns a copy of this UpdateQueryBuilder instance with the given plugin installed.
|
|
321
260
|
*/
|
|
@@ -346,7 +285,8 @@ class UpdateQueryBuilder {
|
|
|
346
285
|
return [
|
|
347
286
|
new update_result_js_1.UpdateResult(
|
|
348
287
|
// TODO: remove numUpdatedOrDeletedRows.
|
|
349
|
-
|
|
288
|
+
// TODO: https://github.com/kysely-org/kysely/pull/431#discussion_r1172330899
|
|
289
|
+
result.numAffectedRows ?? result.numUpdatedOrDeletedRows ?? BigInt(0), result.numChangedRows),
|
|
350
290
|
];
|
|
351
291
|
}
|
|
352
292
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare class UpdateResult {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
readonly numUpdatedRows: bigint;
|
|
3
|
+
readonly numChangedRows?: bigint;
|
|
4
|
+
constructor(numUpdatedRows: bigint, numChangedRows: bigint | undefined);
|
|
5
5
|
}
|
|
@@ -2,15 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.UpdateResult = void 0;
|
|
4
4
|
class UpdateResult {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
return this.#numUpdatedRows;
|
|
5
|
+
numUpdatedRows;
|
|
6
|
+
numChangedRows;
|
|
7
|
+
constructor(numUpdatedRows, numChangedRows) {
|
|
8
|
+
this.numUpdatedRows = numUpdatedRows;
|
|
9
|
+
this.numChangedRows = numChangedRows;
|
|
11
10
|
}
|
|
12
11
|
}
|
|
13
12
|
exports.UpdateResult = UpdateResult;
|
|
14
|
-
Object.defineProperty(UpdateResult.prototype, 'numUpdatedRows', {
|
|
15
|
-
enumerable: true,
|
|
16
|
-
});
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { Expression } from '../expression/expression.js';
|
|
2
2
|
import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js';
|
|
3
3
|
import { ReferenceExpression } from '../parser/reference-parser.js';
|
|
4
|
-
import { ExistsExpression } from '../parser/unary-operation-parser.js';
|
|
5
4
|
import { SqlBool } from '../util/type-utils.js';
|
|
6
|
-
import {
|
|
5
|
+
import { ExpressionBuilder } from '../expression/expression-builder.js';
|
|
7
6
|
export interface WhereInterface<DB, TB extends keyof DB> {
|
|
8
7
|
/**
|
|
9
8
|
* Adds a `where` expression to the query.
|
|
@@ -14,6 +13,10 @@ export interface WhereInterface<DB, TB extends keyof DB> {
|
|
|
14
13
|
*
|
|
15
14
|
* ### Examples
|
|
16
15
|
*
|
|
16
|
+
* <!-- siteExample("where", "Simple where clause", 10) -->
|
|
17
|
+
*
|
|
18
|
+
* `where` method calls are combined with `AND`:
|
|
19
|
+
*
|
|
17
20
|
* ```ts
|
|
18
21
|
* const person = await db
|
|
19
22
|
* .selectFrom('person')
|
|
@@ -36,9 +39,65 @@ export interface WhereInterface<DB, TB extends keyof DB> {
|
|
|
36
39
|
* sql`your operator`
|
|
37
40
|
* ```
|
|
38
41
|
*
|
|
42
|
+
* <!-- siteExample("where", "Where in", 20) -->
|
|
43
|
+
*
|
|
44
|
+
* Find multiple items using a list of identifiers:
|
|
45
|
+
*
|
|
46
|
+
* ```ts
|
|
47
|
+
* const persons = await db
|
|
48
|
+
* .selectFrom('person')
|
|
49
|
+
* .selectAll()
|
|
50
|
+
* .where('id', 'in', ['1', '2', '3'])
|
|
51
|
+
* .execute()
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* The generated SQL (PostgreSQL):
|
|
55
|
+
*
|
|
56
|
+
* ```sql
|
|
57
|
+
* select * from "person" where "id" in ($1, $2, $3)
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* <!-- siteExample("where", "OR where", 30) -->
|
|
61
|
+
*
|
|
62
|
+
* To combine conditions using `OR`, you can use the expression builder:
|
|
63
|
+
*
|
|
64
|
+
* ```ts
|
|
65
|
+
* const persons = await db
|
|
66
|
+
* .selectFrom('person')
|
|
67
|
+
* .selectAll()
|
|
68
|
+
* .where(({ or, and, cmpr }) => or([
|
|
69
|
+
* and([
|
|
70
|
+
* cmpr('first_name', '=', 'Jennifer'),
|
|
71
|
+
* cmpr('last_name', '=', 'Aniston')
|
|
72
|
+
* ]),
|
|
73
|
+
* and([
|
|
74
|
+
* cmpr('first_name', '=', 'Sylvester'),
|
|
75
|
+
* cmpr('last_name', '=', 'Stallone')
|
|
76
|
+
* ])
|
|
77
|
+
* ]))
|
|
78
|
+
* .execute()
|
|
79
|
+
* ```
|
|
80
|
+
*
|
|
81
|
+
* The generated SQL (PostgreSQL):
|
|
82
|
+
*
|
|
83
|
+
* ```sql
|
|
84
|
+
* select *
|
|
85
|
+
* from "person"
|
|
86
|
+
* where (
|
|
87
|
+
* ("first_name" = $1 AND "last_name" = $2)
|
|
88
|
+
* OR
|
|
89
|
+
* ("first_name" = $3 AND "last_name" = $4)
|
|
90
|
+
* )
|
|
91
|
+
* ```
|
|
92
|
+
*
|
|
93
|
+
* <!-- siteExample("where", "Conditional where calls", 40) -->
|
|
94
|
+
*
|
|
39
95
|
* You can add expressions conditionally like this:
|
|
40
96
|
*
|
|
41
97
|
* ```ts
|
|
98
|
+
* const firstName: string | undefined = 'Jennifer'
|
|
99
|
+
* const lastName: string | undefined = 'Aniston'
|
|
100
|
+
*
|
|
42
101
|
* let query = db
|
|
43
102
|
* .selectFrom('person')
|
|
44
103
|
* .selectAll()
|
|
@@ -105,22 +164,30 @@ export interface WhereInterface<DB, TB extends keyof DB> {
|
|
|
105
164
|
* select * from "person" where "id" in ($1, $2, $3)
|
|
106
165
|
* ```
|
|
107
166
|
*
|
|
167
|
+
* <!-- siteExample("where", "Complex where clause", 50) -->
|
|
168
|
+
*
|
|
108
169
|
* For complex `where` expressions you can pass in a single callback and
|
|
109
|
-
* use the
|
|
170
|
+
* use the `ExpressionBuilder` to build your expression:
|
|
110
171
|
*
|
|
111
172
|
* ```ts
|
|
173
|
+
* const firstName = 'Jennifer'
|
|
174
|
+
* const maxAge = 60
|
|
175
|
+
*
|
|
112
176
|
* const persons = await db
|
|
113
177
|
* .selectFrom('person')
|
|
114
178
|
* .selectAll('person')
|
|
115
|
-
* .where(({ cmpr, or, and, not, exists, selectFrom
|
|
179
|
+
* .where(({ cmpr, or, and, not, exists, selectFrom }) => and([
|
|
116
180
|
* or([
|
|
117
181
|
* cmpr('first_name', '=', firstName),
|
|
118
182
|
* cmpr('age', '<', maxAge)
|
|
119
183
|
* ]),
|
|
120
184
|
* not(exists(
|
|
121
|
-
* selectFrom('pet')
|
|
185
|
+
* selectFrom('pet')
|
|
186
|
+
* .select('pet.id')
|
|
187
|
+
* .whereRef('pet.owner_id', '=', 'person.id')
|
|
122
188
|
* ))
|
|
123
189
|
* ]))
|
|
190
|
+
* .execute()
|
|
124
191
|
* ```
|
|
125
192
|
*
|
|
126
193
|
* The generated SQL (PostgreSQL):
|
|
@@ -241,38 +308,6 @@ export interface WhereInterface<DB, TB extends keyof DB> {
|
|
|
241
308
|
* from "person"
|
|
242
309
|
*/
|
|
243
310
|
whereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): WhereInterface<DB, TB>;
|
|
244
|
-
/**
|
|
245
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
246
|
-
*/
|
|
247
|
-
orWhere<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): WhereInterface<DB, TB>;
|
|
248
|
-
/**
|
|
249
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
250
|
-
*/
|
|
251
|
-
orWhere(factory: WhereExpressionFactory<DB, TB>): WhereInterface<DB, TB>;
|
|
252
|
-
/**
|
|
253
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
254
|
-
*/
|
|
255
|
-
orWhere(expression: Expression<any>): WhereInterface<DB, TB>;
|
|
256
|
-
/**
|
|
257
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
258
|
-
*/
|
|
259
|
-
orWhereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): WhereInterface<DB, TB>;
|
|
260
|
-
/**
|
|
261
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
262
|
-
*/
|
|
263
|
-
whereExists(arg: ExistsExpression<DB, TB>): WhereInterface<DB, TB>;
|
|
264
|
-
/**
|
|
265
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
266
|
-
*/
|
|
267
|
-
whereNotExists(arg: ExistsExpression<DB, TB>): WhereInterface<DB, TB>;
|
|
268
|
-
/**
|
|
269
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
270
|
-
*/
|
|
271
|
-
orWhereExists(arg: ExistsExpression<DB, TB>): WhereInterface<DB, TB>;
|
|
272
|
-
/**
|
|
273
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
274
|
-
*/
|
|
275
|
-
orWhereNotExists(arg: ExistsExpression<DB, TB>): WhereInterface<DB, TB>;
|
|
276
311
|
/**
|
|
277
312
|
* Clears all where expressions from the query.
|
|
278
313
|
*
|
|
@@ -293,4 +328,4 @@ export interface WhereInterface<DB, TB extends keyof DB> {
|
|
|
293
328
|
*/
|
|
294
329
|
clearWhere(): WhereInterface<DB, TB>;
|
|
295
330
|
}
|
|
296
|
-
export
|
|
331
|
+
export type WhereExpressionFactory<DB, TB extends keyof DB> = (eb: ExpressionBuilder<DB, TB>) => Expression<SqlBool>;
|
|
@@ -4,11 +4,11 @@ exports.CompiledQuery = void 0;
|
|
|
4
4
|
const raw_node_js_1 = require("../operation-node/raw-node.js");
|
|
5
5
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
6
6
|
exports.CompiledQuery = (0, object_utils_js_1.freeze)({
|
|
7
|
-
raw(sql) {
|
|
7
|
+
raw(sql, parameters = []) {
|
|
8
8
|
return (0, object_utils_js_1.freeze)({
|
|
9
9
|
sql,
|
|
10
10
|
query: raw_node_js_1.RawNode.createWithSql(sql),
|
|
11
|
-
parameters: (0, object_utils_js_1.freeze)(
|
|
11
|
+
parameters: (0, object_utils_js_1.freeze)(parameters),
|
|
12
12
|
});
|
|
13
13
|
},
|
|
14
14
|
});
|
|
@@ -83,6 +83,10 @@ import { UsingNode } from '../operation-node/using-node.js';
|
|
|
83
83
|
import { FunctionNode } from '../operation-node/function-node.js';
|
|
84
84
|
import { CaseNode } from '../operation-node/case-node.js';
|
|
85
85
|
import { WhenNode } from '../operation-node/when-node.js';
|
|
86
|
+
import { JSONReferenceNode } from '../operation-node/json-reference-node.js';
|
|
87
|
+
import { JSONPathNode } from '../operation-node/json-path-node.js';
|
|
88
|
+
import { JSONPathLegNode } from '../operation-node/json-path-leg-node.js';
|
|
89
|
+
import { JSONOperatorChainNode } from '../operation-node/json-operator-chain-node.js';
|
|
86
90
|
export declare class DefaultQueryCompiler extends OperationNodeVisitor implements QueryCompiler {
|
|
87
91
|
#private;
|
|
88
92
|
protected get numParameters(): number;
|
|
@@ -174,6 +178,10 @@ export declare class DefaultQueryCompiler extends OperationNodeVisitor implement
|
|
|
174
178
|
protected visitFunction(node: FunctionNode): void;
|
|
175
179
|
protected visitCase(node: CaseNode): void;
|
|
176
180
|
protected visitWhen(node: WhenNode): void;
|
|
181
|
+
protected visitJSONReference(node: JSONReferenceNode): void;
|
|
182
|
+
protected visitJSONPath(node: JSONPathNode): void;
|
|
183
|
+
protected visitJSONPathLeg(node: JSONPathLegNode): void;
|
|
184
|
+
protected visitJSONOperatorChain(node: JSONOperatorChainNode): void;
|
|
177
185
|
protected append(str: string): void;
|
|
178
186
|
protected appendValue(parameter: unknown): void;
|
|
179
187
|
protected getLeftIdentifierWrapper(): string;
|
|
@@ -230,8 +230,10 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
230
230
|
this.visitNode(node.alias);
|
|
231
231
|
}
|
|
232
232
|
visitReference(node) {
|
|
233
|
-
|
|
234
|
-
|
|
233
|
+
if (node.table) {
|
|
234
|
+
this.visitNode(node.table);
|
|
235
|
+
this.append('.');
|
|
236
|
+
}
|
|
235
237
|
this.visitNode(node.column);
|
|
236
238
|
}
|
|
237
239
|
visitSelectAll(_) {
|
|
@@ -955,6 +957,39 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
955
957
|
this.visitNode(node.result);
|
|
956
958
|
}
|
|
957
959
|
}
|
|
960
|
+
visitJSONReference(node) {
|
|
961
|
+
this.visitNode(node.reference);
|
|
962
|
+
this.visitNode(node.traversal);
|
|
963
|
+
}
|
|
964
|
+
visitJSONPath(node) {
|
|
965
|
+
if (node.inOperator) {
|
|
966
|
+
this.visitNode(node.inOperator);
|
|
967
|
+
}
|
|
968
|
+
this.append("'$");
|
|
969
|
+
for (const pathLeg of node.pathLegs) {
|
|
970
|
+
this.visitNode(pathLeg);
|
|
971
|
+
}
|
|
972
|
+
this.append("'");
|
|
973
|
+
}
|
|
974
|
+
visitJSONPathLeg(node) {
|
|
975
|
+
const isArrayLocation = node.type === 'ArrayLocation';
|
|
976
|
+
this.append(isArrayLocation ? '[' : '.');
|
|
977
|
+
this.append(String(node.value));
|
|
978
|
+
if (isArrayLocation) {
|
|
979
|
+
this.append(']');
|
|
980
|
+
}
|
|
981
|
+
}
|
|
982
|
+
visitJSONOperatorChain(node) {
|
|
983
|
+
for (let i = 0, len = node.values.length; i < len; i++) {
|
|
984
|
+
if (i === len - 1) {
|
|
985
|
+
this.visitNode(node.operator);
|
|
986
|
+
}
|
|
987
|
+
else {
|
|
988
|
+
this.append('->');
|
|
989
|
+
}
|
|
990
|
+
this.visitNode(node.values[i]);
|
|
991
|
+
}
|
|
992
|
+
}
|
|
958
993
|
append(str) {
|
|
959
994
|
this.#sql += str;
|
|
960
995
|
}
|
|
@@ -12,7 +12,7 @@ import { DropViewNode } from '../operation-node/drop-view-node.js';
|
|
|
12
12
|
import { QueryNode } from '../operation-node/query-node.js';
|
|
13
13
|
import { RawNode } from '../operation-node/raw-node.js';
|
|
14
14
|
import { CompiledQuery } from './compiled-query.js';
|
|
15
|
-
export
|
|
15
|
+
export type RootOperationNode = QueryNode | CreateTableNode | CreateIndexNode | CreateSchemaNode | CreateViewNode | DropTableNode | DropIndexNode | DropSchemaNode | DropViewNode | AlterTableNode | RawNode | CreateTypeNode | DropTypeNode;
|
|
16
16
|
/**
|
|
17
17
|
* a `QueryCompiler` compiles a query expressed as a tree of `OperationNodes` into SQL.
|
|
18
18
|
*/
|
|
@@ -201,12 +201,14 @@ export declare class QueryCreator<DB> {
|
|
|
201
201
|
*
|
|
202
202
|
* ### Examples
|
|
203
203
|
*
|
|
204
|
-
*
|
|
204
|
+
* <!-- siteExample("delete", "Single row", 10) -->
|
|
205
|
+
*
|
|
206
|
+
* Delete a single row:
|
|
205
207
|
*
|
|
206
208
|
* ```ts
|
|
207
209
|
* const result = await db
|
|
208
210
|
* .deleteFrom('person')
|
|
209
|
-
* .where('person.id', '=', 1)
|
|
211
|
+
* .where('person.id', '=', '1')
|
|
210
212
|
* .executeTakeFirst()
|
|
211
213
|
*
|
|
212
214
|
* console.log(result.numDeletedRows)
|
|
@@ -3,8 +3,8 @@ import { OperationNodeSource } from '../operation-node/operation-node-source.js'
|
|
|
3
3
|
import { DataTypeExpression } from '../parser/data-type-parser.js';
|
|
4
4
|
import { DefaultValueExpression } from '../parser/default-value-parser.js';
|
|
5
5
|
export declare class AlterColumnBuilder {
|
|
6
|
-
|
|
7
|
-
constructor(
|
|
6
|
+
#private;
|
|
7
|
+
constructor(column: string);
|
|
8
8
|
setDataType(dataType: DataTypeExpression): AlteredColumnBuilder;
|
|
9
9
|
setDefault(value: DefaultValueExpression): AlteredColumnBuilder;
|
|
10
10
|
dropDefault(): AlteredColumnBuilder;
|
|
@@ -17,7 +17,7 @@ export declare class AlterColumnBuilder {
|
|
|
17
17
|
$call<T>(func: (qb: this) => T): T;
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
|
-
* Allows us to force consumers to do
|
|
20
|
+
* Allows us to force consumers to do exactly one alteration to a column.
|
|
21
21
|
*
|
|
22
22
|
* Basically, deny the following:
|
|
23
23
|
*
|
|
@@ -25,9 +25,15 @@ export declare class AlterColumnBuilder {
|
|
|
25
25
|
* db.schema.alterTable('person').alterColumn('age', (ac) => ac)
|
|
26
26
|
* ```
|
|
27
27
|
*
|
|
28
|
+
* ```ts
|
|
29
|
+
* db.schema.alterTable('person').alterColumn('age', (ac) => ac.dropNotNull().setNotNull())
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
28
32
|
* Which would now throw a compilation error, instead of a runtime error.
|
|
29
33
|
*/
|
|
30
|
-
export declare class AlteredColumnBuilder
|
|
34
|
+
export declare class AlteredColumnBuilder implements OperationNodeSource {
|
|
35
|
+
#private;
|
|
36
|
+
constructor(alterColumnNode: AlterColumnNode);
|
|
31
37
|
toOperationNode(): AlterColumnNode;
|
|
32
38
|
}
|
|
33
|
-
export
|
|
39
|
+
export type AlterColumnBuilderCallback = (builder: AlterColumnBuilder) => AlteredColumnBuilder;
|
|
@@ -5,34 +5,24 @@ const alter_column_node_js_1 = require("../operation-node/alter-column-node.js")
|
|
|
5
5
|
const data_type_parser_js_1 = require("../parser/data-type-parser.js");
|
|
6
6
|
const default_value_parser_js_1 = require("../parser/default-value-parser.js");
|
|
7
7
|
class AlterColumnBuilder {
|
|
8
|
-
|
|
9
|
-
constructor(
|
|
10
|
-
this
|
|
8
|
+
#column;
|
|
9
|
+
constructor(column) {
|
|
10
|
+
this.#column = column;
|
|
11
11
|
}
|
|
12
12
|
setDataType(dataType) {
|
|
13
|
-
return new AlteredColumnBuilder(alter_column_node_js_1.AlterColumnNode.
|
|
14
|
-
dataType: (0, data_type_parser_js_1.parseDataTypeExpression)(dataType),
|
|
15
|
-
}));
|
|
13
|
+
return new AlteredColumnBuilder(alter_column_node_js_1.AlterColumnNode.create(this.#column, 'dataType', (0, data_type_parser_js_1.parseDataTypeExpression)(dataType)));
|
|
16
14
|
}
|
|
17
15
|
setDefault(value) {
|
|
18
|
-
return new AlteredColumnBuilder(alter_column_node_js_1.AlterColumnNode.
|
|
19
|
-
setDefault: (0, default_value_parser_js_1.parseDefaultValueExpression)(value),
|
|
20
|
-
}));
|
|
16
|
+
return new AlteredColumnBuilder(alter_column_node_js_1.AlterColumnNode.create(this.#column, 'setDefault', (0, default_value_parser_js_1.parseDefaultValueExpression)(value)));
|
|
21
17
|
}
|
|
22
18
|
dropDefault() {
|
|
23
|
-
return new AlteredColumnBuilder(alter_column_node_js_1.AlterColumnNode.
|
|
24
|
-
dropDefault: true,
|
|
25
|
-
}));
|
|
19
|
+
return new AlteredColumnBuilder(alter_column_node_js_1.AlterColumnNode.create(this.#column, 'dropDefault', true));
|
|
26
20
|
}
|
|
27
21
|
setNotNull() {
|
|
28
|
-
return new AlteredColumnBuilder(alter_column_node_js_1.AlterColumnNode.
|
|
29
|
-
setNotNull: true,
|
|
30
|
-
}));
|
|
22
|
+
return new AlteredColumnBuilder(alter_column_node_js_1.AlterColumnNode.create(this.#column, 'setNotNull', true));
|
|
31
23
|
}
|
|
32
24
|
dropNotNull() {
|
|
33
|
-
return new AlteredColumnBuilder(alter_column_node_js_1.AlterColumnNode.
|
|
34
|
-
dropNotNull: true,
|
|
35
|
-
}));
|
|
25
|
+
return new AlteredColumnBuilder(alter_column_node_js_1.AlterColumnNode.create(this.#column, 'dropNotNull', true));
|
|
36
26
|
}
|
|
37
27
|
/**
|
|
38
28
|
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
@@ -44,7 +34,7 @@ class AlterColumnBuilder {
|
|
|
44
34
|
}
|
|
45
35
|
exports.AlterColumnBuilder = AlterColumnBuilder;
|
|
46
36
|
/**
|
|
47
|
-
* Allows us to force consumers to do
|
|
37
|
+
* Allows us to force consumers to do exactly one alteration to a column.
|
|
48
38
|
*
|
|
49
39
|
* Basically, deny the following:
|
|
50
40
|
*
|
|
@@ -52,11 +42,19 @@ exports.AlterColumnBuilder = AlterColumnBuilder;
|
|
|
52
42
|
* db.schema.alterTable('person').alterColumn('age', (ac) => ac)
|
|
53
43
|
* ```
|
|
54
44
|
*
|
|
45
|
+
* ```ts
|
|
46
|
+
* db.schema.alterTable('person').alterColumn('age', (ac) => ac.dropNotNull().setNotNull())
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
55
49
|
* Which would now throw a compilation error, instead of a runtime error.
|
|
56
50
|
*/
|
|
57
|
-
class AlteredColumnBuilder
|
|
51
|
+
class AlteredColumnBuilder {
|
|
52
|
+
#alterColumnNode;
|
|
53
|
+
constructor(alterColumnNode) {
|
|
54
|
+
this.#alterColumnNode = alterColumnNode;
|
|
55
|
+
}
|
|
58
56
|
toOperationNode() {
|
|
59
|
-
return this
|
|
57
|
+
return this.#alterColumnNode;
|
|
60
58
|
}
|
|
61
59
|
}
|
|
62
60
|
exports.AlteredColumnBuilder = AlteredColumnBuilder;
|
|
@@ -55,10 +55,6 @@ export declare class AlterTableBuilder implements ColumnAlteringInterface {
|
|
|
55
55
|
* See {@link CreateTableBuilder.$call}
|
|
56
56
|
*/
|
|
57
57
|
$call<T>(func: (qb: this) => T): T;
|
|
58
|
-
/**
|
|
59
|
-
* @deprecated Use `$call` instead
|
|
60
|
-
*/
|
|
61
|
-
call<T>(func: (qb: this) => T): T;
|
|
62
58
|
}
|
|
63
59
|
export interface AlterTableBuilderProps {
|
|
64
60
|
readonly queryId: QueryId;
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AlterTableColumnAlteringBuilder = exports.AlterTableBuilder = void 0;
|
|
4
4
|
const add_column_node_js_1 = require("../operation-node/add-column-node.js");
|
|
5
|
-
const alter_column_node_js_1 = require("../operation-node/alter-column-node.js");
|
|
6
5
|
const alter_table_node_js_1 = require("../operation-node/alter-table-node.js");
|
|
7
6
|
const column_definition_node_js_1 = require("../operation-node/column-definition-node.js");
|
|
8
7
|
const drop_column_node_js_1 = require("../operation-node/drop-column-node.js");
|
|
@@ -50,7 +49,7 @@ class AlterTableBuilder {
|
|
|
50
49
|
});
|
|
51
50
|
}
|
|
52
51
|
alterColumn(column, alteration) {
|
|
53
|
-
const builder = alteration(new alter_column_builder_js_1.AlterColumnBuilder(
|
|
52
|
+
const builder = alteration(new alter_column_builder_js_1.AlterColumnBuilder(column));
|
|
54
53
|
return new AlterTableColumnAlteringBuilder({
|
|
55
54
|
...this.#props,
|
|
56
55
|
node: alter_table_node_js_1.AlterTableNode.cloneWithColumnAlteration(this.#props.node, builder.toOperationNode()),
|
|
@@ -133,12 +132,6 @@ class AlterTableBuilder {
|
|
|
133
132
|
$call(func) {
|
|
134
133
|
return func(this);
|
|
135
134
|
}
|
|
136
|
-
/**
|
|
137
|
-
* @deprecated Use `$call` instead
|
|
138
|
-
*/
|
|
139
|
-
call(func) {
|
|
140
|
-
return this.$call(func);
|
|
141
|
-
}
|
|
142
135
|
}
|
|
143
136
|
exports.AlterTableBuilder = AlterTableBuilder;
|
|
144
137
|
class AlterTableColumnAlteringBuilder {
|
|
@@ -147,7 +140,7 @@ class AlterTableColumnAlteringBuilder {
|
|
|
147
140
|
this.#props = (0, object_utils_js_1.freeze)(props);
|
|
148
141
|
}
|
|
149
142
|
alterColumn(column, alteration) {
|
|
150
|
-
const builder = alteration(new alter_column_builder_js_1.AlterColumnBuilder(
|
|
143
|
+
const builder = alteration(new alter_column_builder_js_1.AlterColumnBuilder(column));
|
|
151
144
|
return new AlterTableColumnAlteringBuilder({
|
|
152
145
|
...this.#props,
|
|
153
146
|
node: alter_table_node_js_1.AlterTableNode.cloneWithColumnAlteration(this.#props.node, builder.toOperationNode()),
|
|
@@ -212,4 +212,4 @@ export declare class ColumnDefinitionBuilder implements OperationNodeSource {
|
|
|
212
212
|
$call<T>(func: (qb: this) => T): T;
|
|
213
213
|
toOperationNode(): ColumnDefinitionNode;
|
|
214
214
|
}
|
|
215
|
-
export
|
|
215
|
+
export type ColumnDefinitionBuilderCallback = (builder: ColumnDefinitionBuilder) => ColumnDefinitionBuilder;
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ColumnDefinitionBuilder = void 0;
|
|
4
4
|
const check_constraint_node_js_1 = require("../operation-node/check-constraint-node.js");
|
|
5
|
-
const reference_node_js_1 = require("../operation-node/reference-node.js");
|
|
6
5
|
const references_node_js_1 = require("../operation-node/references-node.js");
|
|
7
6
|
const select_all_node_js_1 = require("../operation-node/select-all-node.js");
|
|
8
7
|
const reference_parser_js_1 = require("../parser/reference-parser.js");
|
|
@@ -51,7 +50,7 @@ class ColumnDefinitionBuilder {
|
|
|
51
50
|
*/
|
|
52
51
|
references(ref) {
|
|
53
52
|
const references = (0, reference_parser_js_1.parseStringReference)(ref);
|
|
54
|
-
if (!
|
|
53
|
+
if (!references.table || select_all_node_js_1.SelectAllNode.is(references.column)) {
|
|
55
54
|
throw new Error(`invalid call references('${ref}'). The reference must have format table.column or schema.table.column`);
|
|
56
55
|
}
|
|
57
56
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
@@ -150,7 +150,7 @@ class CreateIndexBuilder {
|
|
|
150
150
|
const transformer = new immediate_value_transformer_js_1.ImmediateValueTransformer();
|
|
151
151
|
return new CreateIndexBuilder({
|
|
152
152
|
...this.#props,
|
|
153
|
-
node: query_node_js_1.QueryNode.cloneWithWhere(this.#props.node, transformer.transformNode((0, binary_operation_parser_js_1.
|
|
153
|
+
node: query_node_js_1.QueryNode.cloneWithWhere(this.#props.node, transformer.transformNode((0, binary_operation_parser_js_1.parseFilter)(args))),
|
|
154
154
|
});
|
|
155
155
|
}
|
|
156
156
|
/**
|
|
@@ -238,10 +238,6 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
|
|
|
238
238
|
* ```
|
|
239
239
|
*/
|
|
240
240
|
$call<T>(func: (qb: this) => T): T;
|
|
241
|
-
/**
|
|
242
|
-
* @deprecated Use `$call` instead
|
|
243
|
-
*/
|
|
244
|
-
call<T>(func: (qb: this) => T): T;
|
|
245
241
|
toOperationNode(): CreateTableNode;
|
|
246
242
|
compile(): CompiledQuery;
|
|
247
243
|
execute(): Promise<void>;
|
|
@@ -251,5 +247,5 @@ export interface CreateTableBuilderProps {
|
|
|
251
247
|
readonly executor: QueryExecutor;
|
|
252
248
|
readonly node: CreateTableNode;
|
|
253
249
|
}
|
|
254
|
-
export
|
|
255
|
-
export
|
|
250
|
+
export type ColumnBuilderCallback = (builder: ColumnDefinitionBuilder) => ColumnDefinitionBuilder;
|
|
251
|
+
export type ForeignKeyConstraintBuilderCallback = (builder: ForeignKeyConstraintBuilder) => ForeignKeyConstraintBuilder;
|