kysely 0.23.5 → 0.24.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 +46 -24
- package/dist/cjs/dialect/mysql/mysql-adapter.js +2 -2
- package/dist/cjs/dialect/mysql/mysql-driver.d.ts +1 -1
- package/dist/cjs/dialect/mysql/mysql-driver.js +1 -1
- package/dist/cjs/dialect/postgres/postgres-adapter.js +1 -1
- package/dist/cjs/dialect/sqlite/sqlite-dialect.d.ts +1 -0
- package/dist/cjs/dialect/sqlite/sqlite-dialect.js +1 -0
- package/dist/cjs/driver/runtime-driver.js +4 -2
- package/dist/cjs/expression/expression-builder.d.ts +386 -0
- package/dist/cjs/expression/expression-builder.js +92 -0
- package/dist/cjs/expression/expression-wrapper.d.ts +92 -0
- package/dist/cjs/expression/expression-wrapper.js +54 -0
- package/dist/cjs/expression/expression.d.ts +1 -1
- package/dist/cjs/helpers/postgres.d.ts +133 -0
- package/dist/cjs/helpers/postgres.js +141 -0
- package/dist/cjs/index.d.ts +4 -3
- package/dist/cjs/index.js +4 -2
- package/dist/cjs/kysely.d.ts +10 -0
- package/dist/cjs/kysely.js +12 -1
- package/dist/cjs/migration/file-migration-provider.d.ts +5 -2
- package/dist/cjs/migration/migrator.d.ts +5 -2
- package/dist/cjs/operation-node/aggregate-function-node.d.ts +3 -3
- package/dist/cjs/operation-node/create-index-node.d.ts +2 -0
- package/dist/cjs/operation-node/delete-query-node.d.ts +0 -1
- package/dist/cjs/operation-node/delete-query-node.js +0 -6
- package/dist/cjs/operation-node/function-node.d.ts +13 -0
- package/dist/cjs/operation-node/function-node.js +19 -0
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +2 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +9 -0
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +2 -0
- package/dist/cjs/operation-node/operation-node-visitor.js +1 -0
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/operator-node.d.ts +13 -2
- package/dist/cjs/operation-node/operator-node.js +38 -3
- package/dist/cjs/operation-node/query-node.d.ts +25 -8
- package/dist/cjs/operation-node/query-node.js +9 -2
- package/dist/cjs/operation-node/select-query-node.d.ts +0 -1
- package/dist/cjs/operation-node/select-query-node.js +0 -6
- package/dist/cjs/operation-node/update-query-node.d.ts +0 -1
- package/dist/cjs/operation-node/update-query-node.js +0 -6
- package/dist/cjs/parser/binary-operation-parser.d.ts +9 -10
- package/dist/cjs/parser/binary-operation-parser.js +89 -39
- package/dist/cjs/parser/coalesce-parser.d.ts +0 -2
- package/dist/cjs/parser/coalesce-parser.js +0 -9
- package/dist/cjs/parser/expression-parser.d.ts +7 -3
- package/dist/cjs/parser/expression-parser.js +3 -3
- package/dist/cjs/parser/group-by-parser.d.ts +3 -2
- package/dist/cjs/parser/group-by-parser.js +3 -0
- package/dist/cjs/parser/insert-values-parser.d.ts +4 -1
- package/dist/cjs/parser/insert-values-parser.js +19 -13
- package/dist/cjs/parser/join-parser.js +1 -1
- package/dist/cjs/parser/parse-utils.d.ts +0 -2
- package/dist/cjs/parser/parse-utils.js +1 -8
- package/dist/cjs/parser/returning-parser.d.ts +2 -1
- package/dist/cjs/parser/select-parser.d.ts +5 -13
- package/dist/cjs/parser/select-parser.js +8 -4
- package/dist/cjs/parser/table-parser.d.ts +5 -3
- package/dist/cjs/parser/unary-operation-parser.d.ts +5 -2
- package/dist/cjs/parser/unary-operation-parser.js +9 -8
- package/dist/cjs/parser/update-set-parser.d.ts +4 -1
- package/dist/cjs/parser/update-set-parser.js +9 -4
- package/dist/cjs/parser/value-parser.d.ts +5 -0
- package/dist/cjs/parser/value-parser.js +1 -3
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +1 -1
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
- package/dist/cjs/query-builder/aggregate-function-builder.d.ts +40 -113
- package/dist/cjs/query-builder/aggregate-function-builder.js +23 -63
- package/dist/cjs/query-builder/delete-query-builder.d.ts +220 -201
- package/dist/cjs/query-builder/delete-query-builder.js +21 -27
- package/dist/cjs/query-builder/delete-result.js +3 -0
- package/dist/cjs/query-builder/deprecated-having-expression-builder.d.ts +62 -0
- package/dist/cjs/query-builder/deprecated-having-expression-builder.js +2 -0
- package/dist/cjs/query-builder/deprecated-on-expression-builder.d.ts +62 -0
- package/dist/cjs/query-builder/deprecated-on-expression-builder.js +2 -0
- package/dist/cjs/query-builder/deprecated-where-expression-builder.d.ts +62 -0
- package/dist/cjs/query-builder/deprecated-where-expression-builder.js +2 -0
- package/dist/cjs/query-builder/function-module.d.ts +40 -12
- package/dist/cjs/query-builder/function-module.js +43 -329
- package/dist/cjs/query-builder/having-interface.d.ts +19 -16
- package/dist/cjs/query-builder/insert-query-builder.d.ts +75 -26
- package/dist/cjs/query-builder/insert-query-builder.js +21 -29
- package/dist/cjs/query-builder/insert-result.js +3 -0
- package/dist/cjs/query-builder/join-builder.d.ts +23 -26
- package/dist/cjs/query-builder/join-builder.js +17 -22
- package/dist/cjs/query-builder/no-result-error.d.ts +1 -0
- package/dist/cjs/query-builder/no-result-error.js +5 -1
- package/dist/cjs/query-builder/on-conflict-builder.d.ts +158 -276
- package/dist/cjs/query-builder/on-conflict-builder.js +52 -36
- package/dist/cjs/query-builder/over-builder.d.ts +5 -0
- package/dist/cjs/query-builder/over-builder.js +7 -0
- package/dist/cjs/query-builder/returning-interface.d.ts +2 -2
- package/dist/cjs/query-builder/select-query-builder.d.ts +148 -237
- package/dist/cjs/query-builder/select-query-builder.js +333 -78
- package/dist/cjs/query-builder/update-query-builder.d.ts +145 -213
- package/dist/cjs/query-builder/update-query-builder.js +21 -115
- package/dist/cjs/query-builder/update-result.js +3 -0
- package/dist/cjs/query-builder/where-interface.d.ts +71 -184
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +3 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +17 -1
- package/dist/cjs/query-creator.d.ts +9 -2
- package/dist/cjs/query-creator.js +1 -24
- package/dist/cjs/query-executor/query-executor.d.ts +3 -3
- package/dist/cjs/raw-builder/raw-builder.d.ts +5 -3
- package/dist/cjs/raw-builder/raw-builder.js +13 -7
- package/dist/cjs/raw-builder/sql.d.ts +17 -9
- package/dist/cjs/raw-builder/sql.js +8 -2
- package/dist/cjs/schema/alter-column-builder.d.ts +5 -0
- package/dist/cjs/schema/alter-column-builder.js +7 -0
- package/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.d.ts +5 -0
- package/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.js +7 -0
- package/dist/cjs/schema/alter-table-drop-constraint-builder.d.ts +5 -0
- package/dist/cjs/schema/alter-table-drop-constraint-builder.js +7 -0
- package/dist/cjs/schema/column-definition-builder.d.ts +6 -1
- package/dist/cjs/schema/column-definition-builder.js +8 -1
- package/dist/cjs/schema/create-index-builder.d.ts +51 -9
- package/dist/cjs/schema/create-index-builder.js +17 -0
- package/dist/cjs/schema/create-schema-builder.d.ts +5 -0
- package/dist/cjs/schema/create-schema-builder.js +7 -0
- package/dist/cjs/schema/create-table-builder.d.ts +3 -1
- package/dist/cjs/schema/create-table-builder.js +3 -1
- package/dist/cjs/schema/create-type-builder.d.ts +5 -0
- package/dist/cjs/schema/create-type-builder.js +7 -0
- package/dist/cjs/schema/create-view-builder.d.ts +5 -0
- package/dist/cjs/schema/create-view-builder.js +7 -0
- package/dist/cjs/schema/drop-index-builder.d.ts +5 -0
- package/dist/cjs/schema/drop-index-builder.js +7 -0
- package/dist/cjs/schema/drop-schema-builder.d.ts +5 -0
- package/dist/cjs/schema/drop-schema-builder.js +7 -0
- package/dist/cjs/schema/drop-table-builder.d.ts +5 -0
- package/dist/cjs/schema/drop-table-builder.js +7 -0
- package/dist/cjs/schema/drop-type-builder.d.ts +5 -0
- package/dist/cjs/schema/drop-type-builder.js +7 -0
- package/dist/cjs/schema/drop-view-builder.d.ts +5 -0
- package/dist/cjs/schema/drop-view-builder.js +7 -0
- package/dist/cjs/schema/foreign-key-constraint-builder.d.ts +5 -0
- package/dist/cjs/schema/foreign-key-constraint-builder.js +7 -0
- package/dist/cjs/util/compilable.d.ts +1 -0
- package/dist/cjs/util/compilable.js +6 -0
- package/dist/cjs/util/explainable.d.ts +35 -0
- package/dist/cjs/util/log.d.ts +2 -0
- package/dist/cjs/util/object-utils.js +1 -1
- package/dist/cjs/util/streamable.d.ts +29 -0
- package/dist/cjs/util/streamable.js +2 -0
- package/dist/cjs/util/type-utils.d.ts +1 -0
- package/dist/esm/dialect/mysql/mysql-adapter.js +2 -2
- package/dist/esm/dialect/mysql/mysql-driver.d.ts +1 -1
- package/dist/esm/dialect/mysql/mysql-driver.js +1 -1
- package/dist/esm/dialect/postgres/postgres-adapter.js +1 -1
- package/dist/esm/dialect/sqlite/sqlite-dialect.d.ts +1 -0
- package/dist/esm/dialect/sqlite/sqlite-dialect.js +1 -0
- package/dist/esm/driver/runtime-driver.js +4 -2
- package/dist/esm/expression/expression-builder.d.ts +386 -0
- package/dist/esm/expression/expression-builder.js +88 -0
- package/dist/esm/expression/expression-wrapper.d.ts +92 -0
- package/dist/esm/expression/expression-wrapper.js +50 -0
- package/dist/esm/expression/expression.d.ts +1 -1
- package/dist/esm/helpers/postgres.d.ts +133 -0
- package/dist/esm/helpers/postgres.js +136 -0
- package/dist/esm/index.d.ts +4 -3
- package/dist/esm/index.js +2 -1
- package/dist/esm/kysely.d.ts +10 -0
- package/dist/esm/kysely.js +13 -2
- package/dist/esm/migration/file-migration-provider.d.ts +5 -2
- package/dist/esm/migration/migrator.d.ts +5 -2
- package/dist/esm/operation-node/aggregate-function-node.d.ts +3 -3
- package/dist/esm/operation-node/create-index-node.d.ts +2 -0
- package/dist/esm/operation-node/delete-query-node.d.ts +0 -1
- package/dist/esm/operation-node/delete-query-node.js +0 -6
- package/dist/esm/operation-node/function-node.d.ts +13 -0
- package/dist/esm/operation-node/function-node.js +17 -0
- package/dist/esm/operation-node/operation-node-transformer.d.ts +2 -0
- package/dist/esm/operation-node/operation-node-transformer.js +9 -0
- package/dist/esm/operation-node/operation-node-visitor.d.ts +2 -0
- package/dist/esm/operation-node/operation-node-visitor.js +1 -0
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/operator-node.d.ts +13 -2
- package/dist/esm/operation-node/operator-node.js +34 -3
- package/dist/esm/operation-node/query-node.d.ts +25 -8
- package/dist/esm/operation-node/query-node.js +9 -2
- package/dist/esm/operation-node/select-query-node.d.ts +0 -1
- package/dist/esm/operation-node/select-query-node.js +0 -6
- package/dist/esm/operation-node/update-query-node.d.ts +0 -1
- package/dist/esm/operation-node/update-query-node.js +0 -6
- package/dist/esm/parser/binary-operation-parser.d.ts +9 -10
- package/dist/esm/parser/binary-operation-parser.js +85 -37
- package/dist/esm/parser/coalesce-parser.d.ts +0 -2
- package/dist/esm/parser/coalesce-parser.js +1 -7
- package/dist/esm/parser/expression-parser.d.ts +7 -3
- package/dist/esm/parser/expression-parser.js +3 -3
- package/dist/esm/parser/group-by-parser.d.ts +3 -2
- package/dist/esm/parser/group-by-parser.js +3 -0
- package/dist/esm/parser/insert-values-parser.d.ts +4 -1
- package/dist/esm/parser/insert-values-parser.js +18 -12
- package/dist/esm/parser/join-parser.js +2 -2
- package/dist/esm/parser/parse-utils.d.ts +0 -2
- package/dist/esm/parser/parse-utils.js +0 -6
- package/dist/esm/parser/returning-parser.d.ts +2 -1
- package/dist/esm/parser/select-parser.d.ts +5 -13
- package/dist/esm/parser/select-parser.js +7 -3
- package/dist/esm/parser/table-parser.d.ts +5 -3
- package/dist/esm/parser/unary-operation-parser.d.ts +5 -2
- package/dist/esm/parser/unary-operation-parser.js +8 -8
- package/dist/esm/parser/update-set-parser.d.ts +4 -1
- package/dist/esm/parser/update-set-parser.js +7 -2
- package/dist/esm/parser/value-parser.d.ts +5 -0
- package/dist/esm/parser/value-parser.js +1 -3
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +1 -1
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
- package/dist/esm/query-builder/aggregate-function-builder.d.ts +40 -113
- package/dist/esm/query-builder/aggregate-function-builder.js +24 -64
- package/dist/esm/query-builder/delete-query-builder.d.ts +220 -201
- package/dist/esm/query-builder/delete-query-builder.js +24 -30
- package/dist/esm/query-builder/delete-result.js +3 -0
- package/dist/esm/query-builder/deprecated-having-expression-builder.d.ts +62 -0
- package/dist/esm/query-builder/deprecated-having-expression-builder.js +2 -0
- package/dist/esm/query-builder/deprecated-on-expression-builder.d.ts +62 -0
- package/dist/esm/query-builder/deprecated-on-expression-builder.js +2 -0
- package/dist/esm/query-builder/deprecated-where-expression-builder.d.ts +62 -0
- package/dist/esm/query-builder/deprecated-where-expression-builder.js +2 -0
- package/dist/esm/query-builder/function-module.d.ts +40 -12
- package/dist/esm/query-builder/function-module.js +42 -328
- package/dist/esm/query-builder/having-interface.d.ts +19 -16
- package/dist/esm/query-builder/insert-query-builder.d.ts +75 -26
- package/dist/esm/query-builder/insert-query-builder.js +25 -33
- package/dist/esm/query-builder/insert-result.js +3 -0
- package/dist/esm/query-builder/join-builder.d.ts +23 -26
- package/dist/esm/query-builder/join-builder.js +18 -23
- package/dist/esm/query-builder/no-result-error.d.ts +1 -0
- package/dist/esm/query-builder/no-result-error.js +3 -0
- package/dist/esm/query-builder/on-conflict-builder.d.ts +158 -276
- package/dist/esm/query-builder/on-conflict-builder.js +54 -38
- package/dist/esm/query-builder/over-builder.d.ts +5 -0
- package/dist/esm/query-builder/over-builder.js +7 -0
- package/dist/esm/query-builder/returning-interface.d.ts +2 -2
- package/dist/esm/query-builder/select-query-builder.d.ts +148 -237
- package/dist/esm/query-builder/select-query-builder.js +337 -82
- package/dist/esm/query-builder/update-query-builder.d.ts +145 -213
- package/dist/esm/query-builder/update-query-builder.js +25 -119
- package/dist/esm/query-builder/update-result.js +3 -0
- package/dist/esm/query-builder/where-interface.d.ts +71 -184
- package/dist/esm/query-compiler/default-query-compiler.d.ts +3 -0
- package/dist/esm/query-compiler/default-query-compiler.js +17 -1
- package/dist/esm/query-creator.d.ts +9 -2
- package/dist/esm/query-creator.js +1 -24
- package/dist/esm/query-executor/query-executor.d.ts +3 -3
- package/dist/esm/raw-builder/raw-builder.d.ts +5 -3
- package/dist/esm/raw-builder/raw-builder.js +13 -7
- package/dist/esm/raw-builder/sql.d.ts +17 -9
- package/dist/esm/raw-builder/sql.js +8 -2
- package/dist/esm/schema/alter-column-builder.d.ts +5 -0
- package/dist/esm/schema/alter-column-builder.js +7 -0
- package/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.d.ts +5 -0
- package/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.js +7 -0
- package/dist/esm/schema/alter-table-drop-constraint-builder.d.ts +5 -0
- package/dist/esm/schema/alter-table-drop-constraint-builder.js +7 -0
- package/dist/esm/schema/column-definition-builder.d.ts +6 -1
- package/dist/esm/schema/column-definition-builder.js +8 -1
- package/dist/esm/schema/create-index-builder.d.ts +51 -9
- package/dist/esm/schema/create-index-builder.js +17 -0
- package/dist/esm/schema/create-schema-builder.d.ts +5 -0
- package/dist/esm/schema/create-schema-builder.js +7 -0
- package/dist/esm/schema/create-table-builder.d.ts +3 -1
- package/dist/esm/schema/create-table-builder.js +3 -1
- package/dist/esm/schema/create-type-builder.d.ts +5 -0
- package/dist/esm/schema/create-type-builder.js +7 -0
- package/dist/esm/schema/create-view-builder.d.ts +5 -0
- package/dist/esm/schema/create-view-builder.js +7 -0
- package/dist/esm/schema/drop-index-builder.d.ts +5 -0
- package/dist/esm/schema/drop-index-builder.js +7 -0
- package/dist/esm/schema/drop-schema-builder.d.ts +5 -0
- package/dist/esm/schema/drop-schema-builder.js +7 -0
- package/dist/esm/schema/drop-table-builder.d.ts +5 -0
- package/dist/esm/schema/drop-table-builder.js +7 -0
- package/dist/esm/schema/drop-type-builder.d.ts +5 -0
- package/dist/esm/schema/drop-type-builder.js +7 -0
- package/dist/esm/schema/drop-view-builder.d.ts +5 -0
- package/dist/esm/schema/drop-view-builder.js +7 -0
- package/dist/esm/schema/foreign-key-constraint-builder.d.ts +5 -0
- package/dist/esm/schema/foreign-key-constraint-builder.js +7 -0
- package/dist/esm/util/compilable.d.ts +1 -0
- package/dist/esm/util/compilable.js +4 -1
- package/dist/esm/util/explainable.d.ts +35 -0
- package/dist/esm/util/log.d.ts +2 -0
- package/dist/esm/util/object-utils.js +1 -1
- package/dist/esm/util/streamable.d.ts +29 -0
- package/dist/esm/util/streamable.js +2 -0
- package/dist/esm/util/type-utils.d.ts +1 -0
- package/helpers/postgres.d.ts +1 -0
- package/helpers/postgres.js +1 -0
- package/package.json +20 -9
- package/dist/cjs/query-builder/expression-builder.d.ts +0 -126
- package/dist/cjs/query-builder/expression-builder.js +0 -107
- package/dist/esm/query-builder/expression-builder.d.ts +0 -126
- package/dist/esm/query-builder/expression-builder.js +0 -104
|
@@ -2,77 +2,62 @@ import { OperationNodeSource } from '../operation-node/operation-node-source.js'
|
|
|
2
2
|
import { CompiledQuery } from '../query-compiler/compiled-query.js';
|
|
3
3
|
import { JoinCallbackExpression, JoinReferenceExpression } from '../parser/join-parser.js';
|
|
4
4
|
import { From, FromTables, TableExpression } from '../parser/table-parser.js';
|
|
5
|
-
import { SelectExpression } from '../parser/select-parser.js';
|
|
6
|
-
import { ReturningRow } from '../parser/returning-parser.js';
|
|
5
|
+
import { SelectExpression, SelectArg } from '../parser/select-parser.js';
|
|
6
|
+
import { ReturningAllRow, ReturningRow } from '../parser/returning-parser.js';
|
|
7
7
|
import { ReferenceExpression } from '../parser/reference-parser.js';
|
|
8
|
+
import { QueryNode } from '../operation-node/query-node.js';
|
|
8
9
|
import { MergePartial, Nullable, SimplifyResult, SimplifySingleResult } from '../util/type-utils.js';
|
|
9
10
|
import { Compilable } from '../util/compilable.js';
|
|
10
11
|
import { QueryExecutor } from '../query-executor/query-executor.js';
|
|
11
12
|
import { QueryId } from '../util/query-id.js';
|
|
12
13
|
import { KyselyPlugin } from '../plugin/kysely-plugin.js';
|
|
13
|
-
import { WhereInterface } from './where-interface.js';
|
|
14
|
+
import { WhereExpressionFactory, WhereInterface } from './where-interface.js';
|
|
14
15
|
import { ReturningInterface } from './returning-interface.js';
|
|
15
16
|
import { NoResultErrorConstructor } from './no-result-error.js';
|
|
16
17
|
import { DeleteResult } from './delete-result.js';
|
|
17
18
|
import { DeleteQueryNode } from '../operation-node/delete-query-node.js';
|
|
18
|
-
import { Selectable } from '../util/column-type.js';
|
|
19
19
|
import { OrderByDirectionExpression, OrderByExpression } from '../parser/order-by-parser.js';
|
|
20
20
|
import { Explainable, ExplainFormat } from '../util/explainable.js';
|
|
21
21
|
import { AliasedExpression, Expression } from '../expression/expression.js';
|
|
22
|
-
import { ComparisonOperatorExpression, OperandValueExpressionOrList
|
|
22
|
+
import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js';
|
|
23
23
|
import { ExistsExpression } from '../parser/unary-operation-parser.js';
|
|
24
24
|
import { KyselyTypeError } from '../util/type-error.js';
|
|
25
|
-
|
|
25
|
+
import { Streamable } from '../util/streamable.js';
|
|
26
|
+
export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements WhereInterface<DB, TB>, ReturningInterface<DB, TB, O>, OperationNodeSource, Compilable<O>, Explainable, Streamable<O> {
|
|
26
27
|
#private;
|
|
27
28
|
constructor(props: DeleteQueryBuilderProps);
|
|
28
29
|
/**
|
|
29
|
-
* Adds a `where`
|
|
30
|
+
* Adds a `where` expression to the query.
|
|
30
31
|
*
|
|
31
|
-
*
|
|
32
|
+
* Calling this method multiple times will combine the expressions using `and`.
|
|
32
33
|
*
|
|
33
|
-
*
|
|
34
|
+
* Also see {@link whereRef}
|
|
34
35
|
*
|
|
35
|
-
*
|
|
36
|
+
* ### Examples
|
|
36
37
|
*
|
|
37
38
|
* ```ts
|
|
38
39
|
* const person = await db
|
|
39
40
|
* .selectFrom('person')
|
|
40
41
|
* .selectAll()
|
|
41
|
-
* .where('
|
|
42
|
+
* .where('first_name', '=', 'Jennifer')
|
|
43
|
+
* .where('age', '>', 40)
|
|
42
44
|
* .executeTakeFirst()
|
|
43
45
|
* ```
|
|
44
46
|
*
|
|
45
47
|
* The generated SQL (PostgreSQL):
|
|
46
48
|
*
|
|
47
49
|
* ```sql
|
|
48
|
-
* select * from "person" where "
|
|
50
|
+
* select * from "person" where "first_name" = $1 and "age" > $2
|
|
49
51
|
* ```
|
|
50
52
|
*
|
|
51
53
|
* Operator can be any supported operator or if the typings don't support it
|
|
52
|
-
* you can always use
|
|
54
|
+
* you can always use:
|
|
53
55
|
*
|
|
54
56
|
* ```ts
|
|
55
57
|
* sql`your operator`
|
|
56
58
|
* ```
|
|
57
59
|
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
* ```ts
|
|
61
|
-
* const persons = await db
|
|
62
|
-
* .selectFrom('person')
|
|
63
|
-
* .selectAll()
|
|
64
|
-
* .where('id', '>', 100)
|
|
65
|
-
* .execute()
|
|
66
|
-
* ```
|
|
67
|
-
*
|
|
68
|
-
* The generated SQL (PostgreSQL):
|
|
69
|
-
*
|
|
70
|
-
* ```sql
|
|
71
|
-
* select * from "person" where "id" > $1
|
|
72
|
-
* ```
|
|
73
|
-
*
|
|
74
|
-
* `where` methods don't change the type of the query. You can add
|
|
75
|
-
* conditional statements easily by doing something like this:
|
|
60
|
+
* You can add expressions conditionally like this:
|
|
76
61
|
*
|
|
77
62
|
* ```ts
|
|
78
63
|
* let query = db
|
|
@@ -85,16 +70,16 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
85
70
|
* query = query.where('first_name', '=', firstName)
|
|
86
71
|
* }
|
|
87
72
|
*
|
|
73
|
+
* if (lastName) {
|
|
74
|
+
* query = query.where('last_name', '=', lastName)
|
|
75
|
+
* }
|
|
76
|
+
*
|
|
88
77
|
* const persons = await query.execute()
|
|
89
78
|
* ```
|
|
90
79
|
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
* Both the first and third argument can also be subqueries.
|
|
95
|
-
* A subquery is defined by passing a function and calling
|
|
96
|
-
* the `selectFrom` method of the object passed into the
|
|
97
|
-
* function:
|
|
80
|
+
* Both the first and third argument can also be arbitrary expressions like
|
|
81
|
+
* subqueries. An expression can defined by passing a function and calling
|
|
82
|
+
* the methods of the {@link ExpressionBuilder} passed to the callback:
|
|
98
83
|
*
|
|
99
84
|
* ```ts
|
|
100
85
|
* const persons = await db
|
|
@@ -125,8 +110,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
125
110
|
* ```
|
|
126
111
|
*
|
|
127
112
|
* A `where in` query can be built by using the `in` operator and an array
|
|
128
|
-
* of values. The values in the array can also be
|
|
129
|
-
* {@link sql} expressions.
|
|
113
|
+
* of values. The values in the array can also be expressions:
|
|
130
114
|
*
|
|
131
115
|
* ```ts
|
|
132
116
|
* const persons = await db
|
|
@@ -142,40 +126,53 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
142
126
|
* select * from "person" where "id" in ($1, $2, $3)
|
|
143
127
|
* ```
|
|
144
128
|
*
|
|
145
|
-
*
|
|
146
|
-
*
|
|
129
|
+
* For complex `where` expressions you can pass in a single callback and
|
|
130
|
+
* use the {@link ExpressionBuilder} to build your expression:
|
|
147
131
|
*
|
|
148
132
|
* ```ts
|
|
149
|
-
* import { sql } from 'kysely'
|
|
150
|
-
*
|
|
151
133
|
* const persons = await db
|
|
152
134
|
* .selectFrom('person')
|
|
153
|
-
* .selectAll()
|
|
154
|
-
* .where(
|
|
155
|
-
*
|
|
156
|
-
*
|
|
157
|
-
*
|
|
158
|
-
*
|
|
159
|
-
*
|
|
135
|
+
* .selectAll('person')
|
|
136
|
+
* .where(({ cmpr, or, and, not, exists, selectFrom, val }) => and([
|
|
137
|
+
* or([
|
|
138
|
+
* cmpr('first_name', '=', firstName),
|
|
139
|
+
* cmpr('age', '<', maxAge)
|
|
140
|
+
* ]),
|
|
141
|
+
* not(exists(
|
|
142
|
+
* selectFrom('pet').select('pet.id').whereRef('pet.owner_id', '=', 'person.id')
|
|
143
|
+
* ))
|
|
144
|
+
* ]))
|
|
160
145
|
* ```
|
|
161
146
|
*
|
|
162
147
|
* The generated SQL (PostgreSQL):
|
|
163
148
|
*
|
|
164
149
|
* ```sql
|
|
165
|
-
* select
|
|
166
|
-
*
|
|
150
|
+
* select "person".*
|
|
151
|
+
* from "person"
|
|
152
|
+
* where (
|
|
153
|
+
* (
|
|
154
|
+
* "first_name" = $1
|
|
155
|
+
* or "age" < $2
|
|
156
|
+
* )
|
|
157
|
+
* and not exists (
|
|
158
|
+
* select "pet"."id" from "pet" where "pet"."owner_id" = "person"."id"
|
|
159
|
+
* )
|
|
160
|
+
* )
|
|
167
161
|
* ```
|
|
168
162
|
*
|
|
169
|
-
* If
|
|
170
|
-
*
|
|
163
|
+
* If everything else fails, you can always use the {@link sql} tag
|
|
164
|
+
* as any of the arguments, including the operator:
|
|
171
165
|
*
|
|
172
166
|
* ```ts
|
|
167
|
+
* import { sql } from 'kysely'
|
|
168
|
+
*
|
|
173
169
|
* const persons = await db
|
|
174
170
|
* .selectFrom('person')
|
|
175
171
|
* .selectAll()
|
|
176
|
-
* .where(
|
|
177
|
-
*
|
|
178
|
-
*
|
|
172
|
+
* .where(
|
|
173
|
+
* sql`coalesce(first_name, last_name)`,
|
|
174
|
+
* 'like',
|
|
175
|
+
* '%' + name + '%',
|
|
179
176
|
* )
|
|
180
177
|
* .execute()
|
|
181
178
|
* ```
|
|
@@ -183,7 +180,8 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
183
180
|
* The generated SQL (PostgreSQL):
|
|
184
181
|
*
|
|
185
182
|
* ```sql
|
|
186
|
-
* select * from "person"
|
|
183
|
+
* select * from "person"
|
|
184
|
+
* where coalesce(first_name, last_name) like $1
|
|
187
185
|
* ```
|
|
188
186
|
*
|
|
189
187
|
* In all examples above the columns were known at compile time
|
|
@@ -205,12 +203,12 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
205
203
|
* .selectFrom('person')
|
|
206
204
|
* .selectAll()
|
|
207
205
|
* .where(ref(columnFromUserInput), '=', 1)
|
|
208
|
-
* .
|
|
206
|
+
* .where(sql.id(columnFromUserInput), '=', 2)
|
|
209
207
|
* .execute()
|
|
210
208
|
* ```
|
|
211
209
|
*/
|
|
212
210
|
where<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): DeleteQueryBuilder<DB, TB, O>;
|
|
213
|
-
where(
|
|
211
|
+
where(factory: WhereExpressionFactory<DB, TB>): DeleteQueryBuilder<DB, TB, O>;
|
|
214
212
|
where(expression: Expression<any>): DeleteQueryBuilder<DB, TB, O>;
|
|
215
213
|
/**
|
|
216
214
|
* Adds a `where` clause where both sides of the operator are references
|
|
@@ -242,7 +240,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
242
240
|
* const persons = await db
|
|
243
241
|
* .selectFrom('person')
|
|
244
242
|
* .selectAll('person')
|
|
245
|
-
* .select((
|
|
243
|
+
* .select((eb) => eb
|
|
246
244
|
* .selectFrom('pet')
|
|
247
245
|
* .select('name')
|
|
248
246
|
* .whereRef('pet.owner_id', '=', 'person.id')
|
|
@@ -265,152 +263,33 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
265
263
|
*/
|
|
266
264
|
whereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): DeleteQueryBuilder<DB, TB, O>;
|
|
267
265
|
/**
|
|
268
|
-
*
|
|
269
|
-
*
|
|
270
|
-
* It's often necessary to wrap `or where` clauses in parentheses to control
|
|
271
|
-
* precendence. You can use the one argument version of the `where` method
|
|
272
|
-
* for that. See the examples.
|
|
273
|
-
*
|
|
274
|
-
* ### Examples
|
|
275
|
-
*
|
|
276
|
-
* ```ts
|
|
277
|
-
* const persons = await db
|
|
278
|
-
* .selectFrom('person')
|
|
279
|
-
* .selectAll()
|
|
280
|
-
* .where('id', '=', 1)
|
|
281
|
-
* .orWhere('id', '=', 2)
|
|
282
|
-
* .execute()
|
|
283
|
-
* ```
|
|
284
|
-
*
|
|
285
|
-
* The generated SQL (PostgreSQL):
|
|
286
|
-
*
|
|
287
|
-
* ```sql
|
|
288
|
-
* select * from "person" where "id" = 1 or "id" = 2
|
|
289
|
-
* ```
|
|
290
|
-
*
|
|
291
|
-
* Grouping with parentheses:
|
|
292
|
-
*
|
|
293
|
-
* ```ts
|
|
294
|
-
* const persons = await db
|
|
295
|
-
* .selectFrom('person')
|
|
296
|
-
* .selectAll()
|
|
297
|
-
* .where((qb) => qb
|
|
298
|
-
* .where('id', '=', 1)
|
|
299
|
-
* .orWhere('id', '=', 2)
|
|
300
|
-
* )
|
|
301
|
-
* .execute()
|
|
302
|
-
* ```
|
|
303
|
-
*
|
|
304
|
-
* The generated SQL (PostgreSQL):
|
|
305
|
-
*
|
|
306
|
-
* ```sql
|
|
307
|
-
* select * from "person" (where "id" = 1 or "id" = 2)
|
|
308
|
-
* ```
|
|
309
|
-
*
|
|
310
|
-
* Even the first `where` can be an `orWhere`. This is useful
|
|
311
|
-
* if you are looping through a set of conditions:
|
|
312
|
-
*
|
|
313
|
-
* ```ts
|
|
314
|
-
* const persons = await db
|
|
315
|
-
* .selectFrom('person')
|
|
316
|
-
* .selectAll()
|
|
317
|
-
* .where((qb) => qb
|
|
318
|
-
* .orWhere('id', '=', 1)
|
|
319
|
-
* .orWhere('id', '=', 2)
|
|
320
|
-
* )
|
|
321
|
-
* .execute()
|
|
322
|
-
* ```
|
|
323
|
-
*
|
|
324
|
-
* The generated SQL (PostgreSQL):
|
|
325
|
-
*
|
|
326
|
-
* ```sql
|
|
327
|
-
* select * from "person" (where "id" = 1 or "id" = 2)
|
|
328
|
-
* ```
|
|
266
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
329
267
|
*/
|
|
330
268
|
orWhere<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): DeleteQueryBuilder<DB, TB, O>;
|
|
331
|
-
orWhere(
|
|
269
|
+
orWhere(factory: WhereExpressionFactory<DB, TB>): DeleteQueryBuilder<DB, TB, O>;
|
|
332
270
|
orWhere(expression: Expression<any>): DeleteQueryBuilder<DB, TB, O>;
|
|
333
271
|
/**
|
|
334
|
-
*
|
|
335
|
-
*
|
|
336
|
-
* Also see {@link orWhere} and {@link where}.
|
|
272
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
337
273
|
*/
|
|
338
274
|
orWhereRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): DeleteQueryBuilder<DB, TB, O>;
|
|
339
275
|
/**
|
|
340
|
-
*
|
|
341
|
-
*
|
|
342
|
-
* You can either use a subquery or a raw {@link sql} snippet.
|
|
343
|
-
*
|
|
344
|
-
* ### Examples
|
|
345
|
-
*
|
|
346
|
-
* The query below selets all persons that own a pet named Catto:
|
|
347
|
-
*
|
|
348
|
-
* ```ts
|
|
349
|
-
* const petName = 'Catto'
|
|
350
|
-
* const persons = await db
|
|
351
|
-
* .selectFrom('person')
|
|
352
|
-
* .selectAll()
|
|
353
|
-
* .whereExists((qb) => qb
|
|
354
|
-
* .selectFrom('pet')
|
|
355
|
-
* .select('pet.id')
|
|
356
|
-
* .whereRef('person.id', '=', 'pet.owner_id')
|
|
357
|
-
* .where('pet.name', '=', petName)
|
|
358
|
-
* )
|
|
359
|
-
* .execute()
|
|
360
|
-
* ```
|
|
361
|
-
*
|
|
362
|
-
* The generated SQL (PostgreSQL):
|
|
363
|
-
*
|
|
364
|
-
* ```sql
|
|
365
|
-
* select * from "person"
|
|
366
|
-
* where exists (
|
|
367
|
-
* select "pet"."id"
|
|
368
|
-
* from "pet"
|
|
369
|
-
* where "person"."id" = "pet"."owner_id"
|
|
370
|
-
* and "pet"."name" = $1
|
|
371
|
-
* )
|
|
372
|
-
* ```
|
|
373
|
-
*
|
|
374
|
-
* The same query as in the previous example but with using raw {@link sql}:
|
|
375
|
-
*
|
|
376
|
-
* ```ts
|
|
377
|
-
* import { sql } from 'kysely'
|
|
378
|
-
*
|
|
379
|
-
* const petName = 'Catto'
|
|
380
|
-
* db.selectFrom('person')
|
|
381
|
-
* .selectAll()
|
|
382
|
-
* .whereExists(
|
|
383
|
-
* sql`(select pet.id from pet where person.id = pet.owner_id and pet.name = ${petName})`
|
|
384
|
-
* )
|
|
385
|
-
* ```
|
|
386
|
-
*
|
|
387
|
-
* The generated SQL (PostgreSQL):
|
|
388
|
-
*
|
|
389
|
-
* ```sql
|
|
390
|
-
* select * from "person"
|
|
391
|
-
* where exists (
|
|
392
|
-
* select pet.id
|
|
393
|
-
* from pet
|
|
394
|
-
* where person.id = pet.owner_id
|
|
395
|
-
* and pet.name = $1
|
|
396
|
-
* )
|
|
397
|
-
* ```
|
|
276
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
398
277
|
*/
|
|
399
278
|
whereExists(arg: ExistsExpression<DB, TB>): DeleteQueryBuilder<DB, TB, O>;
|
|
400
279
|
/**
|
|
401
|
-
*
|
|
280
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
402
281
|
*/
|
|
403
282
|
whereNotExists(arg: ExistsExpression<DB, TB>): DeleteQueryBuilder<DB, TB, O>;
|
|
404
283
|
/**
|
|
405
|
-
*
|
|
284
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
406
285
|
*/
|
|
407
286
|
orWhereExists(arg: ExistsExpression<DB, TB>): DeleteQueryBuilder<DB, TB, O>;
|
|
408
287
|
/**
|
|
409
|
-
*
|
|
288
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
410
289
|
*/
|
|
411
290
|
orWhereNotExists(arg: ExistsExpression<DB, TB>): DeleteQueryBuilder<DB, TB, O>;
|
|
412
291
|
/**
|
|
413
|
-
* Clears all where
|
|
292
|
+
* Clears all where expressions from the query.
|
|
414
293
|
*
|
|
415
294
|
* ### Examples
|
|
416
295
|
*
|
|
@@ -681,21 +560,114 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
681
560
|
* first_name: 'Jennifer',
|
|
682
561
|
* last_name: 'Aniston'
|
|
683
562
|
* })
|
|
684
|
-
* .returning([
|
|
563
|
+
* .returning(eb => [
|
|
685
564
|
* 'id as id',
|
|
686
565
|
* sql<string>`concat(first_name, ' ', last_name)`.as('full_name'),
|
|
687
|
-
*
|
|
566
|
+
* eb.selectFrom('pets').select('pet.id').limit(1).as('first_pet_id')
|
|
688
567
|
* ])
|
|
689
568
|
* .executeTakeFirst()
|
|
690
569
|
* ```
|
|
691
570
|
*/
|
|
692
|
-
returning<SE extends SelectExpression<DB, TB>>(
|
|
693
|
-
|
|
571
|
+
returning<SE extends SelectExpression<DB, TB>>(selection: SelectArg<DB, TB, SE>): DeleteQueryBuilder<DB, TB, ReturningRow<DB, TB, O, SE>>;
|
|
572
|
+
/**
|
|
573
|
+
* Adds `returning *` or `returning table.*` clause to the query.
|
|
574
|
+
*
|
|
575
|
+
* ### Examples
|
|
576
|
+
*
|
|
577
|
+
* Return all columns.
|
|
578
|
+
*
|
|
579
|
+
* ```ts
|
|
580
|
+
* const pets = await db
|
|
581
|
+
* .deleteFrom('pet')
|
|
582
|
+
* .returningAll()
|
|
583
|
+
* .execute()
|
|
584
|
+
* ```
|
|
585
|
+
*
|
|
586
|
+
* The generated SQL (PostgreSQL)
|
|
587
|
+
*
|
|
588
|
+
* ```sql
|
|
589
|
+
* delete from "pet" returning *
|
|
590
|
+
* ```
|
|
591
|
+
*
|
|
592
|
+
* Return all columns from all tables
|
|
593
|
+
*
|
|
594
|
+
* ```ts
|
|
595
|
+
* const result = ctx.db
|
|
596
|
+
* .deleteFrom('toy')
|
|
597
|
+
* .using(['pet', 'person'])
|
|
598
|
+
* .whereRef('toy.pet_id', '=', 'pet.id')
|
|
599
|
+
* .whereRef('pet.owner_id', '=', 'person.id')
|
|
600
|
+
* .where('person.first_name', '=', 'Zoro')
|
|
601
|
+
* .returningAll()
|
|
602
|
+
* .execute()
|
|
603
|
+
* ```
|
|
604
|
+
*
|
|
605
|
+
* The generated SQL (PostgreSQL)
|
|
606
|
+
*
|
|
607
|
+
* ```sql
|
|
608
|
+
* delete from "toy"
|
|
609
|
+
* using "pet", "person"
|
|
610
|
+
* where "toy"."pet_id" = "pet"."id"
|
|
611
|
+
* and "pet"."owner_id" = "person"."id"
|
|
612
|
+
* and "person"."first_name" = $1
|
|
613
|
+
* returning *
|
|
614
|
+
* ```
|
|
615
|
+
*
|
|
616
|
+
* Return all columns from a single table.
|
|
617
|
+
*
|
|
618
|
+
* ```ts
|
|
619
|
+
* const result = ctx.db
|
|
620
|
+
* .deleteFrom('toy')
|
|
621
|
+
* .using(['pet', 'person'])
|
|
622
|
+
* .whereRef('toy.pet_id', '=', 'pet.id')
|
|
623
|
+
* .whereRef('pet.owner_id', '=', 'person.id')
|
|
624
|
+
* .where('person.first_name', '=', 'Itachi')
|
|
625
|
+
* .returningAll('pet')
|
|
626
|
+
* .execute()
|
|
627
|
+
* ```
|
|
628
|
+
*
|
|
629
|
+
* The generated SQL (PostgreSQL)
|
|
630
|
+
*
|
|
631
|
+
* ```sql
|
|
632
|
+
* delete from "toy"
|
|
633
|
+
* using "pet", "person"
|
|
634
|
+
* where "toy"."pet_id" = "pet"."id"
|
|
635
|
+
* and "pet"."owner_id" = "person"."id"
|
|
636
|
+
* and "person"."first_name" = $1
|
|
637
|
+
* returning "pet".*
|
|
638
|
+
* ```
|
|
639
|
+
*
|
|
640
|
+
* Return all columns from multiple tables.
|
|
641
|
+
*
|
|
642
|
+
* ```ts
|
|
643
|
+
* const result = ctx.db
|
|
644
|
+
* .deleteFrom('toy')
|
|
645
|
+
* .using(['pet', 'person'])
|
|
646
|
+
* .whereRef('toy.pet_id', '=', 'pet.id')
|
|
647
|
+
* .whereRef('pet.owner_id', '=', 'person.id')
|
|
648
|
+
* .where('person.first_name', '=', 'Luffy')
|
|
649
|
+
* .returningAll(['toy', 'pet'])
|
|
650
|
+
* .execute()
|
|
651
|
+
* ```
|
|
652
|
+
*
|
|
653
|
+
* The generated SQL (PostgreSQL)
|
|
654
|
+
*
|
|
655
|
+
* ```sql
|
|
656
|
+
* delete from "toy"
|
|
657
|
+
* using "pet", "person"
|
|
658
|
+
* where "toy"."pet_id" = "pet"."id"
|
|
659
|
+
* and "pet"."owner_id" = "person"."id"
|
|
660
|
+
* and "person"."first_name" = $1
|
|
661
|
+
* returning "toy".*, "pet".*
|
|
662
|
+
* ```
|
|
663
|
+
*/
|
|
664
|
+
returningAll<T extends TB>(tables: ReadonlyArray<T>): DeleteQueryBuilder<DB, TB, ReturningAllRow<DB, T, O>>;
|
|
694
665
|
/**
|
|
695
666
|
* Adds a `returning *` to an insert/update/delete query on databases
|
|
696
667
|
* that support `returning` such as PostgreSQL.
|
|
697
668
|
*/
|
|
698
|
-
returningAll(): DeleteQueryBuilder<DB, TB,
|
|
669
|
+
returningAll<T extends TB>(table: T): DeleteQueryBuilder<DB, TB, ReturningAllRow<DB, T, O>>;
|
|
670
|
+
returningAll(): DeleteQueryBuilder<DB, TB, ReturningAllRow<DB, TB, O>>;
|
|
699
671
|
/**
|
|
700
672
|
* Adds an `order by` clause to the query.
|
|
701
673
|
*
|
|
@@ -751,7 +723,8 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
751
723
|
*/
|
|
752
724
|
limit(limit: number): DeleteQueryBuilder<DB, TB, O>;
|
|
753
725
|
/**
|
|
754
|
-
* Simply calls the
|
|
726
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
727
|
+
* what the provided function returns.
|
|
755
728
|
*
|
|
756
729
|
* If you want to conditionally call a method on `this`, see
|
|
757
730
|
* the {@link $if} method.
|
|
@@ -895,24 +868,70 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
895
868
|
* the query returned no result.
|
|
896
869
|
*
|
|
897
870
|
* By default an instance of {@link NoResultError} is thrown, but you can
|
|
898
|
-
* provide a custom error class as the only argument to throw a different
|
|
871
|
+
* provide a custom error class, or callback as the only argument to throw a different
|
|
899
872
|
* error.
|
|
900
873
|
*/
|
|
901
|
-
executeTakeFirstOrThrow(errorConstructor?: NoResultErrorConstructor): Promise<SimplifyResult<O>>;
|
|
874
|
+
executeTakeFirstOrThrow(errorConstructor?: NoResultErrorConstructor | ((node: QueryNode) => Error)): Promise<SimplifyResult<O>>;
|
|
875
|
+
/**
|
|
876
|
+
* Executes the query and streams the rows.
|
|
877
|
+
*
|
|
878
|
+
* The optional argument `chunkSize` defines how many rows to fetch from the database
|
|
879
|
+
* at a time. It only affects some dialects like PostgreSQL that support it.
|
|
880
|
+
*
|
|
881
|
+
* ### Examples
|
|
882
|
+
*
|
|
883
|
+
* ```ts
|
|
884
|
+
* const stream = db.
|
|
885
|
+
* .selectFrom('person')
|
|
886
|
+
* .select(['first_name', 'last_name'])
|
|
887
|
+
* .where('gender', '=', 'other')
|
|
888
|
+
* .stream()
|
|
889
|
+
*
|
|
890
|
+
* for await (const person of stream) {
|
|
891
|
+
* console.log(person.first_name)
|
|
892
|
+
*
|
|
893
|
+
* if (person.last_name === 'Something') {
|
|
894
|
+
* // Breaking or returning before the stream has ended will release
|
|
895
|
+
* // the database connection and invalidate the stream.
|
|
896
|
+
* break
|
|
897
|
+
* }
|
|
898
|
+
* }
|
|
899
|
+
* ```
|
|
900
|
+
*/
|
|
901
|
+
stream(chunkSize?: number): AsyncIterableIterator<O>;
|
|
902
902
|
/**
|
|
903
|
-
* Executes query with `explain` statement before
|
|
903
|
+
* Executes query with `explain` statement before the main query.
|
|
904
904
|
*
|
|
905
905
|
* ```ts
|
|
906
906
|
* const explained = await db
|
|
907
|
-
* .
|
|
908
|
-
* .where('
|
|
907
|
+
* .selectFrom('person')
|
|
908
|
+
* .where('gender', '=', 'female')
|
|
909
|
+
* .selectAll()
|
|
909
910
|
* .explain('json')
|
|
910
911
|
* ```
|
|
911
912
|
*
|
|
912
913
|
* The generated SQL (MySQL):
|
|
913
914
|
*
|
|
914
915
|
* ```sql
|
|
915
|
-
* explain format=json
|
|
916
|
+
* explain format=json select * from `person` where `gender` = ?
|
|
917
|
+
* ```
|
|
918
|
+
*
|
|
919
|
+
* You can also execute `explain analyze` statements.
|
|
920
|
+
*
|
|
921
|
+
* ```ts
|
|
922
|
+
* import { sql } from 'kysely'
|
|
923
|
+
*
|
|
924
|
+
* const explained = await db
|
|
925
|
+
* .selectFrom('person')
|
|
926
|
+
* .where('gender', '=', 'female')
|
|
927
|
+
* .selectAll()
|
|
928
|
+
* .explain('json', sql`analyze`)
|
|
929
|
+
* ```
|
|
930
|
+
*
|
|
931
|
+
* The generated SQL (PostgreSQL):
|
|
932
|
+
*
|
|
933
|
+
* ```sql
|
|
934
|
+
* explain (analyze, format json) select * from "person" where "gender" = $1
|
|
916
935
|
* ```
|
|
917
936
|
*/
|
|
918
937
|
explain<ER extends Record<string, any> = Record<string, any>>(format?: ExplainFormat, options?: Expression<any>): Promise<ER[]>;
|