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
|
@@ -60,6 +60,8 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
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 DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
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 DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
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()
|
|
@@ -529,7 +533,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
529
533
|
* .innerJoin('pet', 'pet.owner_id', 'person.id')
|
|
530
534
|
* // `select` needs to come after the call to `innerJoin` so
|
|
531
535
|
* // that you can select from the joined table.
|
|
532
|
-
* .select('person.id', 'pet.name')
|
|
536
|
+
* .select(['person.id', 'pet.name'])
|
|
533
537
|
* .execute()
|
|
534
538
|
*
|
|
535
539
|
* result[0].id
|
|
@@ -601,7 +605,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
601
605
|
* ```ts
|
|
602
606
|
* await db.selectFrom('person')
|
|
603
607
|
* .innerJoin(
|
|
604
|
-
*
|
|
608
|
+
* db.selectFrom('pet')
|
|
605
609
|
* .select(['owner_id', 'name'])
|
|
606
610
|
* .where('name', '=', 'Doggo')
|
|
607
611
|
* .as('doggos'),
|
|
@@ -666,20 +670,20 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
666
670
|
* last_name: 'Aniston'
|
|
667
671
|
* })
|
|
668
672
|
* .returning('id')
|
|
669
|
-
* .
|
|
673
|
+
* .executeTakeFirstOrThrow()
|
|
670
674
|
* ```
|
|
671
675
|
*
|
|
672
676
|
* Return multiple columns:
|
|
673
677
|
*
|
|
674
678
|
* ```ts
|
|
675
|
-
* const { id,
|
|
679
|
+
* const { id, last_name } = await db
|
|
676
680
|
* .insertInto('person')
|
|
677
681
|
* .values({
|
|
678
682
|
* first_name: 'Jennifer',
|
|
679
683
|
* last_name: 'Aniston'
|
|
680
684
|
* })
|
|
681
685
|
* .returning(['id', 'last_name'])
|
|
682
|
-
* .
|
|
686
|
+
* .executeTakeFirstOrThrow()
|
|
683
687
|
* ```
|
|
684
688
|
*
|
|
685
689
|
* Return arbitrary expressions:
|
|
@@ -696,9 +700,9 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
696
700
|
* .returning((eb) => [
|
|
697
701
|
* 'id as id',
|
|
698
702
|
* sql<string>`concat(first_name, ' ', last_name)`.as('full_name'),
|
|
699
|
-
* eb.selectFrom('
|
|
703
|
+
* eb.selectFrom('pet').select('pet.id').limit(1).as('first_pet_id')
|
|
700
704
|
* ])
|
|
701
|
-
* .
|
|
705
|
+
* .executeTakeFirstOrThrow()
|
|
702
706
|
* ```
|
|
703
707
|
*/
|
|
704
708
|
returning<SE extends SelectExpression<DB, TB>>(selections: ReadonlyArray<SE>): DeleteQueryBuilder<DB, TB, ReturningRow<DB, TB, O, SE>>;
|
|
@@ -727,7 +731,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
727
731
|
* Return all columns from all tables
|
|
728
732
|
*
|
|
729
733
|
* ```ts
|
|
730
|
-
* const result =
|
|
734
|
+
* const result = await db
|
|
731
735
|
* .deleteFrom('toy')
|
|
732
736
|
* .using(['pet', 'person'])
|
|
733
737
|
* .whereRef('toy.pet_id', '=', 'pet.id')
|
|
@@ -751,7 +755,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
751
755
|
* Return all columns from a single table.
|
|
752
756
|
*
|
|
753
757
|
* ```ts
|
|
754
|
-
* const result =
|
|
758
|
+
* const result = await db
|
|
755
759
|
* .deleteFrom('toy')
|
|
756
760
|
* .using(['pet', 'person'])
|
|
757
761
|
* .whereRef('toy.pet_id', '=', 'pet.id')
|
|
@@ -775,7 +779,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
775
779
|
* Return all columns from multiple tables.
|
|
776
780
|
*
|
|
777
781
|
* ```ts
|
|
778
|
-
* const result =
|
|
782
|
+
* const result = await db
|
|
779
783
|
* .deleteFrom('toy')
|
|
780
784
|
* .using(['pet', 'person'])
|
|
781
785
|
* .whereRef('toy.pet_id', '=', 'pet.id')
|
|
@@ -823,15 +827,24 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
823
827
|
* .output('inserted.id')
|
|
824
828
|
* .values({
|
|
825
829
|
* first_name: 'Jennifer',
|
|
826
|
-
* last_name: 'Aniston'
|
|
830
|
+
* last_name: 'Aniston',
|
|
831
|
+
* gender: 'female',
|
|
827
832
|
* })
|
|
828
|
-
* .
|
|
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)
|
|
829
842
|
* ```
|
|
830
843
|
*
|
|
831
844
|
* Return multiple columns:
|
|
832
845
|
*
|
|
833
846
|
* ```ts
|
|
834
|
-
* const {
|
|
847
|
+
* const { old_first_name, old_last_name, new_first_name, new_last_name } = await db
|
|
835
848
|
* .updateTable('person')
|
|
836
849
|
* .set({ first_name: 'John', last_name: 'Doe' })
|
|
837
850
|
* .output([
|
|
@@ -841,7 +854,19 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
841
854
|
* 'inserted.last_name as new_last_name',
|
|
842
855
|
* ])
|
|
843
856
|
* .where('created_at', '<', new Date())
|
|
844
|
-
* .
|
|
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
|
|
845
870
|
* ```
|
|
846
871
|
*
|
|
847
872
|
* Return arbitrary expressions:
|
|
@@ -849,11 +874,19 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
849
874
|
* ```ts
|
|
850
875
|
* import { sql } from 'kysely'
|
|
851
876
|
*
|
|
852
|
-
* const {
|
|
877
|
+
* const { full_name } = await db
|
|
853
878
|
* .deleteFrom('person')
|
|
854
|
-
* .output((eb) => sql<string>`concat(${eb.ref('deleted.first_name')}, ' ', ${eb.ref('deleted.last_name')})`.as('full_name')
|
|
879
|
+
* .output((eb) => sql<string>`concat(${eb.ref('deleted.first_name')}, ' ', ${eb.ref('deleted.last_name')})`.as('full_name'))
|
|
855
880
|
* .where('created_at', '<', new Date())
|
|
856
|
-
* .
|
|
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
|
|
857
890
|
* ```
|
|
858
891
|
*
|
|
859
892
|
* Return the action performed on the row:
|
|
@@ -874,7 +907,21 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
874
907
|
* 'inserted.id as inserted_id',
|
|
875
908
|
* 'deleted.id as deleted_id',
|
|
876
909
|
* ])
|
|
910
|
+
* .execute()
|
|
877
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
|
+
*
|
|
878
925
|
*/
|
|
879
926
|
output<OE extends OutputExpression<DB, TB, 'deleted'>>(selections: readonly OE[]): DeleteQueryBuilder<DB, TB, ReturningRow<DB, TB, O, SelectExpressionFromOutputExpression<OE>>>;
|
|
880
927
|
output<CB extends OutputCallback<DB, TB, 'deleted'>>(callback: CB): DeleteQueryBuilder<DB, TB, ReturningRow<DB, TB, O, SelectExpressionFromOutputCallback<CB>>>;
|
|
@@ -892,10 +939,11 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
892
939
|
* ### Examples
|
|
893
940
|
*
|
|
894
941
|
* ```ts
|
|
895
|
-
* db.deleteFrom('pet')
|
|
942
|
+
* await db.deleteFrom('pet')
|
|
896
943
|
* .returningAll()
|
|
897
944
|
* .where('name', '=', 'Max')
|
|
898
945
|
* .clearReturning()
|
|
946
|
+
* .execute()
|
|
899
947
|
* ```
|
|
900
948
|
*
|
|
901
949
|
* The generated SQL(PostgreSQL):
|
|
@@ -911,11 +959,12 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
911
959
|
* ### Examples
|
|
912
960
|
*
|
|
913
961
|
* ```ts
|
|
914
|
-
* db.deleteFrom('pet')
|
|
962
|
+
* await db.deleteFrom('pet')
|
|
915
963
|
* .returningAll()
|
|
916
964
|
* .where('name', '=', 'Max')
|
|
917
965
|
* .limit(5)
|
|
918
966
|
* .clearLimit()
|
|
967
|
+
* .execute()
|
|
919
968
|
* ```
|
|
920
969
|
*
|
|
921
970
|
* The generated SQL(PostgreSQL):
|
|
@@ -931,11 +980,12 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
931
980
|
* ### Examples
|
|
932
981
|
*
|
|
933
982
|
* ```ts
|
|
934
|
-
* db.deleteFrom('pet')
|
|
983
|
+
* await db.deleteFrom('pet')
|
|
935
984
|
* .returningAll()
|
|
936
985
|
* .where('name', '=', 'Max')
|
|
937
986
|
* .orderBy('id')
|
|
938
987
|
* .clearOrderBy()
|
|
988
|
+
* .execute()
|
|
939
989
|
* ```
|
|
940
990
|
*
|
|
941
991
|
* The generated SQL(PostgreSQL):
|
|
@@ -997,8 +1047,36 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
997
1047
|
* .limit(5)
|
|
998
1048
|
* .execute()
|
|
999
1049
|
* ```
|
|
1050
|
+
*
|
|
1051
|
+
* The generated SQL (MySQL):
|
|
1052
|
+
*
|
|
1053
|
+
* ```sql
|
|
1054
|
+
* delete from `pet` order by `created_at` limit ?
|
|
1055
|
+
* ```
|
|
1000
1056
|
*/
|
|
1001
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>;
|
|
1002
1080
|
/**
|
|
1003
1081
|
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
1004
1082
|
* what the provided function returns.
|
|
@@ -1011,12 +1089,14 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
1011
1089
|
* The next example uses a helper function `log` to log a query:
|
|
1012
1090
|
*
|
|
1013
1091
|
* ```ts
|
|
1092
|
+
* import type { Compilable } from 'kysely'
|
|
1093
|
+
*
|
|
1014
1094
|
* function log<T extends Compilable>(qb: T): T {
|
|
1015
1095
|
* console.log(qb.compile())
|
|
1016
1096
|
* return qb
|
|
1017
1097
|
* }
|
|
1018
1098
|
*
|
|
1019
|
-
* db.deleteFrom('person')
|
|
1099
|
+
* await db.deleteFrom('person')
|
|
1020
1100
|
* .$call(log)
|
|
1021
1101
|
* .execute()
|
|
1022
1102
|
* ```
|
|
@@ -1050,11 +1130,11 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
1050
1130
|
* the code. In the example above the return type of the `deletePerson` function is:
|
|
1051
1131
|
*
|
|
1052
1132
|
* ```ts
|
|
1053
|
-
* {
|
|
1133
|
+
* Promise<{
|
|
1054
1134
|
* id: number
|
|
1055
1135
|
* first_name: string
|
|
1056
1136
|
* last_name?: string
|
|
1057
|
-
* }
|
|
1137
|
+
* }>
|
|
1058
1138
|
* ```
|
|
1059
1139
|
*/
|
|
1060
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>>;
|
|
@@ -1082,25 +1162,33 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
1082
1162
|
* Turn this code:
|
|
1083
1163
|
*
|
|
1084
1164
|
* ```ts
|
|
1165
|
+
* import type { Person } from 'type-editor' // imaginary module
|
|
1166
|
+
*
|
|
1085
1167
|
* const person = await db.deleteFrom('person')
|
|
1086
|
-
* .where('id', '=',
|
|
1168
|
+
* .where('id', '=', 3)
|
|
1087
1169
|
* .where('nullable_column', 'is not', null)
|
|
1088
1170
|
* .returningAll()
|
|
1089
1171
|
* .executeTakeFirstOrThrow()
|
|
1090
1172
|
*
|
|
1091
|
-
* if (person
|
|
1173
|
+
* if (isWithNoNullValue(person)) {
|
|
1092
1174
|
* functionThatExpectsPersonWithNonNullValue(person)
|
|
1093
1175
|
* }
|
|
1176
|
+
*
|
|
1177
|
+
* function isWithNoNullValue(person: Person): person is Person & { nullable_column: string } {
|
|
1178
|
+
* return person.nullable_column != null
|
|
1179
|
+
* }
|
|
1094
1180
|
* ```
|
|
1095
1181
|
*
|
|
1096
1182
|
* Into this:
|
|
1097
1183
|
*
|
|
1098
1184
|
* ```ts
|
|
1185
|
+
* import type { NotNull } from 'kysely'
|
|
1186
|
+
*
|
|
1099
1187
|
* const person = await db.deleteFrom('person')
|
|
1100
|
-
* .where('id', '=',
|
|
1188
|
+
* .where('id', '=', 3)
|
|
1101
1189
|
* .where('nullable_column', 'is not', null)
|
|
1102
1190
|
* .returningAll()
|
|
1103
|
-
* .$narrowType<{ nullable_column:
|
|
1191
|
+
* .$narrowType<{ nullable_column: NotNull }>()
|
|
1104
1192
|
* .executeTakeFirstOrThrow()
|
|
1105
1193
|
*
|
|
1106
1194
|
* functionThatExpectsPersonWithNonNullValue(person)
|
|
@@ -1130,22 +1218,26 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
1130
1218
|
* ### Examples
|
|
1131
1219
|
*
|
|
1132
1220
|
* ```ts
|
|
1133
|
-
*
|
|
1134
|
-
*
|
|
1135
|
-
*
|
|
1136
|
-
*
|
|
1137
|
-
* .
|
|
1138
|
-
*
|
|
1139
|
-
*
|
|
1140
|
-
*
|
|
1141
|
-
*
|
|
1142
|
-
*
|
|
1143
|
-
* .
|
|
1144
|
-
*
|
|
1145
|
-
*
|
|
1146
|
-
*
|
|
1147
|
-
*
|
|
1148
|
-
*
|
|
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
|
+
* }
|
|
1149
1241
|
* ```
|
|
1150
1242
|
*/
|
|
1151
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.`>;
|
|
@@ -1184,7 +1276,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
1184
1276
|
* ### Examples
|
|
1185
1277
|
*
|
|
1186
1278
|
* ```ts
|
|
1187
|
-
* const stream = db
|
|
1279
|
+
* const stream = db
|
|
1188
1280
|
* .selectFrom('person')
|
|
1189
1281
|
* .select(['first_name', 'last_name'])
|
|
1190
1282
|
* .where('gender', '=', 'other')
|
|
@@ -141,10 +141,11 @@ export class DeleteQueryBuilder {
|
|
|
141
141
|
* ### Examples
|
|
142
142
|
*
|
|
143
143
|
* ```ts
|
|
144
|
-
* db.deleteFrom('pet')
|
|
144
|
+
* await db.deleteFrom('pet')
|
|
145
145
|
* .returningAll()
|
|
146
146
|
* .where('name', '=', 'Max')
|
|
147
147
|
* .clearReturning()
|
|
148
|
+
* .execute()
|
|
148
149
|
* ```
|
|
149
150
|
*
|
|
150
151
|
* The generated SQL(PostgreSQL):
|
|
@@ -165,11 +166,12 @@ export class DeleteQueryBuilder {
|
|
|
165
166
|
* ### Examples
|
|
166
167
|
*
|
|
167
168
|
* ```ts
|
|
168
|
-
* db.deleteFrom('pet')
|
|
169
|
+
* await db.deleteFrom('pet')
|
|
169
170
|
* .returningAll()
|
|
170
171
|
* .where('name', '=', 'Max')
|
|
171
172
|
* .limit(5)
|
|
172
173
|
* .clearLimit()
|
|
174
|
+
* .execute()
|
|
173
175
|
* ```
|
|
174
176
|
*
|
|
175
177
|
* The generated SQL(PostgreSQL):
|
|
@@ -190,11 +192,12 @@ export class DeleteQueryBuilder {
|
|
|
190
192
|
* ### Examples
|
|
191
193
|
*
|
|
192
194
|
* ```ts
|
|
193
|
-
* db.deleteFrom('pet')
|
|
195
|
+
* await db.deleteFrom('pet')
|
|
194
196
|
* .returningAll()
|
|
195
197
|
* .where('name', '=', 'Max')
|
|
196
198
|
* .orderBy('id')
|
|
197
199
|
* .clearOrderBy()
|
|
200
|
+
* .execute()
|
|
198
201
|
* ```
|
|
199
202
|
*
|
|
200
203
|
* The generated SQL(PostgreSQL):
|
|
@@ -266,6 +269,12 @@ export class DeleteQueryBuilder {
|
|
|
266
269
|
* .limit(5)
|
|
267
270
|
* .execute()
|
|
268
271
|
* ```
|
|
272
|
+
*
|
|
273
|
+
* The generated SQL (MySQL):
|
|
274
|
+
*
|
|
275
|
+
* ```sql
|
|
276
|
+
* delete from `pet` order by `created_at` limit ?
|
|
277
|
+
* ```
|
|
269
278
|
*/
|
|
270
279
|
limit(limit) {
|
|
271
280
|
return new DeleteQueryBuilder({
|
|
@@ -273,6 +282,33 @@ export class DeleteQueryBuilder {
|
|
|
273
282
|
queryNode: DeleteQueryNode.cloneWithLimit(this.#props.queryNode, LimitNode.create(parseValueExpression(limit))),
|
|
274
283
|
});
|
|
275
284
|
}
|
|
285
|
+
/**
|
|
286
|
+
* This can be used to add any additional SQL to the end of the query.
|
|
287
|
+
*
|
|
288
|
+
* ### Examples
|
|
289
|
+
*
|
|
290
|
+
* ```ts
|
|
291
|
+
* import { sql } from 'kysely'
|
|
292
|
+
*
|
|
293
|
+
* await db.deleteFrom('person')
|
|
294
|
+
* .where('first_name', '=', 'John')
|
|
295
|
+
* .modifyEnd(sql`-- This is a comment`)
|
|
296
|
+
* .execute()
|
|
297
|
+
* ```
|
|
298
|
+
*
|
|
299
|
+
* The generated SQL (MySQL):
|
|
300
|
+
*
|
|
301
|
+
* ```sql
|
|
302
|
+
* delete from `person`
|
|
303
|
+
* where `first_name` = "John" -- This is a comment
|
|
304
|
+
* ```
|
|
305
|
+
*/
|
|
306
|
+
modifyEnd(modifier) {
|
|
307
|
+
return new DeleteQueryBuilder({
|
|
308
|
+
...this.#props,
|
|
309
|
+
queryNode: QueryNode.cloneWithEndModifier(this.#props.queryNode, modifier.toOperationNode()),
|
|
310
|
+
});
|
|
311
|
+
}
|
|
276
312
|
/**
|
|
277
313
|
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
278
314
|
* what the provided function returns.
|
|
@@ -285,12 +321,14 @@ export class DeleteQueryBuilder {
|
|
|
285
321
|
* The next example uses a helper function `log` to log a query:
|
|
286
322
|
*
|
|
287
323
|
* ```ts
|
|
324
|
+
* import type { Compilable } from 'kysely'
|
|
325
|
+
*
|
|
288
326
|
* function log<T extends Compilable>(qb: T): T {
|
|
289
327
|
* console.log(qb.compile())
|
|
290
328
|
* return qb
|
|
291
329
|
* }
|
|
292
330
|
*
|
|
293
|
-
* db.deleteFrom('person')
|
|
331
|
+
* await db.deleteFrom('person')
|
|
294
332
|
* .$call(log)
|
|
295
333
|
* .execute()
|
|
296
334
|
* ```
|
|
@@ -326,11 +364,11 @@ export class DeleteQueryBuilder {
|
|
|
326
364
|
* the code. In the example above the return type of the `deletePerson` function is:
|
|
327
365
|
*
|
|
328
366
|
* ```ts
|
|
329
|
-
* {
|
|
367
|
+
* Promise<{
|
|
330
368
|
* id: number
|
|
331
369
|
* first_name: string
|
|
332
370
|
* last_name?: string
|
|
333
|
-
* }
|
|
371
|
+
* }>
|
|
334
372
|
* ```
|
|
335
373
|
*/
|
|
336
374
|
$if(condition, func) {
|
|
@@ -367,25 +405,33 @@ export class DeleteQueryBuilder {
|
|
|
367
405
|
* Turn this code:
|
|
368
406
|
*
|
|
369
407
|
* ```ts
|
|
408
|
+
* import type { Person } from 'type-editor' // imaginary module
|
|
409
|
+
*
|
|
370
410
|
* const person = await db.deleteFrom('person')
|
|
371
|
-
* .where('id', '=',
|
|
411
|
+
* .where('id', '=', 3)
|
|
372
412
|
* .where('nullable_column', 'is not', null)
|
|
373
413
|
* .returningAll()
|
|
374
414
|
* .executeTakeFirstOrThrow()
|
|
375
415
|
*
|
|
376
|
-
* if (person
|
|
416
|
+
* if (isWithNoNullValue(person)) {
|
|
377
417
|
* functionThatExpectsPersonWithNonNullValue(person)
|
|
378
418
|
* }
|
|
419
|
+
*
|
|
420
|
+
* function isWithNoNullValue(person: Person): person is Person & { nullable_column: string } {
|
|
421
|
+
* return person.nullable_column != null
|
|
422
|
+
* }
|
|
379
423
|
* ```
|
|
380
424
|
*
|
|
381
425
|
* Into this:
|
|
382
426
|
*
|
|
383
427
|
* ```ts
|
|
428
|
+
* import type { NotNull } from 'kysely'
|
|
429
|
+
*
|
|
384
430
|
* const person = await db.deleteFrom('person')
|
|
385
|
-
* .where('id', '=',
|
|
431
|
+
* .where('id', '=', 3)
|
|
386
432
|
* .where('nullable_column', 'is not', null)
|
|
387
433
|
* .returningAll()
|
|
388
|
-
* .$narrowType<{ nullable_column:
|
|
434
|
+
* .$narrowType<{ nullable_column: NotNull }>()
|
|
389
435
|
* .executeTakeFirstOrThrow()
|
|
390
436
|
*
|
|
391
437
|
* functionThatExpectsPersonWithNonNullValue(person)
|
|
@@ -417,22 +463,26 @@ export class DeleteQueryBuilder {
|
|
|
417
463
|
* ### Examples
|
|
418
464
|
*
|
|
419
465
|
* ```ts
|
|
420
|
-
*
|
|
421
|
-
*
|
|
422
|
-
*
|
|
423
|
-
*
|
|
424
|
-
* .
|
|
425
|
-
*
|
|
426
|
-
*
|
|
427
|
-
*
|
|
428
|
-
*
|
|
429
|
-
*
|
|
430
|
-
* .
|
|
431
|
-
*
|
|
432
|
-
*
|
|
433
|
-
*
|
|
434
|
-
*
|
|
435
|
-
*
|
|
466
|
+
* import type { Species } from 'type-editor' // imaginary module
|
|
467
|
+
*
|
|
468
|
+
* async function deletePersonAndPets(personId: number) {
|
|
469
|
+
* return await db
|
|
470
|
+
* .with('deleted_person', (qb) => qb
|
|
471
|
+
* .deleteFrom('person')
|
|
472
|
+
* .where('id', '=', personId)
|
|
473
|
+
* .returning('first_name')
|
|
474
|
+
* .$assertType<{ first_name: string }>()
|
|
475
|
+
* )
|
|
476
|
+
* .with('deleted_pets', (qb) => qb
|
|
477
|
+
* .deleteFrom('pet')
|
|
478
|
+
* .where('owner_id', '=', personId)
|
|
479
|
+
* .returning(['name as pet_name', 'species'])
|
|
480
|
+
* .$assertType<{ pet_name: string, species: Species }>()
|
|
481
|
+
* )
|
|
482
|
+
* .selectFrom(['deleted_person', 'deleted_pets'])
|
|
483
|
+
* .selectAll()
|
|
484
|
+
* .execute()
|
|
485
|
+
* }
|
|
436
486
|
* ```
|
|
437
487
|
*/
|
|
438
488
|
$assertType() {
|