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
|
@@ -79,7 +79,7 @@ class SelectQueryBuilderImpl {
|
|
|
79
79
|
modifyEnd(modifier) {
|
|
80
80
|
return new SelectQueryBuilderImpl({
|
|
81
81
|
...this.#props,
|
|
82
|
-
queryNode:
|
|
82
|
+
queryNode: query_node_js_1.QueryNode.cloneWithEndModifier(this.#props.queryNode, select_modifier_node_js_1.SelectModifierNode.createWithExpression(modifier.toOperationNode())),
|
|
83
83
|
});
|
|
84
84
|
}
|
|
85
85
|
distinct() {
|
|
@@ -91,37 +91,37 @@ class SelectQueryBuilderImpl {
|
|
|
91
91
|
forUpdate(of) {
|
|
92
92
|
return new SelectQueryBuilderImpl({
|
|
93
93
|
...this.#props,
|
|
94
|
-
queryNode:
|
|
94
|
+
queryNode: query_node_js_1.QueryNode.cloneWithEndModifier(this.#props.queryNode, select_modifier_node_js_1.SelectModifierNode.create('ForUpdate', of ? (0, object_utils_js_1.asArray)(of).map(table_parser_js_1.parseTable) : undefined)),
|
|
95
95
|
});
|
|
96
96
|
}
|
|
97
97
|
forShare(of) {
|
|
98
98
|
return new SelectQueryBuilderImpl({
|
|
99
99
|
...this.#props,
|
|
100
|
-
queryNode:
|
|
100
|
+
queryNode: query_node_js_1.QueryNode.cloneWithEndModifier(this.#props.queryNode, select_modifier_node_js_1.SelectModifierNode.create('ForShare', of ? (0, object_utils_js_1.asArray)(of).map(table_parser_js_1.parseTable) : undefined)),
|
|
101
101
|
});
|
|
102
102
|
}
|
|
103
103
|
forKeyShare(of) {
|
|
104
104
|
return new SelectQueryBuilderImpl({
|
|
105
105
|
...this.#props,
|
|
106
|
-
queryNode:
|
|
106
|
+
queryNode: query_node_js_1.QueryNode.cloneWithEndModifier(this.#props.queryNode, select_modifier_node_js_1.SelectModifierNode.create('ForKeyShare', of ? (0, object_utils_js_1.asArray)(of).map(table_parser_js_1.parseTable) : undefined)),
|
|
107
107
|
});
|
|
108
108
|
}
|
|
109
109
|
forNoKeyUpdate(of) {
|
|
110
110
|
return new SelectQueryBuilderImpl({
|
|
111
111
|
...this.#props,
|
|
112
|
-
queryNode:
|
|
112
|
+
queryNode: query_node_js_1.QueryNode.cloneWithEndModifier(this.#props.queryNode, select_modifier_node_js_1.SelectModifierNode.create('ForNoKeyUpdate', of ? (0, object_utils_js_1.asArray)(of).map(table_parser_js_1.parseTable) : undefined)),
|
|
113
113
|
});
|
|
114
114
|
}
|
|
115
115
|
skipLocked() {
|
|
116
116
|
return new SelectQueryBuilderImpl({
|
|
117
117
|
...this.#props,
|
|
118
|
-
queryNode:
|
|
118
|
+
queryNode: query_node_js_1.QueryNode.cloneWithEndModifier(this.#props.queryNode, select_modifier_node_js_1.SelectModifierNode.create('SkipLocked')),
|
|
119
119
|
});
|
|
120
120
|
}
|
|
121
121
|
noWait() {
|
|
122
122
|
return new SelectQueryBuilderImpl({
|
|
123
123
|
...this.#props,
|
|
124
|
-
queryNode:
|
|
124
|
+
queryNode: query_node_js_1.QueryNode.cloneWithEndModifier(this.#props.queryNode, select_modifier_node_js_1.SelectModifierNode.create('NoWait')),
|
|
125
125
|
});
|
|
126
126
|
}
|
|
127
127
|
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')
|
|
@@ -121,15 +121,17 @@ class UpdateQueryBuilder {
|
|
|
121
121
|
* Update the first 2 rows in the 'person' table:
|
|
122
122
|
*
|
|
123
123
|
* ```ts
|
|
124
|
-
*
|
|
124
|
+
* await db
|
|
125
125
|
* .updateTable('person')
|
|
126
126
|
* .set({ first_name: 'Foo' })
|
|
127
|
-
* .limit(2)
|
|
127
|
+
* .limit(2)
|
|
128
|
+
* .execute()
|
|
128
129
|
* ```
|
|
129
130
|
*
|
|
130
131
|
* The generated SQL (MySQL):
|
|
132
|
+
*
|
|
131
133
|
* ```sql
|
|
132
|
-
* update `person` set `first_name` =
|
|
134
|
+
* update `person` set `first_name` = ? limit ?
|
|
133
135
|
* ```
|
|
134
136
|
*/
|
|
135
137
|
limit(limit) {
|
|
@@ -168,6 +170,35 @@ class UpdateQueryBuilder {
|
|
|
168
170
|
queryNode: query_node_js_1.QueryNode.cloneWithOutput(this.#props.queryNode, (0, select_parser_js_1.parseSelectAll)(table)),
|
|
169
171
|
});
|
|
170
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* This can be used to add any additional SQL to the end of the query.
|
|
175
|
+
*
|
|
176
|
+
* ### Examples
|
|
177
|
+
*
|
|
178
|
+
* ```ts
|
|
179
|
+
* import { sql } from 'kysely'
|
|
180
|
+
*
|
|
181
|
+
* await db.updateTable('person')
|
|
182
|
+
* .set({ age: 39 })
|
|
183
|
+
* .where('first_name', '=', 'John')
|
|
184
|
+
* .modifyEnd(sql.raw('-- This is a comment'))
|
|
185
|
+
* .execute()
|
|
186
|
+
* ```
|
|
187
|
+
*
|
|
188
|
+
* The generated SQL (MySQL):
|
|
189
|
+
*
|
|
190
|
+
* ```sql
|
|
191
|
+
* update `person`
|
|
192
|
+
* set `age` = 39
|
|
193
|
+
* where `first_name` = "John" -- This is a comment
|
|
194
|
+
* ```
|
|
195
|
+
*/
|
|
196
|
+
modifyEnd(modifier) {
|
|
197
|
+
return new UpdateQueryBuilder({
|
|
198
|
+
...this.#props,
|
|
199
|
+
queryNode: query_node_js_1.QueryNode.cloneWithEndModifier(this.#props.queryNode, modifier.toOperationNode()),
|
|
200
|
+
});
|
|
201
|
+
}
|
|
171
202
|
/**
|
|
172
203
|
* Clears all `returning` clauses from the query.
|
|
173
204
|
*
|
|
@@ -205,11 +236,18 @@ class UpdateQueryBuilder {
|
|
|
205
236
|
* The next example uses a helper function `log` to log a query:
|
|
206
237
|
*
|
|
207
238
|
* ```ts
|
|
239
|
+
* import type { Compilable } from 'kysely'
|
|
240
|
+
* import type { PersonUpdate } from 'type-editor' // imaginary module
|
|
241
|
+
*
|
|
208
242
|
* function log<T extends Compilable>(qb: T): T {
|
|
209
243
|
* console.log(qb.compile())
|
|
210
244
|
* return qb
|
|
211
245
|
* }
|
|
212
246
|
*
|
|
247
|
+
* const values = {
|
|
248
|
+
* first_name: 'John',
|
|
249
|
+
* } satisfies PersonUpdate
|
|
250
|
+
*
|
|
213
251
|
* db.updateTable('person')
|
|
214
252
|
* .set(values)
|
|
215
253
|
* .$call(log)
|
|
@@ -232,7 +270,9 @@ class UpdateQueryBuilder {
|
|
|
232
270
|
* ### Examples
|
|
233
271
|
*
|
|
234
272
|
* ```ts
|
|
235
|
-
*
|
|
273
|
+
* import type { PersonUpdate } from 'type-editor' // imaginary module
|
|
274
|
+
*
|
|
275
|
+
* async function updatePerson(id: number, updates: PersonUpdate, returnLastName: boolean) {
|
|
236
276
|
* return await db
|
|
237
277
|
* .updateTable('person')
|
|
238
278
|
* .set(updates)
|
|
@@ -248,11 +288,11 @@ class UpdateQueryBuilder {
|
|
|
248
288
|
* the code. In the example above the return type of the `updatePerson` function is:
|
|
249
289
|
*
|
|
250
290
|
* ```ts
|
|
251
|
-
* {
|
|
291
|
+
* Promise<{
|
|
252
292
|
* id: number
|
|
253
293
|
* first_name: string
|
|
254
294
|
* last_name?: string
|
|
255
|
-
* }
|
|
295
|
+
* }>
|
|
256
296
|
* ```
|
|
257
297
|
*/
|
|
258
298
|
$if(condition, func) {
|
|
@@ -290,27 +330,41 @@ class UpdateQueryBuilder {
|
|
|
290
330
|
* Turn this code:
|
|
291
331
|
*
|
|
292
332
|
* ```ts
|
|
333
|
+
* import type { Person } from 'type-editor' // imaginary module
|
|
334
|
+
*
|
|
335
|
+
* const id = 1
|
|
336
|
+
* const now = new Date().toISOString()
|
|
337
|
+
*
|
|
293
338
|
* const person = await db.updateTable('person')
|
|
294
|
-
* .set({
|
|
339
|
+
* .set({ deleted_at: now })
|
|
295
340
|
* .where('id', '=', id)
|
|
296
341
|
* .where('nullable_column', 'is not', null)
|
|
297
342
|
* .returningAll()
|
|
298
343
|
* .executeTakeFirstOrThrow()
|
|
299
344
|
*
|
|
300
|
-
* if (person
|
|
345
|
+
* if (isWithNoNullValue(person)) {
|
|
301
346
|
* functionThatExpectsPersonWithNonNullValue(person)
|
|
302
347
|
* }
|
|
348
|
+
*
|
|
349
|
+
* function isWithNoNullValue(person: Person): person is Person & { nullable_column: string } {
|
|
350
|
+
* return person.nullable_column != null
|
|
351
|
+
* }
|
|
303
352
|
* ```
|
|
304
353
|
*
|
|
305
354
|
* Into this:
|
|
306
355
|
*
|
|
307
356
|
* ```ts
|
|
357
|
+
* import type { NotNull } from 'kysely'
|
|
358
|
+
*
|
|
359
|
+
* const id = 1
|
|
360
|
+
* const now = new Date().toISOString()
|
|
361
|
+
*
|
|
308
362
|
* const person = await db.updateTable('person')
|
|
309
|
-
* .set({
|
|
363
|
+
* .set({ deleted_at: now })
|
|
310
364
|
* .where('id', '=', id)
|
|
311
365
|
* .where('nullable_column', 'is not', null)
|
|
312
366
|
* .returningAll()
|
|
313
|
-
* .$narrowType<{
|
|
367
|
+
* .$narrowType<{ deleted_at: Date; nullable_column: NotNull }>()
|
|
314
368
|
* .executeTakeFirstOrThrow()
|
|
315
369
|
*
|
|
316
370
|
* functionThatExpectsPersonWithNonNullValue(person)
|
|
@@ -342,6 +396,17 @@ class UpdateQueryBuilder {
|
|
|
342
396
|
* ### Examples
|
|
343
397
|
*
|
|
344
398
|
* ```ts
|
|
399
|
+
* import type { PersonUpdate, PetUpdate, Species } from 'type-editor' // imaginary module
|
|
400
|
+
*
|
|
401
|
+
* const person = {
|
|
402
|
+
* id: 1,
|
|
403
|
+
* gender: 'other',
|
|
404
|
+
* } satisfies PersonUpdate
|
|
405
|
+
*
|
|
406
|
+
* const pet = {
|
|
407
|
+
* name: 'Fluffy',
|
|
408
|
+
* } satisfies PetUpdate
|
|
409
|
+
*
|
|
345
410
|
* const result = await db
|
|
346
411
|
* .with('updated_person', (qb) => qb
|
|
347
412
|
* .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
|
}
|
|
@@ -4,14 +4,14 @@ exports.UpdateResult = void 0;
|
|
|
4
4
|
class UpdateResult {
|
|
5
5
|
/**
|
|
6
6
|
* The number of rows the update query updated (even if not changed).
|
|
7
|
-
|
|
7
|
+
*/
|
|
8
8
|
numUpdatedRows;
|
|
9
9
|
/**
|
|
10
10
|
* The number of rows the update query changed.
|
|
11
11
|
*
|
|
12
12
|
* This is **optional** and only supported in dialects such as MySQL.
|
|
13
13
|
* You would probably use {@link numUpdatedRows} in most cases.
|
|
14
|
-
|
|
14
|
+
*/
|
|
15
15
|
numChangedRows;
|
|
16
16
|
constructor(numUpdatedRows, numChangedRows) {
|
|
17
17
|
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()
|