kysely 0.27.3 → 0.27.5
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/CONTRIBUTING.md +2 -2
- package/README.md +7 -7
- package/deno.check.d.ts +86 -0
- package/deno.check.json +21 -0
- package/dist/cjs/dialect/dialect-adapter-base.d.ts +13 -3
- package/dist/cjs/dialect/dialect-adapter-base.js +4 -1
- package/dist/cjs/dialect/dialect-adapter.d.ts +16 -2
- package/dist/cjs/dialect/mssql/mssql-adapter.d.ts +12 -7
- package/dist/cjs/dialect/mssql/mssql-adapter.js +2 -4
- package/dist/cjs/dialect/mssql/mssql-dialect-config.d.ts +83 -55
- package/dist/cjs/dialect/mssql/mssql-driver.d.ts +1 -0
- package/dist/cjs/dialect/mssql/mssql-driver.js +114 -48
- 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/driver/database-connection.d.ts +3 -1
- package/dist/cjs/driver/dummy-driver.d.ts +13 -12
- package/dist/cjs/driver/dummy-driver.js +13 -12
- package/dist/cjs/dynamic/dynamic-reference-builder.js +2 -2
- package/dist/cjs/dynamic/dynamic.d.ts +7 -7
- package/dist/cjs/dynamic/dynamic.js +7 -7
- package/dist/cjs/expression/expression-builder.d.ts +153 -62
- package/dist/cjs/expression/expression-builder.js +2 -3
- package/dist/cjs/expression/expression-wrapper.d.ts +92 -23
- package/dist/cjs/expression/expression.d.ts +40 -5
- package/dist/cjs/expression/expression.js +2 -3
- package/dist/cjs/helpers/mssql.d.ts +74 -14
- package/dist/cjs/helpers/mssql.js +77 -18
- package/dist/cjs/helpers/mysql.d.ts +17 -13
- package/dist/cjs/helpers/mysql.js +20 -17
- package/dist/cjs/helpers/postgres.d.ts +11 -8
- package/dist/cjs/helpers/postgres.js +14 -12
- package/dist/cjs/helpers/sqlite.d.ts +41 -16
- package/dist/cjs/helpers/sqlite.js +44 -20
- package/dist/cjs/index.d.ts +28 -21
- package/dist/cjs/index.js +28 -21
- package/dist/cjs/kysely.d.ts +100 -42
- package/dist/cjs/kysely.js +63 -39
- 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 +82 -14
- package/dist/cjs/migration/migrator.js +82 -14
- 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/alter-column-node.d.ts +1 -1
- package/dist/cjs/operation-node/case-node.d.ts +1 -1
- package/dist/cjs/operation-node/column-definition-node.d.ts +1 -0
- package/dist/cjs/operation-node/data-type-node.d.ts +2 -2
- package/dist/cjs/operation-node/data-type-node.js +17 -3
- package/dist/cjs/operation-node/delete-query-node.d.ts +3 -0
- package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +4 -4
- package/dist/cjs/operation-node/having-node.d.ts +1 -1
- package/dist/cjs/operation-node/insert-query-node.d.ts +3 -0
- package/dist/cjs/operation-node/merge-query-node.d.ts +3 -0
- package/dist/cjs/operation-node/on-node.d.ts +1 -1
- package/dist/cjs/operation-node/operation-node-source.js +1 -2
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +11 -3
- package/dist/cjs/operation-node/operation-node-transformer.js +26 -3
- 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 +8 -6
- package/dist/cjs/operation-node/output-node.d.ts +13 -0
- package/dist/cjs/operation-node/output-node.js +26 -0
- package/dist/cjs/operation-node/query-node.d.ts +15 -6
- package/dist/cjs/operation-node/query-node.js +17 -0
- package/dist/cjs/operation-node/select-query-node.d.ts +1 -1
- package/dist/cjs/operation-node/select-query-node.js +6 -8
- package/dist/cjs/operation-node/update-query-node.d.ts +3 -0
- package/dist/cjs/operation-node/where-node.d.ts +1 -1
- package/dist/cjs/parser/binary-operation-parser.js +5 -6
- package/dist/cjs/parser/data-type-parser.js +1 -2
- package/dist/cjs/parser/default-value-parser.js +1 -2
- package/dist/cjs/parser/expression-parser.js +3 -4
- package/dist/cjs/parser/fetch-parser.js +1 -2
- package/dist/cjs/parser/group-by-parser.js +1 -2
- package/dist/cjs/parser/identifier-parser.js +1 -2
- package/dist/cjs/parser/insert-values-parser.js +1 -2
- package/dist/cjs/parser/join-parser.js +1 -2
- package/dist/cjs/parser/merge-parser.js +2 -3
- package/dist/cjs/parser/on-commit-action-parse.js +1 -2
- package/dist/cjs/parser/on-modify-action-parser.js +1 -2
- package/dist/cjs/parser/order-by-parser.js +3 -4
- package/dist/cjs/parser/parse-utils.js +4 -5
- package/dist/cjs/parser/partition-by-parser.js +1 -2
- package/dist/cjs/parser/reference-parser.js +8 -9
- package/dist/cjs/parser/returning-parser.d.ts +4 -3
- package/dist/cjs/parser/select-parser.js +2 -3
- package/dist/cjs/parser/set-operation-parser.js +1 -2
- package/dist/cjs/parser/table-parser.js +4 -5
- package/dist/cjs/parser/top-parser.js +1 -2
- package/dist/cjs/parser/unary-operation-parser.js +3 -4
- package/dist/cjs/parser/update-set-parser.js +2 -3
- package/dist/cjs/parser/value-parser.js +4 -5
- package/dist/cjs/parser/with-parser.js +1 -2
- package/dist/cjs/plugin/camel-case/camel-case-plugin.d.ts +54 -27
- package/dist/cjs/plugin/camel-case/camel-case-plugin.js +26 -21
- package/dist/cjs/plugin/camel-case/camel-case.js +2 -3
- 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 +80 -9
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.js +53 -14
- package/dist/cjs/plugin/with-schema/with-schema-plugin.d.ts +28 -6
- 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 +219 -43
- package/dist/cjs/query-builder/delete-query-builder.js +95 -31
- package/dist/cjs/query-builder/function-module.d.ts +40 -93
- package/dist/cjs/query-builder/function-module.js +1 -2
- package/dist/cjs/query-builder/insert-query-builder.d.ts +326 -67
- package/dist/cjs/query-builder/insert-query-builder.js +212 -61
- 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 +312 -10
- package/dist/cjs/query-builder/merge-query-builder.js +98 -7
- package/dist/cjs/query-builder/no-result-error.js +2 -2
- package/dist/cjs/query-builder/on-conflict-builder.d.ts +53 -20
- package/dist/cjs/query-builder/on-conflict-builder.js +41 -16
- package/dist/cjs/query-builder/output-interface.d.ts +138 -0
- package/dist/cjs/query-builder/output-interface.js +2 -0
- package/dist/cjs/query-builder/returning-interface.d.ts +7 -5
- package/dist/cjs/query-builder/select-query-builder-expression.d.ts +8 -0
- package/dist/cjs/query-builder/select-query-builder.d.ts +370 -73
- package/dist/cjs/query-builder/select-query-builder.js +14 -9
- package/dist/cjs/query-builder/update-query-builder.d.ts +225 -31
- package/dist/cjs/query-builder/update-query-builder.js +96 -17
- package/dist/cjs/query-builder/update-result.d.ts +9 -0
- package/dist/cjs/query-builder/update-result.js +9 -0
- package/dist/cjs/query-builder/where-interface.d.ts +6 -2
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +2 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +45 -1
- package/dist/cjs/query-creator.d.ts +122 -21
- package/dist/cjs/query-creator.js +56 -3
- package/dist/cjs/raw-builder/raw-builder.d.ts +29 -7
- package/dist/cjs/raw-builder/raw-builder.js +1 -2
- package/dist/cjs/raw-builder/sql.d.ts +31 -12
- package/dist/cjs/schema/alter-column-builder.d.ts +17 -3
- package/dist/cjs/schema/alter-column-builder.js +20 -3
- package/dist/cjs/schema/alter-table-add-index-builder.d.ts +44 -10
- package/dist/cjs/schema/alter-table-add-index-builder.js +27 -10
- package/dist/cjs/schema/alter-table-builder.js +1 -2
- package/dist/cjs/schema/column-definition-builder.d.ts +286 -24
- package/dist/cjs/schema/column-definition-builder.js +288 -24
- 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/assert.js +2 -3
- package/dist/cjs/util/column-type.d.ts +5 -9
- package/dist/cjs/util/compilable.js +1 -2
- package/dist/cjs/util/json-object-args.js +1 -2
- package/dist/cjs/util/log-once.js +1 -2
- package/dist/cjs/util/object-utils.js +38 -26
- package/dist/cjs/util/performance-now.js +1 -2
- package/dist/cjs/util/prevent-await.js +1 -2
- package/dist/cjs/util/query-id.js +1 -2
- package/dist/cjs/util/random-string.js +1 -2
- package/dist/cjs/util/require-all-props.d.ts +4 -2
- package/dist/cjs/util/require-all-props.js +5 -4
- package/dist/cjs/util/stack-trace-utils.js +1 -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 +13 -3
- package/dist/esm/dialect/dialect-adapter-base.js +4 -1
- package/dist/esm/dialect/dialect-adapter.d.ts +16 -2
- package/dist/esm/dialect/mssql/mssql-adapter.d.ts +12 -7
- package/dist/esm/dialect/mssql/mssql-adapter.js +2 -4
- package/dist/esm/dialect/mssql/mssql-dialect-config.d.ts +83 -55
- package/dist/esm/dialect/mssql/mssql-driver.d.ts +1 -0
- package/dist/esm/dialect/mssql/mssql-driver.js +114 -48
- 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/driver/database-connection.d.ts +3 -1
- 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 +7 -7
- package/dist/esm/dynamic/dynamic.js +7 -7
- package/dist/esm/expression/expression-builder.d.ts +153 -62
- 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 +17 -13
- package/dist/esm/helpers/mysql.js +17 -13
- package/dist/esm/helpers/postgres.d.ts +11 -8
- package/dist/esm/helpers/postgres.js +11 -8
- package/dist/esm/helpers/sqlite.d.ts +41 -16
- package/dist/esm/helpers/sqlite.js +41 -16
- package/dist/esm/index.d.ts +28 -21
- package/dist/esm/index.js +28 -21
- package/dist/esm/kysely.d.ts +100 -42
- package/dist/esm/kysely.js +61 -37
- 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 +82 -14
- package/dist/esm/migration/migrator.js +82 -14
- 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/alter-column-node.d.ts +1 -1
- package/dist/esm/operation-node/case-node.d.ts +1 -1
- package/dist/esm/operation-node/column-definition-node.d.ts +1 -0
- package/dist/esm/operation-node/data-type-node.d.ts +2 -2
- package/dist/esm/operation-node/data-type-node.js +15 -1
- package/dist/esm/operation-node/delete-query-node.d.ts +3 -0
- package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +4 -4
- package/dist/esm/operation-node/having-node.d.ts +1 -1
- package/dist/esm/operation-node/insert-query-node.d.ts +3 -0
- package/dist/esm/operation-node/merge-query-node.d.ts +3 -0
- package/dist/esm/operation-node/on-node.d.ts +1 -1
- package/dist/esm/operation-node/operation-node-transformer.d.ts +11 -3
- package/dist/esm/operation-node/operation-node-transformer.js +26 -3
- 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 +2 -0
- package/dist/esm/operation-node/output-node.d.ts +13 -0
- package/dist/esm/operation-node/output-node.js +24 -0
- package/dist/esm/operation-node/query-node.d.ts +15 -6
- package/dist/esm/operation-node/query-node.js +17 -0
- package/dist/esm/operation-node/select-query-node.d.ts +1 -1
- package/dist/esm/operation-node/select-query-node.js +6 -8
- package/dist/esm/operation-node/update-query-node.d.ts +3 -0
- package/dist/esm/operation-node/where-node.d.ts +1 -1
- package/dist/esm/parser/returning-parser.d.ts +4 -3
- package/dist/esm/plugin/camel-case/camel-case-plugin.d.ts +54 -27
- package/dist/esm/plugin/camel-case/camel-case-plugin.js +26 -21
- 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 +80 -9
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.js +53 -14
- package/dist/esm/plugin/with-schema/with-schema-plugin.d.ts +28 -6
- 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 +219 -43
- package/dist/esm/query-builder/delete-query-builder.js +95 -31
- package/dist/esm/query-builder/function-module.d.ts +40 -93
- package/dist/esm/query-builder/insert-query-builder.d.ts +326 -67
- package/dist/esm/query-builder/insert-query-builder.js +212 -61
- 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 +312 -10
- package/dist/esm/query-builder/merge-query-builder.js +98 -7
- package/dist/esm/query-builder/on-conflict-builder.d.ts +53 -20
- package/dist/esm/query-builder/on-conflict-builder.js +41 -16
- package/dist/esm/query-builder/output-interface.d.ts +138 -0
- package/dist/esm/query-builder/output-interface.js +2 -0
- package/dist/esm/query-builder/returning-interface.d.ts +7 -5
- package/dist/esm/query-builder/select-query-builder-expression.d.ts +8 -0
- package/dist/esm/query-builder/select-query-builder.d.ts +370 -73
- package/dist/esm/query-builder/select-query-builder.js +13 -7
- package/dist/esm/query-builder/update-query-builder.d.ts +225 -31
- package/dist/esm/query-builder/update-query-builder.js +96 -17
- package/dist/esm/query-builder/update-result.d.ts +9 -0
- package/dist/esm/query-builder/update-result.js +9 -0
- package/dist/esm/query-builder/where-interface.d.ts +6 -2
- package/dist/esm/query-compiler/default-query-compiler.d.ts +2 -0
- package/dist/esm/query-compiler/default-query-compiler.js +45 -1
- package/dist/esm/query-creator.d.ts +122 -21
- package/dist/esm/query-creator.js +56 -3
- package/dist/esm/raw-builder/raw-builder.d.ts +29 -7
- package/dist/esm/raw-builder/sql.d.ts +31 -12
- package/dist/esm/schema/alter-column-builder.d.ts +17 -3
- package/dist/esm/schema/alter-column-builder.js +20 -3
- package/dist/esm/schema/alter-table-add-index-builder.d.ts +44 -10
- package/dist/esm/schema/alter-table-add-index-builder.js +27 -10
- package/dist/esm/schema/alter-table-builder.js +1 -2
- package/dist/esm/schema/column-definition-builder.d.ts +286 -24
- package/dist/esm/schema/column-definition-builder.js +288 -24
- 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/object-utils.js +18 -5
- 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 +30 -24
|
@@ -24,7 +24,8 @@ import { KyselyTypeError } from '../util/type-error.js';
|
|
|
24
24
|
import { Streamable } from '../util/streamable.js';
|
|
25
25
|
import { ExpressionOrFactory } from '../parser/expression-parser.js';
|
|
26
26
|
import { ValueExpression } from '../parser/value-parser.js';
|
|
27
|
-
|
|
27
|
+
import { OutputCallback, OutputExpression, OutputInterface, SelectExpressionFromOutputCallback, SelectExpressionFromOutputExpression } from './output-interface.js';
|
|
28
|
+
export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements WhereInterface<DB, TB>, ReturningInterface<DB, TB, O>, OutputInterface<DB, TB, O, 'deleted'>, OperationNodeSource, Compilable<O>, Explainable, Streamable<O> {
|
|
28
29
|
#private;
|
|
29
30
|
constructor(props: DeleteQueryBuilderProps);
|
|
30
31
|
/**
|
|
@@ -59,6 +60,8 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
59
60
|
* you can always use:
|
|
60
61
|
*
|
|
61
62
|
* ```ts
|
|
63
|
+
* import { sql } from 'kysely'
|
|
64
|
+
*
|
|
62
65
|
* sql`your operator`
|
|
63
66
|
* ```
|
|
64
67
|
*
|
|
@@ -70,7 +73,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
70
73
|
* const persons = await db
|
|
71
74
|
* .selectFrom('person')
|
|
72
75
|
* .selectAll()
|
|
73
|
-
* .where('id', 'in', [
|
|
76
|
+
* .where('id', 'in', [1, 2, 3])
|
|
74
77
|
* .execute()
|
|
75
78
|
* ```
|
|
76
79
|
*
|
|
@@ -289,7 +292,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
289
292
|
* .selectFrom('person')
|
|
290
293
|
* .selectAll()
|
|
291
294
|
* .where(
|
|
292
|
-
* sql
|
|
295
|
+
* sql<string>`coalesce(first_name, last_name)`,
|
|
293
296
|
* 'like',
|
|
294
297
|
* '%' + name + '%',
|
|
295
298
|
* )
|
|
@@ -318,6 +321,8 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
318
321
|
* import { sql } from 'kysely'
|
|
319
322
|
* const { ref } = db.dynamic
|
|
320
323
|
*
|
|
324
|
+
* const columnFromUserInput: string = 'id'
|
|
325
|
+
*
|
|
321
326
|
* const persons = await db
|
|
322
327
|
* .selectFrom('person')
|
|
323
328
|
* .selectAll()
|
|
@@ -528,7 +533,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
528
533
|
* .innerJoin('pet', 'pet.owner_id', 'person.id')
|
|
529
534
|
* // `select` needs to come after the call to `innerJoin` so
|
|
530
535
|
* // that you can select from the joined table.
|
|
531
|
-
* .select('person.id', 'pet.name')
|
|
536
|
+
* .select(['person.id', 'pet.name'])
|
|
532
537
|
* .execute()
|
|
533
538
|
*
|
|
534
539
|
* result[0].id
|
|
@@ -600,7 +605,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
600
605
|
* ```ts
|
|
601
606
|
* await db.selectFrom('person')
|
|
602
607
|
* .innerJoin(
|
|
603
|
-
*
|
|
608
|
+
* db.selectFrom('pet')
|
|
604
609
|
* .select(['owner_id', 'name'])
|
|
605
610
|
* .where('name', '=', 'Doggo')
|
|
606
611
|
* .as('doggos'),
|
|
@@ -665,20 +670,20 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
665
670
|
* last_name: 'Aniston'
|
|
666
671
|
* })
|
|
667
672
|
* .returning('id')
|
|
668
|
-
* .
|
|
673
|
+
* .executeTakeFirstOrThrow()
|
|
669
674
|
* ```
|
|
670
675
|
*
|
|
671
676
|
* Return multiple columns:
|
|
672
677
|
*
|
|
673
678
|
* ```ts
|
|
674
|
-
* const { id,
|
|
679
|
+
* const { id, last_name } = await db
|
|
675
680
|
* .insertInto('person')
|
|
676
681
|
* .values({
|
|
677
682
|
* first_name: 'Jennifer',
|
|
678
683
|
* last_name: 'Aniston'
|
|
679
684
|
* })
|
|
680
685
|
* .returning(['id', 'last_name'])
|
|
681
|
-
* .
|
|
686
|
+
* .executeTakeFirstOrThrow()
|
|
682
687
|
* ```
|
|
683
688
|
*
|
|
684
689
|
* Return arbitrary expressions:
|
|
@@ -695,9 +700,9 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
695
700
|
* .returning((eb) => [
|
|
696
701
|
* 'id as id',
|
|
697
702
|
* sql<string>`concat(first_name, ' ', last_name)`.as('full_name'),
|
|
698
|
-
* eb.selectFrom('
|
|
703
|
+
* eb.selectFrom('pet').select('pet.id').limit(1).as('first_pet_id')
|
|
699
704
|
* ])
|
|
700
|
-
* .
|
|
705
|
+
* .executeTakeFirstOrThrow()
|
|
701
706
|
* ```
|
|
702
707
|
*/
|
|
703
708
|
returning<SE extends SelectExpression<DB, TB>>(selections: ReadonlyArray<SE>): DeleteQueryBuilder<DB, TB, ReturningRow<DB, TB, O, SE>>;
|
|
@@ -726,7 +731,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
726
731
|
* Return all columns from all tables
|
|
727
732
|
*
|
|
728
733
|
* ```ts
|
|
729
|
-
* const result =
|
|
734
|
+
* const result = await db
|
|
730
735
|
* .deleteFrom('toy')
|
|
731
736
|
* .using(['pet', 'person'])
|
|
732
737
|
* .whereRef('toy.pet_id', '=', 'pet.id')
|
|
@@ -750,7 +755,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
750
755
|
* Return all columns from a single table.
|
|
751
756
|
*
|
|
752
757
|
* ```ts
|
|
753
|
-
* const result =
|
|
758
|
+
* const result = await db
|
|
754
759
|
* .deleteFrom('toy')
|
|
755
760
|
* .using(['pet', 'person'])
|
|
756
761
|
* .whereRef('toy.pet_id', '=', 'pet.id')
|
|
@@ -774,7 +779,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
774
779
|
* Return all columns from multiple tables.
|
|
775
780
|
*
|
|
776
781
|
* ```ts
|
|
777
|
-
* const result =
|
|
782
|
+
* const result = await db
|
|
778
783
|
* .deleteFrom('toy')
|
|
779
784
|
* .using(['pet', 'person'])
|
|
780
785
|
* .whereRef('toy.pet_id', '=', 'pet.id')
|
|
@@ -799,19 +804,146 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
799
804
|
/**
|
|
800
805
|
* Adds a `returning *` to an insert/update/delete query on databases
|
|
801
806
|
* that support `returning` such as PostgreSQL.
|
|
807
|
+
*
|
|
808
|
+
* Also see the {@link returning} method.
|
|
802
809
|
*/
|
|
803
810
|
returningAll<T extends TB>(table: T): DeleteQueryBuilder<DB, TB, ReturningAllRow<DB, T, O>>;
|
|
804
811
|
returningAll(): DeleteQueryBuilder<DB, TB, ReturningAllRow<DB, TB, O>>;
|
|
812
|
+
/**
|
|
813
|
+
* Allows you to return data from modified rows.
|
|
814
|
+
*
|
|
815
|
+
* On supported databases like MS SQL Server (MSSQL), this method can be chained
|
|
816
|
+
* to `insert`, `update`, `delete` and `merge` queries to return data.
|
|
817
|
+
*
|
|
818
|
+
* Also see the {@link outputAll} method.
|
|
819
|
+
*
|
|
820
|
+
* ### Examples
|
|
821
|
+
*
|
|
822
|
+
* Return one column:
|
|
823
|
+
*
|
|
824
|
+
* ```ts
|
|
825
|
+
* const { id } = await db
|
|
826
|
+
* .insertInto('person')
|
|
827
|
+
* .output('inserted.id')
|
|
828
|
+
* .values({
|
|
829
|
+
* first_name: 'Jennifer',
|
|
830
|
+
* last_name: 'Aniston',
|
|
831
|
+
* gender: 'female',
|
|
832
|
+
* })
|
|
833
|
+
* .executeTakeFirstOrThrow()
|
|
834
|
+
* ```
|
|
835
|
+
*
|
|
836
|
+
* The generated SQL (MSSQL):
|
|
837
|
+
*
|
|
838
|
+
* ```sql
|
|
839
|
+
* insert into "person" ("first_name", "last_name", "gender")
|
|
840
|
+
* output "inserted"."id"
|
|
841
|
+
* values (@1, @2, @3)
|
|
842
|
+
* ```
|
|
843
|
+
*
|
|
844
|
+
* Return multiple columns:
|
|
845
|
+
*
|
|
846
|
+
* ```ts
|
|
847
|
+
* const { old_first_name, old_last_name, new_first_name, new_last_name } = await db
|
|
848
|
+
* .updateTable('person')
|
|
849
|
+
* .set({ first_name: 'John', last_name: 'Doe' })
|
|
850
|
+
* .output([
|
|
851
|
+
* 'deleted.first_name as old_first_name',
|
|
852
|
+
* 'deleted.last_name as old_last_name',
|
|
853
|
+
* 'inserted.first_name as new_first_name',
|
|
854
|
+
* 'inserted.last_name as new_last_name',
|
|
855
|
+
* ])
|
|
856
|
+
* .where('created_at', '<', new Date())
|
|
857
|
+
* .executeTakeFirstOrThrow()
|
|
858
|
+
* ```
|
|
859
|
+
*
|
|
860
|
+
* The generated SQL (MSSQL):
|
|
861
|
+
*
|
|
862
|
+
* ```sql
|
|
863
|
+
* update "person"
|
|
864
|
+
* set "first_name" = @1, "last_name" = @2
|
|
865
|
+
* output "deleted"."first_name" as "old_first_name",
|
|
866
|
+
* "deleted"."last_name" as "old_last_name",
|
|
867
|
+
* "inserted"."first_name" as "new_first_name",
|
|
868
|
+
* "inserted"."last_name" as "new_last_name"
|
|
869
|
+
* where "created_at" < @3
|
|
870
|
+
* ```
|
|
871
|
+
*
|
|
872
|
+
* Return arbitrary expressions:
|
|
873
|
+
*
|
|
874
|
+
* ```ts
|
|
875
|
+
* import { sql } from 'kysely'
|
|
876
|
+
*
|
|
877
|
+
* const { full_name } = await db
|
|
878
|
+
* .deleteFrom('person')
|
|
879
|
+
* .output((eb) => sql<string>`concat(${eb.ref('deleted.first_name')}, ' ', ${eb.ref('deleted.last_name')})`.as('full_name'))
|
|
880
|
+
* .where('created_at', '<', new Date())
|
|
881
|
+
* .executeTakeFirstOrThrow()
|
|
882
|
+
* ```
|
|
883
|
+
*
|
|
884
|
+
* The generated SQL (MSSQL):
|
|
885
|
+
*
|
|
886
|
+
* ```sql
|
|
887
|
+
* delete from "person"
|
|
888
|
+
* output concat("deleted"."first_name", ' ', "deleted"."last_name") as "full_name"
|
|
889
|
+
* where "created_at" < @1
|
|
890
|
+
* ```
|
|
891
|
+
*
|
|
892
|
+
* Return the action performed on the row:
|
|
893
|
+
*
|
|
894
|
+
* ```ts
|
|
895
|
+
* await db
|
|
896
|
+
* .mergeInto('person')
|
|
897
|
+
* .using('pet', 'pet.owner_id', 'person.id')
|
|
898
|
+
* .whenMatched()
|
|
899
|
+
* .thenDelete()
|
|
900
|
+
* .whenNotMatched()
|
|
901
|
+
* .thenInsertValues({
|
|
902
|
+
* first_name: 'John',
|
|
903
|
+
* last_name: 'Doe',
|
|
904
|
+
* gender: 'male'
|
|
905
|
+
* })
|
|
906
|
+
* .output([
|
|
907
|
+
* 'inserted.id as inserted_id',
|
|
908
|
+
* 'deleted.id as deleted_id',
|
|
909
|
+
* ])
|
|
910
|
+
* .execute()
|
|
911
|
+
* ```
|
|
912
|
+
*
|
|
913
|
+
* The generated SQL (MSSQL):
|
|
914
|
+
*
|
|
915
|
+
* ```sql
|
|
916
|
+
* merge into "person"
|
|
917
|
+
* using "pet" on "pet"."owner_id" = "person"."id"
|
|
918
|
+
* when matched then delete
|
|
919
|
+
* when not matched then
|
|
920
|
+
* insert ("first_name", "last_name", "gender")
|
|
921
|
+
* values (@1, @2, @3)
|
|
922
|
+
* output "inserted"."id" as "inserted_id", "deleted"."id" as "deleted_id"
|
|
923
|
+
* ```
|
|
924
|
+
*
|
|
925
|
+
*/
|
|
926
|
+
output<OE extends OutputExpression<DB, TB, 'deleted'>>(selections: readonly OE[]): DeleteQueryBuilder<DB, TB, ReturningRow<DB, TB, O, SelectExpressionFromOutputExpression<OE>>>;
|
|
927
|
+
output<CB extends OutputCallback<DB, TB, 'deleted'>>(callback: CB): DeleteQueryBuilder<DB, TB, ReturningRow<DB, TB, O, SelectExpressionFromOutputCallback<CB>>>;
|
|
928
|
+
output<OE extends OutputExpression<DB, TB, 'deleted'>>(selection: OE): DeleteQueryBuilder<DB, TB, ReturningRow<DB, TB, O, SelectExpressionFromOutputExpression<OE>>>;
|
|
929
|
+
/**
|
|
930
|
+
* Adds an `output {prefix}.*` to an `insert`/`update`/`delete`/`merge` query on databases
|
|
931
|
+
* that support `output` such as MS SQL Server (MSSQL).
|
|
932
|
+
*
|
|
933
|
+
* Also see the {@link output} method.
|
|
934
|
+
*/
|
|
935
|
+
outputAll(table: 'deleted'): DeleteQueryBuilder<DB, TB, ReturningAllRow<DB, TB, O>>;
|
|
805
936
|
/**
|
|
806
937
|
* Clears all `returning` clauses from the query.
|
|
807
938
|
*
|
|
808
939
|
* ### Examples
|
|
809
940
|
*
|
|
810
941
|
* ```ts
|
|
811
|
-
* db.deleteFrom('pet')
|
|
942
|
+
* await db.deleteFrom('pet')
|
|
812
943
|
* .returningAll()
|
|
813
944
|
* .where('name', '=', 'Max')
|
|
814
945
|
* .clearReturning()
|
|
946
|
+
* .execute()
|
|
815
947
|
* ```
|
|
816
948
|
*
|
|
817
949
|
* The generated SQL(PostgreSQL):
|
|
@@ -827,11 +959,12 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
827
959
|
* ### Examples
|
|
828
960
|
*
|
|
829
961
|
* ```ts
|
|
830
|
-
* db.deleteFrom('pet')
|
|
962
|
+
* await db.deleteFrom('pet')
|
|
831
963
|
* .returningAll()
|
|
832
964
|
* .where('name', '=', 'Max')
|
|
833
965
|
* .limit(5)
|
|
834
966
|
* .clearLimit()
|
|
967
|
+
* .execute()
|
|
835
968
|
* ```
|
|
836
969
|
*
|
|
837
970
|
* The generated SQL(PostgreSQL):
|
|
@@ -847,11 +980,12 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
847
980
|
* ### Examples
|
|
848
981
|
*
|
|
849
982
|
* ```ts
|
|
850
|
-
* db.deleteFrom('pet')
|
|
983
|
+
* await db.deleteFrom('pet')
|
|
851
984
|
* .returningAll()
|
|
852
985
|
* .where('name', '=', 'Max')
|
|
853
986
|
* .orderBy('id')
|
|
854
987
|
* .clearOrderBy()
|
|
988
|
+
* .execute()
|
|
855
989
|
* ```
|
|
856
990
|
*
|
|
857
991
|
* The generated SQL(PostgreSQL):
|
|
@@ -913,8 +1047,36 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
913
1047
|
* .limit(5)
|
|
914
1048
|
* .execute()
|
|
915
1049
|
* ```
|
|
1050
|
+
*
|
|
1051
|
+
* The generated SQL (MySQL):
|
|
1052
|
+
*
|
|
1053
|
+
* ```sql
|
|
1054
|
+
* delete from `pet` order by `created_at` limit ?
|
|
1055
|
+
* ```
|
|
916
1056
|
*/
|
|
917
1057
|
limit(limit: ValueExpression<DB, TB, number>): DeleteQueryBuilder<DB, TB, O>;
|
|
1058
|
+
/**
|
|
1059
|
+
* This can be used to add any additional SQL to the end of the query.
|
|
1060
|
+
*
|
|
1061
|
+
* ### Examples
|
|
1062
|
+
*
|
|
1063
|
+
* ```ts
|
|
1064
|
+
* import { sql } from 'kysely'
|
|
1065
|
+
*
|
|
1066
|
+
* await db.deleteFrom('person')
|
|
1067
|
+
* .where('first_name', '=', 'John')
|
|
1068
|
+
* .modifyEnd(sql`-- This is a comment`)
|
|
1069
|
+
* .execute()
|
|
1070
|
+
* ```
|
|
1071
|
+
*
|
|
1072
|
+
* The generated SQL (MySQL):
|
|
1073
|
+
*
|
|
1074
|
+
* ```sql
|
|
1075
|
+
* delete from `person`
|
|
1076
|
+
* where `first_name` = "John" -- This is a comment
|
|
1077
|
+
* ```
|
|
1078
|
+
*/
|
|
1079
|
+
modifyEnd(modifier: Expression<any>): DeleteQueryBuilder<DB, TB, O>;
|
|
918
1080
|
/**
|
|
919
1081
|
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
920
1082
|
* what the provided function returns.
|
|
@@ -927,12 +1089,14 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
927
1089
|
* The next example uses a helper function `log` to log a query:
|
|
928
1090
|
*
|
|
929
1091
|
* ```ts
|
|
1092
|
+
* import type { Compilable } from 'kysely'
|
|
1093
|
+
*
|
|
930
1094
|
* function log<T extends Compilable>(qb: T): T {
|
|
931
1095
|
* console.log(qb.compile())
|
|
932
1096
|
* return qb
|
|
933
1097
|
* }
|
|
934
1098
|
*
|
|
935
|
-
* db.deleteFrom('person')
|
|
1099
|
+
* await db.deleteFrom('person')
|
|
936
1100
|
* .$call(log)
|
|
937
1101
|
* .execute()
|
|
938
1102
|
* ```
|
|
@@ -966,11 +1130,11 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
966
1130
|
* the code. In the example above the return type of the `deletePerson` function is:
|
|
967
1131
|
*
|
|
968
1132
|
* ```ts
|
|
969
|
-
* {
|
|
1133
|
+
* Promise<{
|
|
970
1134
|
* id: number
|
|
971
1135
|
* first_name: string
|
|
972
1136
|
* last_name?: string
|
|
973
|
-
* }
|
|
1137
|
+
* }>
|
|
974
1138
|
* ```
|
|
975
1139
|
*/
|
|
976
1140
|
$if<O2>(condition: boolean, func: (qb: this) => DeleteQueryBuilder<any, any, O2>): O2 extends DeleteResult ? DeleteQueryBuilder<DB, TB, DeleteResult> : O2 extends O & infer E ? DeleteQueryBuilder<DB, TB, O & Partial<E>> : DeleteQueryBuilder<DB, TB, Partial<O2>>;
|
|
@@ -998,25 +1162,33 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
998
1162
|
* Turn this code:
|
|
999
1163
|
*
|
|
1000
1164
|
* ```ts
|
|
1165
|
+
* import type { Person } from 'type-editor' // imaginary module
|
|
1166
|
+
*
|
|
1001
1167
|
* const person = await db.deleteFrom('person')
|
|
1002
|
-
* .where('id', '=',
|
|
1168
|
+
* .where('id', '=', 3)
|
|
1003
1169
|
* .where('nullable_column', 'is not', null)
|
|
1004
1170
|
* .returningAll()
|
|
1005
1171
|
* .executeTakeFirstOrThrow()
|
|
1006
1172
|
*
|
|
1007
|
-
* if (person
|
|
1173
|
+
* if (isWithNoNullValue(person)) {
|
|
1008
1174
|
* functionThatExpectsPersonWithNonNullValue(person)
|
|
1009
1175
|
* }
|
|
1176
|
+
*
|
|
1177
|
+
* function isWithNoNullValue(person: Person): person is Person & { nullable_column: string } {
|
|
1178
|
+
* return person.nullable_column != null
|
|
1179
|
+
* }
|
|
1010
1180
|
* ```
|
|
1011
1181
|
*
|
|
1012
1182
|
* Into this:
|
|
1013
1183
|
*
|
|
1014
1184
|
* ```ts
|
|
1185
|
+
* import type { NotNull } from 'kysely'
|
|
1186
|
+
*
|
|
1015
1187
|
* const person = await db.deleteFrom('person')
|
|
1016
|
-
* .where('id', '=',
|
|
1188
|
+
* .where('id', '=', 3)
|
|
1017
1189
|
* .where('nullable_column', 'is not', null)
|
|
1018
1190
|
* .returningAll()
|
|
1019
|
-
* .$narrowType<{ nullable_column:
|
|
1191
|
+
* .$narrowType<{ nullable_column: NotNull }>()
|
|
1020
1192
|
* .executeTakeFirstOrThrow()
|
|
1021
1193
|
*
|
|
1022
1194
|
* functionThatExpectsPersonWithNonNullValue(person)
|
|
@@ -1026,17 +1198,17 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
1026
1198
|
/**
|
|
1027
1199
|
* Asserts that query's output row type equals the given type `T`.
|
|
1028
1200
|
*
|
|
1029
|
-
* This method can be used to simplify excessively complex types to make
|
|
1201
|
+
* This method can be used to simplify excessively complex types to make TypeScript happy
|
|
1030
1202
|
* and much faster.
|
|
1031
1203
|
*
|
|
1032
1204
|
* Kysely uses complex type magic to achieve its type safety. This complexity is sometimes too much
|
|
1033
|
-
* for
|
|
1205
|
+
* for TypeScript and you get errors like this:
|
|
1034
1206
|
*
|
|
1035
1207
|
* ```
|
|
1036
1208
|
* error TS2589: Type instantiation is excessively deep and possibly infinite.
|
|
1037
1209
|
* ```
|
|
1038
1210
|
*
|
|
1039
|
-
* In these case you can often use this method to help
|
|
1211
|
+
* In these case you can often use this method to help TypeScript a little bit. When you use this
|
|
1040
1212
|
* method to assert the output type of a query, Kysely can drop the complex output type that
|
|
1041
1213
|
* consists of multiple nested helper types and replace it with the simple asserted type.
|
|
1042
1214
|
*
|
|
@@ -1046,22 +1218,26 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
1046
1218
|
* ### Examples
|
|
1047
1219
|
*
|
|
1048
1220
|
* ```ts
|
|
1049
|
-
*
|
|
1050
|
-
*
|
|
1051
|
-
*
|
|
1052
|
-
*
|
|
1053
|
-
* .
|
|
1054
|
-
*
|
|
1055
|
-
*
|
|
1056
|
-
*
|
|
1057
|
-
*
|
|
1058
|
-
*
|
|
1059
|
-
* .
|
|
1060
|
-
*
|
|
1061
|
-
*
|
|
1062
|
-
*
|
|
1063
|
-
*
|
|
1064
|
-
*
|
|
1221
|
+
* import type { Species } from 'type-editor' // imaginary module
|
|
1222
|
+
*
|
|
1223
|
+
* async function deletePersonAndPets(personId: number) {
|
|
1224
|
+
* return await db
|
|
1225
|
+
* .with('deleted_person', (qb) => qb
|
|
1226
|
+
* .deleteFrom('person')
|
|
1227
|
+
* .where('id', '=', personId)
|
|
1228
|
+
* .returning('first_name')
|
|
1229
|
+
* .$assertType<{ first_name: string }>()
|
|
1230
|
+
* )
|
|
1231
|
+
* .with('deleted_pets', (qb) => qb
|
|
1232
|
+
* .deleteFrom('pet')
|
|
1233
|
+
* .where('owner_id', '=', personId)
|
|
1234
|
+
* .returning(['name as pet_name', 'species'])
|
|
1235
|
+
* .$assertType<{ pet_name: string, species: Species }>()
|
|
1236
|
+
* )
|
|
1237
|
+
* .selectFrom(['deleted_person', 'deleted_pets'])
|
|
1238
|
+
* .selectAll()
|
|
1239
|
+
* .execute()
|
|
1240
|
+
* }
|
|
1065
1241
|
* ```
|
|
1066
1242
|
*/
|
|
1067
1243
|
$assertType<T extends O>(): O extends T ? DeleteQueryBuilder<DB, TB, T> : KyselyTypeError<`$assertType() call failed: The type passed in is not equal to the output type of the query.`>;
|
|
@@ -1100,7 +1276,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
1100
1276
|
* ### Examples
|
|
1101
1277
|
*
|
|
1102
1278
|
* ```ts
|
|
1103
|
-
* const stream = db
|
|
1279
|
+
* const stream = db
|
|
1104
1280
|
* .selectFrom('person')
|
|
1105
1281
|
* .select(['first_name', 'last_name'])
|
|
1106
1282
|
* .where('gender', '=', 'other')
|