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
|
@@ -4,7 +4,6 @@ import { OverBuilder } from './over-builder.js';
|
|
|
4
4
|
import { AliasedExpression, Expression } from '../expression/expression.js';
|
|
5
5
|
import { ReferenceExpression } from '../parser/reference-parser.js';
|
|
6
6
|
import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js';
|
|
7
|
-
import { ExistsExpression } from '../parser/unary-operation-parser.js';
|
|
8
7
|
import { WhereExpressionFactory } from './where-interface.js';
|
|
9
8
|
export declare class AggregateFunctionBuilder<DB, TB extends keyof DB, O = unknown> implements Expression<O> {
|
|
10
9
|
#private;
|
|
@@ -37,7 +36,7 @@ export declare class AggregateFunctionBuilder<DB, TB extends keyof DB, O = unkno
|
|
|
37
36
|
* const result = await db
|
|
38
37
|
* .selectFrom('person')
|
|
39
38
|
* .select(
|
|
40
|
-
* eb => eb.fn.count<number>('id').as('person_count')
|
|
39
|
+
* (eb) => eb.fn.count<number>('id').as('person_count')
|
|
41
40
|
* )
|
|
42
41
|
* .executeTakeFirstOrThrow()
|
|
43
42
|
*
|
|
@@ -80,7 +79,7 @@ export declare class AggregateFunctionBuilder<DB, TB extends keyof DB, O = unkno
|
|
|
80
79
|
*
|
|
81
80
|
* Similar to {@link WhereInterface}'s `where` method.
|
|
82
81
|
*
|
|
83
|
-
* Also see {@link
|
|
82
|
+
* Also see {@link filterWhereRef}.
|
|
84
83
|
*
|
|
85
84
|
* ### Examples
|
|
86
85
|
*
|
|
@@ -119,14 +118,6 @@ export declare class AggregateFunctionBuilder<DB, TB extends keyof DB, O = unkno
|
|
|
119
118
|
filterWhere<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): AggregateFunctionBuilder<DB, TB, O>;
|
|
120
119
|
filterWhere(factory: WhereExpressionFactory<DB, TB>): AggregateFunctionBuilder<DB, TB, O>;
|
|
121
120
|
filterWhere(expression: Expression<any>): AggregateFunctionBuilder<DB, TB, O>;
|
|
122
|
-
/**
|
|
123
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
124
|
-
*/
|
|
125
|
-
filterWhereExists(arg: ExistsExpression<DB, TB>): AggregateFunctionBuilder<DB, TB, O>;
|
|
126
|
-
/**
|
|
127
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
128
|
-
*/
|
|
129
|
-
filterWhereNotExists(arg: ExistsExpression<DB, TB>): AggregateFunctionBuilder<DB, TB, O>;
|
|
130
121
|
/**
|
|
131
122
|
* Adds a `filter` clause with a nested `where` clause after the function, where
|
|
132
123
|
* both sides of the operator are references to columns.
|
|
@@ -160,30 +151,6 @@ export declare class AggregateFunctionBuilder<DB, TB extends keyof DB, O = unkno
|
|
|
160
151
|
* ```
|
|
161
152
|
*/
|
|
162
153
|
filterWhereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): AggregateFunctionBuilder<DB, TB, O>;
|
|
163
|
-
/**
|
|
164
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
165
|
-
*/
|
|
166
|
-
orFilterWhere<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): AggregateFunctionBuilder<DB, TB, O>;
|
|
167
|
-
/**
|
|
168
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
169
|
-
*/
|
|
170
|
-
orFilterWhere(factory: WhereExpressionFactory<DB, TB>): AggregateFunctionBuilder<DB, TB, O>;
|
|
171
|
-
/**
|
|
172
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
173
|
-
*/
|
|
174
|
-
orFilterWhere(expression: Expression<any>): AggregateFunctionBuilder<DB, TB, O>;
|
|
175
|
-
/**
|
|
176
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
177
|
-
*/
|
|
178
|
-
orFilterWhereExists(arg: ExistsExpression<DB, TB>): AggregateFunctionBuilder<DB, TB, O>;
|
|
179
|
-
/**
|
|
180
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
181
|
-
*/
|
|
182
|
-
orFilterWhereNotExists(arg: ExistsExpression<DB, TB>): AggregateFunctionBuilder<DB, TB, O>;
|
|
183
|
-
/**
|
|
184
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
185
|
-
*/
|
|
186
|
-
orFilterWhereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): AggregateFunctionBuilder<DB, TB, O>;
|
|
187
154
|
/**
|
|
188
155
|
* Adds an `over` clause (window functions) after the function.
|
|
189
156
|
*
|
|
@@ -193,7 +160,7 @@ export declare class AggregateFunctionBuilder<DB, TB extends keyof DB, O = unkno
|
|
|
193
160
|
* const result = await db
|
|
194
161
|
* .selectFrom('person')
|
|
195
162
|
* .select(
|
|
196
|
-
* eb => eb.fn.avg<number>('age').over().as('average_age')
|
|
163
|
+
* (eb) => eb.fn.avg<number>('age').over().as('average_age')
|
|
197
164
|
* )
|
|
198
165
|
* .execute()
|
|
199
166
|
* ```
|
|
@@ -212,7 +179,7 @@ export declare class AggregateFunctionBuilder<DB, TB extends keyof DB, O = unkno
|
|
|
212
179
|
* const result = await db
|
|
213
180
|
* .selectFrom('person')
|
|
214
181
|
* .select(
|
|
215
|
-
* eb => eb.fn.avg<number>('age').over(
|
|
182
|
+
* (eb) => eb.fn.avg<number>('age').over(
|
|
216
183
|
* ob => ob.partitionBy('last_name').orderBy('first_name', 'asc')
|
|
217
184
|
* ).as('average_age')
|
|
218
185
|
* )
|
|
@@ -272,4 +239,4 @@ export declare class AliasedAggregateFunctionBuilder<DB, TB extends keyof DB, O
|
|
|
272
239
|
export interface AggregateFunctionBuilderProps {
|
|
273
240
|
aggregateFunctionNode: AggregateFunctionNode;
|
|
274
241
|
}
|
|
275
|
-
export
|
|
242
|
+
export type OverBuilderCallback<DB, TB extends keyof DB> = (builder: OverBuilder<DB, TB>) => OverBuilder<DB, TB>;
|
|
@@ -5,8 +5,7 @@ import { AliasNode } from '../operation-node/alias-node.js';
|
|
|
5
5
|
import { IdentifierNode } from '../operation-node/identifier-node.js';
|
|
6
6
|
import { preventAwait } from '../util/prevent-await.js';
|
|
7
7
|
import { createOverBuilder } from '../parser/parse-utils.js';
|
|
8
|
-
import { parseReferentialComparison,
|
|
9
|
-
import { parseExists, parseNotExists, } from '../parser/unary-operation-parser.js';
|
|
8
|
+
import { parseReferentialComparison, parseFilter, } from '../parser/binary-operation-parser.js';
|
|
10
9
|
export class AggregateFunctionBuilder {
|
|
11
10
|
#props;
|
|
12
11
|
constructor(props) {
|
|
@@ -26,7 +25,7 @@ export class AggregateFunctionBuilder {
|
|
|
26
25
|
* const result = await db
|
|
27
26
|
* .selectFrom('person')
|
|
28
27
|
* .select(
|
|
29
|
-
* eb => eb.fn.count<number>('id').as('person_count')
|
|
28
|
+
* (eb) => eb.fn.count<number>('id').as('person_count')
|
|
30
29
|
* )
|
|
31
30
|
* .executeTakeFirstOrThrow()
|
|
32
31
|
*
|
|
@@ -74,25 +73,7 @@ export class AggregateFunctionBuilder {
|
|
|
74
73
|
filterWhere(...args) {
|
|
75
74
|
return new AggregateFunctionBuilder({
|
|
76
75
|
...this.#props,
|
|
77
|
-
aggregateFunctionNode: AggregateFunctionNode.cloneWithFilter(this.#props.aggregateFunctionNode,
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
82
|
-
*/
|
|
83
|
-
filterWhereExists(arg) {
|
|
84
|
-
return new AggregateFunctionBuilder({
|
|
85
|
-
...this.#props,
|
|
86
|
-
aggregateFunctionNode: AggregateFunctionNode.cloneWithFilter(this.#props.aggregateFunctionNode, parseExists(arg)),
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
91
|
-
*/
|
|
92
|
-
filterWhereNotExists(arg) {
|
|
93
|
-
return new AggregateFunctionBuilder({
|
|
94
|
-
...this.#props,
|
|
95
|
-
aggregateFunctionNode: AggregateFunctionNode.cloneWithFilter(this.#props.aggregateFunctionNode, parseNotExists(arg)),
|
|
76
|
+
aggregateFunctionNode: AggregateFunctionNode.cloneWithFilter(this.#props.aggregateFunctionNode, parseFilter(args)),
|
|
96
77
|
});
|
|
97
78
|
}
|
|
98
79
|
/**
|
|
@@ -133,42 +114,6 @@ export class AggregateFunctionBuilder {
|
|
|
133
114
|
aggregateFunctionNode: AggregateFunctionNode.cloneWithFilter(this.#props.aggregateFunctionNode, parseReferentialComparison(lhs, op, rhs)),
|
|
134
115
|
});
|
|
135
116
|
}
|
|
136
|
-
/**
|
|
137
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
138
|
-
*/
|
|
139
|
-
orFilterWhere(...args) {
|
|
140
|
-
return new AggregateFunctionBuilder({
|
|
141
|
-
...this.#props,
|
|
142
|
-
aggregateFunctionNode: AggregateFunctionNode.cloneWithOrFilter(this.#props.aggregateFunctionNode, parseWhere(args)),
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
147
|
-
*/
|
|
148
|
-
orFilterWhereExists(arg) {
|
|
149
|
-
return new AggregateFunctionBuilder({
|
|
150
|
-
...this.#props,
|
|
151
|
-
aggregateFunctionNode: AggregateFunctionNode.cloneWithOrFilter(this.#props.aggregateFunctionNode, parseExists(arg)),
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
156
|
-
*/
|
|
157
|
-
orFilterWhereNotExists(arg) {
|
|
158
|
-
return new AggregateFunctionBuilder({
|
|
159
|
-
...this.#props,
|
|
160
|
-
aggregateFunctionNode: AggregateFunctionNode.cloneWithOrFilter(this.#props.aggregateFunctionNode, parseNotExists(arg)),
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
165
|
-
*/
|
|
166
|
-
orFilterWhereRef(lhs, op, rhs) {
|
|
167
|
-
return new AggregateFunctionBuilder({
|
|
168
|
-
...this.#props,
|
|
169
|
-
aggregateFunctionNode: AggregateFunctionNode.cloneWithOrFilter(this.#props.aggregateFunctionNode, parseReferentialComparison(lhs, op, rhs)),
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
117
|
/**
|
|
173
118
|
* Adds an `over` clause (window functions) after the function.
|
|
174
119
|
*
|
|
@@ -178,7 +123,7 @@ export class AggregateFunctionBuilder {
|
|
|
178
123
|
* const result = await db
|
|
179
124
|
* .selectFrom('person')
|
|
180
125
|
* .select(
|
|
181
|
-
* eb => eb.fn.avg<number>('age').over().as('average_age')
|
|
126
|
+
* (eb) => eb.fn.avg<number>('age').over().as('average_age')
|
|
182
127
|
* )
|
|
183
128
|
* .execute()
|
|
184
129
|
* ```
|
|
@@ -197,7 +142,7 @@ export class AggregateFunctionBuilder {
|
|
|
197
142
|
* const result = await db
|
|
198
143
|
* .selectFrom('person')
|
|
199
144
|
* .select(
|
|
200
|
-
* eb => eb.fn.avg<number>('age').over(
|
|
145
|
+
* (eb) => eb.fn.avg<number>('age').over(
|
|
201
146
|
* ob => ob.partitionBy('last_name').orderBy('first_name', 'asc')
|
|
202
147
|
* ).as('average_age')
|
|
203
148
|
* )
|
|
@@ -31,7 +31,7 @@ export declare class CaseThenBuilder<DB, TB extends keyof DB, W, O> {
|
|
|
31
31
|
then<O2>(expression: Expression<O2>): CaseWhenBuilder<DB, TB, W, O | O2>;
|
|
32
32
|
then<V>(value: V): CaseWhenBuilder<DB, TB, W, O | V>;
|
|
33
33
|
}
|
|
34
|
-
export declare class CaseWhenBuilder<DB, TB extends keyof DB, W, O> implements Whenable<DB, TB, W, O>, Endable<O | null> {
|
|
34
|
+
export declare class CaseWhenBuilder<DB, TB extends keyof DB, W, O> implements Whenable<DB, TB, W, O>, Endable<DB, TB, O | null> {
|
|
35
35
|
#private;
|
|
36
36
|
constructor(props: CaseBuilderProps);
|
|
37
37
|
/**
|
|
@@ -47,24 +47,24 @@ export declare class CaseWhenBuilder<DB, TB extends keyof DB, W, O> implements W
|
|
|
47
47
|
*
|
|
48
48
|
* An `else` call must be followed by an {@link Endable.end} or {@link Endable.endCase} call.
|
|
49
49
|
*/
|
|
50
|
-
else<O2>(expression: Expression<O2>): CaseEndBuilder<O | O2>;
|
|
51
|
-
else<V>(value: V): CaseEndBuilder<O | V>;
|
|
50
|
+
else<O2>(expression: Expression<O2>): CaseEndBuilder<DB, TB, O | O2>;
|
|
51
|
+
else<V>(value: V): CaseEndBuilder<DB, TB, O | V>;
|
|
52
52
|
/**
|
|
53
53
|
* Adds an `end` keyword to the case operator.
|
|
54
54
|
*
|
|
55
55
|
* `case` operators can only be used as part of a query.
|
|
56
56
|
* For a `case` statement used as part of a stored program, use {@link endCase} instead.
|
|
57
57
|
*/
|
|
58
|
-
end(): ExpressionWrapper<O | null>;
|
|
58
|
+
end(): ExpressionWrapper<DB, TB, O | null>;
|
|
59
59
|
/**
|
|
60
60
|
* Adds `end case` keywords to the case statement.
|
|
61
61
|
*
|
|
62
62
|
* `case` statements can only be used for flow control in stored programs.
|
|
63
63
|
* For a `case` operator used as part of a query, use {@link end} instead.
|
|
64
64
|
*/
|
|
65
|
-
endCase(): ExpressionWrapper<O | null>;
|
|
65
|
+
endCase(): ExpressionWrapper<DB, TB, O | null>;
|
|
66
66
|
}
|
|
67
|
-
export declare class CaseEndBuilder<O> implements Endable<O> {
|
|
67
|
+
export declare class CaseEndBuilder<DB, TB extends keyof DB, O> implements Endable<DB, TB, O> {
|
|
68
68
|
#private;
|
|
69
69
|
constructor(props: CaseBuilderProps);
|
|
70
70
|
/**
|
|
@@ -73,14 +73,14 @@ export declare class CaseEndBuilder<O> implements Endable<O> {
|
|
|
73
73
|
* `case` operators can only be used as part of a query.
|
|
74
74
|
* For a `case` statement used as part of a stored program, use {@link endCase} instead.
|
|
75
75
|
*/
|
|
76
|
-
end(): ExpressionWrapper<O>;
|
|
76
|
+
end(): ExpressionWrapper<DB, TB, O>;
|
|
77
77
|
/**
|
|
78
78
|
* Adds `end case` keywords to the case statement.
|
|
79
79
|
*
|
|
80
80
|
* `case` statements can only be used for flow control in stored programs.
|
|
81
81
|
* For a `case` operator used as part of a query, use {@link end} instead.
|
|
82
82
|
*/
|
|
83
|
-
endCase(): ExpressionWrapper<O>;
|
|
83
|
+
endCase(): ExpressionWrapper<DB, TB, O>;
|
|
84
84
|
}
|
|
85
85
|
interface Whenable<DB, TB extends keyof DB, W, O> {
|
|
86
86
|
/**
|
|
@@ -92,20 +92,20 @@ interface Whenable<DB, TB extends keyof DB, W, O> {
|
|
|
92
92
|
when(expression: Expression<W>): CaseThenBuilder<DB, TB, W, O>;
|
|
93
93
|
when(value: unknown extends W ? KyselyTypeError<'when(value) is only supported when using case(value)'> : W): CaseThenBuilder<DB, TB, W, O>;
|
|
94
94
|
}
|
|
95
|
-
interface Endable<O> {
|
|
95
|
+
interface Endable<DB, TB extends keyof DB, O> {
|
|
96
96
|
/**
|
|
97
97
|
* Adds an `end` keyword to the case operator.
|
|
98
98
|
*
|
|
99
99
|
* `case` operators can only be used as part of a query.
|
|
100
100
|
* For a `case` statement used as part of a stored program, use {@link endCase} instead.
|
|
101
101
|
*/
|
|
102
|
-
end(): ExpressionWrapper<O>;
|
|
102
|
+
end(): ExpressionWrapper<DB, TB, O>;
|
|
103
103
|
/**
|
|
104
104
|
* Adds `end case` keywords to the case statement.
|
|
105
105
|
*
|
|
106
106
|
* `case` statements can only be used for flow control in stored programs.
|
|
107
107
|
* For a `case` operator used as part of a query, use {@link end} instead.
|
|
108
108
|
*/
|
|
109
|
-
endCase(): ExpressionWrapper<O>;
|
|
109
|
+
endCase(): ExpressionWrapper<DB, TB, O>;
|
|
110
110
|
}
|
|
111
111
|
export {};
|
|
@@ -3,7 +3,7 @@ import { ExpressionWrapper } from '../expression/expression-wrapper.js';
|
|
|
3
3
|
import { freeze } from '../util/object-utils.js';
|
|
4
4
|
import { CaseNode } from '../operation-node/case-node.js';
|
|
5
5
|
import { WhenNode } from '../operation-node/when-node.js';
|
|
6
|
-
import {
|
|
6
|
+
import { parseFilter, } from '../parser/binary-operation-parser.js';
|
|
7
7
|
import { parseValueExpression } from '../parser/value-parser.js';
|
|
8
8
|
export class CaseBuilder {
|
|
9
9
|
#props;
|
|
@@ -13,7 +13,7 @@ export class CaseBuilder {
|
|
|
13
13
|
when(...args) {
|
|
14
14
|
return new CaseThenBuilder({
|
|
15
15
|
...this.#props,
|
|
16
|
-
node: CaseNode.cloneWithWhen(this.#props.node, WhenNode.create(
|
|
16
|
+
node: CaseNode.cloneWithWhen(this.#props.node, WhenNode.create(parseFilter(args))),
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
}
|
|
@@ -37,7 +37,7 @@ export class CaseWhenBuilder {
|
|
|
37
37
|
when(...args) {
|
|
38
38
|
return new CaseThenBuilder({
|
|
39
39
|
...this.#props,
|
|
40
|
-
node: CaseNode.cloneWithWhen(this.#props.node, WhenNode.create(
|
|
40
|
+
node: CaseNode.cloneWithWhen(this.#props.node, WhenNode.create(parseFilter(args))),
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
43
|
else(valueExpression) {
|
|
@@ -20,7 +20,6 @@ import { OrderByDirectionExpression, OrderByExpression } from '../parser/order-b
|
|
|
20
20
|
import { Explainable, ExplainFormat } from '../util/explainable.js';
|
|
21
21
|
import { AliasedExpression, Expression } from '../expression/expression.js';
|
|
22
22
|
import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js';
|
|
23
|
-
import { ExistsExpression } from '../parser/unary-operation-parser.js';
|
|
24
23
|
import { KyselyTypeError } from '../util/type-error.js';
|
|
25
24
|
import { Streamable } from '../util/streamable.js';
|
|
26
25
|
export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements WhereInterface<DB, TB>, ReturningInterface<DB, TB, O>, OperationNodeSource, Compilable<O>, Explainable, Streamable<O> {
|
|
@@ -35,6 +34,10 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
35
34
|
*
|
|
36
35
|
* ### Examples
|
|
37
36
|
*
|
|
37
|
+
* <!-- siteExample("where", "Simple where clause", 10) -->
|
|
38
|
+
*
|
|
39
|
+
* `where` method calls are combined with `AND`:
|
|
40
|
+
*
|
|
38
41
|
* ```ts
|
|
39
42
|
* const person = await db
|
|
40
43
|
* .selectFrom('person')
|
|
@@ -57,9 +60,65 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
57
60
|
* sql`your operator`
|
|
58
61
|
* ```
|
|
59
62
|
*
|
|
63
|
+
* <!-- siteExample("where", "Where in", 20) -->
|
|
64
|
+
*
|
|
65
|
+
* Find multiple items using a list of identifiers:
|
|
66
|
+
*
|
|
67
|
+
* ```ts
|
|
68
|
+
* const persons = await db
|
|
69
|
+
* .selectFrom('person')
|
|
70
|
+
* .selectAll()
|
|
71
|
+
* .where('id', 'in', ['1', '2', '3'])
|
|
72
|
+
* .execute()
|
|
73
|
+
* ```
|
|
74
|
+
*
|
|
75
|
+
* The generated SQL (PostgreSQL):
|
|
76
|
+
*
|
|
77
|
+
* ```sql
|
|
78
|
+
* select * from "person" where "id" in ($1, $2, $3)
|
|
79
|
+
* ```
|
|
80
|
+
*
|
|
81
|
+
* <!-- siteExample("where", "OR where", 30) -->
|
|
82
|
+
*
|
|
83
|
+
* To combine conditions using `OR`, you can use the expression builder:
|
|
84
|
+
*
|
|
85
|
+
* ```ts
|
|
86
|
+
* const persons = await db
|
|
87
|
+
* .selectFrom('person')
|
|
88
|
+
* .selectAll()
|
|
89
|
+
* .where(({ or, and, cmpr }) => or([
|
|
90
|
+
* and([
|
|
91
|
+
* cmpr('first_name', '=', 'Jennifer'),
|
|
92
|
+
* cmpr('last_name', '=', 'Aniston')
|
|
93
|
+
* ]),
|
|
94
|
+
* and([
|
|
95
|
+
* cmpr('first_name', '=', 'Sylvester'),
|
|
96
|
+
* cmpr('last_name', '=', 'Stallone')
|
|
97
|
+
* ])
|
|
98
|
+
* ]))
|
|
99
|
+
* .execute()
|
|
100
|
+
* ```
|
|
101
|
+
*
|
|
102
|
+
* The generated SQL (PostgreSQL):
|
|
103
|
+
*
|
|
104
|
+
* ```sql
|
|
105
|
+
* select *
|
|
106
|
+
* from "person"
|
|
107
|
+
* where (
|
|
108
|
+
* ("first_name" = $1 AND "last_name" = $2)
|
|
109
|
+
* OR
|
|
110
|
+
* ("first_name" = $3 AND "last_name" = $4)
|
|
111
|
+
* )
|
|
112
|
+
* ```
|
|
113
|
+
*
|
|
114
|
+
* <!-- siteExample("where", "Conditional where calls", 40) -->
|
|
115
|
+
*
|
|
60
116
|
* You can add expressions conditionally like this:
|
|
61
117
|
*
|
|
62
118
|
* ```ts
|
|
119
|
+
* const firstName: string | undefined = 'Jennifer'
|
|
120
|
+
* const lastName: string | undefined = 'Aniston'
|
|
121
|
+
*
|
|
63
122
|
* let query = db
|
|
64
123
|
* .selectFrom('person')
|
|
65
124
|
* .selectAll()
|
|
@@ -126,22 +185,30 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
126
185
|
* select * from "person" where "id" in ($1, $2, $3)
|
|
127
186
|
* ```
|
|
128
187
|
*
|
|
188
|
+
* <!-- siteExample("where", "Complex where clause", 50) -->
|
|
189
|
+
*
|
|
129
190
|
* For complex `where` expressions you can pass in a single callback and
|
|
130
|
-
* use the
|
|
191
|
+
* use the `ExpressionBuilder` to build your expression:
|
|
131
192
|
*
|
|
132
193
|
* ```ts
|
|
194
|
+
* const firstName = 'Jennifer'
|
|
195
|
+
* const maxAge = 60
|
|
196
|
+
*
|
|
133
197
|
* const persons = await db
|
|
134
198
|
* .selectFrom('person')
|
|
135
199
|
* .selectAll('person')
|
|
136
|
-
* .where(({ cmpr, or, and, not, exists, selectFrom
|
|
200
|
+
* .where(({ cmpr, or, and, not, exists, selectFrom }) => and([
|
|
137
201
|
* or([
|
|
138
202
|
* cmpr('first_name', '=', firstName),
|
|
139
203
|
* cmpr('age', '<', maxAge)
|
|
140
204
|
* ]),
|
|
141
205
|
* not(exists(
|
|
142
|
-
* selectFrom('pet')
|
|
206
|
+
* selectFrom('pet')
|
|
207
|
+
* .select('pet.id')
|
|
208
|
+
* .whereRef('pet.owner_id', '=', 'person.id')
|
|
143
209
|
* ))
|
|
144
210
|
* ]))
|
|
211
|
+
* .execute()
|
|
145
212
|
* ```
|
|
146
213
|
*
|
|
147
214
|
* The generated SQL (PostgreSQL):
|
|
@@ -262,32 +329,6 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
262
329
|
* from "person"
|
|
263
330
|
*/
|
|
264
331
|
whereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): DeleteQueryBuilder<DB, TB, O>;
|
|
265
|
-
/**
|
|
266
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
267
|
-
*/
|
|
268
|
-
orWhere<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): DeleteQueryBuilder<DB, TB, O>;
|
|
269
|
-
orWhere(factory: WhereExpressionFactory<DB, TB>): DeleteQueryBuilder<DB, TB, O>;
|
|
270
|
-
orWhere(expression: Expression<any>): DeleteQueryBuilder<DB, TB, O>;
|
|
271
|
-
/**
|
|
272
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
273
|
-
*/
|
|
274
|
-
orWhereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): DeleteQueryBuilder<DB, TB, O>;
|
|
275
|
-
/**
|
|
276
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
277
|
-
*/
|
|
278
|
-
whereExists(arg: ExistsExpression<DB, TB>): DeleteQueryBuilder<DB, TB, O>;
|
|
279
|
-
/**
|
|
280
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
281
|
-
*/
|
|
282
|
-
whereNotExists(arg: ExistsExpression<DB, TB>): DeleteQueryBuilder<DB, TB, O>;
|
|
283
|
-
/**
|
|
284
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
285
|
-
*/
|
|
286
|
-
orWhereExists(arg: ExistsExpression<DB, TB>): DeleteQueryBuilder<DB, TB, O>;
|
|
287
|
-
/**
|
|
288
|
-
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
289
|
-
*/
|
|
290
|
-
orWhereNotExists(arg: ExistsExpression<DB, TB>): DeleteQueryBuilder<DB, TB, O>;
|
|
291
332
|
/**
|
|
292
333
|
* Clears all where expressions from the query.
|
|
293
334
|
*
|
|
@@ -560,7 +601,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
560
601
|
* first_name: 'Jennifer',
|
|
561
602
|
* last_name: 'Aniston'
|
|
562
603
|
* })
|
|
563
|
-
* .returning(eb => [
|
|
604
|
+
* .returning((eb) => [
|
|
564
605
|
* 'id as id',
|
|
565
606
|
* sql<string>`concat(first_name, ' ', last_name)`.as('full_name'),
|
|
566
607
|
* eb.selectFrom('pets').select('pet.id').limit(1).as('first_pet_id')
|
|
@@ -745,10 +786,6 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
745
786
|
* ```
|
|
746
787
|
*/
|
|
747
788
|
$call<T>(func: (qb: this) => T): T;
|
|
748
|
-
/**
|
|
749
|
-
* @deprecated Use `$call` instead
|
|
750
|
-
*/
|
|
751
|
-
call<T>(func: (qb: this) => T): T;
|
|
752
789
|
/**
|
|
753
790
|
* Call `func(this)` if `condition` is true.
|
|
754
791
|
*
|
|
@@ -785,10 +822,6 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
785
822
|
* ```
|
|
786
823
|
*/
|
|
787
824
|
$if<O2>(condition: boolean, func: (qb: this) => DeleteQueryBuilder<DB, TB, O2>): O2 extends DeleteResult ? DeleteQueryBuilder<DB, TB, DeleteResult> : O2 extends O & infer E ? DeleteQueryBuilder<DB, TB, O & Partial<E>> : DeleteQueryBuilder<DB, TB, Partial<O2>>;
|
|
788
|
-
/**
|
|
789
|
-
* @deprecated Use `$if` instead
|
|
790
|
-
*/
|
|
791
|
-
if<O2>(condition: boolean, func: (qb: this) => DeleteQueryBuilder<DB, TB, O2>): O2 extends DeleteResult ? DeleteQueryBuilder<DB, TB, DeleteResult> : O2 extends O & infer E ? DeleteQueryBuilder<DB, TB, O & Partial<E>> : DeleteQueryBuilder<DB, TB, Partial<O2>>;
|
|
792
825
|
/**
|
|
793
826
|
* Change the output type of the query.
|
|
794
827
|
*
|
|
@@ -796,10 +829,6 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
796
829
|
* don't support your use case.
|
|
797
830
|
*/
|
|
798
831
|
$castTo<T>(): DeleteQueryBuilder<DB, TB, T>;
|
|
799
|
-
/**
|
|
800
|
-
* @deprecated Use `$castTo` instead.
|
|
801
|
-
*/
|
|
802
|
-
castTo<T>(): DeleteQueryBuilder<DB, TB, T>;
|
|
803
832
|
/**
|
|
804
833
|
* Narrows (parts of) the output type of the query.
|
|
805
834
|
*
|
|
@@ -884,10 +913,6 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
884
913
|
* ```
|
|
885
914
|
*/
|
|
886
915
|
$assertType<T extends O>(): O extends T ? DeleteQueryBuilder<DB, TB, T> : KyselyTypeError<`$assertType() call failed: The type passed in is not equal to the output type of the query.`>;
|
|
887
|
-
/**
|
|
888
|
-
* @deprecated Use `$assertType` instead.
|
|
889
|
-
*/
|
|
890
|
-
assertType<T extends O>(): O extends T ? DeleteQueryBuilder<DB, TB, T> : KyselyTypeError<`assertType() call failed: The type passed in is not equal to the output type of the query.`>;
|
|
891
916
|
/**
|
|
892
917
|
* Returns a copy of this DeleteQueryBuilder instance with the given plugin installed.
|
|
893
918
|
*/
|
|
@@ -983,24 +1008,24 @@ export interface DeleteQueryBuilderProps {
|
|
|
983
1008
|
readonly queryNode: DeleteQueryNode;
|
|
984
1009
|
readonly executor: QueryExecutor;
|
|
985
1010
|
}
|
|
986
|
-
export
|
|
987
|
-
|
|
988
|
-
|
|
1011
|
+
export type DeleteQueryBuilderWithInnerJoin<DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? InnerJoinedBuilder<DB, TB, O, A, DB[T]> : never : TE extends keyof DB ? DeleteQueryBuilder<DB, TB | TE, O> : TE extends AliasedExpression<infer QO, infer QA> ? InnerJoinedBuilder<DB, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? InnerJoinedBuilder<DB, TB, O, QA, QO> : never;
|
|
1012
|
+
type InnerJoinedBuilder<DB, TB extends keyof DB, O, A extends string, R> = A extends keyof DB ? DeleteQueryBuilder<InnerJoinedDB<DB, A, R>, TB | A, O> : DeleteQueryBuilder<DB & ShallowRecord<A, R>, TB | A, O>;
|
|
1013
|
+
type InnerJoinedDB<DB, A extends string, R> = DrainOuterGeneric<{
|
|
989
1014
|
[C in keyof DB | A]: C extends A ? R : C extends keyof DB ? DB[C] : never;
|
|
990
1015
|
}>;
|
|
991
|
-
export
|
|
992
|
-
|
|
993
|
-
|
|
1016
|
+
export type DeleteQueryBuilderWithLeftJoin<DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? LeftJoinedBuilder<DB, TB, O, A, DB[T]> : never : TE extends keyof DB ? LeftJoinedBuilder<DB, TB, O, TE, DB[TE]> : TE extends AliasedExpression<infer QO, infer QA> ? LeftJoinedBuilder<DB, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? LeftJoinedBuilder<DB, TB, O, QA, QO> : never;
|
|
1017
|
+
type LeftJoinedBuilder<DB, TB extends keyof DB, O, A extends keyof any, R> = A extends keyof DB ? DeleteQueryBuilder<LeftJoinedDB<DB, A, R>, TB | A, O> : DeleteQueryBuilder<DB & ShallowRecord<A, Nullable<R>>, TB | A, O>;
|
|
1018
|
+
type LeftJoinedDB<DB, A extends keyof any, R> = DrainOuterGeneric<{
|
|
994
1019
|
[C in keyof DB | A]: C extends A ? Nullable<R> : C extends keyof DB ? DB[C] : never;
|
|
995
1020
|
}>;
|
|
996
|
-
export
|
|
997
|
-
|
|
998
|
-
|
|
1021
|
+
export type DeleteQueryBuilderWithRightJoin<DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? RightJoinedBuilder<DB, TB, O, A, DB[T]> : never : TE extends keyof DB ? RightJoinedBuilder<DB, TB, O, TE, DB[TE]> : TE extends AliasedExpression<infer QO, infer QA> ? RightJoinedBuilder<DB, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? RightJoinedBuilder<DB, TB, O, QA, QO> : never;
|
|
1022
|
+
type RightJoinedBuilder<DB, TB extends keyof DB, O, A extends keyof any, R> = DeleteQueryBuilder<RightJoinedDB<DB, TB, A, R>, TB | A, O>;
|
|
1023
|
+
type RightJoinedDB<DB, TB extends keyof DB, A extends keyof any, R> = DrainOuterGeneric<{
|
|
999
1024
|
[C in keyof DB | A]: C extends A ? R : C extends TB ? Nullable<DB[C]> : C extends keyof DB ? DB[C] : never;
|
|
1000
1025
|
}>;
|
|
1001
|
-
export
|
|
1002
|
-
|
|
1003
|
-
|
|
1026
|
+
export type DeleteQueryBuilderWithFullJoin<DB, TB extends keyof DB, O, TE extends TableExpression<DB, TB>> = TE extends `${infer T} as ${infer A}` ? T extends keyof DB ? OuterJoinedBuilder<DB, TB, O, A, DB[T]> : never : TE extends keyof DB ? OuterJoinedBuilder<DB, TB, O, TE, DB[TE]> : TE extends AliasedExpression<infer QO, infer QA> ? OuterJoinedBuilder<DB, TB, O, QA, QO> : TE extends (qb: any) => AliasedExpression<infer QO, infer QA> ? OuterJoinedBuilder<DB, TB, O, QA, QO> : never;
|
|
1027
|
+
type OuterJoinedBuilder<DB, TB extends keyof DB, O, A extends keyof any, R> = DeleteQueryBuilder<OuterJoinedBuilderDB<DB, TB, A, R>, TB | A, O>;
|
|
1028
|
+
type OuterJoinedBuilderDB<DB, TB extends keyof DB, A extends keyof any, R> = DrainOuterGeneric<{
|
|
1004
1029
|
[C in keyof DB | A]: C extends A ? Nullable<R> : C extends TB ? Nullable<DB[C]> : C extends keyof DB ? DB[C] : never;
|
|
1005
1030
|
}>;
|
|
1006
1031
|
export {};
|
|
@@ -10,8 +10,7 @@ import { DeleteResult } from './delete-result.js';
|
|
|
10
10
|
import { DeleteQueryNode } from '../operation-node/delete-query-node.js';
|
|
11
11
|
import { LimitNode } from '../operation-node/limit-node.js';
|
|
12
12
|
import { parseOrderBy, } from '../parser/order-by-parser.js';
|
|
13
|
-
import {
|
|
14
|
-
import { parseExists, parseNotExists, } from '../parser/unary-operation-parser.js';
|
|
13
|
+
import { parseFilter, parseReferentialComparison, } from '../parser/binary-operation-parser.js';
|
|
15
14
|
export class DeleteQueryBuilder {
|
|
16
15
|
#props;
|
|
17
16
|
constructor(props) {
|
|
@@ -20,7 +19,7 @@ export class DeleteQueryBuilder {
|
|
|
20
19
|
where(...args) {
|
|
21
20
|
return new DeleteQueryBuilder({
|
|
22
21
|
...this.#props,
|
|
23
|
-
queryNode: QueryNode.cloneWithWhere(this.#props.queryNode,
|
|
22
|
+
queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, parseFilter(args)),
|
|
24
23
|
});
|
|
25
24
|
}
|
|
26
25
|
whereRef(lhs, op, rhs) {
|
|
@@ -29,42 +28,6 @@ export class DeleteQueryBuilder {
|
|
|
29
28
|
queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, parseReferentialComparison(lhs, op, rhs)),
|
|
30
29
|
});
|
|
31
30
|
}
|
|
32
|
-
orWhere(...args) {
|
|
33
|
-
return new DeleteQueryBuilder({
|
|
34
|
-
...this.#props,
|
|
35
|
-
queryNode: QueryNode.cloneWithOrWhere(this.#props.queryNode, parseWhere(args)),
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
orWhereRef(lhs, op, rhs) {
|
|
39
|
-
return new DeleteQueryBuilder({
|
|
40
|
-
...this.#props,
|
|
41
|
-
queryNode: QueryNode.cloneWithOrWhere(this.#props.queryNode, parseReferentialComparison(lhs, op, rhs)),
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
whereExists(arg) {
|
|
45
|
-
return new DeleteQueryBuilder({
|
|
46
|
-
...this.#props,
|
|
47
|
-
queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, parseExists(arg)),
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
whereNotExists(arg) {
|
|
51
|
-
return new DeleteQueryBuilder({
|
|
52
|
-
...this.#props,
|
|
53
|
-
queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, parseNotExists(arg)),
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
orWhereExists(arg) {
|
|
57
|
-
return new DeleteQueryBuilder({
|
|
58
|
-
...this.#props,
|
|
59
|
-
queryNode: QueryNode.cloneWithOrWhere(this.#props.queryNode, parseExists(arg)),
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
orWhereNotExists(arg) {
|
|
63
|
-
return new DeleteQueryBuilder({
|
|
64
|
-
...this.#props,
|
|
65
|
-
queryNode: QueryNode.cloneWithOrWhere(this.#props.queryNode, parseNotExists(arg)),
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
31
|
clearWhere() {
|
|
69
32
|
return new DeleteQueryBuilder({
|
|
70
33
|
...this.#props,
|
|
@@ -202,12 +165,6 @@ export class DeleteQueryBuilder {
|
|
|
202
165
|
$call(func) {
|
|
203
166
|
return func(this);
|
|
204
167
|
}
|
|
205
|
-
/**
|
|
206
|
-
* @deprecated Use `$call` instead
|
|
207
|
-
*/
|
|
208
|
-
call(func) {
|
|
209
|
-
return this.$call(func);
|
|
210
|
-
}
|
|
211
168
|
/**
|
|
212
169
|
* Call `func(this)` if `condition` is true.
|
|
213
170
|
*
|
|
@@ -251,12 +208,6 @@ export class DeleteQueryBuilder {
|
|
|
251
208
|
...this.#props,
|
|
252
209
|
});
|
|
253
210
|
}
|
|
254
|
-
/**
|
|
255
|
-
* @deprecated Use `$if` instead
|
|
256
|
-
*/
|
|
257
|
-
if(condition, func) {
|
|
258
|
-
return this.$if(condition, func);
|
|
259
|
-
}
|
|
260
211
|
/**
|
|
261
212
|
* Change the output type of the query.
|
|
262
213
|
*
|
|
@@ -266,12 +217,6 @@ export class DeleteQueryBuilder {
|
|
|
266
217
|
$castTo() {
|
|
267
218
|
return new DeleteQueryBuilder(this.#props);
|
|
268
219
|
}
|
|
269
|
-
/**
|
|
270
|
-
* @deprecated Use `$castTo` instead.
|
|
271
|
-
*/
|
|
272
|
-
castTo() {
|
|
273
|
-
return this.$castTo();
|
|
274
|
-
}
|
|
275
220
|
/**
|
|
276
221
|
* Narrows (parts of) the output type of the query.
|
|
277
222
|
*
|
|
@@ -360,12 +305,6 @@ export class DeleteQueryBuilder {
|
|
|
360
305
|
$assertType() {
|
|
361
306
|
return new DeleteQueryBuilder(this.#props);
|
|
362
307
|
}
|
|
363
|
-
/**
|
|
364
|
-
* @deprecated Use `$assertType` instead.
|
|
365
|
-
*/
|
|
366
|
-
assertType() {
|
|
367
|
-
return new DeleteQueryBuilder(this.#props);
|
|
368
|
-
}
|
|
369
308
|
/**
|
|
370
309
|
* Returns a copy of this DeleteQueryBuilder instance with the given plugin installed.
|
|
371
310
|
*/
|