kysely 0.10.1 → 0.11.3

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.
Files changed (156) hide show
  1. package/README.md +7 -3
  2. package/dist/cjs/dialect/dialect-adapter.d.ts +3 -2
  3. package/dist/cjs/dialect/mysql/mysql-adapter.js +1 -1
  4. package/dist/cjs/dialect/mysql/mysql-dialect.d.ts +3 -3
  5. package/dist/cjs/dialect/mysql/mysql-driver.js +25 -32
  6. package/dist/cjs/dialect/mysql/mysql-query-compiler.d.ts +0 -2
  7. package/dist/cjs/dialect/mysql/mysql-query-compiler.js +0 -6
  8. package/dist/cjs/dialect/postgres/postgres-dialect.d.ts +2 -2
  9. package/dist/cjs/dialect/postgres/postgres-driver.js +8 -19
  10. package/dist/cjs/dialect/postgres/postgres-query-compiler.d.ts +3 -0
  11. package/dist/cjs/dialect/postgres/postgres-query-compiler.js +9 -1
  12. package/dist/cjs/dialect/sqlite/sqlite-adapter.d.ts +7 -0
  13. package/dist/cjs/dialect/sqlite/sqlite-adapter.js +18 -0
  14. package/dist/cjs/dialect/sqlite/sqlite-dialect.d.ts +64 -0
  15. package/dist/cjs/dialect/sqlite/sqlite-dialect.js +33 -0
  16. package/dist/cjs/dialect/sqlite/sqlite-driver.d.ts +14 -0
  17. package/dist/cjs/dialect/sqlite/sqlite-driver.js +116 -0
  18. package/dist/cjs/dialect/sqlite/sqlite-introspector.d.ts +7 -0
  19. package/dist/cjs/dialect/sqlite/sqlite-introspector.js +44 -0
  20. package/dist/cjs/dialect/sqlite/sqlite-query-compiler.d.ts +7 -0
  21. package/dist/cjs/dialect/sqlite/sqlite-query-compiler.js +19 -0
  22. package/dist/cjs/driver/database-connection.d.ts +2 -2
  23. package/dist/cjs/driver/runtime-driver.js +1 -1
  24. package/dist/cjs/index.d.ts +46 -30
  25. package/dist/cjs/index.js +45 -29
  26. package/dist/cjs/kysely.d.ts +28 -10
  27. package/dist/cjs/kysely.js +6 -4
  28. package/dist/cjs/migration/migration.d.ts +1 -1
  29. package/dist/cjs/migration/migration.js +3 -3
  30. package/dist/cjs/operation-node/alias-node.d.ts +1 -1
  31. package/dist/cjs/operation-node/create-view-node.d.ts +1 -0
  32. package/dist/cjs/operation-node/having-node.d.ts +4 -8
  33. package/dist/cjs/operation-node/having-node.js +3 -3
  34. package/dist/cjs/operation-node/join-node.d.ts +6 -9
  35. package/dist/cjs/operation-node/join-node.js +10 -7
  36. package/dist/cjs/operation-node/on-node.d.ts +14 -0
  37. package/dist/cjs/operation-node/on-node.js +28 -0
  38. package/dist/cjs/operation-node/operation-node-transformer.d.ts +2 -0
  39. package/dist/cjs/operation-node/operation-node-transformer.js +8 -0
  40. package/dist/cjs/operation-node/operation-node-utils.d.ts +1 -1
  41. package/dist/cjs/operation-node/operation-node-visitor.d.ts +3 -0
  42. package/dist/cjs/operation-node/operation-node-visitor.js +4 -0
  43. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  44. package/dist/cjs/operation-node/query-node.d.ts +3 -3
  45. package/dist/cjs/operation-node/select-query-node.d.ts +4 -4
  46. package/dist/cjs/operation-node/where-node.d.ts +4 -8
  47. package/dist/cjs/operation-node/where-node.js +3 -3
  48. package/dist/cjs/parser/filter-parser.d.ts +1 -0
  49. package/dist/cjs/parser/filter-parser.js +49 -52
  50. package/dist/cjs/parser/returning-parser.d.ts +4 -2
  51. package/dist/cjs/parser/select-parser.d.ts +2 -2
  52. package/dist/cjs/plugin/immediate-value.ts/immediate-value-plugin.d.ts +1 -1
  53. package/dist/cjs/query-builder/delete-result.d.ts +5 -0
  54. package/dist/cjs/query-builder/delete-result.js +13 -0
  55. package/dist/cjs/query-builder/expression-builder.d.ts +2 -2
  56. package/dist/cjs/query-builder/expression-builder.js +1 -1
  57. package/dist/cjs/query-builder/function-builder.d.ts +5 -5
  58. package/dist/cjs/query-builder/function-builder.js +3 -3
  59. package/dist/cjs/query-builder/insert-result.d.ts +27 -0
  60. package/dist/cjs/query-builder/insert-result.js +35 -0
  61. package/dist/cjs/query-builder/join-builder.d.ts +3 -0
  62. package/dist/cjs/query-builder/query-builder.d.ts +95 -81
  63. package/dist/cjs/query-builder/query-builder.js +38 -41
  64. package/dist/cjs/query-builder/update-result.d.ts +5 -0
  65. package/dist/cjs/query-builder/update-result.js +13 -0
  66. package/dist/cjs/query-compiler/compiled-query.d.ts +5 -0
  67. package/dist/cjs/query-compiler/compiled-query.js +12 -0
  68. package/dist/cjs/query-compiler/default-query-compiler.d.ts +2 -0
  69. package/dist/cjs/query-compiler/default-query-compiler.js +24 -13
  70. package/dist/cjs/query-creator.d.ts +36 -26
  71. package/dist/cjs/query-creator.js +25 -17
  72. package/dist/cjs/schema/create-view-builder.d.ts +4 -0
  73. package/dist/cjs/schema/create-view-builder.js +11 -0
  74. package/dist/cjs/util/dynamic-import.d.ts +2 -0
  75. package/dist/cjs/util/dynamic-import.js +32 -0
  76. package/dist/cjs/util/log.d.ts +10 -8
  77. package/dist/cjs/util/log.js +29 -9
  78. package/dist/cjs/util/type-utils.d.ts +4 -15
  79. package/dist/esm/dialect/dialect-adapter.d.ts +3 -2
  80. package/dist/esm/dialect/mysql/mysql-adapter.js +1 -1
  81. package/dist/esm/dialect/mysql/mysql-dialect.d.ts +3 -3
  82. package/dist/esm/dialect/mysql/mysql-driver.js +26 -33
  83. package/dist/esm/dialect/mysql/mysql-query-compiler.d.ts +0 -2
  84. package/dist/esm/dialect/mysql/mysql-query-compiler.js +0 -6
  85. package/dist/esm/dialect/postgres/postgres-dialect.d.ts +2 -2
  86. package/dist/esm/dialect/postgres/postgres-driver.js +8 -19
  87. package/dist/esm/dialect/postgres/postgres-query-compiler.d.ts +3 -0
  88. package/dist/esm/dialect/postgres/postgres-query-compiler.js +9 -1
  89. package/dist/esm/dialect/sqlite/sqlite-adapter.d.ts +7 -0
  90. package/dist/esm/dialect/sqlite/sqlite-adapter.js +14 -0
  91. package/dist/esm/dialect/sqlite/sqlite-dialect.d.ts +64 -0
  92. package/dist/esm/dialect/sqlite/sqlite-dialect.js +29 -0
  93. package/dist/esm/dialect/sqlite/sqlite-driver.d.ts +14 -0
  94. package/dist/esm/dialect/sqlite/sqlite-driver.js +112 -0
  95. package/dist/esm/dialect/sqlite/sqlite-introspector.d.ts +7 -0
  96. package/dist/esm/dialect/sqlite/sqlite-introspector.js +40 -0
  97. package/dist/esm/dialect/sqlite/sqlite-query-compiler.d.ts +7 -0
  98. package/dist/esm/dialect/sqlite/sqlite-query-compiler.js +15 -0
  99. package/dist/esm/driver/database-connection.d.ts +2 -2
  100. package/dist/esm/driver/runtime-driver.js +1 -1
  101. package/dist/esm/index.d.ts +46 -30
  102. package/dist/esm/index.js +45 -29
  103. package/dist/esm/kysely.d.ts +28 -10
  104. package/dist/esm/kysely.js +6 -4
  105. package/dist/esm/migration/migration.d.ts +1 -1
  106. package/dist/esm/migration/migration.js +3 -3
  107. package/dist/esm/operation-node/alias-node.d.ts +1 -1
  108. package/dist/esm/operation-node/create-view-node.d.ts +1 -0
  109. package/dist/esm/operation-node/having-node.d.ts +4 -8
  110. package/dist/esm/operation-node/having-node.js +3 -3
  111. package/dist/esm/operation-node/join-node.d.ts +6 -9
  112. package/dist/esm/operation-node/join-node.js +10 -7
  113. package/dist/esm/operation-node/on-node.d.ts +14 -0
  114. package/dist/esm/operation-node/on-node.js +25 -0
  115. package/dist/esm/operation-node/operation-node-transformer.d.ts +2 -0
  116. package/dist/esm/operation-node/operation-node-transformer.js +8 -0
  117. package/dist/esm/operation-node/operation-node-utils.d.ts +1 -1
  118. package/dist/esm/operation-node/operation-node-visitor.d.ts +3 -0
  119. package/dist/esm/operation-node/operation-node-visitor.js +4 -0
  120. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  121. package/dist/esm/operation-node/query-node.d.ts +3 -3
  122. package/dist/esm/operation-node/select-query-node.d.ts +4 -4
  123. package/dist/esm/operation-node/where-node.d.ts +4 -8
  124. package/dist/esm/operation-node/where-node.js +3 -3
  125. package/dist/esm/parser/filter-parser.d.ts +1 -0
  126. package/dist/esm/parser/filter-parser.js +48 -52
  127. package/dist/esm/parser/returning-parser.d.ts +4 -2
  128. package/dist/esm/parser/select-parser.d.ts +2 -2
  129. package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.d.ts +1 -1
  130. package/dist/esm/query-builder/delete-result.d.ts +5 -0
  131. package/dist/esm/query-builder/delete-result.js +9 -0
  132. package/dist/esm/query-builder/expression-builder.d.ts +2 -2
  133. package/dist/esm/query-builder/expression-builder.js +1 -1
  134. package/dist/esm/query-builder/function-builder.d.ts +5 -5
  135. package/dist/esm/query-builder/function-builder.js +3 -3
  136. package/dist/esm/query-builder/insert-result.d.ts +27 -0
  137. package/dist/esm/query-builder/insert-result.js +31 -0
  138. package/dist/esm/query-builder/join-builder.d.ts +3 -0
  139. package/dist/esm/query-builder/query-builder.d.ts +95 -81
  140. package/dist/esm/query-builder/query-builder.js +38 -41
  141. package/dist/esm/query-builder/update-result.d.ts +5 -0
  142. package/dist/esm/query-builder/update-result.js +9 -0
  143. package/dist/esm/query-compiler/compiled-query.d.ts +5 -0
  144. package/dist/esm/query-compiler/compiled-query.js +11 -1
  145. package/dist/esm/query-compiler/default-query-compiler.d.ts +2 -0
  146. package/dist/esm/query-compiler/default-query-compiler.js +24 -13
  147. package/dist/esm/query-creator.d.ts +36 -26
  148. package/dist/esm/query-creator.js +25 -17
  149. package/dist/esm/schema/create-view-builder.d.ts +4 -0
  150. package/dist/esm/schema/create-view-builder.js +11 -0
  151. package/dist/esm/util/dynamic-import.d.ts +2 -0
  152. package/dist/esm/util/dynamic-import.js +27 -0
  153. package/dist/esm/util/log.d.ts +10 -8
  154. package/dist/esm/util/log.js +30 -10
  155. package/dist/esm/util/type-utils.d.ts +4 -15
  156. package/package.json +3 -1
@@ -10,7 +10,7 @@ import { QueryBuilderWithReturning } from '../parser/returning-parser.js';
10
10
  import { ReferenceExpression } from '../parser/reference-parser.js';
11
11
  import { ValueExpressionOrList } from '../parser/value-parser.js';
12
12
  import { QueryNode } from '../operation-node/query-node.js';
13
- import { AnyColumn, ManyResultRowType, NonEmptySingleResultRowType, SingleResultRowType } from '../util/type-utils.js';
13
+ import { AnyColumn, AnyRawBuilder, SingleResultType } from '../util/type-utils.js';
14
14
  import { OrderByDirectionExpression, OrderByExpression } from '../parser/order-by-parser.js';
15
15
  import { MutationObject } from '../parser/update-set-parser.js';
16
16
  import { Compilable } from '../util/compilable.js';
@@ -54,7 +54,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
54
54
  * .executeTakeFirst()
55
55
  * ```
56
56
  *
57
- * The generated SQL (postgresql):
57
+ * The generated SQL (PostgreSQL):
58
58
  *
59
59
  * ```sql
60
60
  * select * from "person" where "id" = $1
@@ -72,7 +72,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
72
72
  * .execute()
73
73
  * ```
74
74
  *
75
- * The generated SQL (postgresql):
75
+ * The generated SQL (PostgreSQL):
76
76
  *
77
77
  * ```sql
78
78
  * select * from "person" where "id" > $1
@@ -119,7 +119,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
119
119
  * .execute()
120
120
  * ```
121
121
  *
122
- * The generated SQL (postgresql):
122
+ * The generated SQL (PostgreSQL):
123
123
  *
124
124
  * ```sql
125
125
  * select *
@@ -145,7 +145,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
145
145
  * .execute()
146
146
  * ```
147
147
  *
148
- * The generated SQL (postgresql):
148
+ * The generated SQL (PostgreSQL):
149
149
  *
150
150
  * ```sql
151
151
  * select * from "person" where "id" in ($1, $2, $3)
@@ -167,7 +167,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
167
167
  * .execute()
168
168
  * ```
169
169
  *
170
- * The generated SQL (postgresql):
170
+ * The generated SQL (PostgreSQL):
171
171
  *
172
172
  * ```sql
173
173
  * select * from "person"
@@ -189,7 +189,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
189
189
  * .execute()
190
190
  * ```
191
191
  *
192
- * The generated SQL (postgresql):
192
+ * The generated SQL (PostgreSQL):
193
193
  *
194
194
  * ```sql
195
195
  * select * from "person" (where "id" = 1 or "id" = 2)
@@ -220,6 +220,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
220
220
  */
221
221
  where<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: FilterOperator, rhs: ValueExpressionOrList<DB, TB, RE>): QueryBuilder<DB, TB, O>;
222
222
  where(grouper: (qb: QueryBuilder<DB, TB, O>) => QueryBuilder<DB, TB, O>): QueryBuilder<DB, TB, O>;
223
+ where(raw: AnyRawBuilder): QueryBuilder<DB, TB, O>;
223
224
  /**
224
225
  * Adds a `where` clause where both sides of the operator are references
225
226
  * to columns.
@@ -237,7 +238,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
237
238
  * .whereRef('person.first_name', '=', 'pet.name')
238
239
  * ```
239
240
  *
240
- * The generated SQL (postgresql):
241
+ * The generated SQL (PostgreSQL):
241
242
  *
242
243
  * ```sql
243
244
  * select * from "person", "pet" where "person"."first_name" = "pet"."name"
@@ -260,7 +261,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
260
261
  * .execute()
261
262
  * ```
262
263
  *
263
- * The generated SQL (postgresql):
264
+ * The generated SQL (PostgreSQL):
264
265
  *
265
266
  * ```sql
266
267
  * select "person".*, (
@@ -290,7 +291,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
290
291
  * .execute()
291
292
  * ```
292
293
  *
293
- * The generated SQL (postgresql):
294
+ * The generated SQL (PostgreSQL):
294
295
  *
295
296
  * ```sql
296
297
  * select * from "person" where "id" = 1 or "id" = 2
@@ -310,7 +311,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
310
311
  * .execute()
311
312
  * ```
312
313
  *
313
- * The generated SQL (postgresql):
314
+ * The generated SQL (PostgreSQL):
314
315
  *
315
316
  * ```sql
316
317
  * select * from "person" (where "id" = 1 or "id" = 2)
@@ -331,7 +332,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
331
332
  * .execute()
332
333
  * ```
333
334
  *
334
- * The generated SQL (postgresql):
335
+ * The generated SQL (PostgreSQL):
335
336
  *
336
337
  * ```sql
337
338
  * select * from "person" (where "id" = 1 or "id" = 2)
@@ -339,6 +340,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
339
340
  */
340
341
  orWhere<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: FilterOperator, rhs: ValueExpressionOrList<DB, TB, RE>): QueryBuilder<DB, TB, O>;
341
342
  orWhere(grouper: (qb: QueryBuilder<DB, TB, O>) => QueryBuilder<DB, TB, O>): QueryBuilder<DB, TB, O>;
343
+ orWhere(raw: AnyRawBuilder): QueryBuilder<DB, TB, O>;
342
344
  /**
343
345
  * Adds an `or where` clause to the query. Otherwise works just like
344
346
  * {@link QueryBuilder.whereRef | whereRef}.
@@ -367,7 +369,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
367
369
  * .execute()
368
370
  * ```
369
371
  *
370
- * The generated SQL (postgresql):
372
+ * The generated SQL (PostgreSQL):
371
373
  *
372
374
  * ```sql
373
375
  * select * from "person"
@@ -393,7 +395,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
393
395
  * )
394
396
  * ```
395
397
  *
396
- * The generated SQL (postgresql):
398
+ * The generated SQL (PostgreSQL):
397
399
  *
398
400
  * ```sql
399
401
  * select * from "person"
@@ -424,6 +426,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
424
426
  */
425
427
  having<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: FilterOperator, rhs: ValueExpressionOrList<DB, TB, RE>): QueryBuilder<DB, TB, O>;
426
428
  having(grouper: (qb: QueryBuilder<DB, TB, O>) => QueryBuilder<DB, TB, O>): QueryBuilder<DB, TB, O>;
429
+ having(raw: AnyRawBuilder): QueryBuilder<DB, TB, O>;
427
430
  /**
428
431
  * Just like {@link QueryBuilder.whereRef | whereRef} but adds a `having` statement
429
432
  * instead of a `where` statement.
@@ -435,6 +438,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
435
438
  */
436
439
  orHaving<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: FilterOperator, rhs: ValueExpressionOrList<DB, TB, RE>): QueryBuilder<DB, TB, O>;
437
440
  orHaving(grouper: (qb: QueryBuilder<DB, TB, O>) => QueryBuilder<DB, TB, O>): QueryBuilder<DB, TB, O>;
441
+ orHaving(raw: AnyRawBuilder): QueryBuilder<DB, TB, O>;
438
442
  /**
439
443
  * Just like {@link QueryBuilder.orWhereRef | orWhereRef} but adds a `having` statement
440
444
  * instead of a `where` statement.
@@ -491,7 +495,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
491
495
  * persons[0].id
492
496
  * ```
493
497
  *
494
- * The generated SQL (postgresql):
498
+ * The generated SQL (PostgreSQL):
495
499
  *
496
500
  * ```sql
497
501
  * select "id" from "person" where "first_name" = $1
@@ -508,7 +512,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
508
512
  * persons[0].id
509
513
  * ```
510
514
  *
511
- * The generated SQL (postgresql):
515
+ * The generated SQL (PostgreSQL):
512
516
  *
513
517
  * ```sql
514
518
  * select "person"."id" from "person", "pet"
@@ -526,7 +530,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
526
530
  * persons[0].first_name
527
531
  * ```
528
532
  *
529
- * The generated SQL (postgresql):
533
+ * The generated SQL (PostgreSQL):
530
534
  *
531
535
  * ```sql
532
536
  * select "person"."id", "first_name" from "person"
@@ -547,7 +551,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
547
551
  * persons[0].ln
548
552
  * ```
549
553
  *
550
- * The generated SQL (postgresql):
554
+ * The generated SQL (PostgreSQL):
551
555
  *
552
556
  * ```sql
553
557
  * select
@@ -578,7 +582,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
578
582
  * persons[0].full_name
579
583
  * ```
580
584
  *
581
- * The generated SQL (postgresql):
585
+ * The generated SQL (PostgreSQL):
582
586
  *
583
587
  * ```sql
584
588
  * select
@@ -644,14 +648,14 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
644
648
  * @example
645
649
  * ```ts
646
650
  * await db.selectFrom('person')
647
- * .selectAll('person')
648
- * .distinctOn('person.id')
649
651
  * .innerJoin('pet', 'pet.owner_id', 'person.id')
650
652
  * .where('pet.name', '=', 'Doggo')
653
+ * .distinctOn('person.id')
654
+ * .selectAll('person')
651
655
  * .execute()
652
656
  * ```
653
657
  *
654
- * The generated SQL (postgresql):
658
+ * The generated SQL (PostgreSQL):
655
659
  *
656
660
  * ```sql
657
661
  * select distinct on ("person"."id") "person".*
@@ -673,7 +677,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
673
677
  * .execute()
674
678
  * ```
675
679
  *
676
- * The generated SQL (postgresql):
680
+ * The generated SQL (PostgreSQL):
677
681
  *
678
682
  * ```sql
679
683
  * select distinct "first_name" from "person"
@@ -715,7 +719,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
715
719
  * .execute()
716
720
  * ```
717
721
  *
718
- * The generated SQL (postgresql):
722
+ * The generated SQL (PostgreSQL):
719
723
  *
720
724
  * ```sql
721
725
  * select * from "person"
@@ -729,7 +733,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
729
733
  * .execute()
730
734
  * ```
731
735
  *
732
- * The generated SQL (postgresql):
736
+ * The generated SQL (PostgreSQL):
733
737
  *
734
738
  * ```sql
735
739
  * select "person".* from "person"
@@ -743,7 +747,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
743
747
  * .execute()
744
748
  * ```
745
749
  *
746
- * The generated SQL (postgresql):
750
+ * The generated SQL (PostgreSQL):
747
751
  *
748
752
  * ```sql
749
753
  * select "person".*, "pet".* from "person", "pet"
@@ -761,21 +765,20 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
761
765
  * ```ts
762
766
  * const result = await db
763
767
  * .selectFrom('person')
764
- * .selectAll()
765
768
  * .innerJoin('pet', 'pet.owner_id', 'person.id')
769
+ * // `select` needs to come after the call to `innerJoin` so
770
+ * // that you can select from the joined table.
771
+ * .select('person.id', 'pet.name')
766
772
  * .execute()
767
773
  *
768
- * // The result has all `Person` columns
769
- * result[0].first_name
770
- *
771
- * // The result has all `Pet` columns
772
- * result[0].species
774
+ * result[0].id
775
+ * result[0].name
773
776
  * ```
774
777
  *
775
- * The generated SQL (postgresql):
778
+ * The generated SQL (PostgreSQL):
776
779
  *
777
780
  * ```sql
778
- * select *
781
+ * select "person"."id", "pet"."name"
779
782
  * from "person"
780
783
  * inner join "pet"
781
784
  * on "pet"."owner_id" = "person"."id"
@@ -786,13 +789,13 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
786
789
  *
787
790
  * ```ts
788
791
  * await db.selectFrom('person')
789
- * .selectAll()
790
792
  * .innerJoin('pet as p', 'p.owner_id', 'person.id')
791
793
  * .where('p.name', '=', 'Doggo')
794
+ * .selectAll()
792
795
  * .execute()
793
796
  * ```
794
797
  *
795
- * The generated SQL (postgresql):
798
+ * The generated SQL (PostgreSQL):
796
799
  *
797
800
  * ```sql
798
801
  * select *
@@ -813,17 +816,17 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
813
816
  *
814
817
  * ```ts
815
818
  * await db.selectFrom('person')
816
- * .selectAll()
817
819
  * .innerJoin(
818
820
  * 'pet',
819
821
  * (join) => join
820
822
  * .onRef('pet.owner_id', '=', 'person.id')
821
823
  * .on('pet.name', '=', 'Doggo')
822
824
  * )
825
+ * .selectAll()
823
826
  * .execute()
824
827
  * ```
825
828
  *
826
- * The generated SQL (postgresql):
829
+ * The generated SQL (PostgreSQL):
827
830
  *
828
831
  * ```sql
829
832
  * select *
@@ -839,7 +842,6 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
839
842
  *
840
843
  * ```ts
841
844
  * await db.selectFrom('person')
842
- * .selectAll()
843
845
  * .innerJoin(
844
846
  * (qb) => qb.subQuery('pet')
845
847
  * .select(['owner_id', 'name'])
@@ -848,10 +850,11 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
848
850
  * 'doggos.owner_id',
849
851
  * 'person.id',
850
852
  * )
853
+ * .selectAll()
851
854
  * .execute()
852
855
  * ```
853
856
  *
854
- * The generated SQL (postgresql):
857
+ * The generated SQL (PostgreSQL):
855
858
  *
856
859
  * ```sql
857
860
  * select *
@@ -890,19 +893,19 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
890
893
  * This method takes an object whose keys are column names and values are
891
894
  * values to insert. In addition to the column's type, the values can be
892
895
  * {@link Kysely.raw | raw} instances, select queries or the
893
- * {@link Kysely.generated} placeholder.
896
+ * {@link Kysely.generated | generated} placeholder.
894
897
  *
895
- * You must provide all values defined by the interface for the table you
896
- * are inserting into. Values that are generated by the database like autoincrementing
898
+ * You must provide all values defined by the interface of the table you
899
+ * are inserting into. Values that are generated by the database like auto incrementing
897
900
  * identifiers can be marked with the {@link Kysely.generated} placeholder unless you
898
901
  * want to insert a specific value instead of the generated default.
899
902
  *
900
- * The return value is the primary key of the inserted row BUT on some databases
901
- * there is no return value by default. That's the reason for the `number | undefined`
902
- * type of the return value. On postgres you need to additionally call `returning` to get
903
- * something out of the query. If you know your database engine always returns the primary
904
- * key, you can use the {@link QueryBuilder.executeTakeFirstOrThrow | executeTakeFirstOrThrow}
905
- * method to execute the query.
903
+ * The return value of an `insert` query is an instance of {@link InsertResult}. The
904
+ * {@link InsertResult.insertId | insertId} field holds the auto incremented primary
905
+ * key if the database returned one.
906
+ *
907
+ * On PostgreSQL and some other dialects, you need to call `returning` to get
908
+ * something out of the query.
906
909
  *
907
910
  * @example
908
911
  * Insert a row into `person`:
@@ -917,16 +920,16 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
917
920
  * .executeTakeFirstOrThrow()
918
921
  * ```
919
922
  *
920
- * The generated SQL (postgresql):
923
+ * The generated SQL (PostgreSQL):
921
924
  *
922
925
  * ```sql
923
926
  * insert into "person" ("first_name", "last_name") values ($1, $2)
924
927
  * ```
925
928
  *
926
929
  * @example
927
- * On dialects that support it (for example postgres) you can insert multiple
930
+ * On dialects that support it (for example PostgreSQL) you can insert multiple
928
931
  * rows by providing an array. Note that the return value is once again very
929
- * dialect-specific. Some databases may only return the id of the *first* inserted
932
+ * dialect-specific. Some databases may only return the id of the *last* inserted
930
933
  * row and some return nothing at all unless you call `returning`.
931
934
  *
932
935
  * ```ts
@@ -944,7 +947,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
944
947
  * .execute()
945
948
  * ```
946
949
  *
947
- * The generated SQL (postgresql):
950
+ * The generated SQL (PostgreSQL):
948
951
  *
949
952
  * ```sql
950
953
  * insert into "person" ("first_name", "last_name") values (($1, $2), ($3, $4))
@@ -969,7 +972,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
969
972
  * row.id
970
973
  * ```
971
974
  *
972
- * The generated SQL (postgresql):
975
+ * The generated SQL (PostgreSQL):
973
976
  *
974
977
  * ```sql
975
978
  * insert into "person" ("first_name", "last_name") values ($1, $2) returning "id"
@@ -980,7 +983,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
980
983
  * select queries:
981
984
  *
982
985
  * ```ts
983
- * const maybeId = await db
986
+ * const result = await db
984
987
  * .insertInto('person')
985
988
  * .values({
986
989
  * id: db.generated,
@@ -989,9 +992,11 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
989
992
  * age: db.selectFrom('person').select(raw('avg(age)')),
990
993
  * })
991
994
  * .executeTakeFirst()
995
+ *
996
+ * console.log(result.insertId)
992
997
  * ```
993
998
  *
994
- * The generated SQL (postgresql):
999
+ * The generated SQL (PostgreSQL):
995
1000
  *
996
1001
  * ```sql
997
1002
  * insert into "person" ("first_name", "last_name", "age")
@@ -1010,7 +1015,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1010
1015
  * database, calling `onConflictDoNothing('name')` will ignore the conflict
1011
1016
  * and do nothing. By default the query would throw.
1012
1017
  *
1013
- * Only some dialects like postgres and sqlite implement the `on conflict`
1018
+ * Only some dialects like PostgreSQL and SQLite implement the `on conflict`
1014
1019
  * statement. On MySQL you should use the {@link ignore} method to achieve
1015
1020
  * similar results.
1016
1021
  *
@@ -1030,7 +1035,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1030
1035
  * .execute()
1031
1036
  * ```
1032
1037
  *
1033
- * The generated SQL (postgresql):
1038
+ * The generated SQL (PostgreSQL):
1034
1039
  *
1035
1040
  * ```sql
1036
1041
  * insert into "pet" ("name", "species")
@@ -1055,7 +1060,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1055
1060
  * .execute()
1056
1061
  * ```
1057
1062
  *
1058
- * The generated SQL (postgresql):
1063
+ * The generated SQL (PostgreSQL):
1059
1064
  *
1060
1065
  * ```sql
1061
1066
  * insert into "pet" ("name", "species")
@@ -1104,7 +1109,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1104
1109
  * method accepts.
1105
1110
  *
1106
1111
  * The `on conflict do update` statement is only implemented by some dialects
1107
- * like postgres and sqlite. On MySQL you should use the {@link onDuplicateKeyUpdate}
1112
+ * like PostgreSQL and SQLite. On MySQL you should use the {@link onDuplicateKeyUpdate}
1108
1113
  * method instead.
1109
1114
  *
1110
1115
  * Also see the {@link QueryBuilder.onConflictDoNothing | onConflictDoNothing}
@@ -1123,7 +1128,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1123
1128
  * .execute()
1124
1129
  * ```
1125
1130
  *
1126
- * The generated SQL (postgresql):
1131
+ * The generated SQL (PostgreSQL):
1127
1132
  *
1128
1133
  * ```sql
1129
1134
  * insert into "pet" ("name", "species")
@@ -1149,7 +1154,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1149
1154
  * .execute()
1150
1155
  * ```
1151
1156
  *
1152
- * The generated SQL (postgresql):
1157
+ * The generated SQL (PostgreSQL):
1153
1158
  *
1154
1159
  * ```sql
1155
1160
  * insert into "pet" ("name", "species")
@@ -1186,15 +1191,15 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1186
1191
  * values to update. In addition to the column's type, the values can be `raw`
1187
1192
  * instances or select queries.
1188
1193
  *
1189
- * The return value is the number of affected rows. You can use the
1190
- * {@link QueryBuilder.returning | returning} method on supported databases
1191
- * to get out the updated rows.
1194
+ * The return value of an update query is an instance of {@link UpdateResult}.
1195
+ * You can use the {@link QueryBuilder.returning | returning} method on
1196
+ * supported databases to get out the updated rows.
1192
1197
  *
1193
1198
  * @example
1194
1199
  * Update a row in `person` table:
1195
1200
  *
1196
1201
  * ```ts
1197
- * const numAffectedRows = await db
1202
+ * const result = await db
1198
1203
  * .updateTable('person')
1199
1204
  * .set({
1200
1205
  * first_name: 'Jennifer',
@@ -1202,9 +1207,11 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1202
1207
  * })
1203
1208
  * .where('id', '=', 1)
1204
1209
  * .executeTakeFirst()
1210
+ *
1211
+ * console.log(result.numUpdatedRows)
1205
1212
  * ```
1206
1213
  *
1207
- * The generated SQL (postgresql):
1214
+ * The generated SQL (PostgreSQL):
1208
1215
  *
1209
1216
  * ```sql
1210
1217
  * update "person" set "first_name" = $1, "last_name" = $2 where "id" = $3
@@ -1229,7 +1236,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1229
1236
  * row.id
1230
1237
  * ```
1231
1238
  *
1232
- * The generated SQL (postgresql):
1239
+ * The generated SQL (PostgreSQL):
1233
1240
  *
1234
1241
  * ```sql
1235
1242
  * update "person" set "first_name" = $1, "last_name" = $2 where "id" = $3 returning "id"
@@ -1240,7 +1247,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1240
1247
  * select queries:
1241
1248
  *
1242
1249
  * ```ts
1243
- * const numAffectedRows = await db
1250
+ * const result = await db
1244
1251
  * .updateTable('person')
1245
1252
  * .set({
1246
1253
  * first_name: 'Jennifer',
@@ -1249,9 +1256,11 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1249
1256
  * })
1250
1257
  * .where('id', '=', 1)
1251
1258
  * .executeTakeFirst()
1259
+ *
1260
+ * console.log(result.numUpdatedRows)
1252
1261
  * ```
1253
1262
  *
1254
- * The generated SQL (postgresql):
1263
+ * The generated SQL (PostgreSQL):
1255
1264
  *
1256
1265
  * ```sql
1257
1266
  * update "person" set
@@ -1265,9 +1274,13 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1265
1274
  /**
1266
1275
  * Allows you to return data from modified rows.
1267
1276
  *
1268
- * On supported databases like postgres, this method can be chained to
1277
+ * On supported databases like PostgreSQL, this method can be chained to
1269
1278
  * `insert`, `update` and `delete` queries to return data.
1270
1279
  *
1280
+ * Note that on SQLite you need to give aliases for the expressions to avoid
1281
+ * [this bug](https://sqlite.org/forum/forumpost/033daf0b32) in SQLite.
1282
+ * For example `.returning('id as id')`.
1283
+ *
1271
1284
  * Also see the {@link QueryBuilder.returningAll | returningAll} method.
1272
1285
  *
1273
1286
  * @example
@@ -1314,6 +1327,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1314
1327
  * last_name: 'Aniston'
1315
1328
  * })
1316
1329
  * .returning([
1330
+ * 'id as id',
1317
1331
  * raw<string>(`concat(first_name, ' ', last_name)`).as('full_name'),
1318
1332
  * (qb) => qb.subQuery('pets').select('pet.id').limit(1).as('first_pet_id')
1319
1333
  * ])
@@ -1324,7 +1338,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1324
1338
  returning<S extends SelectExpression<DB, TB>>(selection: S): QueryBuilderWithReturning<DB, TB, O, S>;
1325
1339
  /**
1326
1340
  * Adds a `returning *` to an insert/update/delete query on databases
1327
- * that support `returning` such as postgres.
1341
+ * that support `returning` such as PostgreSQL.
1328
1342
  */
1329
1343
  returningAll(): QueryBuilder<DB, TB, DB[TB]>;
1330
1344
  /**
@@ -1346,7 +1360,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1346
1360
  * .execute()
1347
1361
  * ```
1348
1362
  *
1349
- * The generated SQL (postgresql):
1363
+ * The generated SQL (PostgreSQL):
1350
1364
  *
1351
1365
  * ```sql
1352
1366
  * select "person"."first_name" as "fn"
@@ -1373,7 +1387,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1373
1387
  * .execute()
1374
1388
  * ```
1375
1389
  *
1376
- * The generated SQL (postgresql):
1390
+ * The generated SQL (PostgreSQL):
1377
1391
  *
1378
1392
  * ```sql
1379
1393
  * select *
@@ -1405,7 +1419,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1405
1419
  * someQuery('fn')
1406
1420
  * ```
1407
1421
  *
1408
- * The generated SQL (postgresql):
1422
+ * The generated SQL (PostgreSQL):
1409
1423
  *
1410
1424
  * ```sql
1411
1425
  * select "person"."first_name" as "fn"
@@ -1429,7 +1443,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1429
1443
  * .execute()
1430
1444
  * ```
1431
1445
  *
1432
- * The generated SQL (postgresql):
1446
+ * The generated SQL (PostgreSQL):
1433
1447
  *
1434
1448
  * ```sql
1435
1449
  * select "first_name", max(id)
@@ -1457,7 +1471,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1457
1471
  * .execute()
1458
1472
  * ```
1459
1473
  *
1460
- * The generated SQL (postgresql):
1474
+ * The generated SQL (PostgreSQL):
1461
1475
  *
1462
1476
  * ```sql
1463
1477
  * select "first_name", "last_name", max(id)
@@ -1504,7 +1518,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1504
1518
  * someQuery('first_name')
1505
1519
  * ```
1506
1520
  *
1507
- * The generated SQL (postgresql):
1521
+ * The generated SQL (PostgreSQL):
1508
1522
  *
1509
1523
  * ```sql
1510
1524
  * select "first_name"
@@ -1648,12 +1662,12 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1648
1662
  *
1649
1663
  * Also see the {@link executeTakeFirst} and {@link executeTakeFirstOrThrow} methods.
1650
1664
  */
1651
- execute(): Promise<ManyResultRowType<O>[]>;
1665
+ execute(): Promise<O[]>;
1652
1666
  /**
1653
1667
  * Executes the query and returns the first result or undefined if
1654
1668
  * the query returned no result.
1655
1669
  */
1656
- executeTakeFirst(): Promise<SingleResultRowType<O>>;
1670
+ executeTakeFirst(): Promise<SingleResultType<O>>;
1657
1671
  /**
1658
1672
  * Executes the query and returns the first result or throws if
1659
1673
  * the query returned no result.
@@ -1662,7 +1676,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1662
1676
  * provide a custom error class as the only argument to throw a different
1663
1677
  * error.
1664
1678
  */
1665
- executeTakeFirstOrThrow(errorConstructor?: NoResultErrorConstructor): Promise<NonEmptySingleResultRowType<O>>;
1679
+ executeTakeFirstOrThrow(errorConstructor?: NoResultErrorConstructor): Promise<O>;
1666
1680
  }
1667
1681
  export interface QueryBuilderProps {
1668
1682
  readonly queryId: QueryId;