kysely 0.27.4 → 0.27.6
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/.renovaterc.json +3 -0
- package/CODE_OF_CONDUCT.md +183 -0
- package/CONTRIBUTING.md +121 -23
- package/FUNDING.md +25 -0
- package/README.md +13 -2
- package/deno.check.d.ts +86 -0
- package/deno.check.json +21 -0
- package/dist/cjs/dialect/dialect-adapter-base.d.ts +11 -2
- package/dist/cjs/dialect/dialect-adapter.d.ts +11 -2
- package/dist/cjs/dialect/mssql/mssql-adapter.d.ts +11 -2
- package/dist/cjs/dialect/mssql/mssql-dialect-config.d.ts +37 -29
- package/dist/cjs/dialect/mssql/mssql-driver.js +20 -13
- package/dist/cjs/dialect/mysql/mysql-adapter.d.ts +11 -2
- package/dist/cjs/dialect/mysql/mysql-dialect-config.d.ts +4 -0
- package/dist/cjs/dialect/mysql/mysql-driver.js +3 -0
- package/dist/cjs/dialect/postgres/postgres-adapter.d.ts +11 -2
- package/dist/cjs/dialect/postgres/postgres-dialect-config.d.ts +10 -3
- package/dist/cjs/dialect/postgres/postgres-driver.js +3 -0
- package/dist/cjs/dialect/postgres/postgres-introspector.js +5 -1
- package/dist/cjs/dialect/sqlite/sqlite-adapter.d.ts +11 -2
- package/dist/cjs/dialect/sqlite/sqlite-introspector.js +66 -44
- package/dist/cjs/driver/dummy-driver.d.ts +13 -12
- package/dist/cjs/driver/dummy-driver.js +13 -12
- package/dist/cjs/dynamic/dynamic.d.ts +6 -6
- package/dist/cjs/dynamic/dynamic.js +6 -6
- package/dist/cjs/expression/expression-builder.d.ts +154 -61
- package/dist/cjs/expression/expression-wrapper.d.ts +92 -23
- package/dist/cjs/expression/expression.d.ts +40 -5
- package/dist/cjs/helpers/mssql.d.ts +74 -14
- package/dist/cjs/helpers/mssql.js +74 -14
- package/dist/cjs/helpers/mysql.d.ts +14 -10
- package/dist/cjs/helpers/mysql.js +14 -10
- package/dist/cjs/helpers/postgres.d.ts +7 -4
- package/dist/cjs/helpers/postgres.js +7 -4
- package/dist/cjs/helpers/sqlite.d.ts +41 -16
- package/dist/cjs/helpers/sqlite.js +41 -16
- package/dist/cjs/kysely.d.ts +99 -41
- package/dist/cjs/kysely.js +60 -36
- package/dist/cjs/migration/file-migration-provider.d.ts +2 -2
- package/dist/cjs/migration/file-migration-provider.js +2 -2
- package/dist/cjs/migration/migrator.d.ts +90 -15
- package/dist/cjs/migration/migrator.js +95 -17
- package/dist/cjs/operation-node/aggregate-function-node.d.ts +4 -0
- package/dist/cjs/operation-node/aggregate-function-node.js +9 -0
- package/dist/cjs/operation-node/data-type-node.d.ts +1 -1
- package/dist/cjs/operation-node/data-type-node.js +12 -0
- package/dist/cjs/operation-node/delete-query-node.d.ts +1 -0
- package/dist/cjs/operation-node/insert-query-node.d.ts +1 -0
- package/dist/cjs/operation-node/merge-query-node.d.ts +1 -0
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +9 -3
- package/dist/cjs/operation-node/operation-node-transformer.js +14 -3
- package/dist/cjs/operation-node/query-node.d.ts +4 -0
- package/dist/cjs/operation-node/query-node.js +8 -0
- package/dist/cjs/operation-node/select-query-node.d.ts +0 -1
- package/dist/cjs/operation-node/select-query-node.js +0 -8
- package/dist/cjs/operation-node/update-query-node.d.ts +1 -0
- package/dist/cjs/parser/insert-values-parser.js +3 -1
- package/dist/cjs/plugin/camel-case/camel-case-plugin.d.ts +52 -25
- package/dist/cjs/plugin/camel-case/camel-case-plugin.js +24 -19
- package/dist/cjs/plugin/camel-case/camel-case.js +4 -1
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +29 -7
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-transformer.js +2 -2
- package/dist/cjs/plugin/immediate-value/immediate-value-plugin.d.ts +28 -6
- package/dist/cjs/plugin/kysely-plugin.d.ts +28 -6
- package/dist/cjs/plugin/noop-plugin.d.ts +28 -6
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.d.ts +62 -9
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.js +34 -3
- package/dist/cjs/plugin/with-schema/with-schema-plugin.d.ts +28 -6
- package/dist/cjs/plugin/with-schema/with-schema-transformer.d.ts +4 -0
- package/dist/cjs/plugin/with-schema/with-schema-transformer.js +26 -0
- package/dist/cjs/query-builder/aggregate-function-builder.d.ts +43 -1
- package/dist/cjs/query-builder/aggregate-function-builder.js +30 -0
- package/dist/cjs/query-builder/delete-query-builder.d.ts +137 -45
- package/dist/cjs/query-builder/delete-query-builder.js +76 -26
- package/dist/cjs/query-builder/function-module.d.ts +35 -88
- package/dist/cjs/query-builder/insert-query-builder.d.ts +239 -65
- package/dist/cjs/query-builder/insert-query-builder.js +188 -52
- package/dist/cjs/query-builder/insert-result.d.ts +10 -5
- package/dist/cjs/query-builder/insert-result.js +10 -5
- package/dist/cjs/query-builder/json-path-builder.d.ts +33 -9
- package/dist/cjs/query-builder/json-path-builder.js +8 -5
- package/dist/cjs/query-builder/merge-query-builder.d.ts +159 -21
- package/dist/cjs/query-builder/merge-query-builder.js +68 -6
- package/dist/cjs/query-builder/on-conflict-builder.d.ts +51 -18
- package/dist/cjs/query-builder/on-conflict-builder.js +41 -16
- package/dist/cjs/query-builder/output-interface.d.ts +50 -7
- package/dist/cjs/query-builder/returning-interface.d.ts +5 -5
- package/dist/cjs/query-builder/select-query-builder-expression.d.ts +8 -0
- package/dist/cjs/query-builder/select-query-builder.d.ts +295 -63
- package/dist/cjs/query-builder/select-query-builder.js +7 -7
- package/dist/cjs/query-builder/update-query-builder.d.ts +138 -29
- package/dist/cjs/query-builder/update-query-builder.js +75 -10
- package/dist/cjs/query-builder/update-result.d.ts +2 -2
- package/dist/cjs/query-builder/update-result.js +2 -2
- package/dist/cjs/query-builder/where-interface.d.ts +5 -1
- package/dist/cjs/query-compiler/default-query-compiler.js +20 -0
- package/dist/cjs/query-creator.d.ts +66 -18
- package/dist/cjs/query-creator.js +2 -2
- package/dist/cjs/raw-builder/raw-builder.d.ts +29 -7
- package/dist/cjs/raw-builder/sql.d.ts +27 -8
- package/dist/cjs/schema/alter-column-builder.d.ts +17 -3
- package/dist/cjs/schema/alter-column-builder.js +17 -3
- package/dist/cjs/schema/alter-table-add-index-builder.d.ts +43 -9
- package/dist/cjs/schema/alter-table-add-index-builder.js +26 -9
- package/dist/cjs/schema/column-definition-builder.d.ts +283 -26
- package/dist/cjs/schema/column-definition-builder.js +283 -26
- package/dist/cjs/schema/create-table-builder.d.ts +86 -33
- package/dist/cjs/schema/create-table-builder.js +86 -33
- package/dist/cjs/util/column-type.d.ts +5 -9
- package/dist/cjs/util/require-all-props.d.ts +4 -2
- package/dist/cjs/util/require-all-props.js +4 -2
- package/dist/cjs/util/streamable.d.ts +1 -1
- package/dist/cjs/util/type-utils.d.ts +4 -2
- package/dist/esm/dialect/dialect-adapter-base.d.ts +11 -2
- package/dist/esm/dialect/dialect-adapter.d.ts +11 -2
- package/dist/esm/dialect/mssql/mssql-adapter.d.ts +11 -2
- package/dist/esm/dialect/mssql/mssql-dialect-config.d.ts +37 -29
- package/dist/esm/dialect/mssql/mssql-driver.js +20 -13
- package/dist/esm/dialect/mysql/mysql-adapter.d.ts +11 -2
- package/dist/esm/dialect/mysql/mysql-dialect-config.d.ts +4 -0
- package/dist/esm/dialect/mysql/mysql-driver.js +3 -0
- package/dist/esm/dialect/postgres/postgres-adapter.d.ts +11 -2
- package/dist/esm/dialect/postgres/postgres-dialect-config.d.ts +10 -3
- package/dist/esm/dialect/postgres/postgres-driver.js +3 -0
- package/dist/esm/dialect/postgres/postgres-introspector.js +5 -1
- package/dist/esm/dialect/sqlite/sqlite-adapter.d.ts +11 -2
- package/dist/esm/dialect/sqlite/sqlite-introspector.js +66 -44
- package/dist/esm/driver/dummy-driver.d.ts +13 -12
- package/dist/esm/driver/dummy-driver.js +13 -12
- package/dist/esm/dynamic/dynamic.d.ts +6 -6
- package/dist/esm/dynamic/dynamic.js +6 -6
- package/dist/esm/expression/expression-builder.d.ts +154 -61
- package/dist/esm/expression/expression-wrapper.d.ts +92 -23
- package/dist/esm/expression/expression.d.ts +40 -5
- package/dist/esm/helpers/mssql.d.ts +74 -14
- package/dist/esm/helpers/mssql.js +74 -14
- package/dist/esm/helpers/mysql.d.ts +14 -10
- package/dist/esm/helpers/mysql.js +14 -10
- package/dist/esm/helpers/postgres.d.ts +7 -4
- package/dist/esm/helpers/postgres.js +7 -4
- package/dist/esm/helpers/sqlite.d.ts +41 -16
- package/dist/esm/helpers/sqlite.js +41 -16
- package/dist/esm/kysely.d.ts +99 -41
- package/dist/esm/kysely.js +60 -36
- package/dist/esm/migration/file-migration-provider.d.ts +2 -2
- package/dist/esm/migration/file-migration-provider.js +2 -2
- package/dist/esm/migration/migrator.d.ts +90 -15
- package/dist/esm/migration/migrator.js +95 -17
- package/dist/esm/operation-node/aggregate-function-node.d.ts +4 -0
- package/dist/esm/operation-node/aggregate-function-node.js +9 -0
- package/dist/esm/operation-node/data-type-node.d.ts +1 -1
- package/dist/esm/operation-node/data-type-node.js +12 -0
- package/dist/esm/operation-node/delete-query-node.d.ts +1 -0
- package/dist/esm/operation-node/insert-query-node.d.ts +1 -0
- package/dist/esm/operation-node/merge-query-node.d.ts +1 -0
- package/dist/esm/operation-node/operation-node-transformer.d.ts +9 -3
- package/dist/esm/operation-node/operation-node-transformer.js +14 -3
- package/dist/esm/operation-node/query-node.d.ts +4 -0
- package/dist/esm/operation-node/query-node.js +8 -0
- package/dist/esm/operation-node/select-query-node.d.ts +0 -1
- package/dist/esm/operation-node/select-query-node.js +0 -8
- package/dist/esm/operation-node/update-query-node.d.ts +1 -0
- package/dist/esm/parser/insert-values-parser.js +3 -1
- package/dist/esm/plugin/camel-case/camel-case-plugin.d.ts +52 -25
- package/dist/esm/plugin/camel-case/camel-case-plugin.js +24 -19
- package/dist/esm/plugin/camel-case/camel-case.js +4 -1
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +29 -7
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-transformer.js +2 -2
- package/dist/esm/plugin/immediate-value/immediate-value-plugin.d.ts +28 -6
- package/dist/esm/plugin/kysely-plugin.d.ts +28 -6
- package/dist/esm/plugin/noop-plugin.d.ts +28 -6
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.d.ts +62 -9
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.js +34 -3
- package/dist/esm/plugin/with-schema/with-schema-plugin.d.ts +28 -6
- package/dist/esm/plugin/with-schema/with-schema-transformer.d.ts +4 -0
- package/dist/esm/plugin/with-schema/with-schema-transformer.js +26 -0
- package/dist/esm/query-builder/aggregate-function-builder.d.ts +43 -1
- package/dist/esm/query-builder/aggregate-function-builder.js +30 -0
- package/dist/esm/query-builder/delete-query-builder.d.ts +137 -45
- package/dist/esm/query-builder/delete-query-builder.js +76 -26
- package/dist/esm/query-builder/function-module.d.ts +35 -88
- package/dist/esm/query-builder/insert-query-builder.d.ts +239 -65
- package/dist/esm/query-builder/insert-query-builder.js +188 -52
- package/dist/esm/query-builder/insert-result.d.ts +10 -5
- package/dist/esm/query-builder/insert-result.js +10 -5
- package/dist/esm/query-builder/json-path-builder.d.ts +33 -9
- package/dist/esm/query-builder/json-path-builder.js +8 -5
- package/dist/esm/query-builder/merge-query-builder.d.ts +159 -21
- package/dist/esm/query-builder/merge-query-builder.js +68 -6
- package/dist/esm/query-builder/on-conflict-builder.d.ts +51 -18
- package/dist/esm/query-builder/on-conflict-builder.js +41 -16
- package/dist/esm/query-builder/output-interface.d.ts +50 -7
- package/dist/esm/query-builder/returning-interface.d.ts +5 -5
- package/dist/esm/query-builder/select-query-builder-expression.d.ts +8 -0
- package/dist/esm/query-builder/select-query-builder.d.ts +295 -63
- package/dist/esm/query-builder/select-query-builder.js +7 -7
- package/dist/esm/query-builder/update-query-builder.d.ts +138 -29
- package/dist/esm/query-builder/update-query-builder.js +75 -10
- package/dist/esm/query-builder/update-result.d.ts +2 -2
- package/dist/esm/query-builder/update-result.js +2 -2
- package/dist/esm/query-builder/where-interface.d.ts +5 -1
- package/dist/esm/query-compiler/default-query-compiler.js +20 -0
- package/dist/esm/query-creator.d.ts +66 -18
- package/dist/esm/query-creator.js +2 -2
- package/dist/esm/raw-builder/raw-builder.d.ts +29 -7
- package/dist/esm/raw-builder/sql.d.ts +27 -8
- package/dist/esm/schema/alter-column-builder.d.ts +17 -3
- package/dist/esm/schema/alter-column-builder.js +17 -3
- package/dist/esm/schema/alter-table-add-index-builder.d.ts +43 -9
- package/dist/esm/schema/alter-table-add-index-builder.js +26 -9
- package/dist/esm/schema/column-definition-builder.d.ts +283 -26
- package/dist/esm/schema/column-definition-builder.js +283 -26
- package/dist/esm/schema/create-table-builder.d.ts +86 -33
- package/dist/esm/schema/create-table-builder.js +86 -33
- package/dist/esm/util/column-type.d.ts +5 -9
- package/dist/esm/util/require-all-props.d.ts +4 -2
- package/dist/esm/util/require-all-props.js +4 -2
- package/dist/esm/util/streamable.d.ts +1 -1
- package/dist/esm/util/type-utils.d.ts +4 -2
- package/package.json +28 -23
|
@@ -77,7 +77,7 @@ class SelectQueryBuilderImpl {
|
|
|
77
77
|
modifyEnd(modifier) {
|
|
78
78
|
return new SelectQueryBuilderImpl({
|
|
79
79
|
...this.#props,
|
|
80
|
-
queryNode:
|
|
80
|
+
queryNode: QueryNode.cloneWithEndModifier(this.#props.queryNode, SelectModifierNode.createWithExpression(modifier.toOperationNode())),
|
|
81
81
|
});
|
|
82
82
|
}
|
|
83
83
|
distinct() {
|
|
@@ -89,37 +89,37 @@ class SelectQueryBuilderImpl {
|
|
|
89
89
|
forUpdate(of) {
|
|
90
90
|
return new SelectQueryBuilderImpl({
|
|
91
91
|
...this.#props,
|
|
92
|
-
queryNode:
|
|
92
|
+
queryNode: QueryNode.cloneWithEndModifier(this.#props.queryNode, SelectModifierNode.create('ForUpdate', of ? asArray(of).map(parseTable) : undefined)),
|
|
93
93
|
});
|
|
94
94
|
}
|
|
95
95
|
forShare(of) {
|
|
96
96
|
return new SelectQueryBuilderImpl({
|
|
97
97
|
...this.#props,
|
|
98
|
-
queryNode:
|
|
98
|
+
queryNode: QueryNode.cloneWithEndModifier(this.#props.queryNode, SelectModifierNode.create('ForShare', of ? asArray(of).map(parseTable) : undefined)),
|
|
99
99
|
});
|
|
100
100
|
}
|
|
101
101
|
forKeyShare(of) {
|
|
102
102
|
return new SelectQueryBuilderImpl({
|
|
103
103
|
...this.#props,
|
|
104
|
-
queryNode:
|
|
104
|
+
queryNode: QueryNode.cloneWithEndModifier(this.#props.queryNode, SelectModifierNode.create('ForKeyShare', of ? asArray(of).map(parseTable) : undefined)),
|
|
105
105
|
});
|
|
106
106
|
}
|
|
107
107
|
forNoKeyUpdate(of) {
|
|
108
108
|
return new SelectQueryBuilderImpl({
|
|
109
109
|
...this.#props,
|
|
110
|
-
queryNode:
|
|
110
|
+
queryNode: QueryNode.cloneWithEndModifier(this.#props.queryNode, SelectModifierNode.create('ForNoKeyUpdate', of ? asArray(of).map(parseTable) : undefined)),
|
|
111
111
|
});
|
|
112
112
|
}
|
|
113
113
|
skipLocked() {
|
|
114
114
|
return new SelectQueryBuilderImpl({
|
|
115
115
|
...this.#props,
|
|
116
|
-
queryNode:
|
|
116
|
+
queryNode: QueryNode.cloneWithEndModifier(this.#props.queryNode, SelectModifierNode.create('SkipLocked')),
|
|
117
117
|
});
|
|
118
118
|
}
|
|
119
119
|
noWait() {
|
|
120
120
|
return new SelectQueryBuilderImpl({
|
|
121
121
|
...this.#props,
|
|
122
|
-
queryNode:
|
|
122
|
+
queryNode: QueryNode.cloneWithEndModifier(this.#props.queryNode, SelectModifierNode.create('NoWait')),
|
|
123
123
|
});
|
|
124
124
|
}
|
|
125
125
|
selectAll(table) {
|
|
@@ -60,6 +60,8 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
|
|
|
60
60
|
* you can always use:
|
|
61
61
|
*
|
|
62
62
|
* ```ts
|
|
63
|
+
* import { sql } from 'kysely'
|
|
64
|
+
*
|
|
63
65
|
* sql`your operator`
|
|
64
66
|
* ```
|
|
65
67
|
*
|
|
@@ -71,7 +73,7 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
|
|
|
71
73
|
* const persons = await db
|
|
72
74
|
* .selectFrom('person')
|
|
73
75
|
* .selectAll()
|
|
74
|
-
* .where('id', 'in', [
|
|
76
|
+
* .where('id', 'in', [1, 2, 3])
|
|
75
77
|
* .execute()
|
|
76
78
|
* ```
|
|
77
79
|
*
|
|
@@ -319,6 +321,8 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
|
|
|
319
321
|
* import { sql } from 'kysely'
|
|
320
322
|
* const { ref } = db.dynamic
|
|
321
323
|
*
|
|
324
|
+
* const columnFromUserInput: string = 'id'
|
|
325
|
+
*
|
|
322
326
|
* const persons = await db
|
|
323
327
|
* .selectFrom('person')
|
|
324
328
|
* .selectAll()
|
|
@@ -554,7 +558,7 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
|
|
|
554
558
|
* ```ts
|
|
555
559
|
* await db.selectFrom('person')
|
|
556
560
|
* .innerJoin(
|
|
557
|
-
*
|
|
561
|
+
* db.selectFrom('pet')
|
|
558
562
|
* .select(['owner_id', 'name'])
|
|
559
563
|
* .where('name', '=', 'Doggo')
|
|
560
564
|
* .as('doggos'),
|
|
@@ -603,15 +607,17 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
|
|
|
603
607
|
* Update the first 2 rows in the 'person' table:
|
|
604
608
|
*
|
|
605
609
|
* ```ts
|
|
606
|
-
*
|
|
610
|
+
* await db
|
|
607
611
|
* .updateTable('person')
|
|
608
612
|
* .set({ first_name: 'Foo' })
|
|
609
|
-
* .limit(2)
|
|
613
|
+
* .limit(2)
|
|
614
|
+
* .execute()
|
|
610
615
|
* ```
|
|
611
616
|
*
|
|
612
617
|
* The generated SQL (MySQL):
|
|
618
|
+
*
|
|
613
619
|
* ```sql
|
|
614
|
-
* update `person` set `first_name` =
|
|
620
|
+
* update `person` set `first_name` = ? limit ?
|
|
615
621
|
* ```
|
|
616
622
|
*/
|
|
617
623
|
limit(limit: ValueExpression<DB, TB, number>): UpdateQueryBuilder<DB, UT, TB, O>;
|
|
@@ -643,7 +649,7 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
|
|
|
643
649
|
* first_name: 'Jennifer',
|
|
644
650
|
* last_name: 'Aniston'
|
|
645
651
|
* })
|
|
646
|
-
* .where('id', '=',
|
|
652
|
+
* .where('id', '=', 1)
|
|
647
653
|
* .executeTakeFirst()
|
|
648
654
|
*
|
|
649
655
|
* console.log(result.numUpdatedRows)
|
|
@@ -668,7 +674,7 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
|
|
|
668
674
|
* first_name: eb.selectFrom('pet').select('name').limit(1),
|
|
669
675
|
* last_name: 'updated',
|
|
670
676
|
* }))
|
|
671
|
-
* .where('id', '=',
|
|
677
|
+
* .where('id', '=', 1)
|
|
672
678
|
* .executeTakeFirst()
|
|
673
679
|
*
|
|
674
680
|
* console.log(result.numUpdatedRows)
|
|
@@ -690,13 +696,15 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
|
|
|
690
696
|
* (or other target) and the second as the value:
|
|
691
697
|
*
|
|
692
698
|
* ```ts
|
|
699
|
+
* import { sql } from 'kysely'
|
|
700
|
+
*
|
|
693
701
|
* const result = await db
|
|
694
702
|
* .updateTable('person')
|
|
695
703
|
* .set('first_name', 'Foo')
|
|
696
704
|
* // As always, both arguments can be arbitrary expressions or
|
|
697
705
|
* // callbacks that give you access to an expression builder:
|
|
698
|
-
* .set(sql<string>`address['postalCode']`, (eb) => eb.val('61710))
|
|
699
|
-
* .where('id', '=',
|
|
706
|
+
* .set(sql<string>`address['postalCode']`, (eb) => eb.val('61710'))
|
|
707
|
+
* .where('id', '=', 1)
|
|
700
708
|
* .executeTakeFirst()
|
|
701
709
|
* ```
|
|
702
710
|
*
|
|
@@ -781,20 +789,20 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
|
|
|
781
789
|
* last_name: 'Aniston'
|
|
782
790
|
* })
|
|
783
791
|
* .returning('id')
|
|
784
|
-
* .
|
|
792
|
+
* .executeTakeFirstOrThrow()
|
|
785
793
|
* ```
|
|
786
794
|
*
|
|
787
795
|
* Return multiple columns:
|
|
788
796
|
*
|
|
789
797
|
* ```ts
|
|
790
|
-
* const { id,
|
|
798
|
+
* const { id, last_name } = await db
|
|
791
799
|
* .insertInto('person')
|
|
792
800
|
* .values({
|
|
793
801
|
* first_name: 'Jennifer',
|
|
794
802
|
* last_name: 'Aniston'
|
|
795
803
|
* })
|
|
796
804
|
* .returning(['id', 'last_name'])
|
|
797
|
-
* .
|
|
805
|
+
* .executeTakeFirstOrThrow()
|
|
798
806
|
* ```
|
|
799
807
|
*
|
|
800
808
|
* Return arbitrary expressions:
|
|
@@ -811,9 +819,9 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
|
|
|
811
819
|
* .returning((eb) => [
|
|
812
820
|
* 'id as id',
|
|
813
821
|
* sql<string>`concat(first_name, ' ', last_name)`.as('full_name'),
|
|
814
|
-
* eb.selectFrom('
|
|
822
|
+
* eb.selectFrom('pet').select('pet.id').limit(1).as('first_pet_id')
|
|
815
823
|
* ])
|
|
816
|
-
* .
|
|
824
|
+
* .executeTakeFirstOrThrow()
|
|
817
825
|
* ```
|
|
818
826
|
*/
|
|
819
827
|
returning<SE extends SelectExpression<DB, TB>>(selections: ReadonlyArray<SE>): UpdateQueryBuilder<DB, UT, TB, ReturningRow<DB, TB, O, SE>>;
|
|
@@ -846,15 +854,24 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
|
|
|
846
854
|
* .output('inserted.id')
|
|
847
855
|
* .values({
|
|
848
856
|
* first_name: 'Jennifer',
|
|
849
|
-
* last_name: 'Aniston'
|
|
857
|
+
* last_name: 'Aniston',
|
|
858
|
+
* gender: 'female',
|
|
850
859
|
* })
|
|
851
|
-
* .
|
|
860
|
+
* .executeTakeFirstOrThrow()
|
|
861
|
+
* ```
|
|
862
|
+
*
|
|
863
|
+
* The generated SQL (MSSQL):
|
|
864
|
+
*
|
|
865
|
+
* ```sql
|
|
866
|
+
* insert into "person" ("first_name", "last_name", "gender")
|
|
867
|
+
* output "inserted"."id"
|
|
868
|
+
* values (@1, @2, @3)
|
|
852
869
|
* ```
|
|
853
870
|
*
|
|
854
871
|
* Return multiple columns:
|
|
855
872
|
*
|
|
856
873
|
* ```ts
|
|
857
|
-
* const {
|
|
874
|
+
* const { old_first_name, old_last_name, new_first_name, new_last_name } = await db
|
|
858
875
|
* .updateTable('person')
|
|
859
876
|
* .set({ first_name: 'John', last_name: 'Doe' })
|
|
860
877
|
* .output([
|
|
@@ -864,7 +881,19 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
|
|
|
864
881
|
* 'inserted.last_name as new_last_name',
|
|
865
882
|
* ])
|
|
866
883
|
* .where('created_at', '<', new Date())
|
|
867
|
-
* .
|
|
884
|
+
* .executeTakeFirstOrThrow()
|
|
885
|
+
* ```
|
|
886
|
+
*
|
|
887
|
+
* The generated SQL (MSSQL):
|
|
888
|
+
*
|
|
889
|
+
* ```sql
|
|
890
|
+
* update "person"
|
|
891
|
+
* set "first_name" = @1, "last_name" = @2
|
|
892
|
+
* output "deleted"."first_name" as "old_first_name",
|
|
893
|
+
* "deleted"."last_name" as "old_last_name",
|
|
894
|
+
* "inserted"."first_name" as "new_first_name",
|
|
895
|
+
* "inserted"."last_name" as "new_last_name"
|
|
896
|
+
* where "created_at" < @3
|
|
868
897
|
* ```
|
|
869
898
|
*
|
|
870
899
|
* Return arbitrary expressions:
|
|
@@ -872,11 +901,19 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
|
|
|
872
901
|
* ```ts
|
|
873
902
|
* import { sql } from 'kysely'
|
|
874
903
|
*
|
|
875
|
-
* const {
|
|
904
|
+
* const { full_name } = await db
|
|
876
905
|
* .deleteFrom('person')
|
|
877
|
-
* .output((eb) => sql<string>`concat(${eb.ref('deleted.first_name')}, ' ', ${eb.ref('deleted.last_name')})`.as('full_name')
|
|
906
|
+
* .output((eb) => sql<string>`concat(${eb.ref('deleted.first_name')}, ' ', ${eb.ref('deleted.last_name')})`.as('full_name'))
|
|
878
907
|
* .where('created_at', '<', new Date())
|
|
879
|
-
* .
|
|
908
|
+
* .executeTakeFirstOrThrow()
|
|
909
|
+
* ```
|
|
910
|
+
*
|
|
911
|
+
* The generated SQL (MSSQL):
|
|
912
|
+
*
|
|
913
|
+
* ```sql
|
|
914
|
+
* delete from "person"
|
|
915
|
+
* output concat("deleted"."first_name", ' ', "deleted"."last_name") as "full_name"
|
|
916
|
+
* where "created_at" < @1
|
|
880
917
|
* ```
|
|
881
918
|
*
|
|
882
919
|
* Return the action performed on the row:
|
|
@@ -897,7 +934,21 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
|
|
|
897
934
|
* 'inserted.id as inserted_id',
|
|
898
935
|
* 'deleted.id as deleted_id',
|
|
899
936
|
* ])
|
|
937
|
+
* .execute()
|
|
938
|
+
* ```
|
|
939
|
+
*
|
|
940
|
+
* The generated SQL (MSSQL):
|
|
941
|
+
*
|
|
942
|
+
* ```sql
|
|
943
|
+
* merge into "person"
|
|
944
|
+
* using "pet" on "pet"."owner_id" = "person"."id"
|
|
945
|
+
* when matched then delete
|
|
946
|
+
* when not matched then
|
|
947
|
+
* insert ("first_name", "last_name", "gender")
|
|
948
|
+
* values (@1, @2, @3)
|
|
949
|
+
* output "inserted"."id" as "inserted_id", "deleted"."id" as "deleted_id"
|
|
900
950
|
* ```
|
|
951
|
+
*
|
|
901
952
|
*/
|
|
902
953
|
output<OE extends OutputExpression<DB, UT>>(selections: readonly OE[]): UpdateQueryBuilder<DB, UT, TB, ReturningRow<DB, TB, O, SelectExpressionFromOutputExpression<OE>>>;
|
|
903
954
|
output<CB extends OutputCallback<DB, TB>>(callback: CB): UpdateQueryBuilder<DB, UT, TB, ReturningRow<DB, TB, O, SelectExpressionFromOutputCallback<CB>>>;
|
|
@@ -909,6 +960,30 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
|
|
|
909
960
|
* Also see the {@link output} method.
|
|
910
961
|
*/
|
|
911
962
|
outputAll(table: OutputPrefix): UpdateQueryBuilder<DB, UT, TB, ReturningAllRow<DB, TB, O>>;
|
|
963
|
+
/**
|
|
964
|
+
* This can be used to add any additional SQL to the end of the query.
|
|
965
|
+
*
|
|
966
|
+
* ### Examples
|
|
967
|
+
*
|
|
968
|
+
* ```ts
|
|
969
|
+
* import { sql } from 'kysely'
|
|
970
|
+
*
|
|
971
|
+
* await db.updateTable('person')
|
|
972
|
+
* .set({ age: 39 })
|
|
973
|
+
* .where('first_name', '=', 'John')
|
|
974
|
+
* .modifyEnd(sql.raw('-- This is a comment'))
|
|
975
|
+
* .execute()
|
|
976
|
+
* ```
|
|
977
|
+
*
|
|
978
|
+
* The generated SQL (MySQL):
|
|
979
|
+
*
|
|
980
|
+
* ```sql
|
|
981
|
+
* update `person`
|
|
982
|
+
* set `age` = 39
|
|
983
|
+
* where `first_name` = "John" -- This is a comment
|
|
984
|
+
* ```
|
|
985
|
+
*/
|
|
986
|
+
modifyEnd(modifier: Expression<any>): UpdateQueryBuilder<DB, UT, TB, O>;
|
|
912
987
|
/**
|
|
913
988
|
* Clears all `returning` clauses from the query.
|
|
914
989
|
*
|
|
@@ -941,11 +1016,18 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
|
|
|
941
1016
|
* The next example uses a helper function `log` to log a query:
|
|
942
1017
|
*
|
|
943
1018
|
* ```ts
|
|
1019
|
+
* import type { Compilable } from 'kysely'
|
|
1020
|
+
* import type { PersonUpdate } from 'type-editor' // imaginary module
|
|
1021
|
+
*
|
|
944
1022
|
* function log<T extends Compilable>(qb: T): T {
|
|
945
1023
|
* console.log(qb.compile())
|
|
946
1024
|
* return qb
|
|
947
1025
|
* }
|
|
948
1026
|
*
|
|
1027
|
+
* const values = {
|
|
1028
|
+
* first_name: 'John',
|
|
1029
|
+
* } satisfies PersonUpdate
|
|
1030
|
+
*
|
|
949
1031
|
* db.updateTable('person')
|
|
950
1032
|
* .set(values)
|
|
951
1033
|
* .$call(log)
|
|
@@ -966,7 +1048,9 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
|
|
|
966
1048
|
* ### Examples
|
|
967
1049
|
*
|
|
968
1050
|
* ```ts
|
|
969
|
-
*
|
|
1051
|
+
* import type { PersonUpdate } from 'type-editor' // imaginary module
|
|
1052
|
+
*
|
|
1053
|
+
* async function updatePerson(id: number, updates: PersonUpdate, returnLastName: boolean) {
|
|
970
1054
|
* return await db
|
|
971
1055
|
* .updateTable('person')
|
|
972
1056
|
* .set(updates)
|
|
@@ -982,11 +1066,11 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
|
|
|
982
1066
|
* the code. In the example above the return type of the `updatePerson` function is:
|
|
983
1067
|
*
|
|
984
1068
|
* ```ts
|
|
985
|
-
* {
|
|
1069
|
+
* Promise<{
|
|
986
1070
|
* id: number
|
|
987
1071
|
* first_name: string
|
|
988
1072
|
* last_name?: string
|
|
989
|
-
* }
|
|
1073
|
+
* }>
|
|
990
1074
|
* ```
|
|
991
1075
|
*/
|
|
992
1076
|
$if<O2>(condition: boolean, func: (qb: this) => UpdateQueryBuilder<any, any, any, O2>): O2 extends UpdateResult ? UpdateQueryBuilder<DB, UT, TB, UpdateResult> : O2 extends O & infer E ? UpdateQueryBuilder<DB, UT, TB, O & Partial<E>> : UpdateQueryBuilder<DB, UT, TB, Partial<O2>>;
|
|
@@ -1015,27 +1099,41 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
|
|
|
1015
1099
|
* Turn this code:
|
|
1016
1100
|
*
|
|
1017
1101
|
* ```ts
|
|
1102
|
+
* import type { Person } from 'type-editor' // imaginary module
|
|
1103
|
+
*
|
|
1104
|
+
* const id = 1
|
|
1105
|
+
* const now = new Date().toISOString()
|
|
1106
|
+
*
|
|
1018
1107
|
* const person = await db.updateTable('person')
|
|
1019
|
-
* .set({
|
|
1108
|
+
* .set({ deleted_at: now })
|
|
1020
1109
|
* .where('id', '=', id)
|
|
1021
1110
|
* .where('nullable_column', 'is not', null)
|
|
1022
1111
|
* .returningAll()
|
|
1023
1112
|
* .executeTakeFirstOrThrow()
|
|
1024
1113
|
*
|
|
1025
|
-
* if (person
|
|
1114
|
+
* if (isWithNoNullValue(person)) {
|
|
1026
1115
|
* functionThatExpectsPersonWithNonNullValue(person)
|
|
1027
1116
|
* }
|
|
1117
|
+
*
|
|
1118
|
+
* function isWithNoNullValue(person: Person): person is Person & { nullable_column: string } {
|
|
1119
|
+
* return person.nullable_column != null
|
|
1120
|
+
* }
|
|
1028
1121
|
* ```
|
|
1029
1122
|
*
|
|
1030
1123
|
* Into this:
|
|
1031
1124
|
*
|
|
1032
1125
|
* ```ts
|
|
1126
|
+
* import type { NotNull } from 'kysely'
|
|
1127
|
+
*
|
|
1128
|
+
* const id = 1
|
|
1129
|
+
* const now = new Date().toISOString()
|
|
1130
|
+
*
|
|
1033
1131
|
* const person = await db.updateTable('person')
|
|
1034
|
-
* .set({
|
|
1132
|
+
* .set({ deleted_at: now })
|
|
1035
1133
|
* .where('id', '=', id)
|
|
1036
1134
|
* .where('nullable_column', 'is not', null)
|
|
1037
1135
|
* .returningAll()
|
|
1038
|
-
* .$narrowType<{
|
|
1136
|
+
* .$narrowType<{ deleted_at: Date; nullable_column: NotNull }>()
|
|
1039
1137
|
* .executeTakeFirstOrThrow()
|
|
1040
1138
|
*
|
|
1041
1139
|
* functionThatExpectsPersonWithNonNullValue(person)
|
|
@@ -1065,6 +1163,17 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
|
|
|
1065
1163
|
* ### Examples
|
|
1066
1164
|
*
|
|
1067
1165
|
* ```ts
|
|
1166
|
+
* import type { PersonUpdate, PetUpdate, Species } from 'type-editor' // imaginary module
|
|
1167
|
+
*
|
|
1168
|
+
* const person = {
|
|
1169
|
+
* id: 1,
|
|
1170
|
+
* gender: 'other',
|
|
1171
|
+
* } satisfies PersonUpdate
|
|
1172
|
+
*
|
|
1173
|
+
* const pet = {
|
|
1174
|
+
* name: 'Fluffy',
|
|
1175
|
+
* } satisfies PetUpdate
|
|
1176
|
+
*
|
|
1068
1177
|
* const result = await db
|
|
1069
1178
|
* .with('updated_person', (qb) => qb
|
|
1070
1179
|
* .updateTable('person')
|
|
@@ -1121,7 +1230,7 @@ export declare class UpdateQueryBuilder<DB, UT extends keyof DB, TB extends keyo
|
|
|
1121
1230
|
* ### Examples
|
|
1122
1231
|
*
|
|
1123
1232
|
* ```ts
|
|
1124
|
-
* const stream = db
|
|
1233
|
+
* const stream = db
|
|
1125
1234
|
* .selectFrom('person')
|
|
1126
1235
|
* .select(['first_name', 'last_name'])
|
|
1127
1236
|
* .where('gender', '=', 'other')
|
|
@@ -119,15 +119,17 @@ export class UpdateQueryBuilder {
|
|
|
119
119
|
* Update the first 2 rows in the 'person' table:
|
|
120
120
|
*
|
|
121
121
|
* ```ts
|
|
122
|
-
*
|
|
122
|
+
* await db
|
|
123
123
|
* .updateTable('person')
|
|
124
124
|
* .set({ first_name: 'Foo' })
|
|
125
|
-
* .limit(2)
|
|
125
|
+
* .limit(2)
|
|
126
|
+
* .execute()
|
|
126
127
|
* ```
|
|
127
128
|
*
|
|
128
129
|
* The generated SQL (MySQL):
|
|
130
|
+
*
|
|
129
131
|
* ```sql
|
|
130
|
-
* update `person` set `first_name` =
|
|
132
|
+
* update `person` set `first_name` = ? limit ?
|
|
131
133
|
* ```
|
|
132
134
|
*/
|
|
133
135
|
limit(limit) {
|
|
@@ -166,6 +168,35 @@ export class UpdateQueryBuilder {
|
|
|
166
168
|
queryNode: QueryNode.cloneWithOutput(this.#props.queryNode, parseSelectAll(table)),
|
|
167
169
|
});
|
|
168
170
|
}
|
|
171
|
+
/**
|
|
172
|
+
* This can be used to add any additional SQL to the end of the query.
|
|
173
|
+
*
|
|
174
|
+
* ### Examples
|
|
175
|
+
*
|
|
176
|
+
* ```ts
|
|
177
|
+
* import { sql } from 'kysely'
|
|
178
|
+
*
|
|
179
|
+
* await db.updateTable('person')
|
|
180
|
+
* .set({ age: 39 })
|
|
181
|
+
* .where('first_name', '=', 'John')
|
|
182
|
+
* .modifyEnd(sql.raw('-- This is a comment'))
|
|
183
|
+
* .execute()
|
|
184
|
+
* ```
|
|
185
|
+
*
|
|
186
|
+
* The generated SQL (MySQL):
|
|
187
|
+
*
|
|
188
|
+
* ```sql
|
|
189
|
+
* update `person`
|
|
190
|
+
* set `age` = 39
|
|
191
|
+
* where `first_name` = "John" -- This is a comment
|
|
192
|
+
* ```
|
|
193
|
+
*/
|
|
194
|
+
modifyEnd(modifier) {
|
|
195
|
+
return new UpdateQueryBuilder({
|
|
196
|
+
...this.#props,
|
|
197
|
+
queryNode: QueryNode.cloneWithEndModifier(this.#props.queryNode, modifier.toOperationNode()),
|
|
198
|
+
});
|
|
199
|
+
}
|
|
169
200
|
/**
|
|
170
201
|
* Clears all `returning` clauses from the query.
|
|
171
202
|
*
|
|
@@ -203,11 +234,18 @@ export class UpdateQueryBuilder {
|
|
|
203
234
|
* The next example uses a helper function `log` to log a query:
|
|
204
235
|
*
|
|
205
236
|
* ```ts
|
|
237
|
+
* import type { Compilable } from 'kysely'
|
|
238
|
+
* import type { PersonUpdate } from 'type-editor' // imaginary module
|
|
239
|
+
*
|
|
206
240
|
* function log<T extends Compilable>(qb: T): T {
|
|
207
241
|
* console.log(qb.compile())
|
|
208
242
|
* return qb
|
|
209
243
|
* }
|
|
210
244
|
*
|
|
245
|
+
* const values = {
|
|
246
|
+
* first_name: 'John',
|
|
247
|
+
* } satisfies PersonUpdate
|
|
248
|
+
*
|
|
211
249
|
* db.updateTable('person')
|
|
212
250
|
* .set(values)
|
|
213
251
|
* .$call(log)
|
|
@@ -230,7 +268,9 @@ export class UpdateQueryBuilder {
|
|
|
230
268
|
* ### Examples
|
|
231
269
|
*
|
|
232
270
|
* ```ts
|
|
233
|
-
*
|
|
271
|
+
* import type { PersonUpdate } from 'type-editor' // imaginary module
|
|
272
|
+
*
|
|
273
|
+
* async function updatePerson(id: number, updates: PersonUpdate, returnLastName: boolean) {
|
|
234
274
|
* return await db
|
|
235
275
|
* .updateTable('person')
|
|
236
276
|
* .set(updates)
|
|
@@ -246,11 +286,11 @@ export class UpdateQueryBuilder {
|
|
|
246
286
|
* the code. In the example above the return type of the `updatePerson` function is:
|
|
247
287
|
*
|
|
248
288
|
* ```ts
|
|
249
|
-
* {
|
|
289
|
+
* Promise<{
|
|
250
290
|
* id: number
|
|
251
291
|
* first_name: string
|
|
252
292
|
* last_name?: string
|
|
253
|
-
* }
|
|
293
|
+
* }>
|
|
254
294
|
* ```
|
|
255
295
|
*/
|
|
256
296
|
$if(condition, func) {
|
|
@@ -288,27 +328,41 @@ export class UpdateQueryBuilder {
|
|
|
288
328
|
* Turn this code:
|
|
289
329
|
*
|
|
290
330
|
* ```ts
|
|
331
|
+
* import type { Person } from 'type-editor' // imaginary module
|
|
332
|
+
*
|
|
333
|
+
* const id = 1
|
|
334
|
+
* const now = new Date().toISOString()
|
|
335
|
+
*
|
|
291
336
|
* const person = await db.updateTable('person')
|
|
292
|
-
* .set({
|
|
337
|
+
* .set({ deleted_at: now })
|
|
293
338
|
* .where('id', '=', id)
|
|
294
339
|
* .where('nullable_column', 'is not', null)
|
|
295
340
|
* .returningAll()
|
|
296
341
|
* .executeTakeFirstOrThrow()
|
|
297
342
|
*
|
|
298
|
-
* if (person
|
|
343
|
+
* if (isWithNoNullValue(person)) {
|
|
299
344
|
* functionThatExpectsPersonWithNonNullValue(person)
|
|
300
345
|
* }
|
|
346
|
+
*
|
|
347
|
+
* function isWithNoNullValue(person: Person): person is Person & { nullable_column: string } {
|
|
348
|
+
* return person.nullable_column != null
|
|
349
|
+
* }
|
|
301
350
|
* ```
|
|
302
351
|
*
|
|
303
352
|
* Into this:
|
|
304
353
|
*
|
|
305
354
|
* ```ts
|
|
355
|
+
* import type { NotNull } from 'kysely'
|
|
356
|
+
*
|
|
357
|
+
* const id = 1
|
|
358
|
+
* const now = new Date().toISOString()
|
|
359
|
+
*
|
|
306
360
|
* const person = await db.updateTable('person')
|
|
307
|
-
* .set({
|
|
361
|
+
* .set({ deleted_at: now })
|
|
308
362
|
* .where('id', '=', id)
|
|
309
363
|
* .where('nullable_column', 'is not', null)
|
|
310
364
|
* .returningAll()
|
|
311
|
-
* .$narrowType<{
|
|
365
|
+
* .$narrowType<{ deleted_at: Date; nullable_column: NotNull }>()
|
|
312
366
|
* .executeTakeFirstOrThrow()
|
|
313
367
|
*
|
|
314
368
|
* functionThatExpectsPersonWithNonNullValue(person)
|
|
@@ -340,6 +394,17 @@ export class UpdateQueryBuilder {
|
|
|
340
394
|
* ### Examples
|
|
341
395
|
*
|
|
342
396
|
* ```ts
|
|
397
|
+
* import type { PersonUpdate, PetUpdate, Species } from 'type-editor' // imaginary module
|
|
398
|
+
*
|
|
399
|
+
* const person = {
|
|
400
|
+
* id: 1,
|
|
401
|
+
* gender: 'other',
|
|
402
|
+
* } satisfies PersonUpdate
|
|
403
|
+
*
|
|
404
|
+
* const pet = {
|
|
405
|
+
* name: 'Fluffy',
|
|
406
|
+
* } satisfies PetUpdate
|
|
407
|
+
*
|
|
343
408
|
* const result = await db
|
|
344
409
|
* .with('updated_person', (qb) => qb
|
|
345
410
|
* .updateTable('person')
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
export declare class UpdateResult {
|
|
2
2
|
/**
|
|
3
3
|
* The number of rows the update query updated (even if not changed).
|
|
4
|
-
|
|
4
|
+
*/
|
|
5
5
|
readonly numUpdatedRows: bigint;
|
|
6
6
|
/**
|
|
7
7
|
* The number of rows the update query changed.
|
|
8
8
|
*
|
|
9
9
|
* This is **optional** and only supported in dialects such as MySQL.
|
|
10
10
|
* You would probably use {@link numUpdatedRows} in most cases.
|
|
11
|
-
|
|
11
|
+
*/
|
|
12
12
|
readonly numChangedRows?: bigint;
|
|
13
13
|
constructor(numUpdatedRows: bigint, numChangedRows: bigint | undefined);
|
|
14
14
|
}
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
export class UpdateResult {
|
|
3
3
|
/**
|
|
4
4
|
* The number of rows the update query updated (even if not changed).
|
|
5
|
-
|
|
5
|
+
*/
|
|
6
6
|
numUpdatedRows;
|
|
7
7
|
/**
|
|
8
8
|
* The number of rows the update query changed.
|
|
9
9
|
*
|
|
10
10
|
* This is **optional** and only supported in dialects such as MySQL.
|
|
11
11
|
* You would probably use {@link numUpdatedRows} in most cases.
|
|
12
|
-
|
|
12
|
+
*/
|
|
13
13
|
numChangedRows;
|
|
14
14
|
constructor(numUpdatedRows, numChangedRows) {
|
|
15
15
|
this.numUpdatedRows = numUpdatedRows;
|
|
@@ -35,6 +35,8 @@ export interface WhereInterface<DB, TB extends keyof DB> {
|
|
|
35
35
|
* you can always use:
|
|
36
36
|
*
|
|
37
37
|
* ```ts
|
|
38
|
+
* import { sql } from 'kysely'
|
|
39
|
+
*
|
|
38
40
|
* sql`your operator`
|
|
39
41
|
* ```
|
|
40
42
|
*
|
|
@@ -46,7 +48,7 @@ export interface WhereInterface<DB, TB extends keyof DB> {
|
|
|
46
48
|
* const persons = await db
|
|
47
49
|
* .selectFrom('person')
|
|
48
50
|
* .selectAll()
|
|
49
|
-
* .where('id', 'in', [
|
|
51
|
+
* .where('id', 'in', [1, 2, 3])
|
|
50
52
|
* .execute()
|
|
51
53
|
* ```
|
|
52
54
|
*
|
|
@@ -294,6 +296,8 @@ export interface WhereInterface<DB, TB extends keyof DB> {
|
|
|
294
296
|
* import { sql } from 'kysely'
|
|
295
297
|
* const { ref } = db.dynamic
|
|
296
298
|
*
|
|
299
|
+
* const columnFromUserInput: string = 'id'
|
|
300
|
+
*
|
|
297
301
|
* const persons = await db
|
|
298
302
|
* .selectFrom('person')
|
|
299
303
|
* .selectAll()
|