kysely 0.26.1 → 0.26.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 +6 -6
- package/dist/cjs/dialect/dialect-adapter-base.d.ts +3 -3
- package/dist/cjs/dialect/mysql/mysql-adapter.d.ts +3 -2
- package/dist/cjs/dialect/mysql/mysql-adapter.js +2 -2
- package/dist/cjs/dialect/postgres/postgres-adapter.d.ts +3 -2
- package/dist/cjs/dialect/postgres/postgres-adapter.js +2 -2
- package/dist/cjs/dialect/postgres/postgres-dialect-config.d.ts +2 -2
- package/dist/cjs/dialect/sqlite/sqlite-adapter.d.ts +4 -2
- package/dist/cjs/dialect/sqlite/sqlite-adapter.js +2 -2
- package/dist/cjs/driver/runtime-driver.js +17 -2
- package/dist/cjs/expression/expression-builder.d.ts +298 -27
- package/dist/cjs/expression/expression-builder.js +36 -26
- package/dist/cjs/expression/expression-wrapper.d.ts +177 -8
- package/dist/cjs/expression/expression-wrapper.js +4 -4
- package/dist/cjs/expression/expression.d.ts +64 -1
- package/dist/cjs/helpers/mysql.d.ts +11 -8
- package/dist/cjs/helpers/mysql.js +21 -32
- package/dist/cjs/helpers/postgres.d.ts +8 -5
- package/dist/cjs/helpers/postgres.js +8 -5
- package/dist/cjs/helpers/sqlite.d.ts +164 -0
- package/dist/cjs/helpers/sqlite.js +180 -0
- package/dist/cjs/index.d.ts +3 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/kysely.d.ts +4 -3
- package/dist/cjs/kysely.js +1 -1
- package/dist/cjs/operation-node/common-table-expression-node.d.ts +4 -0
- package/dist/cjs/operation-node/common-table-expression-node.js +6 -0
- package/dist/cjs/operation-node/delete-query-node.d.ts +1 -1
- package/dist/cjs/operation-node/delete-query-node.js +3 -3
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +2 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +8 -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 +3 -3
- package/dist/cjs/operation-node/operator-node.js +3 -0
- package/dist/cjs/operation-node/order-by-node.d.ts +2 -2
- package/dist/cjs/operation-node/order-by-node.js +4 -4
- package/dist/cjs/operation-node/over-node.d.ts +1 -1
- package/dist/cjs/operation-node/over-node.js +3 -3
- package/dist/cjs/operation-node/select-query-node.d.ts +5 -4
- package/dist/cjs/operation-node/select-query-node.js +13 -7
- package/dist/cjs/operation-node/tuple-node.d.ts +12 -0
- package/dist/cjs/operation-node/tuple-node.js +18 -0
- package/dist/cjs/parser/binary-operation-parser.d.ts +11 -7
- package/dist/cjs/parser/binary-operation-parser.js +35 -46
- package/dist/cjs/parser/expression-parser.d.ts +9 -4
- package/dist/cjs/parser/join-parser.d.ts +2 -2
- package/dist/cjs/parser/join-parser.js +2 -3
- package/dist/cjs/parser/order-by-parser.d.ts +6 -2
- package/dist/cjs/parser/order-by-parser.js +41 -7
- package/dist/cjs/parser/parse-utils.js +2 -2
- package/dist/cjs/parser/reference-parser.js +1 -1
- package/dist/cjs/parser/select-parser.d.ts +5 -5
- package/dist/cjs/parser/set-operation-parser.d.ts +3 -1
- package/dist/cjs/parser/set-operation-parser.js +13 -4
- package/dist/cjs/parser/tuple-parser.d.ts +47 -0
- package/dist/cjs/parser/tuple-parser.js +2 -0
- package/dist/cjs/parser/value-parser.d.ts +4 -2
- package/dist/cjs/parser/value-parser.js +12 -1
- package/dist/cjs/parser/with-parser.d.ts +3 -2
- package/dist/cjs/parser/with-parser.js +16 -4
- package/dist/cjs/plugin/camel-case/camel-case-plugin.d.ts +3 -3
- package/dist/cjs/plugin/camel-case/camel-case-plugin.js +4 -8
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.d.ts +13 -0
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.js +50 -14
- package/dist/cjs/query-builder/aggregate-function-builder.d.ts +5 -5
- package/dist/cjs/query-builder/aggregate-function-builder.js +2 -2
- package/dist/cjs/query-builder/case-builder.js +8 -4
- package/dist/cjs/query-builder/cte-builder.d.ts +20 -0
- package/dist/cjs/query-builder/cte-builder.js +39 -0
- package/dist/cjs/query-builder/delete-query-builder.d.ts +34 -7
- package/dist/cjs/query-builder/delete-query-builder.js +3 -3
- package/dist/cjs/query-builder/function-module.d.ts +41 -6
- package/dist/cjs/query-builder/function-module.js +3 -0
- package/dist/cjs/query-builder/having-interface.d.ts +2 -5
- package/dist/cjs/query-builder/join-builder.d.ts +2 -6
- package/dist/cjs/query-builder/join-builder.js +2 -2
- package/dist/cjs/query-builder/json-path-builder.d.ts +59 -3
- package/dist/cjs/query-builder/on-conflict-builder.d.ts +65 -12
- package/dist/cjs/query-builder/on-conflict-builder.js +4 -4
- package/dist/cjs/query-builder/over-builder.js +1 -1
- package/dist/cjs/query-builder/select-query-builder.d.ts +201 -65
- package/dist/cjs/query-builder/select-query-builder.js +72 -924
- package/dist/cjs/query-builder/update-query-builder.d.ts +34 -7
- package/dist/cjs/query-builder/update-query-builder.js +2 -2
- package/dist/cjs/query-builder/where-interface.d.ts +32 -8
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +3 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +39 -7
- package/dist/cjs/query-creator.d.ts +74 -2
- package/dist/cjs/query-creator.js +83 -6
- package/dist/cjs/raw-builder/raw-builder.d.ts +88 -49
- package/dist/cjs/raw-builder/raw-builder.js +18 -45
- package/dist/cjs/raw-builder/sql.js +8 -8
- package/dist/cjs/schema/alter-table-builder.d.ts +4 -0
- package/dist/cjs/schema/alter-table-builder.js +12 -0
- package/dist/cjs/schema/create-index-builder.d.ts +1 -1
- package/dist/cjs/schema/create-index-builder.js +1 -1
- package/dist/cjs/util/column-type.d.ts +7 -6
- package/dist/cjs/util/json-object-args.d.ts +3 -0
- package/dist/cjs/util/json-object-args.js +35 -0
- package/dist/cjs/util/object-utils.d.ts +1 -0
- package/dist/cjs/util/object-utils.js +9 -1
- package/dist/cjs/util/type-utils.d.ts +10 -10
- package/dist/esm/dialect/dialect-adapter-base.d.ts +3 -3
- package/dist/esm/dialect/mysql/mysql-adapter.d.ts +3 -2
- package/dist/esm/dialect/mysql/mysql-adapter.js +2 -2
- package/dist/esm/dialect/postgres/postgres-adapter.d.ts +3 -2
- package/dist/esm/dialect/postgres/postgres-adapter.js +2 -2
- package/dist/esm/dialect/postgres/postgres-dialect-config.d.ts +2 -2
- package/dist/esm/dialect/sqlite/sqlite-adapter.d.ts +4 -2
- package/dist/esm/dialect/sqlite/sqlite-adapter.js +2 -2
- package/dist/esm/driver/runtime-driver.js +17 -2
- package/dist/esm/expression/expression-builder.d.ts +298 -27
- package/dist/esm/expression/expression-builder.js +40 -30
- package/dist/esm/expression/expression-wrapper.d.ts +177 -8
- package/dist/esm/expression/expression-wrapper.js +5 -5
- package/dist/esm/expression/expression.d.ts +64 -1
- package/dist/esm/helpers/mysql.d.ts +11 -8
- package/dist/esm/helpers/mysql.js +21 -32
- package/dist/esm/helpers/postgres.d.ts +8 -5
- package/dist/esm/helpers/postgres.js +8 -5
- package/dist/esm/helpers/sqlite.d.ts +164 -0
- package/dist/esm/helpers/sqlite.js +175 -0
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/kysely.d.ts +4 -3
- package/dist/esm/kysely.js +1 -1
- package/dist/esm/operation-node/common-table-expression-node.d.ts +4 -0
- package/dist/esm/operation-node/common-table-expression-node.js +6 -0
- package/dist/esm/operation-node/delete-query-node.d.ts +1 -1
- package/dist/esm/operation-node/delete-query-node.js +3 -3
- package/dist/esm/operation-node/operation-node-transformer.d.ts +2 -0
- package/dist/esm/operation-node/operation-node-transformer.js +8 -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 +3 -3
- package/dist/esm/operation-node/operator-node.js +3 -0
- package/dist/esm/operation-node/order-by-node.d.ts +2 -2
- package/dist/esm/operation-node/order-by-node.js +4 -4
- package/dist/esm/operation-node/over-node.d.ts +1 -1
- package/dist/esm/operation-node/over-node.js +3 -3
- package/dist/esm/operation-node/select-query-node.d.ts +5 -4
- package/dist/esm/operation-node/select-query-node.js +13 -7
- package/dist/esm/operation-node/tuple-node.d.ts +12 -0
- package/dist/esm/operation-node/tuple-node.js +16 -0
- package/dist/esm/parser/binary-operation-parser.d.ts +11 -7
- package/dist/esm/parser/binary-operation-parser.js +36 -47
- package/dist/esm/parser/expression-parser.d.ts +9 -4
- package/dist/esm/parser/join-parser.d.ts +2 -2
- package/dist/esm/parser/join-parser.js +3 -4
- package/dist/esm/parser/order-by-parser.d.ts +6 -2
- package/dist/esm/parser/order-by-parser.js +40 -7
- package/dist/esm/parser/parse-utils.js +3 -3
- package/dist/esm/parser/reference-parser.js +1 -1
- package/dist/esm/parser/select-parser.d.ts +5 -5
- package/dist/esm/parser/set-operation-parser.d.ts +3 -1
- package/dist/esm/parser/set-operation-parser.js +11 -2
- package/dist/esm/parser/tuple-parser.d.ts +47 -0
- package/dist/esm/parser/tuple-parser.js +2 -0
- package/dist/esm/parser/value-parser.d.ts +4 -2
- package/dist/esm/parser/value-parser.js +10 -1
- package/dist/esm/parser/with-parser.d.ts +3 -2
- package/dist/esm/parser/with-parser.js +16 -4
- package/dist/esm/plugin/camel-case/camel-case-plugin.d.ts +3 -3
- package/dist/esm/plugin/camel-case/camel-case-plugin.js +5 -9
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.d.ts +13 -0
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.js +51 -15
- package/dist/esm/query-builder/aggregate-function-builder.d.ts +5 -5
- package/dist/esm/query-builder/aggregate-function-builder.js +3 -3
- package/dist/esm/query-builder/case-builder.js +10 -6
- package/dist/esm/query-builder/cte-builder.d.ts +20 -0
- package/dist/esm/query-builder/cte-builder.js +36 -0
- package/dist/esm/query-builder/delete-query-builder.d.ts +34 -7
- package/dist/esm/query-builder/delete-query-builder.js +4 -4
- package/dist/esm/query-builder/function-module.d.ts +41 -6
- package/dist/esm/query-builder/function-module.js +3 -0
- package/dist/esm/query-builder/having-interface.d.ts +2 -5
- package/dist/esm/query-builder/join-builder.d.ts +2 -6
- package/dist/esm/query-builder/join-builder.js +3 -3
- package/dist/esm/query-builder/json-path-builder.d.ts +59 -3
- package/dist/esm/query-builder/on-conflict-builder.d.ts +65 -12
- package/dist/esm/query-builder/on-conflict-builder.js +5 -5
- package/dist/esm/query-builder/over-builder.js +1 -1
- package/dist/esm/query-builder/select-query-builder.d.ts +201 -65
- package/dist/esm/query-builder/select-query-builder.js +72 -923
- package/dist/esm/query-builder/update-query-builder.d.ts +34 -7
- package/dist/esm/query-builder/update-query-builder.js +3 -3
- package/dist/esm/query-builder/where-interface.d.ts +32 -8
- package/dist/esm/query-compiler/default-query-compiler.d.ts +3 -0
- package/dist/esm/query-compiler/default-query-compiler.js +39 -7
- package/dist/esm/query-creator.d.ts +74 -2
- package/dist/esm/query-creator.js +84 -7
- package/dist/esm/raw-builder/raw-builder.d.ts +88 -49
- package/dist/esm/raw-builder/raw-builder.js +17 -42
- package/dist/esm/raw-builder/sql.js +9 -9
- package/dist/esm/schema/alter-table-builder.d.ts +4 -0
- package/dist/esm/schema/alter-table-builder.js +12 -0
- package/dist/esm/schema/create-index-builder.d.ts +1 -1
- package/dist/esm/schema/create-index-builder.js +2 -2
- package/dist/esm/util/column-type.d.ts +7 -6
- package/dist/esm/util/json-object-args.d.ts +3 -0
- package/dist/esm/util/json-object-args.js +32 -0
- package/dist/esm/util/object-utils.d.ts +1 -0
- package/dist/esm/util/object-utils.js +7 -0
- package/dist/esm/util/type-utils.d.ts +10 -10
- package/helpers/sqlite.d.ts +1 -0
- package/helpers/sqlite.js +1 -0
- package/package.json +7 -4
|
@@ -14,7 +14,7 @@ class JoinBuilder {
|
|
|
14
14
|
on(...args) {
|
|
15
15
|
return new JoinBuilder({
|
|
16
16
|
...this.#props,
|
|
17
|
-
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, (0, binary_operation_parser_js_1.
|
|
17
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, (0, binary_operation_parser_js_1.parseValueBinaryOperationOrExpression)(args)),
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
@@ -26,7 +26,7 @@ class JoinBuilder {
|
|
|
26
26
|
onRef(lhs, op, rhs) {
|
|
27
27
|
return new JoinBuilder({
|
|
28
28
|
...this.#props,
|
|
29
|
-
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, (0, binary_operation_parser_js_1.
|
|
29
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, (0, binary_operation_parser_js_1.parseReferentialBinaryOperation)(lhs, op, rhs)),
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AliasedExpression, Expression } from '../expression/expression.js';
|
|
1
|
+
import { AliasableExpression, AliasedExpression, Expression } from '../expression/expression.js';
|
|
2
2
|
import { AliasNode } from '../operation-node/alias-node.js';
|
|
3
3
|
import { JSONReferenceNode } from '../operation-node/json-reference-node.js';
|
|
4
4
|
import { OperationNode } from '../operation-node/operation-node.js';
|
|
@@ -119,9 +119,9 @@ export declare class JSONPathBuilder<S, O = S> {
|
|
|
119
119
|
* select "profile"->'addresses'->0->'city' as "city" from "person"
|
|
120
120
|
* ```
|
|
121
121
|
*/
|
|
122
|
-
key<K extends any[] extends O ? never : O extends object ? keyof NonNullable<O> & string : never, O2 = undefined extends O ? null | NonNullable<NonNullable<O>[K]> : null extends O ? null | NonNullable<NonNullable<O>[K]> : NonNullable<O>[K]>(key: K): TraversedJSONPathBuilder<S, O2>;
|
|
122
|
+
key<K extends any[] extends O ? never : O extends object ? keyof NonNullable<O> & string : never, O2 = undefined extends O ? null | NonNullable<NonNullable<O>[K]> : null extends O ? null | NonNullable<NonNullable<O>[K]> : string extends keyof NonNullable<O> ? null | NonNullable<NonNullable<O>[K]> : NonNullable<O>[K]>(key: K): TraversedJSONPathBuilder<S, O2>;
|
|
123
123
|
}
|
|
124
|
-
export declare class TraversedJSONPathBuilder<S, O> extends JSONPathBuilder<S, O> implements
|
|
124
|
+
export declare class TraversedJSONPathBuilder<S, O> extends JSONPathBuilder<S, O> implements AliasableExpression<O> {
|
|
125
125
|
#private;
|
|
126
126
|
constructor(node: JSONReferenceNode);
|
|
127
127
|
/** @private */
|
|
@@ -168,6 +168,62 @@ export declare class TraversedJSONPathBuilder<S, O> extends JSONPathBuilder<S, O
|
|
|
168
168
|
* ```
|
|
169
169
|
*/
|
|
170
170
|
as<A extends string>(alias: A): AliasedExpression<O, A>;
|
|
171
|
+
/**
|
|
172
|
+
* Returns an aliased version of the expression.
|
|
173
|
+
*
|
|
174
|
+
* In addition to slapping `as "the_alias"` at the end of the expression,
|
|
175
|
+
* this method also provides strict typing:
|
|
176
|
+
*
|
|
177
|
+
* ```ts
|
|
178
|
+
* const result = await db
|
|
179
|
+
* .selectFrom('person')
|
|
180
|
+
* .select((eb) =>
|
|
181
|
+
* // `eb.fn<string>` returns an AliasableExpression<string>
|
|
182
|
+
* eb.fn<string>('concat', ['first_name' eb.val(' '), 'last_name']).as('full_name')
|
|
183
|
+
* )
|
|
184
|
+
* .executeTakeFirstOrThrow()
|
|
185
|
+
*
|
|
186
|
+
* // `full_name: string` field exists in the result type.
|
|
187
|
+
* console.log(result.full_name)
|
|
188
|
+
* ```
|
|
189
|
+
*
|
|
190
|
+
* The generated SQL (PostgreSQL):
|
|
191
|
+
*
|
|
192
|
+
* ```ts
|
|
193
|
+
* select
|
|
194
|
+
* concat("first_name", $1, "last_name") as "full_name"
|
|
195
|
+
* from
|
|
196
|
+
* "person"
|
|
197
|
+
* ```
|
|
198
|
+
*
|
|
199
|
+
* You can also pass in a raw SQL snippet (or any expression) but in that case you must
|
|
200
|
+
* provide the alias as the only type argument:
|
|
201
|
+
*
|
|
202
|
+
* ```ts
|
|
203
|
+
* const values = sql<{ a: number, b: string }>`(values (1, 'foo'))`
|
|
204
|
+
*
|
|
205
|
+
* // The alias is `t(a, b)` which specifies the column names
|
|
206
|
+
* // in addition to the table name. We must tell kysely that
|
|
207
|
+
* // columns of the table can be referenced through `t`
|
|
208
|
+
* // by providing an explicit type argument.
|
|
209
|
+
* const aliasedValues = values.as<'t'>(sql`t(a, b)`)
|
|
210
|
+
*
|
|
211
|
+
* await db
|
|
212
|
+
* .insertInto('person')
|
|
213
|
+
* .columns(['first_name', 'last_name'])
|
|
214
|
+
* .expression(
|
|
215
|
+
* db.selectFrom(aliasedValues).select(['t.a', 't.b'])
|
|
216
|
+
* )
|
|
217
|
+
* ```
|
|
218
|
+
*
|
|
219
|
+
* The generated SQL (PostgreSQL):
|
|
220
|
+
*
|
|
221
|
+
* ```ts
|
|
222
|
+
* insert into "person" ("first_name", "last_name")
|
|
223
|
+
* from (values (1, 'foo')) as t(a, b)
|
|
224
|
+
* select "t"."a", "t"."b"
|
|
225
|
+
* ```
|
|
226
|
+
*/
|
|
171
227
|
as<A extends string>(alias: Expression<unknown>): AliasedExpression<O, A>;
|
|
172
228
|
/**
|
|
173
229
|
* Change the output type of the json path.
|
|
@@ -2,10 +2,11 @@ import { Expression } from '../expression/expression.js';
|
|
|
2
2
|
import { OnConflictNode } from '../operation-node/on-conflict-node.js';
|
|
3
3
|
import { OperationNodeSource } from '../operation-node/operation-node-source.js';
|
|
4
4
|
import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js';
|
|
5
|
+
import { ExpressionOrFactory } from '../parser/expression-parser.js';
|
|
5
6
|
import { ReferenceExpression } from '../parser/reference-parser.js';
|
|
6
7
|
import { UpdateExpression } from '../parser/update-set-parser.js';
|
|
7
|
-
import { AnyColumn } from '../util/type-utils.js';
|
|
8
|
-
import {
|
|
8
|
+
import { AnyColumn, SqlBool } from '../util/type-utils.js';
|
|
9
|
+
import { WhereInterface } from './where-interface.js';
|
|
9
10
|
export declare class OnConflictBuilder<DB, TB extends keyof DB> implements WhereInterface<DB, TB> {
|
|
10
11
|
#private;
|
|
11
12
|
constructor(props: OnConflictBuilderProps);
|
|
@@ -98,7 +99,34 @@ export declare class OnConflictBuilder<DB, TB extends keyof DB> implements Where
|
|
|
98
99
|
* select * from "person" where "id" in ($1, $2, $3)
|
|
99
100
|
* ```
|
|
100
101
|
*
|
|
101
|
-
* <!-- siteExample("where", "
|
|
102
|
+
* <!-- siteExample("where", "Object filter", 30) -->
|
|
103
|
+
*
|
|
104
|
+
* You can use the `and` function to create a simple equality
|
|
105
|
+
* filter using an object
|
|
106
|
+
*
|
|
107
|
+
* ```ts
|
|
108
|
+
* const persons = await db
|
|
109
|
+
* .selectFrom('person')
|
|
110
|
+
* .selectAll()
|
|
111
|
+
* .where((eb) => eb.and({
|
|
112
|
+
* first_name: 'Jennifer',
|
|
113
|
+
* last_name: eb.ref('first_name')
|
|
114
|
+
* }))
|
|
115
|
+
* .execute()
|
|
116
|
+
* ```
|
|
117
|
+
*
|
|
118
|
+
* The generated SQL (PostgreSQL):
|
|
119
|
+
*
|
|
120
|
+
* ```sql
|
|
121
|
+
* select *
|
|
122
|
+
* from "person"
|
|
123
|
+
* where (
|
|
124
|
+
* "first_name" = $1
|
|
125
|
+
* and "last_name" = "first_name"
|
|
126
|
+
* )
|
|
127
|
+
* ```
|
|
128
|
+
*
|
|
129
|
+
* <!-- siteExample("where", "OR where", 40) -->
|
|
102
130
|
*
|
|
103
131
|
* To combine conditions using `OR`, you can use the expression builder.
|
|
104
132
|
* There are two ways to create `OR` expressions. Both are shown in this
|
|
@@ -133,7 +161,7 @@ export declare class OnConflictBuilder<DB, TB extends keyof DB> implements Where
|
|
|
133
161
|
* )
|
|
134
162
|
* ```
|
|
135
163
|
*
|
|
136
|
-
* <!-- siteExample("where", "Conditional where calls",
|
|
164
|
+
* <!-- siteExample("where", "Conditional where calls", 50) -->
|
|
137
165
|
*
|
|
138
166
|
* You can add expressions conditionally like this:
|
|
139
167
|
*
|
|
@@ -228,7 +256,7 @@ export declare class OnConflictBuilder<DB, TB extends keyof DB> implements Where
|
|
|
228
256
|
* select * from "person" where "id" in ($1, $2, $3)
|
|
229
257
|
* ```
|
|
230
258
|
*
|
|
231
|
-
* <!-- siteExample("where", "Complex where clause",
|
|
259
|
+
* <!-- siteExample("where", "Complex where clause", 60) -->
|
|
232
260
|
*
|
|
233
261
|
* For complex `where` expressions you can pass in a single callback and
|
|
234
262
|
* use the `ExpressionBuilder` to build your expression:
|
|
@@ -317,8 +345,7 @@ export declare class OnConflictBuilder<DB, TB extends keyof DB> implements Where
|
|
|
317
345
|
* .execute()
|
|
318
346
|
* ```
|
|
319
347
|
*/
|
|
320
|
-
where(
|
|
321
|
-
where(expression: Expression<any>): OnConflictBuilder<DB, TB>;
|
|
348
|
+
where(expression: ExpressionOrFactory<DB, TB, SqlBool>): OnConflictBuilder<DB, TB>;
|
|
322
349
|
/**
|
|
323
350
|
* Specify an index predicate for the index target.
|
|
324
351
|
*
|
|
@@ -489,7 +516,34 @@ export declare class OnConflictUpdateBuilder<DB, TB extends keyof DB> implements
|
|
|
489
516
|
* select * from "person" where "id" in ($1, $2, $3)
|
|
490
517
|
* ```
|
|
491
518
|
*
|
|
492
|
-
* <!-- siteExample("where", "
|
|
519
|
+
* <!-- siteExample("where", "Object filter", 30) -->
|
|
520
|
+
*
|
|
521
|
+
* You can use the `and` function to create a simple equality
|
|
522
|
+
* filter using an object
|
|
523
|
+
*
|
|
524
|
+
* ```ts
|
|
525
|
+
* const persons = await db
|
|
526
|
+
* .selectFrom('person')
|
|
527
|
+
* .selectAll()
|
|
528
|
+
* .where((eb) => eb.and({
|
|
529
|
+
* first_name: 'Jennifer',
|
|
530
|
+
* last_name: eb.ref('first_name')
|
|
531
|
+
* }))
|
|
532
|
+
* .execute()
|
|
533
|
+
* ```
|
|
534
|
+
*
|
|
535
|
+
* The generated SQL (PostgreSQL):
|
|
536
|
+
*
|
|
537
|
+
* ```sql
|
|
538
|
+
* select *
|
|
539
|
+
* from "person"
|
|
540
|
+
* where (
|
|
541
|
+
* "first_name" = $1
|
|
542
|
+
* and "last_name" = "first_name"
|
|
543
|
+
* )
|
|
544
|
+
* ```
|
|
545
|
+
*
|
|
546
|
+
* <!-- siteExample("where", "OR where", 40) -->
|
|
493
547
|
*
|
|
494
548
|
* To combine conditions using `OR`, you can use the expression builder.
|
|
495
549
|
* There are two ways to create `OR` expressions. Both are shown in this
|
|
@@ -524,7 +578,7 @@ export declare class OnConflictUpdateBuilder<DB, TB extends keyof DB> implements
|
|
|
524
578
|
* )
|
|
525
579
|
* ```
|
|
526
580
|
*
|
|
527
|
-
* <!-- siteExample("where", "Conditional where calls",
|
|
581
|
+
* <!-- siteExample("where", "Conditional where calls", 50) -->
|
|
528
582
|
*
|
|
529
583
|
* You can add expressions conditionally like this:
|
|
530
584
|
*
|
|
@@ -619,7 +673,7 @@ export declare class OnConflictUpdateBuilder<DB, TB extends keyof DB> implements
|
|
|
619
673
|
* select * from "person" where "id" in ($1, $2, $3)
|
|
620
674
|
* ```
|
|
621
675
|
*
|
|
622
|
-
* <!-- siteExample("where", "Complex where clause",
|
|
676
|
+
* <!-- siteExample("where", "Complex where clause", 60) -->
|
|
623
677
|
*
|
|
624
678
|
* For complex `where` expressions you can pass in a single callback and
|
|
625
679
|
* use the `ExpressionBuilder` to build your expression:
|
|
@@ -708,8 +762,7 @@ export declare class OnConflictUpdateBuilder<DB, TB extends keyof DB> implements
|
|
|
708
762
|
* .execute()
|
|
709
763
|
* ```
|
|
710
764
|
*/
|
|
711
|
-
where(
|
|
712
|
-
where(expression: Expression<any>): OnConflictUpdateBuilder<DB, TB>;
|
|
765
|
+
where(expression: ExpressionOrFactory<DB, TB, SqlBool>): OnConflictUpdateBuilder<DB, TB>;
|
|
713
766
|
/**
|
|
714
767
|
* Specify a where condition for the update operation.
|
|
715
768
|
*
|
|
@@ -80,7 +80,7 @@ class OnConflictBuilder {
|
|
|
80
80
|
where(...args) {
|
|
81
81
|
return new OnConflictBuilder({
|
|
82
82
|
...this.#props,
|
|
83
|
-
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexWhere(this.#props.onConflictNode, (0, binary_operation_parser_js_1.
|
|
83
|
+
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexWhere(this.#props.onConflictNode, (0, binary_operation_parser_js_1.parseValueBinaryOperationOrExpression)(args)),
|
|
84
84
|
});
|
|
85
85
|
}
|
|
86
86
|
/**
|
|
@@ -91,7 +91,7 @@ class OnConflictBuilder {
|
|
|
91
91
|
whereRef(lhs, op, rhs) {
|
|
92
92
|
return new OnConflictBuilder({
|
|
93
93
|
...this.#props,
|
|
94
|
-
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexWhere(this.#props.onConflictNode, (0, binary_operation_parser_js_1.
|
|
94
|
+
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexWhere(this.#props.onConflictNode, (0, binary_operation_parser_js_1.parseReferentialBinaryOperation)(lhs, op, rhs)),
|
|
95
95
|
});
|
|
96
96
|
}
|
|
97
97
|
clearWhere() {
|
|
@@ -208,7 +208,7 @@ class OnConflictUpdateBuilder {
|
|
|
208
208
|
where(...args) {
|
|
209
209
|
return new OnConflictUpdateBuilder({
|
|
210
210
|
...this.#props,
|
|
211
|
-
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateWhere(this.#props.onConflictNode, (0, binary_operation_parser_js_1.
|
|
211
|
+
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateWhere(this.#props.onConflictNode, (0, binary_operation_parser_js_1.parseValueBinaryOperationOrExpression)(args)),
|
|
212
212
|
});
|
|
213
213
|
}
|
|
214
214
|
/**
|
|
@@ -219,7 +219,7 @@ class OnConflictUpdateBuilder {
|
|
|
219
219
|
whereRef(lhs, op, rhs) {
|
|
220
220
|
return new OnConflictUpdateBuilder({
|
|
221
221
|
...this.#props,
|
|
222
|
-
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateWhere(this.#props.onConflictNode, (0, binary_operation_parser_js_1.
|
|
222
|
+
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateWhere(this.#props.onConflictNode, (0, binary_operation_parser_js_1.parseReferentialBinaryOperation)(lhs, op, rhs)),
|
|
223
223
|
});
|
|
224
224
|
}
|
|
225
225
|
clearWhere() {
|
|
@@ -34,7 +34,7 @@ class OverBuilder {
|
|
|
34
34
|
*/
|
|
35
35
|
orderBy(orderBy, direction) {
|
|
36
36
|
return new OverBuilder({
|
|
37
|
-
overNode: over_node_js_1.OverNode.
|
|
37
|
+
overNode: over_node_js_1.OverNode.cloneWithOrderByItems(this.#props.overNode, (0, order_by_parser_js_1.parseOrderBy)([orderBy, direction])),
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
40
|
partitionBy(partitionBy) {
|