kysely 0.11.3 → 0.12.2
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 +1 -1
- package/dist/cjs/dialect/dialect-adapter-base.d.ts +36 -0
- package/dist/cjs/dialect/mysql/mysql-adapter.d.ts +36 -0
- package/dist/cjs/dialect/mysql/mysql-dialect.d.ts +16 -0
- package/dist/cjs/dialect/mysql/mysql-driver.d.ts +29 -0
- package/dist/cjs/dialect/mysql/mysql-introspector.d.ts +3 -0
- package/dist/cjs/dialect/postgres/postgres-adapter.d.ts +36 -0
- package/dist/cjs/dialect/postgres/postgres-dialect.d.ts +16 -0
- package/dist/cjs/dialect/postgres/postgres-driver.d.ts +29 -0
- package/dist/cjs/dialect/postgres/postgres-introspector.d.ts +3 -0
- package/dist/cjs/dialect/sqlite/sqlite-adapter.d.ts +36 -0
- package/dist/cjs/dialect/sqlite/sqlite-adapter.js +6 -2
- package/dist/cjs/dialect/sqlite/sqlite-dialect.d.ts +16 -0
- package/dist/cjs/dialect/sqlite/sqlite-driver.d.ts +29 -0
- package/dist/cjs/dialect/sqlite/sqlite-introspector.d.ts +3 -0
- package/dist/cjs/driver/default-connection-provider.d.ts +4 -0
- package/dist/cjs/driver/runtime-driver.d.ts +29 -0
- package/dist/cjs/driver/single-connection-provider.d.ts +4 -0
- package/dist/cjs/dynamic/dynamic-reference-builder.d.ts +1 -0
- package/dist/cjs/dynamic/dynamic-reference-builder.js +9 -1
- package/dist/cjs/dynamic/dynamic.d.ts +6 -7
- package/dist/cjs/dynamic/dynamic.js +6 -7
- package/dist/cjs/index.d.ts +14 -3
- package/dist/cjs/index.js +12 -1
- package/dist/cjs/kysely.d.ts +170 -11
- package/dist/cjs/kysely.js +69 -9
- package/dist/cjs/migration/migration.d.ts +2 -2
- package/dist/cjs/operation-node/common-table-expression-name-node.d.ts +15 -0
- package/dist/cjs/operation-node/common-table-expression-name-node.js +23 -0
- package/dist/cjs/operation-node/common-table-expression-node.d.ts +3 -3
- package/dist/cjs/operation-node/create-table-node.d.ts +6 -2
- package/dist/cjs/operation-node/create-table-node.js +6 -6
- package/dist/cjs/operation-node/create-view-node.d.ts +1 -0
- package/dist/cjs/operation-node/insert-query-node.d.ts +4 -4
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +4 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +20 -1
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +4 -0
- package/dist/cjs/operation-node/operation-node-visitor.js +2 -0
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/query-node.d.ts +0 -2
- package/dist/cjs/operation-node/query-node.js +0 -10
- package/dist/cjs/operation-node/values-node.d.ts +15 -0
- package/dist/cjs/operation-node/values-node.js +18 -0
- package/dist/cjs/operation-node/with-node.d.ts +3 -1
- package/dist/cjs/operation-node/with-node.js +2 -1
- package/dist/cjs/package.json +1 -3
- package/dist/cjs/parser/complex-expression-parser.d.ts +9 -0
- package/dist/cjs/parser/complex-expression-parser.js +25 -0
- package/dist/cjs/parser/filter-parser.d.ts +13 -4
- package/dist/cjs/parser/filter-parser.js +21 -24
- package/dist/cjs/parser/insert-values-parser.d.ts +7 -10
- package/dist/cjs/parser/insert-values-parser.js +31 -39
- package/dist/cjs/parser/order-by-parser.d.ts +1 -1
- package/dist/cjs/parser/parse-context.d.ts +22 -8
- package/dist/cjs/parser/parse-context.js +10 -10
- package/dist/cjs/parser/reference-parser.d.ts +8 -7
- package/dist/cjs/parser/reference-parser.js +8 -17
- package/dist/cjs/parser/returning-parser.d.ts +1 -5
- package/dist/cjs/parser/select-parser.d.ts +12 -14
- package/dist/cjs/parser/select-parser.js +5 -9
- package/dist/cjs/parser/table-parser.d.ts +9 -11
- package/dist/cjs/parser/table-parser.js +2 -8
- package/dist/cjs/parser/union-parser.d.ts +2 -2
- package/dist/cjs/parser/union-parser.js +1 -6
- package/dist/cjs/parser/update-set-parser.d.ts +2 -8
- package/dist/cjs/parser/update-set-parser.js +6 -26
- package/dist/cjs/parser/value-parser.d.ts +9 -6
- package/dist/cjs/parser/value-parser.js +7 -30
- package/dist/cjs/parser/with-parser.d.ts +36 -6
- package/dist/cjs/parser/with-parser.js +13 -2
- package/dist/cjs/plugin/camel-case/camel-case-plugin.d.ts +34 -0
- package/dist/cjs/plugin/immediate-value.ts/immediate-value-plugin.d.ts +34 -0
- package/dist/cjs/plugin/immediate-value.ts/immediate-value-plugin.js +2 -2
- package/dist/cjs/plugin/with-schema/with-schema-plugin.d.ts +34 -0
- package/dist/cjs/plugin/with-schema/with-schema-transformer.js +8 -0
- package/dist/cjs/query-builder/delete-query-builder.d.ts +647 -0
- package/dist/cjs/query-builder/delete-query-builder.js +185 -0
- package/dist/cjs/query-builder/expression-builder.d.ts +8 -6
- package/dist/cjs/query-builder/expression-builder.js +3 -3
- package/dist/cjs/query-builder/function-builder.d.ts +2 -1
- package/dist/cjs/query-builder/function-builder.js +2 -1
- package/dist/cjs/query-builder/having-interface.d.ts +49 -0
- package/dist/cjs/query-builder/having-interface.js +2 -0
- package/dist/cjs/query-builder/insert-query-builder.d.ts +504 -0
- package/dist/cjs/query-builder/insert-query-builder.js +256 -0
- package/dist/cjs/query-builder/insert-result.d.ts +3 -2
- package/dist/cjs/query-builder/insert-result.js +3 -2
- package/dist/cjs/query-builder/join-builder.d.ts +19 -20
- package/dist/cjs/query-builder/join-builder.js +12 -12
- package/dist/cjs/query-builder/join-interface.d.ts +130 -0
- package/dist/cjs/query-builder/join-interface.js +2 -0
- package/dist/cjs/query-builder/no-result-error.d.ts +9 -0
- package/dist/cjs/query-builder/no-result-error.js +14 -0
- package/dist/cjs/query-builder/returning-interface.d.ts +73 -0
- package/dist/cjs/query-builder/returning-interface.js +2 -0
- package/dist/cjs/query-builder/{query-builder.d.ts → select-query-builder.d.ts} +145 -634
- package/dist/cjs/query-builder/select-query-builder.js +571 -0
- package/dist/cjs/query-builder/update-query-builder.d.ts +735 -0
- package/dist/cjs/query-builder/update-query-builder.js +279 -0
- package/dist/cjs/query-builder/where-interface.d.ts +378 -0
- package/dist/cjs/query-builder/where-interface.js +2 -0
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +4 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +33 -5
- package/dist/cjs/query-creator.d.ts +69 -43
- package/dist/cjs/query-creator.js +66 -29
- package/dist/cjs/query-executor/default-query-executor.d.ts +19 -0
- package/dist/cjs/query-executor/noop-query-executor.d.ts +19 -0
- package/dist/cjs/query-executor/query-executor.d.ts +1 -1
- package/dist/cjs/query-executor/query-executor.js +1 -1
- package/dist/cjs/raw-builder/raw-builder.d.ts +2 -0
- package/dist/cjs/raw-builder/raw-builder.js +7 -1
- package/dist/cjs/schema/alter-table-builder.d.ts +218 -2
- package/dist/cjs/schema/column-definition-builder.d.ts +135 -20
- package/dist/cjs/schema/create-index-builder.d.ts +2 -1
- package/dist/cjs/schema/create-index-builder.js +2 -1
- package/dist/cjs/schema/create-table-builder.d.ts +26 -9
- package/dist/cjs/schema/create-table-builder.js +42 -9
- package/dist/cjs/schema/create-view-builder.d.ts +17 -3
- package/dist/cjs/schema/create-view-builder.js +25 -16
- package/dist/cjs/schema/schema.d.ts +18 -11
- package/dist/cjs/schema/schema.js +18 -11
- package/dist/cjs/util/log.d.ts +3 -2
- package/dist/cjs/util/log.js +8 -15
- package/dist/cjs/util/type-utils.d.ts +7 -7
- package/dist/esm/dialect/dialect-adapter-base.d.ts +36 -0
- package/dist/esm/dialect/mysql/mysql-adapter.d.ts +36 -0
- package/dist/esm/dialect/mysql/mysql-dialect.d.ts +16 -0
- package/dist/esm/dialect/mysql/mysql-driver.d.ts +29 -0
- package/dist/esm/dialect/mysql/mysql-introspector.d.ts +3 -0
- package/dist/esm/dialect/postgres/postgres-adapter.d.ts +36 -0
- package/dist/esm/dialect/postgres/postgres-dialect.d.ts +16 -0
- package/dist/esm/dialect/postgres/postgres-driver.d.ts +29 -0
- package/dist/esm/dialect/postgres/postgres-introspector.d.ts +3 -0
- package/dist/esm/dialect/sqlite/sqlite-adapter.d.ts +36 -0
- package/dist/esm/dialect/sqlite/sqlite-adapter.js +6 -2
- package/dist/esm/dialect/sqlite/sqlite-dialect.d.ts +16 -0
- package/dist/esm/dialect/sqlite/sqlite-driver.d.ts +29 -0
- package/dist/esm/dialect/sqlite/sqlite-introspector.d.ts +3 -0
- package/dist/esm/driver/default-connection-provider.d.ts +4 -0
- package/dist/esm/driver/runtime-driver.d.ts +29 -0
- package/dist/esm/driver/single-connection-provider.d.ts +4 -0
- package/dist/esm/dynamic/dynamic-reference-builder.d.ts +1 -0
- package/dist/esm/dynamic/dynamic-reference-builder.js +7 -0
- package/dist/esm/dynamic/dynamic.d.ts +6 -7
- package/dist/esm/dynamic/dynamic.js +6 -7
- package/dist/esm/index.d.ts +14 -3
- package/dist/esm/index.js +12 -1
- package/dist/esm/kysely.d.ts +170 -11
- package/dist/esm/kysely.js +69 -9
- package/dist/esm/migration/migration.d.ts +2 -2
- package/dist/esm/operation-node/common-table-expression-name-node.d.ts +15 -0
- package/dist/esm/operation-node/common-table-expression-name-node.js +20 -0
- package/dist/esm/operation-node/common-table-expression-node.d.ts +3 -3
- package/dist/esm/operation-node/create-table-node.d.ts +6 -2
- package/dist/esm/operation-node/create-table-node.js +6 -6
- package/dist/esm/operation-node/create-view-node.d.ts +1 -0
- package/dist/esm/operation-node/insert-query-node.d.ts +4 -4
- package/dist/esm/operation-node/operation-node-transformer.d.ts +4 -0
- package/dist/esm/operation-node/operation-node-transformer.js +20 -1
- package/dist/esm/operation-node/operation-node-visitor.d.ts +4 -0
- package/dist/esm/operation-node/operation-node-visitor.js +2 -0
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/query-node.d.ts +0 -2
- package/dist/esm/operation-node/query-node.js +0 -10
- package/dist/esm/operation-node/values-node.d.ts +15 -0
- package/dist/esm/operation-node/values-node.js +15 -0
- package/dist/esm/operation-node/with-node.d.ts +3 -1
- package/dist/esm/operation-node/with-node.js +2 -1
- package/dist/esm/package.json +1 -3
- package/dist/esm/parser/complex-expression-parser.d.ts +9 -0
- package/dist/esm/parser/complex-expression-parser.js +20 -0
- package/dist/esm/parser/filter-parser.d.ts +13 -4
- package/dist/esm/parser/filter-parser.js +21 -24
- package/dist/esm/parser/insert-values-parser.d.ts +7 -10
- package/dist/esm/parser/insert-values-parser.js +31 -38
- package/dist/esm/parser/order-by-parser.d.ts +1 -1
- package/dist/esm/parser/parse-context.d.ts +22 -8
- package/dist/esm/parser/parse-context.js +10 -10
- package/dist/esm/parser/reference-parser.d.ts +8 -7
- package/dist/esm/parser/reference-parser.js +9 -18
- package/dist/esm/parser/returning-parser.d.ts +1 -5
- package/dist/esm/parser/select-parser.d.ts +12 -14
- package/dist/esm/parser/select-parser.js +6 -10
- package/dist/esm/parser/table-parser.d.ts +9 -11
- package/dist/esm/parser/table-parser.js +3 -9
- package/dist/esm/parser/union-parser.d.ts +2 -2
- package/dist/esm/parser/union-parser.js +1 -6
- package/dist/esm/parser/update-set-parser.d.ts +2 -8
- package/dist/esm/parser/update-set-parser.js +5 -24
- package/dist/esm/parser/value-parser.d.ts +9 -6
- package/dist/esm/parser/value-parser.js +8 -31
- package/dist/esm/parser/with-parser.d.ts +36 -6
- package/dist/esm/parser/with-parser.js +13 -2
- package/dist/esm/plugin/camel-case/camel-case-plugin.d.ts +34 -0
- package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.d.ts +34 -0
- package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.js +2 -2
- package/dist/esm/plugin/with-schema/with-schema-plugin.d.ts +34 -0
- package/dist/esm/plugin/with-schema/with-schema-transformer.js +8 -0
- package/dist/esm/query-builder/delete-query-builder.d.ts +647 -0
- package/dist/esm/query-builder/delete-query-builder.js +181 -0
- package/dist/esm/query-builder/expression-builder.d.ts +8 -6
- package/dist/esm/query-builder/expression-builder.js +3 -3
- package/dist/esm/query-builder/function-builder.d.ts +2 -1
- package/dist/esm/query-builder/function-builder.js +2 -1
- package/dist/esm/query-builder/having-interface.d.ts +49 -0
- package/dist/esm/query-builder/having-interface.js +1 -0
- package/dist/esm/query-builder/insert-query-builder.d.ts +504 -0
- package/dist/esm/query-builder/insert-query-builder.js +252 -0
- package/dist/esm/query-builder/insert-result.d.ts +3 -2
- package/dist/esm/query-builder/insert-result.js +3 -2
- package/dist/esm/query-builder/join-builder.d.ts +19 -20
- package/dist/esm/query-builder/join-builder.js +12 -12
- package/dist/esm/query-builder/join-interface.d.ts +130 -0
- package/dist/esm/query-builder/join-interface.js +1 -0
- package/dist/esm/query-builder/no-result-error.d.ts +9 -0
- package/dist/esm/query-builder/no-result-error.js +10 -0
- package/dist/esm/query-builder/returning-interface.d.ts +73 -0
- package/dist/esm/query-builder/returning-interface.js +1 -0
- package/dist/esm/query-builder/{query-builder.d.ts → select-query-builder.d.ts} +145 -634
- package/dist/esm/query-builder/select-query-builder.js +566 -0
- package/dist/esm/query-builder/update-query-builder.d.ts +735 -0
- package/dist/esm/query-builder/update-query-builder.js +275 -0
- package/dist/esm/query-builder/where-interface.d.ts +378 -0
- package/dist/esm/query-builder/where-interface.js +1 -0
- package/dist/esm/query-compiler/default-query-compiler.d.ts +4 -0
- package/dist/esm/query-compiler/default-query-compiler.js +33 -5
- package/dist/esm/query-creator.d.ts +69 -43
- package/dist/esm/query-creator.js +66 -29
- package/dist/esm/query-executor/default-query-executor.d.ts +19 -0
- package/dist/esm/query-executor/noop-query-executor.d.ts +19 -0
- package/dist/esm/query-executor/query-executor.d.ts +1 -1
- package/dist/esm/query-executor/query-executor.js +1 -1
- package/dist/esm/raw-builder/raw-builder.d.ts +2 -0
- package/dist/esm/raw-builder/raw-builder.js +7 -1
- package/dist/esm/schema/alter-table-builder.d.ts +218 -2
- package/dist/esm/schema/column-definition-builder.d.ts +135 -20
- package/dist/esm/schema/create-index-builder.d.ts +2 -1
- package/dist/esm/schema/create-index-builder.js +2 -1
- package/dist/esm/schema/create-table-builder.d.ts +26 -9
- package/dist/esm/schema/create-table-builder.js +43 -10
- package/dist/esm/schema/create-view-builder.d.ts +17 -3
- package/dist/esm/schema/create-view-builder.js +25 -16
- package/dist/esm/schema/schema.d.ts +18 -11
- package/dist/esm/schema/schema.js +18 -11
- package/dist/esm/util/log.d.ts +3 -2
- package/dist/esm/util/log.js +7 -14
- package/dist/esm/util/type-utils.d.ts +7 -7
- package/package.json +10 -8
- package/dist/cjs/query-builder/query-builder.js +0 -1067
- package/dist/esm/query-builder/query-builder.js +0 -1061
|
@@ -2,48 +2,33 @@ import { AliasNode } from '../operation-node/alias-node.js';
|
|
|
2
2
|
import { OperationNodeSource } from '../operation-node/operation-node-source.js';
|
|
3
3
|
import { CompiledQuery } from '../query-compiler/compiled-query.js';
|
|
4
4
|
import { JoinCallbackExpression, JoinReferenceExpression } from '../parser/join-parser.js';
|
|
5
|
-
import { TableExpression,
|
|
5
|
+
import { TableExpression, TableExpressionDatabase, TableExpressionTables, LeftJoinTableExpressionDatabase, RightJoinTableExpressionDatabase, FullJoinTableExpressionDatabase } from '../parser/table-parser.js';
|
|
6
6
|
import { SelectExpression, QueryBuilderWithSelection, SelectAllQueryBuilder } from '../parser/select-parser.js';
|
|
7
|
-
import { ExistsExpression, FilterOperator } from '../parser/filter-parser.js';
|
|
8
|
-
import { InsertObject } from '../parser/insert-values-parser.js';
|
|
9
|
-
import { QueryBuilderWithReturning } from '../parser/returning-parser.js';
|
|
7
|
+
import { ExistsExpression, FilterOperator, FilterValueExpressionOrList, WhereGrouper, HavingGrouper } from '../parser/filter-parser.js';
|
|
10
8
|
import { ReferenceExpression } from '../parser/reference-parser.js';
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import { AnyColumn, AnyRawBuilder, SingleResultType } from '../util/type-utils.js';
|
|
9
|
+
import { SelectQueryNode } from '../operation-node/select-query-node.js';
|
|
10
|
+
import { AnyRawBuilder, SingleResultType } from '../util/type-utils.js';
|
|
14
11
|
import { OrderByDirectionExpression, OrderByExpression } from '../parser/order-by-parser.js';
|
|
15
|
-
import { MutationObject } from '../parser/update-set-parser.js';
|
|
16
12
|
import { Compilable } from '../util/compilable.js';
|
|
17
13
|
import { QueryExecutor } from '../query-executor/query-executor.js';
|
|
18
14
|
import { QueryId } from '../util/query-id.js';
|
|
19
|
-
import { OnConflictConstraintTarget } from '../parser/on-conflict-parser.js';
|
|
20
15
|
import { ParseContext } from '../parser/parse-context.js';
|
|
21
16
|
import { UnionExpression } from '../parser/union-parser.js';
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
* that have not actually been joined to the query. the `TB` parameter defines the
|
|
29
|
-
* table names/aliases that have been joined to the query.
|
|
30
|
-
*
|
|
31
|
-
* @typeParam TB - The names/aliases of the tables that have been joined to the query
|
|
32
|
-
* using `from`, `with` any join method and so on. This type is a union of `DB`
|
|
33
|
-
* type's keys. For example `'person' | 'pet'`.
|
|
34
|
-
*
|
|
35
|
-
* @typePAram O - The query output row type.
|
|
36
|
-
*/
|
|
37
|
-
export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements OperationNodeSource, Compilable {
|
|
17
|
+
import { KyselyPlugin } from '../plugin/kysely-plugin.js';
|
|
18
|
+
import { WhereInterface } from './where-interface.js';
|
|
19
|
+
import { JoinInterface } from './join-interface.js';
|
|
20
|
+
import { NoResultErrorConstructor } from './no-result-error.js';
|
|
21
|
+
import { HavingInterface } from './having-interface.js';
|
|
22
|
+
export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements WhereInterface<DB, TB>, HavingInterface<DB, TB>, JoinInterface<DB, TB>, OperationNodeSource, Compilable {
|
|
38
23
|
#private;
|
|
39
|
-
constructor(props:
|
|
24
|
+
constructor(props: SelectQueryBuilderProps);
|
|
40
25
|
/**
|
|
41
26
|
* Adds a `where` clause to the query.
|
|
42
27
|
*
|
|
43
|
-
* Also see {@link
|
|
44
|
-
*
|
|
28
|
+
* Also see {@link orWhere}, {@link whereExists} and {@link whereRef}.
|
|
29
|
+
*
|
|
30
|
+
* ### Examples
|
|
45
31
|
*
|
|
46
|
-
* @example
|
|
47
32
|
* Find a row by column value:
|
|
48
33
|
*
|
|
49
34
|
* ```ts
|
|
@@ -60,7 +45,6 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
60
45
|
* select * from "person" where "id" = $1
|
|
61
46
|
* ```
|
|
62
47
|
*
|
|
63
|
-
* @example
|
|
64
48
|
* Operator can be any supported operator or if the typings don't support it
|
|
65
49
|
* you can always use `db.raw('your operator')`.
|
|
66
50
|
*
|
|
@@ -78,7 +62,6 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
78
62
|
* select * from "person" where "id" > $1
|
|
79
63
|
* ```
|
|
80
64
|
*
|
|
81
|
-
* @example
|
|
82
65
|
* The `where` methods don't change the type of the query. You can add
|
|
83
66
|
* conditional `where`s easily by doing something like this:
|
|
84
67
|
*
|
|
@@ -98,10 +81,9 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
98
81
|
* `returning` methods, which DO change the return type of the
|
|
99
82
|
* query.
|
|
100
83
|
*
|
|
101
|
-
* @example
|
|
102
84
|
* Both the first and third argument can also be subqueries.
|
|
103
85
|
* A subquery is defined by passing a function and calling
|
|
104
|
-
* the `
|
|
86
|
+
* the `selectFrom` method of the object passed into the
|
|
105
87
|
* function:
|
|
106
88
|
*
|
|
107
89
|
* ```ts
|
|
@@ -109,7 +91,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
109
91
|
* .selectFrom('person')
|
|
110
92
|
* .selectAll()
|
|
111
93
|
* .where(
|
|
112
|
-
* (qb) => qb.
|
|
94
|
+
* (qb) => qb.selectFrom('pet')
|
|
113
95
|
* .select('pet.name')
|
|
114
96
|
* .whereRef('pet.owner_id', '=', 'person.id')
|
|
115
97
|
* .limit(1),
|
|
@@ -132,7 +114,6 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
132
114
|
* ) = $2
|
|
133
115
|
* ```
|
|
134
116
|
*
|
|
135
|
-
* @example
|
|
136
117
|
* A `where in` query can be built by using the `in` operator and an array
|
|
137
118
|
* of values. The values in the array can also be subqueries or raw
|
|
138
119
|
* instances.
|
|
@@ -151,8 +132,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
151
132
|
* select * from "person" where "id" in ($1, $2, $3)
|
|
152
133
|
* ```
|
|
153
134
|
*
|
|
154
|
-
* @
|
|
155
|
-
* If everything else fails, you can always pass {@link Kysely.raw | raw}
|
|
135
|
+
* If everything else fails, you can always pass {@link Kysely.raw | raw}
|
|
156
136
|
* as any of the arguments, including the operator:
|
|
157
137
|
*
|
|
158
138
|
* ```ts
|
|
@@ -174,9 +154,8 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
174
154
|
* where coalesce(first_name, last_name) like $1
|
|
175
155
|
* ```
|
|
176
156
|
*
|
|
177
|
-
* @example
|
|
178
157
|
* If you only pass one function argument to this method, it can be
|
|
179
|
-
* used to create parentheses around other where
|
|
158
|
+
* used to create parentheses around other where statements:
|
|
180
159
|
*
|
|
181
160
|
* ```ts
|
|
182
161
|
* const persons = await db
|
|
@@ -195,7 +174,6 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
195
174
|
* select * from "person" (where "id" = 1 or "id" = 2)
|
|
196
175
|
* ```
|
|
197
176
|
*
|
|
198
|
-
* @example
|
|
199
177
|
* In all examples above the columns were known at compile time
|
|
200
178
|
* (except for the `raw` expressions). By default kysely only allows
|
|
201
179
|
* you to refer to columns that exist in the database **and** can be
|
|
@@ -208,7 +186,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
208
186
|
* uses both:
|
|
209
187
|
*
|
|
210
188
|
* ```ts
|
|
211
|
-
* const {
|
|
189
|
+
* const { ref } = db.dynamic
|
|
212
190
|
*
|
|
213
191
|
* const persons = await db
|
|
214
192
|
* .selectFrom('person')
|
|
@@ -218,9 +196,9 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
218
196
|
* .execute()
|
|
219
197
|
* ```
|
|
220
198
|
*/
|
|
221
|
-
where<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: FilterOperator, rhs:
|
|
222
|
-
where(grouper:
|
|
223
|
-
where(raw: AnyRawBuilder):
|
|
199
|
+
where<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: FilterOperator, rhs: FilterValueExpressionOrList<DB, TB, RE>): SelectQueryBuilder<DB, TB, O>;
|
|
200
|
+
where(grouper: WhereGrouper<DB, TB>): SelectQueryBuilder<DB, TB, O>;
|
|
201
|
+
where(raw: AnyRawBuilder): SelectQueryBuilder<DB, TB, O>;
|
|
224
202
|
/**
|
|
225
203
|
* Adds a `where` clause where both sides of the operator are references
|
|
226
204
|
* to columns.
|
|
@@ -229,7 +207,8 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
229
207
|
* value by default. `whereRef` treats it as a column reference. This method is
|
|
230
208
|
* expecially useful with joins and correclated subqueries.
|
|
231
209
|
*
|
|
232
|
-
*
|
|
210
|
+
* ### Examples
|
|
211
|
+
*
|
|
233
212
|
* Usage with a join:
|
|
234
213
|
*
|
|
235
214
|
* ```ts
|
|
@@ -244,7 +223,6 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
244
223
|
* select * from "person", "pet" where "person"."first_name" = "pet"."name"
|
|
245
224
|
* ```
|
|
246
225
|
*
|
|
247
|
-
* @example
|
|
248
226
|
* Usage in a subquery:
|
|
249
227
|
*
|
|
250
228
|
* ```ts
|
|
@@ -252,7 +230,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
252
230
|
* .selectFrom('person')
|
|
253
231
|
* .selectAll('person')
|
|
254
232
|
* .select((qb) => qb
|
|
255
|
-
* .
|
|
233
|
+
* .selectFrom('pet')
|
|
256
234
|
* .select('name')
|
|
257
235
|
* .whereRef('pet.owner_id', '=', 'person.id')
|
|
258
236
|
* .limit(1)
|
|
@@ -272,16 +250,16 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
272
250
|
* ) as "pet_name"
|
|
273
251
|
* from "person"
|
|
274
252
|
*/
|
|
275
|
-
whereRef(lhs: ReferenceExpression<DB, TB>, op: FilterOperator, rhs: ReferenceExpression<DB, TB>):
|
|
253
|
+
whereRef(lhs: ReferenceExpression<DB, TB>, op: FilterOperator, rhs: ReferenceExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
|
|
276
254
|
/**
|
|
277
|
-
* Adds an `or where` clause to the query. Otherwise works just like
|
|
278
|
-
* {@link QueryBuilder.where | where}.
|
|
255
|
+
* Adds an `or where` clause to the query. Otherwise works just like {@link where}.
|
|
279
256
|
*
|
|
280
257
|
* It's often necessary to wrap `or where` clauses in parentheses to control
|
|
281
258
|
* precendence. You can use the one argument version of the `where` method
|
|
282
259
|
* for that. See the examples.
|
|
283
260
|
*
|
|
284
|
-
*
|
|
261
|
+
* ### Examples
|
|
262
|
+
*
|
|
285
263
|
* ```ts
|
|
286
264
|
* const persons = await db
|
|
287
265
|
* .selectFrom('person')
|
|
@@ -297,7 +275,6 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
297
275
|
* select * from "person" where "id" = 1 or "id" = 2
|
|
298
276
|
* ```
|
|
299
277
|
*
|
|
300
|
-
* @example
|
|
301
278
|
* Grouping with parentheses:
|
|
302
279
|
*
|
|
303
280
|
* ```ts
|
|
@@ -317,7 +294,6 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
317
294
|
* select * from "person" (where "id" = 1 or "id" = 2)
|
|
318
295
|
* ```
|
|
319
296
|
*
|
|
320
|
-
* @example
|
|
321
297
|
* Even the first `where` can be an `orWhere`. This is useful
|
|
322
298
|
* if you are looping through a set of conditions:
|
|
323
299
|
*
|
|
@@ -338,22 +314,22 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
338
314
|
* select * from "person" (where "id" = 1 or "id" = 2)
|
|
339
315
|
* ```
|
|
340
316
|
*/
|
|
341
|
-
orWhere<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: FilterOperator, rhs:
|
|
342
|
-
orWhere(grouper:
|
|
343
|
-
orWhere(raw: AnyRawBuilder):
|
|
317
|
+
orWhere<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: FilterOperator, rhs: FilterValueExpressionOrList<DB, TB, RE>): SelectQueryBuilder<DB, TB, O>;
|
|
318
|
+
orWhere(grouper: WhereGrouper<DB, TB>): SelectQueryBuilder<DB, TB, O>;
|
|
319
|
+
orWhere(raw: AnyRawBuilder): SelectQueryBuilder<DB, TB, O>;
|
|
344
320
|
/**
|
|
345
|
-
* Adds an `or where` clause to the query. Otherwise works just like
|
|
346
|
-
* {@link QueryBuilder.whereRef | whereRef}.
|
|
321
|
+
* Adds an `or where` clause to the query. Otherwise works just like {@link whereRef}.
|
|
347
322
|
*
|
|
348
|
-
* Also see {@link
|
|
323
|
+
* Also see {@link orWhere} and {@link where}.
|
|
349
324
|
*/
|
|
350
|
-
orWhereRef(lhs: ReferenceExpression<DB, TB>, op: FilterOperator, rhs: ReferenceExpression<DB, TB>):
|
|
325
|
+
orWhereRef(lhs: ReferenceExpression<DB, TB>, op: FilterOperator, rhs: ReferenceExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
|
|
351
326
|
/**
|
|
352
327
|
* Adds a `where exists` clause to the query.
|
|
353
328
|
*
|
|
354
329
|
* You can either use a subquery or a raw instance.
|
|
355
330
|
*
|
|
356
|
-
*
|
|
331
|
+
* ### Examples
|
|
332
|
+
*
|
|
357
333
|
* The query below selets all persons that own a pet named Catto:
|
|
358
334
|
*
|
|
359
335
|
* ```ts
|
|
@@ -361,7 +337,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
361
337
|
* .selectFrom('person')
|
|
362
338
|
* .selectAll()
|
|
363
339
|
* .whereExists((qb) => qb
|
|
364
|
-
* .
|
|
340
|
+
* .selectFrom('pet')
|
|
365
341
|
* .select('pet.id')
|
|
366
342
|
* .whereRef('person.id', '=', 'pet.owner_id')
|
|
367
343
|
* .where('pet.name', '=', 'Catto')
|
|
@@ -381,7 +357,6 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
381
357
|
* )
|
|
382
358
|
* ```
|
|
383
359
|
*
|
|
384
|
-
* @example
|
|
385
360
|
* The same query as in the previous example but with using raw:
|
|
386
361
|
*
|
|
387
362
|
* ```ts
|
|
@@ -407,63 +382,63 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
407
382
|
* )
|
|
408
383
|
* ```
|
|
409
384
|
*/
|
|
410
|
-
whereExists(arg: ExistsExpression<DB, TB>):
|
|
385
|
+
whereExists(arg: ExistsExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
|
|
411
386
|
/**
|
|
412
|
-
* Just like {@link
|
|
387
|
+
* Just like {@link whereExists} but creates a `not exists` clause.
|
|
413
388
|
*/
|
|
414
|
-
whereNotExists(arg: ExistsExpression<DB, TB>):
|
|
389
|
+
whereNotExists(arg: ExistsExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
|
|
415
390
|
/**
|
|
416
|
-
* Just like {@link
|
|
391
|
+
* Just like {@link whereExists} but creates a `or exists` clause.
|
|
417
392
|
*/
|
|
418
|
-
orWhereExists(arg: ExistsExpression<DB, TB>):
|
|
393
|
+
orWhereExists(arg: ExistsExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
|
|
419
394
|
/**
|
|
420
|
-
* Just like {@link
|
|
395
|
+
* Just like {@link whereExists} but creates a `or not exists` clause.
|
|
421
396
|
*/
|
|
422
|
-
orWhereNotExists(arg: ExistsExpression<DB, TB>):
|
|
397
|
+
orWhereNotExists(arg: ExistsExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
|
|
423
398
|
/**
|
|
424
|
-
* Just like {@link
|
|
399
|
+
* Just like {@link WhereInterface.where | where} but adds a `having` statement
|
|
425
400
|
* instead of a `where` statement.
|
|
426
401
|
*/
|
|
427
|
-
having<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: FilterOperator, rhs:
|
|
428
|
-
having(grouper:
|
|
429
|
-
having(raw: AnyRawBuilder):
|
|
402
|
+
having<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: FilterOperator, rhs: FilterValueExpressionOrList<DB, TB, RE>): SelectQueryBuilder<DB, TB, O>;
|
|
403
|
+
having(grouper: HavingGrouper<DB, TB>): SelectQueryBuilder<DB, TB, O>;
|
|
404
|
+
having(raw: AnyRawBuilder): SelectQueryBuilder<DB, TB, O>;
|
|
430
405
|
/**
|
|
431
|
-
* Just like {@link
|
|
406
|
+
* Just like {@link WhereInterface.whereRef | whereRef} but adds a `having` statement
|
|
432
407
|
* instead of a `where` statement.
|
|
433
408
|
*/
|
|
434
|
-
havingRef(lhs: ReferenceExpression<DB, TB>, op: FilterOperator, rhs: ReferenceExpression<DB, TB>):
|
|
409
|
+
havingRef(lhs: ReferenceExpression<DB, TB>, op: FilterOperator, rhs: ReferenceExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
|
|
435
410
|
/**
|
|
436
|
-
* Just like {@link
|
|
411
|
+
* Just like {@link WhereInterface.orWhere | orWhere} but adds a `having` statement
|
|
437
412
|
* instead of a `where` statement.
|
|
438
413
|
*/
|
|
439
|
-
orHaving<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: FilterOperator, rhs:
|
|
440
|
-
orHaving(grouper:
|
|
441
|
-
orHaving(raw: AnyRawBuilder):
|
|
414
|
+
orHaving<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: FilterOperator, rhs: FilterValueExpressionOrList<DB, TB, RE>): SelectQueryBuilder<DB, TB, O>;
|
|
415
|
+
orHaving(grouper: HavingGrouper<DB, TB>): SelectQueryBuilder<DB, TB, O>;
|
|
416
|
+
orHaving(raw: AnyRawBuilder): SelectQueryBuilder<DB, TB, O>;
|
|
442
417
|
/**
|
|
443
|
-
* Just like {@link
|
|
418
|
+
* Just like {@link WhereInterface.orWhereRef | orWhereRef} but adds a `having` statement
|
|
444
419
|
* instead of a `where` statement.
|
|
445
420
|
*/
|
|
446
|
-
orHavingRef(lhs: ReferenceExpression<DB, TB>, op: FilterOperator, rhs: ReferenceExpression<DB, TB>):
|
|
421
|
+
orHavingRef(lhs: ReferenceExpression<DB, TB>, op: FilterOperator, rhs: ReferenceExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
|
|
447
422
|
/**
|
|
448
|
-
* Just like {@link
|
|
423
|
+
* Just like {@link WhereInterface.whereExists | whereExists} but adds a `having` statement
|
|
449
424
|
* instead of a `where` statement.
|
|
450
425
|
*/
|
|
451
|
-
havingExists(arg: ExistsExpression<DB, TB>):
|
|
426
|
+
havingExists(arg: ExistsExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
|
|
452
427
|
/**
|
|
453
|
-
* Just like {@link
|
|
428
|
+
* Just like {@link WhereInterface.whereNotExists | whereNotExists} but adds a `having` statement
|
|
454
429
|
* instead of a `where` statement.
|
|
455
430
|
*/
|
|
456
|
-
havingNotExist(arg: ExistsExpression<DB, TB>):
|
|
431
|
+
havingNotExist(arg: ExistsExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
|
|
457
432
|
/**
|
|
458
|
-
* Just like {@link
|
|
433
|
+
* Just like {@link WhereInterface.orWhereExists | orWhereExists} but adds a `having` statement
|
|
459
434
|
* instead of a `where` statement.
|
|
460
435
|
*/
|
|
461
|
-
orHavingExists(arg: ExistsExpression<DB, TB>):
|
|
436
|
+
orHavingExists(arg: ExistsExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
|
|
462
437
|
/**
|
|
463
|
-
* Just like {@link
|
|
438
|
+
* Just like {@link WhereInterface.orWhereNotExists | orWhereNotExists} but adds a `having` statement
|
|
464
439
|
* instead of a `where` statement.
|
|
465
440
|
*/
|
|
466
|
-
orHavingNotExists(arg: ExistsExpression<DB, TB>):
|
|
441
|
+
orHavingNotExists(arg: ExistsExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
|
|
467
442
|
/**
|
|
468
443
|
* Adds a select clause to the query.
|
|
469
444
|
*
|
|
@@ -481,9 +456,10 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
481
456
|
* same as calling `select(['id', 'first_name']).
|
|
482
457
|
*
|
|
483
458
|
* To select all columns of the query or specific tables see the
|
|
484
|
-
* {@link
|
|
459
|
+
* {@link SelectQueryBuilder.selectAll | selectAll} method.
|
|
460
|
+
*
|
|
461
|
+
* ### Examples
|
|
485
462
|
*
|
|
486
|
-
* @example
|
|
487
463
|
* Select a single column:
|
|
488
464
|
*
|
|
489
465
|
* ```ts
|
|
@@ -501,7 +477,6 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
501
477
|
* select "id" from "person" where "first_name" = $1
|
|
502
478
|
* ```
|
|
503
479
|
*
|
|
504
|
-
* @example
|
|
505
480
|
* Select a single column and specify a table:
|
|
506
481
|
*
|
|
507
482
|
* ```ts
|
|
@@ -518,7 +493,6 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
518
493
|
* select "person"."id" from "person", "pet"
|
|
519
494
|
* ```
|
|
520
495
|
*
|
|
521
|
-
* @example
|
|
522
496
|
* Select multiple columns:
|
|
523
497
|
*
|
|
524
498
|
* ```ts
|
|
@@ -536,7 +510,6 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
536
510
|
* select "person"."id", "first_name" from "person"
|
|
537
511
|
* ```
|
|
538
512
|
*
|
|
539
|
-
* @example
|
|
540
513
|
* Aliased selections:
|
|
541
514
|
*
|
|
542
515
|
* ```ts
|
|
@@ -560,7 +533,6 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
560
533
|
* from "person"
|
|
561
534
|
* ```
|
|
562
535
|
*
|
|
563
|
-
* @example
|
|
564
536
|
* You can also select subqueries and raw expressions. Note that you
|
|
565
537
|
* always need to give a name for the selections using the `as`
|
|
566
538
|
* method:
|
|
@@ -569,7 +541,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
569
541
|
* const persons = await db.selectFrom('person')
|
|
570
542
|
* .select([
|
|
571
543
|
* (qb) => qb
|
|
572
|
-
* .
|
|
544
|
+
* .selectFrom('pet')
|
|
573
545
|
* .whereRef('person.id', '=', 'pet.owner_id')
|
|
574
546
|
* .select('pet.name')
|
|
575
547
|
* .limit(1)
|
|
@@ -599,7 +571,6 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
599
571
|
* In case you use `raw` you need to specify the type of the expression
|
|
600
572
|
* (in this example `string`).
|
|
601
573
|
*
|
|
602
|
-
* @example
|
|
603
574
|
* All the examples above assume you know the column names at compile time.
|
|
604
575
|
* While it's better to build your code like that (that way you also know
|
|
605
576
|
* the types) sometimes it's not possible or you just prefer to write more
|
|
@@ -616,7 +587,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
616
587
|
*
|
|
617
588
|
* // A type that lists all possible values `columnFromUserInput` can have.
|
|
618
589
|
* // You can use `keyof Person` if any column of an interface is allowed.
|
|
619
|
-
* type PossibleColumns = 'last_name' |
|
|
590
|
+
* type PossibleColumns = 'last_name' | 'first_name' | 'birth_date'
|
|
620
591
|
*
|
|
621
592
|
* const spersons = await db.selectFrom('person')
|
|
622
593
|
* .select([
|
|
@@ -628,24 +599,25 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
628
599
|
* // The resulting type contains all `PossibleColumns` as optional fields
|
|
629
600
|
* // because we cannot know which field was actually selected before
|
|
630
601
|
* // running the code.
|
|
631
|
-
* const lastName: string |
|
|
632
|
-
* const firstName: string |
|
|
633
|
-
* const birthDate: string |
|
|
602
|
+
* const lastName: string | undefined = persons[0].last_name
|
|
603
|
+
* const firstName: string | undefined = persons[0].first_name
|
|
604
|
+
* const birthDate: string | undefined = persons[0].birth_date
|
|
634
605
|
*
|
|
635
606
|
* // The result type also contains the compile time selection `id`.
|
|
636
607
|
* persons[0].id
|
|
637
608
|
* ```
|
|
638
609
|
*/
|
|
639
|
-
select<
|
|
640
|
-
select<
|
|
610
|
+
select<SE extends SelectExpression<DB, TB>>(selections: ReadonlyArray<SE>): QueryBuilderWithSelection<DB, TB, O, SE>;
|
|
611
|
+
select<SE extends SelectExpression<DB, TB>>(selection: SE): QueryBuilderWithSelection<DB, TB, O, SE>;
|
|
641
612
|
/**
|
|
642
613
|
* Adds `distinct on` selections to the select clause.
|
|
643
614
|
*
|
|
644
|
-
* Takes the same inputs as the {@link
|
|
645
|
-
* See the {@link
|
|
615
|
+
* Takes the same inputs as the {@link SelectQueryBuilder.select | select} method.
|
|
616
|
+
* See the {@link SelectQueryBuilder.select | select} method's documentation for
|
|
646
617
|
* more examples.
|
|
647
618
|
*
|
|
648
|
-
*
|
|
619
|
+
* ### Examples
|
|
620
|
+
*
|
|
649
621
|
* ```ts
|
|
650
622
|
* await db.selectFrom('person')
|
|
651
623
|
* .innerJoin('pet', 'pet.owner_id', 'person.id')
|
|
@@ -664,12 +636,13 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
664
636
|
* where "pet"."name" = $1
|
|
665
637
|
* ```
|
|
666
638
|
*/
|
|
667
|
-
distinctOn<
|
|
668
|
-
distinctOn<
|
|
639
|
+
distinctOn<SE extends SelectExpression<DB, TB>>(selections: ReadonlyArray<SE>): SelectQueryBuilder<DB, TB, O>;
|
|
640
|
+
distinctOn<SE extends SelectExpression<DB, TB>>(selection: SE): SelectQueryBuilder<DB, TB, O>;
|
|
669
641
|
/**
|
|
670
642
|
* Makes the selection distinct.
|
|
671
643
|
*
|
|
672
|
-
*
|
|
644
|
+
* ### Examples
|
|
645
|
+
*
|
|
673
646
|
* ```ts
|
|
674
647
|
* await db.selectFrom('person')
|
|
675
648
|
* .select('first_name')
|
|
@@ -683,35 +656,36 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
683
656
|
* select distinct "first_name" from "person"
|
|
684
657
|
* ```
|
|
685
658
|
*/
|
|
686
|
-
distinct():
|
|
659
|
+
distinct(): SelectQueryBuilder<DB, TB, O>;
|
|
687
660
|
/**
|
|
688
661
|
* Adds the `for update` option to a select query on supported databases.
|
|
689
662
|
*/
|
|
690
|
-
forUpdate():
|
|
663
|
+
forUpdate(): SelectQueryBuilder<DB, TB, O>;
|
|
691
664
|
/**
|
|
692
665
|
* Adds the `for share` option to a select query on supported databases.
|
|
693
666
|
*/
|
|
694
|
-
forShare():
|
|
667
|
+
forShare(): SelectQueryBuilder<DB, TB, O>;
|
|
695
668
|
/**
|
|
696
669
|
* Adds the `for key share` option to a select query on supported databases.
|
|
697
670
|
*/
|
|
698
|
-
forKeyShare():
|
|
671
|
+
forKeyShare(): SelectQueryBuilder<DB, TB, O>;
|
|
699
672
|
/**
|
|
700
673
|
* Adds the `for no key update` option to a select query on supported databases.
|
|
701
674
|
*/
|
|
702
|
-
forNoKeyUpdate():
|
|
675
|
+
forNoKeyUpdate(): SelectQueryBuilder<DB, TB, O>;
|
|
703
676
|
/**
|
|
704
677
|
* Adds the `skip locked` option to a select query on supported databases.
|
|
705
678
|
*/
|
|
706
|
-
skipLocked():
|
|
679
|
+
skipLocked(): SelectQueryBuilder<DB, TB, O>;
|
|
707
680
|
/**
|
|
708
681
|
* Adds the `nowait` option to a select query on supported databases.
|
|
709
682
|
*/
|
|
710
|
-
noWait():
|
|
683
|
+
noWait(): SelectQueryBuilder<DB, TB, O>;
|
|
711
684
|
/**
|
|
712
685
|
* Adds a `select *` or `select table.*` clause to the query.
|
|
713
686
|
*
|
|
714
|
-
*
|
|
687
|
+
* ### Examples
|
|
688
|
+
*
|
|
715
689
|
* ```ts
|
|
716
690
|
* const persons = await db
|
|
717
691
|
* .selectFrom('person')
|
|
@@ -725,7 +699,8 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
725
699
|
* select * from "person"
|
|
726
700
|
* ```
|
|
727
701
|
*
|
|
728
|
-
*
|
|
702
|
+
* Select all columns of a table:
|
|
703
|
+
*
|
|
729
704
|
* ```ts
|
|
730
705
|
* const persons = await db
|
|
731
706
|
* .selectFrom('person')
|
|
@@ -739,7 +714,8 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
739
714
|
* select "person".* from "person"
|
|
740
715
|
* ```
|
|
741
716
|
*
|
|
742
|
-
*
|
|
717
|
+
* Select all columns of multiple tables:
|
|
718
|
+
*
|
|
743
719
|
* ```ts
|
|
744
720
|
* const personsPets = await db
|
|
745
721
|
* .selectFrom(['person', 'pet'])
|
|
@@ -759,7 +735,8 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
759
735
|
/**
|
|
760
736
|
* Joins another table to the query using an inner join.
|
|
761
737
|
*
|
|
762
|
-
*
|
|
738
|
+
* ### Examples
|
|
739
|
+
*
|
|
763
740
|
* Simple usage by providing a table name and two columns to join:
|
|
764
741
|
*
|
|
765
742
|
* ```ts
|
|
@@ -784,7 +761,6 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
784
761
|
* on "pet"."owner_id" = "person"."id"
|
|
785
762
|
* ```
|
|
786
763
|
*
|
|
787
|
-
* @example
|
|
788
764
|
* You can give an alias for the joined table like this:
|
|
789
765
|
*
|
|
790
766
|
* ```ts
|
|
@@ -805,7 +781,6 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
805
781
|
* where "p".name" = $1
|
|
806
782
|
* ```
|
|
807
783
|
*
|
|
808
|
-
* @example
|
|
809
784
|
* You can provide a function as the second argument to get a join
|
|
810
785
|
* builder for creating more complex joins. The join builder has a
|
|
811
786
|
* bunch of `on*` methods for building the `on` clause of the join.
|
|
@@ -836,14 +811,13 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
836
811
|
* and "pet"."name" = $1
|
|
837
812
|
* ```
|
|
838
813
|
*
|
|
839
|
-
* @example
|
|
840
814
|
* You can join a subquery by providing a function as the first
|
|
841
815
|
* argument:
|
|
842
816
|
*
|
|
843
817
|
* ```ts
|
|
844
818
|
* await db.selectFrom('person')
|
|
845
819
|
* .innerJoin(
|
|
846
|
-
* (qb) => qb.
|
|
820
|
+
* (qb) => qb.selectFrom('pet')
|
|
847
821
|
* .select(['owner_id', 'name'])
|
|
848
822
|
* .where('name', '=', 'Doggo')
|
|
849
823
|
* .as('doggos'),
|
|
@@ -867,480 +841,23 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
867
841
|
* on "doggos"."owner_id" = "person"."id"
|
|
868
842
|
* ```
|
|
869
843
|
*/
|
|
870
|
-
innerJoin<TE extends TableExpression<DB, TB>, K1 extends JoinReferenceExpression<DB, TB, TE>, K2 extends JoinReferenceExpression<DB, TB, TE>>(table: TE, k1: K1, k2: K2):
|
|
871
|
-
innerJoin<TE extends TableExpression<DB, TB>, FN extends JoinCallbackExpression<DB, TB, TE>>(table: TE, callback: FN):
|
|
872
|
-
/**
|
|
873
|
-
* Just like {@link QueryBuilder.innerJoin | innerJoin} but adds a left join
|
|
874
|
-
* instead of an inner join.
|
|
875
|
-
*/
|
|
876
|
-
leftJoin<TE extends TableExpression<DB, TB>, K1 extends JoinReferenceExpression<DB, TB, TE>, K2 extends JoinReferenceExpression<DB, TB, TE>>(table: TE, k1: K1, k2: K2): QueryBuilderWithLeftJoin<DB, TB, O, TE>;
|
|
877
|
-
leftJoin<TE extends TableExpression<DB, TB>, FN extends JoinCallbackExpression<DB, TB, TE>>(table: TE, callback: FN): QueryBuilderWithLeftJoin<DB, TB, O, TE>;
|
|
878
|
-
/**
|
|
879
|
-
* Just like {@link QueryBuilder.innerJoin | innerJoin} but adds a right join
|
|
880
|
-
* instead of an inner join.
|
|
881
|
-
*/
|
|
882
|
-
rightJoin<TE extends TableExpression<DB, TB>, K1 extends JoinReferenceExpression<DB, TB, TE>, K2 extends JoinReferenceExpression<DB, TB, TE>>(table: TE, k1: K1, k2: K2): QueryBuilderWithRightJoin<DB, TB, O, TE>;
|
|
883
|
-
rightJoin<TE extends TableExpression<DB, TB>, FN extends JoinCallbackExpression<DB, TB, TE>>(table: TE, callback: FN): QueryBuilderWithRightJoin<DB, TB, O, TE>;
|
|
884
|
-
/**
|
|
885
|
-
* Just like {@link QueryBuilder.innerJoin | innerJoin} but adds a full join
|
|
886
|
-
* instead of an inner join.
|
|
887
|
-
*/
|
|
888
|
-
fullJoin<TE extends TableExpression<DB, TB>, K1 extends JoinReferenceExpression<DB, TB, TE>, K2 extends JoinReferenceExpression<DB, TB, TE>>(table: TE, k1: K1, k2: K2): QueryBuilderWithFullJoin<DB, TB, O, TE>;
|
|
889
|
-
fullJoin<TE extends TableExpression<DB, TB>, FN extends JoinCallbackExpression<DB, TB, TE>>(table: TE, callback: FN): QueryBuilderWithFullJoin<DB, TB, O, TE>;
|
|
890
|
-
/**
|
|
891
|
-
* Sets the values to insert for an {@link Kysely.insertInto | insert} query.
|
|
892
|
-
*
|
|
893
|
-
* This method takes an object whose keys are column names and values are
|
|
894
|
-
* values to insert. In addition to the column's type, the values can be
|
|
895
|
-
* {@link Kysely.raw | raw} instances, select queries or the
|
|
896
|
-
* {@link Kysely.generated | generated} placeholder.
|
|
897
|
-
*
|
|
898
|
-
* You must provide all values defined by the interface of the table you
|
|
899
|
-
* are inserting into. Values that are generated by the database like auto incrementing
|
|
900
|
-
* identifiers can be marked with the {@link Kysely.generated} placeholder unless you
|
|
901
|
-
* want to insert a specific value instead of the generated default.
|
|
902
|
-
*
|
|
903
|
-
* The return value of an `insert` query is an instance of {@link InsertResult}. The
|
|
904
|
-
* {@link InsertResult.insertId | insertId} field holds the auto incremented primary
|
|
905
|
-
* key if the database returned one.
|
|
906
|
-
*
|
|
907
|
-
* On PostgreSQL and some other dialects, you need to call `returning` to get
|
|
908
|
-
* something out of the query.
|
|
909
|
-
*
|
|
910
|
-
* @example
|
|
911
|
-
* Insert a row into `person`:
|
|
912
|
-
* ```ts
|
|
913
|
-
* const id = await db
|
|
914
|
-
* .insertInto('person')
|
|
915
|
-
* .values({
|
|
916
|
-
* id: db.generated,
|
|
917
|
-
* first_name: 'Jennifer',
|
|
918
|
-
* last_name: 'Aniston'
|
|
919
|
-
* })
|
|
920
|
-
* .executeTakeFirstOrThrow()
|
|
921
|
-
* ```
|
|
922
|
-
*
|
|
923
|
-
* The generated SQL (PostgreSQL):
|
|
924
|
-
*
|
|
925
|
-
* ```sql
|
|
926
|
-
* insert into "person" ("first_name", "last_name") values ($1, $2)
|
|
927
|
-
* ```
|
|
928
|
-
*
|
|
929
|
-
* @example
|
|
930
|
-
* On dialects that support it (for example PostgreSQL) you can insert multiple
|
|
931
|
-
* rows by providing an array. Note that the return value is once again very
|
|
932
|
-
* dialect-specific. Some databases may only return the id of the *last* inserted
|
|
933
|
-
* row and some return nothing at all unless you call `returning`.
|
|
934
|
-
*
|
|
935
|
-
* ```ts
|
|
936
|
-
* await db
|
|
937
|
-
* .insertInto('person')
|
|
938
|
-
* .values([{
|
|
939
|
-
* id: db.generated,
|
|
940
|
-
* first_name: 'Jennifer',
|
|
941
|
-
* last_name: 'Aniston'
|
|
942
|
-
* }, {
|
|
943
|
-
* id: db.generated,
|
|
944
|
-
* first_name: 'Arnold',
|
|
945
|
-
* last_name: 'Schwarzenegger',
|
|
946
|
-
* }])
|
|
947
|
-
* .execute()
|
|
948
|
-
* ```
|
|
949
|
-
*
|
|
950
|
-
* The generated SQL (PostgreSQL):
|
|
951
|
-
*
|
|
952
|
-
* ```sql
|
|
953
|
-
* insert into "person" ("first_name", "last_name") values (($1, $2), ($3, $4))
|
|
954
|
-
* ```
|
|
955
|
-
*
|
|
956
|
-
* @example
|
|
957
|
-
* On postgresql you need to chain `returning` to the query to get
|
|
958
|
-
* the inserted row's columns (or any other expression) as the
|
|
959
|
-
* return value:
|
|
960
|
-
*
|
|
961
|
-
* ```ts
|
|
962
|
-
* const row = await db
|
|
963
|
-
* .insertInto('person')
|
|
964
|
-
* .values({
|
|
965
|
-
* id: db.generated,
|
|
966
|
-
* first_name: 'Jennifer',
|
|
967
|
-
* last_name: 'Aniston'
|
|
968
|
-
* })
|
|
969
|
-
* .returning('id')
|
|
970
|
-
* .executeTakeFirstOrThrow()
|
|
971
|
-
*
|
|
972
|
-
* row.id
|
|
973
|
-
* ```
|
|
974
|
-
*
|
|
975
|
-
* The generated SQL (PostgreSQL):
|
|
976
|
-
*
|
|
977
|
-
* ```sql
|
|
978
|
-
* insert into "person" ("first_name", "last_name") values ($1, $2) returning "id"
|
|
979
|
-
* ```
|
|
980
|
-
*
|
|
981
|
-
* @example
|
|
982
|
-
* In addition to primitives, the values can also be `raw` expressions or
|
|
983
|
-
* select queries:
|
|
984
|
-
*
|
|
985
|
-
* ```ts
|
|
986
|
-
* const result = await db
|
|
987
|
-
* .insertInto('person')
|
|
988
|
-
* .values({
|
|
989
|
-
* id: db.generated,
|
|
990
|
-
* first_name: 'Jennifer',
|
|
991
|
-
* last_name: db.raw('? || ?', ['Ani', 'ston']),
|
|
992
|
-
* age: db.selectFrom('person').select(raw('avg(age)')),
|
|
993
|
-
* })
|
|
994
|
-
* .executeTakeFirst()
|
|
995
|
-
*
|
|
996
|
-
* console.log(result.insertId)
|
|
997
|
-
* ```
|
|
998
|
-
*
|
|
999
|
-
* The generated SQL (PostgreSQL):
|
|
1000
|
-
*
|
|
1001
|
-
* ```sql
|
|
1002
|
-
* insert into "person" ("first_name", "last_name", "age")
|
|
1003
|
-
* values ($1, $2 || $3, (select avg(age) from "person"))
|
|
1004
|
-
* ```
|
|
1005
|
-
*/
|
|
1006
|
-
values(row: InsertObject<DB, TB>): QueryBuilder<DB, TB, O>;
|
|
1007
|
-
values(row: ReadonlyArray<InsertObject<DB, TB>>): QueryBuilder<DB, TB, O>;
|
|
1008
|
-
/**
|
|
1009
|
-
* Ignores the insert if the column or constraint given as the first
|
|
1010
|
-
* argument conflicts with the current rows in the database. The
|
|
1011
|
-
* default behavior without this method call is to throw an error.
|
|
1012
|
-
*
|
|
1013
|
-
* For example if a table has a field `name` that has a unique constraint
|
|
1014
|
-
* and you try to insert a row with a `name` that already exists in the
|
|
1015
|
-
* database, calling `onConflictDoNothing('name')` will ignore the conflict
|
|
1016
|
-
* and do nothing. By default the query would throw.
|
|
1017
|
-
*
|
|
1018
|
-
* Only some dialects like PostgreSQL and SQLite implement the `on conflict`
|
|
1019
|
-
* statement. On MySQL you should use the {@link ignore} method to achieve
|
|
1020
|
-
* similar results.
|
|
1021
|
-
*
|
|
1022
|
-
* Also see the {@link QueryBuilder.onConflictUpdate | onConflictUpdate}
|
|
1023
|
-
* method if you want to perform an update in case of a conflict (upsert).
|
|
1024
|
-
*
|
|
1025
|
-
* @example
|
|
1026
|
-
* ```ts
|
|
1027
|
-
* await db
|
|
1028
|
-
* .insertInto('pet')
|
|
1029
|
-
* .values({
|
|
1030
|
-
* id: db.generated,
|
|
1031
|
-
* name: 'Catto',
|
|
1032
|
-
* species: 'cat',
|
|
1033
|
-
* })
|
|
1034
|
-
* .onConflictDoNothing('name')
|
|
1035
|
-
* .execute()
|
|
1036
|
-
* ```
|
|
1037
|
-
*
|
|
1038
|
-
* The generated SQL (PostgreSQL):
|
|
1039
|
-
*
|
|
1040
|
-
* ```sql
|
|
1041
|
-
* insert into "pet" ("name", "species")
|
|
1042
|
-
* values ($1, $2)
|
|
1043
|
-
* on conflict ("name") do nothing
|
|
1044
|
-
* ```
|
|
1045
|
-
*
|
|
1046
|
-
* @example
|
|
1047
|
-
* You can provied the name of the constraint instead of a column name
|
|
1048
|
-
*
|
|
1049
|
-
* ```ts
|
|
1050
|
-
* await db
|
|
1051
|
-
* .insertInto('pet')
|
|
1052
|
-
* .values({
|
|
1053
|
-
* id: db.generated,
|
|
1054
|
-
* name: 'Catto',
|
|
1055
|
-
* species: 'cat',
|
|
1056
|
-
* })
|
|
1057
|
-
* .onConflictDoNothing({
|
|
1058
|
-
* constraint: 'pet_name_key'
|
|
1059
|
-
* })
|
|
1060
|
-
* .execute()
|
|
1061
|
-
* ```
|
|
1062
|
-
*
|
|
1063
|
-
* The generated SQL (PostgreSQL):
|
|
1064
|
-
*
|
|
1065
|
-
* ```sql
|
|
1066
|
-
* insert into "pet" ("name", "species")
|
|
1067
|
-
* values ($1, $2)
|
|
1068
|
-
* on conflict on constraint "pet_name_key"
|
|
1069
|
-
* do nothing
|
|
1070
|
-
* ```
|
|
1071
|
-
*/
|
|
1072
|
-
onConflictDoNothing(column: AnyColumn<DB, TB>): QueryBuilder<DB, TB, O>;
|
|
1073
|
-
onConflictDoNothing(columns: ReadonlyArray<AnyColumn<DB, TB>>): QueryBuilder<DB, TB, O>;
|
|
1074
|
-
onConflictDoNothing(constraint: OnConflictConstraintTarget): QueryBuilder<DB, TB, O>;
|
|
1075
|
-
/**
|
|
1076
|
-
* Changes an `insert into` query to an `insert ignore into` query.
|
|
1077
|
-
*
|
|
1078
|
-
* If you use the ignore modifier, ignorable errors that occur while executing the
|
|
1079
|
-
* insert statement are ignored. For example, without ignore, a row that duplicates
|
|
1080
|
-
* an existing unique index or primary key value in the table causes a duplicate-key
|
|
1081
|
-
* error and the statement is aborted. With ignore, the row is discarded and no error
|
|
1082
|
-
* occurs.
|
|
1083
|
-
*
|
|
1084
|
-
* This is only supported on some dialects like MySQL. On most dialects you should
|
|
1085
|
-
* use the {@link onConflictDoNothing} method.
|
|
1086
|
-
*
|
|
1087
|
-
* @example
|
|
1088
|
-
* ```ts
|
|
1089
|
-
* await db.insertInto('person')
|
|
1090
|
-
* .ignore()
|
|
1091
|
-
* .values(values)
|
|
1092
|
-
* .execute()
|
|
1093
|
-
* ```
|
|
1094
|
-
*/
|
|
1095
|
-
ignore(): QueryBuilder<DB, TB, O>;
|
|
1096
|
-
/**
|
|
1097
|
-
* Ignores an insert if the column or constraint given as the first
|
|
1098
|
-
* argument conflicts with the current rows in the database and
|
|
1099
|
-
* performs an update on the conflicting row instead. This method
|
|
1100
|
-
* can be used to implement an upsert operation.
|
|
1101
|
-
*
|
|
1102
|
-
* For example if a table has a field `name` that has a unique constraint
|
|
1103
|
-
* and you try to insert a row with a `name` that already exists in the
|
|
1104
|
-
* database, calling `onConfictUpdate('name', { species: 'hamster' })`
|
|
1105
|
-
* will set the conflicting row's `species` field to value `'hamster'`.
|
|
1106
|
-
* By default the query would throw.
|
|
1107
|
-
*
|
|
1108
|
-
* The second argument (updates) can be anything the {@link QueryBuilder.set | set}
|
|
1109
|
-
* method accepts.
|
|
1110
|
-
*
|
|
1111
|
-
* The `on conflict do update` statement is only implemented by some dialects
|
|
1112
|
-
* like PostgreSQL and SQLite. On MySQL you should use the {@link onDuplicateKeyUpdate}
|
|
1113
|
-
* method instead.
|
|
1114
|
-
*
|
|
1115
|
-
* Also see the {@link QueryBuilder.onConflictDoNothing | onConflictDoNothing}
|
|
1116
|
-
* method.
|
|
1117
|
-
*
|
|
1118
|
-
* @example
|
|
1119
|
-
* ```ts
|
|
1120
|
-
* await db
|
|
1121
|
-
* .insertInto('pet')
|
|
1122
|
-
* .values({
|
|
1123
|
-
* id: db.generated,
|
|
1124
|
-
* name: 'Catto',
|
|
1125
|
-
* species: 'cat',
|
|
1126
|
-
* })
|
|
1127
|
-
* .onConflictUpdate('name', { species: 'hamster' })
|
|
1128
|
-
* .execute()
|
|
1129
|
-
* ```
|
|
1130
|
-
*
|
|
1131
|
-
* The generated SQL (PostgreSQL):
|
|
1132
|
-
*
|
|
1133
|
-
* ```sql
|
|
1134
|
-
* insert into "pet" ("name", "species")
|
|
1135
|
-
* values ($1, $2)
|
|
1136
|
-
* on conflict ("name") do update set "species" = $3
|
|
1137
|
-
* ```
|
|
1138
|
-
*
|
|
1139
|
-
* @example
|
|
1140
|
-
* You can provied the name of the constraint instead of a column name
|
|
1141
|
-
*
|
|
1142
|
-
* ```ts
|
|
1143
|
-
* await db
|
|
1144
|
-
* .insertInto('pet')
|
|
1145
|
-
* .values({
|
|
1146
|
-
* id: db.generated,
|
|
1147
|
-
* name: 'Catto',
|
|
1148
|
-
* species: 'cat',
|
|
1149
|
-
* })
|
|
1150
|
-
* .onConflictUpdate(
|
|
1151
|
-
* { constraint: 'pet_name_key' },
|
|
1152
|
-
* { species: 'hamster' }
|
|
1153
|
-
* )
|
|
1154
|
-
* .execute()
|
|
1155
|
-
* ```
|
|
1156
|
-
*
|
|
1157
|
-
* The generated SQL (PostgreSQL):
|
|
1158
|
-
*
|
|
1159
|
-
* ```sql
|
|
1160
|
-
* insert into "pet" ("name", "species")
|
|
1161
|
-
* values ($1, $2)
|
|
1162
|
-
* on conflict on constraint "pet_name_key"
|
|
1163
|
-
* do update set "species" = $3
|
|
1164
|
-
* ```
|
|
1165
|
-
*/
|
|
1166
|
-
onConflictUpdate(column: AnyColumn<DB, TB>, updates: MutationObject<DB, TB>): QueryBuilder<DB, TB, O>;
|
|
1167
|
-
onConflictUpdate(columns: ReadonlyArray<AnyColumn<DB, TB>>, updates: MutationObject<DB, TB>): QueryBuilder<DB, TB, O>;
|
|
1168
|
-
onConflictUpdate(constraint: OnConflictConstraintTarget, updates: MutationObject<DB, TB>): QueryBuilder<DB, TB, O>;
|
|
1169
|
-
/**
|
|
1170
|
-
* Adds `on duplicate key update` to an insert query.
|
|
1171
|
-
*
|
|
1172
|
-
* If you specify `on duplicate key update`, and a row is inserted that would cause
|
|
1173
|
-
* a duplicate value in a unique index or primary key, an update of the old row occurs.
|
|
1174
|
-
*
|
|
1175
|
-
* This is only implemented by some dialects like MySQL. On most dialects you should
|
|
1176
|
-
* use {@link onConflictUpdate} instead.
|
|
1177
|
-
*
|
|
1178
|
-
* @example
|
|
1179
|
-
* ```ts
|
|
1180
|
-
* await db
|
|
1181
|
-
* .insertInto('person')
|
|
1182
|
-
* .values(values)
|
|
1183
|
-
* .onDuplicateKeyUpdate({ species: 'hamster' })
|
|
1184
|
-
* ```
|
|
1185
|
-
*/
|
|
1186
|
-
onDuplicateKeyUpdate(updates: MutationObject<DB, TB>): QueryBuilder<DB, TB, O>;
|
|
844
|
+
innerJoin<TE extends TableExpression<DB, TB>, K1 extends JoinReferenceExpression<DB, TB, TE>, K2 extends JoinReferenceExpression<DB, TB, TE>>(table: TE, k1: K1, k2: K2): SelectQueryBuilder<TableExpressionDatabase<DB, TE>, TableExpressionTables<DB, TB, TE>, O>;
|
|
845
|
+
innerJoin<TE extends TableExpression<DB, TB>, FN extends JoinCallbackExpression<DB, TB, TE>>(table: TE, callback: FN): SelectQueryBuilder<TableExpressionDatabase<DB, TE>, TableExpressionTables<DB, TB, TE>, O>;
|
|
1187
846
|
/**
|
|
1188
|
-
*
|
|
1189
|
-
*
|
|
1190
|
-
* This method takes an object whose keys are column names and values are
|
|
1191
|
-
* values to update. In addition to the column's type, the values can be `raw`
|
|
1192
|
-
* instances or select queries.
|
|
1193
|
-
*
|
|
1194
|
-
* The return value of an update query is an instance of {@link UpdateResult}.
|
|
1195
|
-
* You can use the {@link QueryBuilder.returning | returning} method on
|
|
1196
|
-
* supported databases to get out the updated rows.
|
|
1197
|
-
*
|
|
1198
|
-
* @example
|
|
1199
|
-
* Update a row in `person` table:
|
|
1200
|
-
*
|
|
1201
|
-
* ```ts
|
|
1202
|
-
* const result = await db
|
|
1203
|
-
* .updateTable('person')
|
|
1204
|
-
* .set({
|
|
1205
|
-
* first_name: 'Jennifer',
|
|
1206
|
-
* last_name: 'Aniston'
|
|
1207
|
-
* })
|
|
1208
|
-
* .where('id', '=', 1)
|
|
1209
|
-
* .executeTakeFirst()
|
|
1210
|
-
*
|
|
1211
|
-
* console.log(result.numUpdatedRows)
|
|
1212
|
-
* ```
|
|
1213
|
-
*
|
|
1214
|
-
* The generated SQL (PostgreSQL):
|
|
1215
|
-
*
|
|
1216
|
-
* ```sql
|
|
1217
|
-
* update "person" set "first_name" = $1, "last_name" = $2 where "id" = $3
|
|
1218
|
-
* ```
|
|
1219
|
-
*
|
|
1220
|
-
* @example
|
|
1221
|
-
* On postgresql you ca chain `returning` to the query to get
|
|
1222
|
-
* the updated rows' columns (or any other expression) as the
|
|
1223
|
-
* return value:
|
|
1224
|
-
*
|
|
1225
|
-
* ```ts
|
|
1226
|
-
* const row = await db
|
|
1227
|
-
* .updateTable('person')
|
|
1228
|
-
* .set({
|
|
1229
|
-
* first_name: 'Jennifer',
|
|
1230
|
-
* last_name: 'Aniston'
|
|
1231
|
-
* })
|
|
1232
|
-
* .where('id', '=', 1)
|
|
1233
|
-
* .returning('id')
|
|
1234
|
-
* .executeTakeFirstOrThrow()
|
|
1235
|
-
*
|
|
1236
|
-
* row.id
|
|
1237
|
-
* ```
|
|
1238
|
-
*
|
|
1239
|
-
* The generated SQL (PostgreSQL):
|
|
1240
|
-
*
|
|
1241
|
-
* ```sql
|
|
1242
|
-
* update "person" set "first_name" = $1, "last_name" = $2 where "id" = $3 returning "id"
|
|
1243
|
-
* ```
|
|
1244
|
-
*
|
|
1245
|
-
* @example
|
|
1246
|
-
* In addition to primitives, the values can also be `raw` expressions or
|
|
1247
|
-
* select queries:
|
|
1248
|
-
*
|
|
1249
|
-
* ```ts
|
|
1250
|
-
* const result = await db
|
|
1251
|
-
* .updateTable('person')
|
|
1252
|
-
* .set({
|
|
1253
|
-
* first_name: 'Jennifer',
|
|
1254
|
-
* last_name: db.raw('? || ?', ['Ani', 'ston']),
|
|
1255
|
-
* age: db.selectFrom('person').select(raw('avg(age)')),
|
|
1256
|
-
* })
|
|
1257
|
-
* .where('id', '=', 1)
|
|
1258
|
-
* .executeTakeFirst()
|
|
1259
|
-
*
|
|
1260
|
-
* console.log(result.numUpdatedRows)
|
|
1261
|
-
* ```
|
|
1262
|
-
*
|
|
1263
|
-
* The generated SQL (PostgreSQL):
|
|
1264
|
-
*
|
|
1265
|
-
* ```sql
|
|
1266
|
-
* update "person" set
|
|
1267
|
-
* "first_name" = $1,
|
|
1268
|
-
* "last_name" = $2 || $3,
|
|
1269
|
-
* "age" = (select avg(age) from "person")
|
|
1270
|
-
* where "id" = $4
|
|
1271
|
-
* ```
|
|
847
|
+
* Just like {@link innerJoin} but adds a left join nstead of an inner join.
|
|
1272
848
|
*/
|
|
1273
|
-
|
|
849
|
+
leftJoin<TE extends TableExpression<DB, TB>, K1 extends JoinReferenceExpression<DB, TB, TE>, K2 extends JoinReferenceExpression<DB, TB, TE>>(table: TE, k1: K1, k2: K2): SelectQueryBuilder<LeftJoinTableExpressionDatabase<DB, TE>, TableExpressionTables<DB, TB, TE>, O>;
|
|
850
|
+
leftJoin<TE extends TableExpression<DB, TB>, FN extends JoinCallbackExpression<DB, TB, TE>>(table: TE, callback: FN): SelectQueryBuilder<LeftJoinTableExpressionDatabase<DB, TE>, TableExpressionTables<DB, TB, TE>, O>;
|
|
1274
851
|
/**
|
|
1275
|
-
*
|
|
1276
|
-
*
|
|
1277
|
-
* On supported databases like PostgreSQL, this method can be chained to
|
|
1278
|
-
* `insert`, `update` and `delete` queries to return data.
|
|
1279
|
-
*
|
|
1280
|
-
* Note that on SQLite you need to give aliases for the expressions to avoid
|
|
1281
|
-
* [this bug](https://sqlite.org/forum/forumpost/033daf0b32) in SQLite.
|
|
1282
|
-
* For example `.returning('id as id')`.
|
|
1283
|
-
*
|
|
1284
|
-
* Also see the {@link QueryBuilder.returningAll | returningAll} method.
|
|
1285
|
-
*
|
|
1286
|
-
* @example
|
|
1287
|
-
* Return one column:
|
|
1288
|
-
*
|
|
1289
|
-
* ```ts
|
|
1290
|
-
* const { id } = await db
|
|
1291
|
-
* .insertInto('person')
|
|
1292
|
-
* .values({
|
|
1293
|
-
* id: db.generated,
|
|
1294
|
-
* first_name: 'Jennifer',
|
|
1295
|
-
* last_name: 'Aniston'
|
|
1296
|
-
* })
|
|
1297
|
-
* .returning('id')
|
|
1298
|
-
* .executeTakeFirst()
|
|
1299
|
-
* ```
|
|
1300
|
-
*
|
|
1301
|
-
* @example
|
|
1302
|
-
* Return multiple columns:
|
|
1303
|
-
*
|
|
1304
|
-
* ```ts
|
|
1305
|
-
* const { id, first_name } = await db
|
|
1306
|
-
* .insertInto('person')
|
|
1307
|
-
* .values({
|
|
1308
|
-
* id: db.generated,
|
|
1309
|
-
* first_name: 'Jennifer',
|
|
1310
|
-
* last_name: 'Aniston'
|
|
1311
|
-
* })
|
|
1312
|
-
* .returning(['id', 'last_name'])
|
|
1313
|
-
* .executeTakeFirst()
|
|
1314
|
-
* ```
|
|
1315
|
-
*
|
|
1316
|
-
* @example
|
|
1317
|
-
* Return arbitrary expressions:
|
|
1318
|
-
*
|
|
1319
|
-
* ```ts
|
|
1320
|
-
* const { raw } = db
|
|
1321
|
-
*
|
|
1322
|
-
* const { id, full_name, first_pet_id } = await db
|
|
1323
|
-
* .insertInto('person')
|
|
1324
|
-
* .values({
|
|
1325
|
-
* id: db.generated,
|
|
1326
|
-
* first_name: 'Jennifer',
|
|
1327
|
-
* last_name: 'Aniston'
|
|
1328
|
-
* })
|
|
1329
|
-
* .returning([
|
|
1330
|
-
* 'id as id',
|
|
1331
|
-
* raw<string>(`concat(first_name, ' ', last_name)`).as('full_name'),
|
|
1332
|
-
* (qb) => qb.subQuery('pets').select('pet.id').limit(1).as('first_pet_id')
|
|
1333
|
-
* ])
|
|
1334
|
-
* .executeTakeFirst()
|
|
1335
|
-
* ```
|
|
852
|
+
* Just like {@link innerJoin} but adds a right join instead of an inner join.
|
|
1336
853
|
*/
|
|
1337
|
-
|
|
1338
|
-
|
|
854
|
+
rightJoin<TE extends TableExpression<DB, TB>, K1 extends JoinReferenceExpression<DB, TB, TE>, K2 extends JoinReferenceExpression<DB, TB, TE>>(table: TE, k1: K1, k2: K2): SelectQueryBuilder<RightJoinTableExpressionDatabase<DB, TB, TE>, TableExpressionTables<DB, TB, TE>, O>;
|
|
855
|
+
rightJoin<TE extends TableExpression<DB, TB>, FN extends JoinCallbackExpression<DB, TB, TE>>(table: TE, callback: FN): SelectQueryBuilder<RightJoinTableExpressionDatabase<DB, TB, TE>, TableExpressionTables<DB, TB, TE>, O>;
|
|
1339
856
|
/**
|
|
1340
|
-
*
|
|
1341
|
-
* that support `returning` such as PostgreSQL.
|
|
857
|
+
* Just like {@link innerJoin} but adds a full join instead of an inner join.
|
|
1342
858
|
*/
|
|
1343
|
-
|
|
859
|
+
fullJoin<TE extends TableExpression<DB, TB>, K1 extends JoinReferenceExpression<DB, TB, TE>, K2 extends JoinReferenceExpression<DB, TB, TE>>(table: TE, k1: K1, k2: K2): SelectQueryBuilder<FullJoinTableExpressionDatabase<DB, TB, TE>, TableExpressionTables<DB, TB, TE>, O>;
|
|
860
|
+
fullJoin<TE extends TableExpression<DB, TB>, FN extends JoinCallbackExpression<DB, TB, TE>>(table: TE, callback: FN): SelectQueryBuilder<FullJoinTableExpressionDatabase<DB, TB, TE>, TableExpressionTables<DB, TB, TE>, O>;
|
|
1344
861
|
/**
|
|
1345
862
|
* Adds an `order by` clause to the query.
|
|
1346
863
|
*
|
|
@@ -1350,7 +867,8 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
1350
867
|
* The first argument is the expression to order by and the second is the
|
|
1351
868
|
* order (`asc` or `desc`).
|
|
1352
869
|
*
|
|
1353
|
-
*
|
|
870
|
+
* ### Examples
|
|
871
|
+
*
|
|
1354
872
|
* ```ts
|
|
1355
873
|
* await db
|
|
1356
874
|
* .selectFrom('person')
|
|
@@ -1368,7 +886,6 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
1368
886
|
* order by "id" asc, "fn" desc
|
|
1369
887
|
* ```
|
|
1370
888
|
*
|
|
1371
|
-
* @example
|
|
1372
889
|
* The order by expression can also be a `raw` expression or a subquery
|
|
1373
890
|
* in addition to column references:
|
|
1374
891
|
*
|
|
@@ -1376,7 +893,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
1376
893
|
* await db
|
|
1377
894
|
* .selectFrom('person')
|
|
1378
895
|
* .selectAll()
|
|
1379
|
-
* .orderBy((qb) => qb.
|
|
896
|
+
* .orderBy((qb) => qb.selectFrom('pet')
|
|
1380
897
|
* .select('pet.name')
|
|
1381
898
|
* .whereRef('pet.owner_id', '=', 'person.id')
|
|
1382
899
|
* .limit(1)
|
|
@@ -1401,7 +918,6 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
1401
918
|
* concat(first_name, last_name) asc
|
|
1402
919
|
* ```
|
|
1403
920
|
*
|
|
1404
|
-
* @example
|
|
1405
921
|
* `dynamic.ref` can be used to refer to columns not known at
|
|
1406
922
|
* compile time:
|
|
1407
923
|
*
|
|
@@ -1427,11 +943,12 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
1427
943
|
* order by "fn" asc
|
|
1428
944
|
* ```
|
|
1429
945
|
*/
|
|
1430
|
-
orderBy(orderBy: OrderByExpression<DB, TB, O>, direction?: OrderByDirectionExpression):
|
|
946
|
+
orderBy(orderBy: OrderByExpression<DB, TB, O>, direction?: OrderByDirectionExpression): SelectQueryBuilder<DB, TB, O>;
|
|
1431
947
|
/**
|
|
1432
948
|
* Adds a `group by` clause to the query.
|
|
1433
949
|
*
|
|
1434
|
-
*
|
|
950
|
+
* ### Examples
|
|
951
|
+
*
|
|
1435
952
|
* ```ts
|
|
1436
953
|
* await db
|
|
1437
954
|
* .selectFrom('person')
|
|
@@ -1451,11 +968,10 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
1451
968
|
* group by "first_name"
|
|
1452
969
|
* ```
|
|
1453
970
|
*
|
|
1454
|
-
* @example
|
|
1455
971
|
* `groupBy` also accepts an array:
|
|
1456
972
|
*
|
|
1457
973
|
* ```ts
|
|
1458
|
-
* const {
|
|
974
|
+
* const { raw } = db
|
|
1459
975
|
*
|
|
1460
976
|
* await db
|
|
1461
977
|
* .selectFrom('person')
|
|
@@ -1479,12 +995,11 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
1479
995
|
* group by "first_name", "last_name"
|
|
1480
996
|
* ```
|
|
1481
997
|
*
|
|
1482
|
-
* @example
|
|
1483
998
|
* The group by expressions can also be subqueries or
|
|
1484
999
|
* raw expressions:
|
|
1485
1000
|
*
|
|
1486
1001
|
* ```ts
|
|
1487
|
-
* const {
|
|
1002
|
+
* const { raw } = db
|
|
1488
1003
|
*
|
|
1489
1004
|
* await db
|
|
1490
1005
|
* .selectFrom('person')
|
|
@@ -1495,12 +1010,11 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
1495
1010
|
* ])
|
|
1496
1011
|
* .groupBy([
|
|
1497
1012
|
* raw('concat(first_name, last_name)'),
|
|
1498
|
-
* (qb) => qb.
|
|
1013
|
+
* (qb) => qb.selectFrom('pet').select('id').limit(1)
|
|
1499
1014
|
* ])
|
|
1500
1015
|
* .execute()
|
|
1501
1016
|
* ```
|
|
1502
1017
|
*
|
|
1503
|
-
* @example
|
|
1504
1018
|
* `dynamic.ref` can be used to refer to columns not known at
|
|
1505
1019
|
* compile time:
|
|
1506
1020
|
*
|
|
@@ -1526,12 +1040,13 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
1526
1040
|
* group by "first_name"
|
|
1527
1041
|
* ```
|
|
1528
1042
|
*/
|
|
1529
|
-
groupBy(
|
|
1530
|
-
groupBy(
|
|
1043
|
+
groupBy(groupBy: ReadonlyArray<ReferenceExpression<DB, TB>>): SelectQueryBuilder<DB, TB, O>;
|
|
1044
|
+
groupBy(groupBy: ReferenceExpression<DB, TB>): SelectQueryBuilder<DB, TB, O>;
|
|
1531
1045
|
/**
|
|
1532
1046
|
* Adds a limit clause to the query.
|
|
1533
1047
|
*
|
|
1534
|
-
*
|
|
1048
|
+
* ### Examples
|
|
1049
|
+
*
|
|
1535
1050
|
* Select the first 10 rows of the result:
|
|
1536
1051
|
*
|
|
1537
1052
|
* ```ts
|
|
@@ -1541,7 +1056,6 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
1541
1056
|
* .limit(10)
|
|
1542
1057
|
* ```
|
|
1543
1058
|
*
|
|
1544
|
-
* @example
|
|
1545
1059
|
* Select rows from index 10 to index 19 of the result:
|
|
1546
1060
|
*
|
|
1547
1061
|
* ```ts
|
|
@@ -1552,11 +1066,12 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
1552
1066
|
* .limit(10)
|
|
1553
1067
|
* ```
|
|
1554
1068
|
*/
|
|
1555
|
-
limit(limit: number):
|
|
1069
|
+
limit(limit: number): SelectQueryBuilder<DB, TB, O>;
|
|
1556
1070
|
/**
|
|
1557
1071
|
* Adds an offset clause to the query.
|
|
1558
1072
|
*
|
|
1559
|
-
*
|
|
1073
|
+
* ### Examples
|
|
1074
|
+
*
|
|
1560
1075
|
* Select rows from index 10 to index 19 of the result:
|
|
1561
1076
|
*
|
|
1562
1077
|
* ```ts
|
|
@@ -1567,13 +1082,14 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
1567
1082
|
* .limit(10)
|
|
1568
1083
|
* ```
|
|
1569
1084
|
*/
|
|
1570
|
-
offset(offset: number):
|
|
1085
|
+
offset(offset: number): SelectQueryBuilder<DB, TB, O>;
|
|
1571
1086
|
/**
|
|
1572
1087
|
* Combines another select query or raw expression to this query using `union`.
|
|
1573
1088
|
*
|
|
1574
1089
|
* The output row type of the combined query must match `this` query.
|
|
1575
1090
|
*
|
|
1576
|
-
*
|
|
1091
|
+
* ### Examples
|
|
1092
|
+
*
|
|
1577
1093
|
* ```ts
|
|
1578
1094
|
* db.selectFrom('person')
|
|
1579
1095
|
* .select(['id', 'first_name as name'])
|
|
@@ -1581,13 +1097,14 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
1581
1097
|
* .orderBy('name')
|
|
1582
1098
|
* ```
|
|
1583
1099
|
*/
|
|
1584
|
-
union(expression: UnionExpression<DB, O>):
|
|
1100
|
+
union(expression: UnionExpression<DB, O>): SelectQueryBuilder<DB, TB, O>;
|
|
1585
1101
|
/**
|
|
1586
1102
|
* Combines another select query or raw expression to this query using `union all`.
|
|
1587
1103
|
*
|
|
1588
1104
|
* The output row type of the combined query must match `this` query.
|
|
1589
1105
|
*
|
|
1590
|
-
*
|
|
1106
|
+
* ### Examples
|
|
1107
|
+
*
|
|
1591
1108
|
* ```ts
|
|
1592
1109
|
* db.selectFrom('person')
|
|
1593
1110
|
* .select(['id', 'first_name as name'])
|
|
@@ -1595,13 +1112,14 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
1595
1112
|
* .orderBy('name')
|
|
1596
1113
|
* ```
|
|
1597
1114
|
*/
|
|
1598
|
-
unionAll(expression: UnionExpression<DB, O>):
|
|
1115
|
+
unionAll(expression: UnionExpression<DB, O>): SelectQueryBuilder<DB, TB, O>;
|
|
1599
1116
|
/**
|
|
1600
1117
|
* Simply calls the given function passing `this` as the only argument.
|
|
1601
1118
|
*
|
|
1602
1119
|
* This method can be useful when adding optional method calls:
|
|
1603
1120
|
*
|
|
1604
|
-
*
|
|
1121
|
+
* ### Examples
|
|
1122
|
+
*
|
|
1605
1123
|
* ```ts
|
|
1606
1124
|
* db.selectFrom('person')
|
|
1607
1125
|
* .selectAll()
|
|
@@ -1617,7 +1135,6 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
1617
1135
|
*
|
|
1618
1136
|
* The next example uses a helper funtion `log` to log a query:
|
|
1619
1137
|
*
|
|
1620
|
-
* @example
|
|
1621
1138
|
* ```ts
|
|
1622
1139
|
* function log<T extends AnyQueryBuilder>(qb: T): T {
|
|
1623
1140
|
* console.log(qb.compile())
|
|
@@ -1634,12 +1151,13 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
1634
1151
|
/**
|
|
1635
1152
|
* Gives an alias for the query. This method is only useful for sub queries.
|
|
1636
1153
|
*
|
|
1637
|
-
*
|
|
1154
|
+
* ### Examples
|
|
1155
|
+
*
|
|
1638
1156
|
* ```ts
|
|
1639
1157
|
* await db.selectFrom('pet')
|
|
1640
1158
|
* .selectAll('pet')
|
|
1641
1159
|
* .select(
|
|
1642
|
-
* (qb) => qb.
|
|
1160
|
+
* (qb) => qb.selectFrom('person')
|
|
1643
1161
|
* .select('first_name')
|
|
1644
1162
|
* .whereRef('pet.owner_id', '=', 'person.id')
|
|
1645
1163
|
* .as('owner_first_name')
|
|
@@ -1654,8 +1172,9 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
1654
1172
|
* You should only use this method as the last resort if the types
|
|
1655
1173
|
* don't support your use case.
|
|
1656
1174
|
*/
|
|
1657
|
-
castTo<T>():
|
|
1658
|
-
|
|
1175
|
+
castTo<T>(): SelectQueryBuilder<DB, TB, T>;
|
|
1176
|
+
withPlugin(plugin: KyselyPlugin): SelectQueryBuilder<DB, TB, O>;
|
|
1177
|
+
toOperationNode(): SelectQueryNode;
|
|
1659
1178
|
compile(): CompiledQuery;
|
|
1660
1179
|
/**
|
|
1661
1180
|
* Executes the query and returns an array of rows.
|
|
@@ -1678,18 +1197,18 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
1678
1197
|
*/
|
|
1679
1198
|
executeTakeFirstOrThrow(errorConstructor?: NoResultErrorConstructor): Promise<O>;
|
|
1680
1199
|
}
|
|
1681
|
-
export interface
|
|
1200
|
+
export interface SelectQueryBuilderProps {
|
|
1682
1201
|
readonly queryId: QueryId;
|
|
1683
|
-
readonly queryNode:
|
|
1202
|
+
readonly queryNode: SelectQueryNode;
|
|
1684
1203
|
readonly executor: QueryExecutor;
|
|
1685
1204
|
readonly parseContext: ParseContext;
|
|
1686
1205
|
}
|
|
1687
1206
|
/**
|
|
1688
|
-
* {@link
|
|
1207
|
+
* {@link SelectQueryBuilder} with an alias. The result of calling {@link SelectQueryBuilder.as}.
|
|
1689
1208
|
*/
|
|
1690
1209
|
export declare class AliasedQueryBuilder<DB, TB extends keyof DB, O = undefined, A extends string = never> {
|
|
1691
1210
|
#private;
|
|
1692
|
-
constructor(queryBuilder:
|
|
1211
|
+
constructor(queryBuilder: SelectQueryBuilder<DB, TB, O>, alias: A);
|
|
1693
1212
|
/**
|
|
1694
1213
|
* @private
|
|
1695
1214
|
*
|
|
@@ -1701,11 +1220,3 @@ export declare class AliasedQueryBuilder<DB, TB extends keyof DB, O = undefined,
|
|
|
1701
1220
|
protected get alias(): A;
|
|
1702
1221
|
toOperationNode(): AliasNode;
|
|
1703
1222
|
}
|
|
1704
|
-
export declare type NoResultErrorConstructor = new (node: QueryNode) => Error;
|
|
1705
|
-
export declare class NoResultError extends Error {
|
|
1706
|
-
/**
|
|
1707
|
-
* The operation node tree of the query that was executed.
|
|
1708
|
-
*/
|
|
1709
|
-
readonly node: QueryNode;
|
|
1710
|
-
constructor(node: QueryNode);
|
|
1711
|
-
}
|