kysely 0.9.8 → 0.11.0

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 (220) hide show
  1. package/README.md +22 -16
  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/postgres/postgres-dialect.d.ts +2 -2
  7. package/dist/cjs/dialect/postgres/postgres-driver.js +8 -19
  8. package/dist/cjs/dialect/sqlite/sqlite-adapter.d.ts +7 -0
  9. package/dist/cjs/dialect/sqlite/sqlite-adapter.js +18 -0
  10. package/dist/cjs/dialect/sqlite/sqlite-dialect.d.ts +64 -0
  11. package/dist/cjs/dialect/sqlite/sqlite-dialect.js +33 -0
  12. package/dist/cjs/dialect/sqlite/sqlite-driver.d.ts +14 -0
  13. package/dist/cjs/dialect/sqlite/sqlite-driver.js +116 -0
  14. package/dist/cjs/dialect/sqlite/sqlite-introspector.d.ts +7 -0
  15. package/dist/cjs/dialect/sqlite/sqlite-introspector.js +31 -0
  16. package/dist/cjs/dialect/sqlite/sqlite-query-compiler.d.ts +7 -0
  17. package/dist/cjs/dialect/sqlite/sqlite-query-compiler.js +19 -0
  18. package/dist/cjs/driver/database-connection.d.ts +2 -2
  19. package/dist/cjs/driver/runtime-driver.js +3 -4
  20. package/dist/cjs/index.d.ts +10 -0
  21. package/dist/cjs/index.js +10 -0
  22. package/dist/cjs/kysely.d.ts +6 -4
  23. package/dist/cjs/kysely.js +6 -4
  24. package/dist/cjs/migration/migration.d.ts +1 -1
  25. package/dist/cjs/migration/migration.js +3 -3
  26. package/dist/cjs/operation-node/column-definition-node.d.ts +8 -6
  27. package/dist/cjs/operation-node/column-definition-node.js +4 -4
  28. package/dist/cjs/operation-node/create-schema-node.d.ts +1 -2
  29. package/dist/cjs/operation-node/create-table-node.d.ts +2 -3
  30. package/dist/cjs/operation-node/create-table-node.js +2 -2
  31. package/dist/cjs/operation-node/create-view-node.d.ts +23 -0
  32. package/dist/cjs/operation-node/create-view-node.js +25 -0
  33. package/dist/cjs/operation-node/default-value-node.d.ts +14 -0
  34. package/dist/cjs/operation-node/default-value-node.js +18 -0
  35. package/dist/cjs/operation-node/drop-index-node.d.ts +1 -2
  36. package/dist/cjs/operation-node/drop-schema-node.d.ts +2 -3
  37. package/dist/cjs/operation-node/drop-schema-node.js +3 -3
  38. package/dist/cjs/operation-node/drop-table-node.d.ts +2 -3
  39. package/dist/cjs/operation-node/drop-table-node.js +2 -2
  40. package/dist/cjs/operation-node/drop-view-node.d.ts +17 -0
  41. package/dist/cjs/operation-node/drop-view-node.js +25 -0
  42. package/dist/cjs/operation-node/generated-always-as-node.d.ts +16 -0
  43. package/dist/cjs/operation-node/generated-always-as-node.js +25 -0
  44. package/dist/cjs/operation-node/having-node.d.ts +4 -8
  45. package/dist/cjs/operation-node/having-node.js +3 -3
  46. package/dist/cjs/operation-node/join-node.d.ts +6 -9
  47. package/dist/cjs/operation-node/join-node.js +10 -7
  48. package/dist/cjs/operation-node/on-node.d.ts +14 -0
  49. package/dist/cjs/operation-node/on-node.js +28 -0
  50. package/dist/cjs/operation-node/operation-node-transformer.d.ts +10 -0
  51. package/dist/cjs/operation-node/operation-node-transformer.js +55 -11
  52. package/dist/cjs/operation-node/operation-node-visitor.d.ts +11 -0
  53. package/dist/cjs/operation-node/operation-node-visitor.js +11 -2
  54. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  55. package/dist/cjs/operation-node/query-node.d.ts +3 -3
  56. package/dist/cjs/operation-node/raw-node.d.ts +1 -1
  57. package/dist/cjs/operation-node/select-query-node.d.ts +5 -5
  58. package/dist/cjs/operation-node/select-query-node.js +1 -1
  59. package/dist/cjs/operation-node/where-node.d.ts +4 -8
  60. package/dist/cjs/operation-node/where-node.js +3 -3
  61. package/dist/cjs/parser/filter-parser.js +1 -1
  62. package/dist/cjs/parser/returning-parser.d.ts +4 -2
  63. package/dist/cjs/parser/select-parser.d.ts +2 -2
  64. package/dist/cjs/plugin/immediate-value.ts/immediate-value-plugin.d.ts +17 -0
  65. package/dist/cjs/plugin/immediate-value.ts/immediate-value-plugin.js +22 -0
  66. package/dist/cjs/plugin/immediate-value.ts/immediate-value-transformer.d.ts +13 -0
  67. package/dist/cjs/plugin/immediate-value.ts/immediate-value-transformer.js +21 -0
  68. package/dist/cjs/plugin/with-schema/with-schema-transformer.d.ts +4 -0
  69. package/dist/cjs/plugin/with-schema/with-schema-transformer.js +6 -0
  70. package/dist/cjs/query-builder/delete-result.d.ts +5 -0
  71. package/dist/cjs/query-builder/delete-result.js +13 -0
  72. package/dist/cjs/query-builder/expression-builder.d.ts +2 -2
  73. package/dist/cjs/query-builder/expression-builder.js +1 -1
  74. package/dist/cjs/query-builder/function-builder.d.ts +5 -5
  75. package/dist/cjs/query-builder/function-builder.js +3 -3
  76. package/dist/cjs/query-builder/insert-result.d.ts +27 -0
  77. package/dist/cjs/query-builder/insert-result.js +35 -0
  78. package/dist/cjs/query-builder/query-builder.d.ts +91 -81
  79. package/dist/cjs/query-builder/query-builder.js +38 -41
  80. package/dist/cjs/query-builder/update-result.d.ts +5 -0
  81. package/dist/cjs/query-builder/update-result.js +13 -0
  82. package/dist/cjs/query-compiler/compiled-query.d.ts +5 -0
  83. package/dist/cjs/query-compiler/compiled-query.js +12 -0
  84. package/dist/cjs/query-compiler/default-query-compiler.d.ts +10 -0
  85. package/dist/cjs/query-compiler/default-query-compiler.js +82 -23
  86. package/dist/cjs/query-compiler/query-compiler.d.ts +3 -1
  87. package/dist/cjs/query-creator.d.ts +36 -26
  88. package/dist/cjs/query-creator.js +25 -17
  89. package/dist/cjs/raw-builder/raw-builder.d.ts +1 -1
  90. package/dist/cjs/schema/alter-table-builder.d.ts +6 -2
  91. package/dist/cjs/schema/alter-table-builder.js +28 -4
  92. package/dist/cjs/schema/column-definition-builder.d.ts +43 -2
  93. package/dist/cjs/schema/column-definition-builder.js +23 -6
  94. package/dist/cjs/schema/create-schema-builder.js +1 -1
  95. package/dist/cjs/schema/create-table-builder.d.ts +7 -8
  96. package/dist/cjs/schema/create-table-builder.js +8 -9
  97. package/dist/cjs/schema/create-view-builder.d.ts +28 -0
  98. package/dist/cjs/schema/create-view-builder.js +84 -0
  99. package/dist/cjs/schema/drop-index-builder.js +1 -1
  100. package/dist/cjs/schema/drop-schema-builder.js +3 -1
  101. package/dist/cjs/schema/drop-table-builder.js +3 -1
  102. package/dist/cjs/schema/drop-view-builder.d.ts +20 -0
  103. package/dist/cjs/schema/drop-view-builder.js +39 -0
  104. package/dist/cjs/schema/schema.d.ts +30 -3
  105. package/dist/cjs/schema/schema.js +44 -3
  106. package/dist/cjs/util/dynamic-import.d.ts +2 -0
  107. package/dist/cjs/util/dynamic-import.js +32 -0
  108. package/dist/cjs/util/performance-now.d.ts +1 -0
  109. package/dist/cjs/util/performance-now.js +13 -0
  110. package/dist/cjs/util/type-utils.d.ts +4 -15
  111. package/dist/esm/dialect/dialect-adapter.d.ts +3 -2
  112. package/dist/esm/dialect/mysql/mysql-adapter.js +1 -1
  113. package/dist/esm/dialect/mysql/mysql-dialect.d.ts +3 -3
  114. package/dist/esm/dialect/mysql/mysql-driver.js +26 -33
  115. package/dist/esm/dialect/postgres/postgres-dialect.d.ts +2 -2
  116. package/dist/esm/dialect/postgres/postgres-driver.js +8 -19
  117. package/dist/esm/dialect/sqlite/sqlite-adapter.d.ts +7 -0
  118. package/dist/esm/dialect/sqlite/sqlite-adapter.js +14 -0
  119. package/dist/esm/dialect/sqlite/sqlite-dialect.d.ts +64 -0
  120. package/dist/esm/dialect/sqlite/sqlite-dialect.js +29 -0
  121. package/dist/esm/dialect/sqlite/sqlite-driver.d.ts +14 -0
  122. package/dist/esm/dialect/sqlite/sqlite-driver.js +112 -0
  123. package/dist/esm/dialect/sqlite/sqlite-introspector.d.ts +7 -0
  124. package/dist/esm/dialect/sqlite/sqlite-introspector.js +27 -0
  125. package/dist/esm/dialect/sqlite/sqlite-query-compiler.d.ts +7 -0
  126. package/dist/esm/dialect/sqlite/sqlite-query-compiler.js +15 -0
  127. package/dist/esm/driver/database-connection.d.ts +2 -2
  128. package/dist/esm/driver/runtime-driver.js +3 -4
  129. package/dist/esm/index.d.ts +10 -0
  130. package/dist/esm/index.js +10 -0
  131. package/dist/esm/kysely.d.ts +6 -4
  132. package/dist/esm/kysely.js +6 -4
  133. package/dist/esm/migration/migration.d.ts +1 -1
  134. package/dist/esm/migration/migration.js +3 -3
  135. package/dist/esm/operation-node/column-definition-node.d.ts +8 -6
  136. package/dist/esm/operation-node/column-definition-node.js +4 -4
  137. package/dist/esm/operation-node/create-schema-node.d.ts +1 -2
  138. package/dist/esm/operation-node/create-table-node.d.ts +2 -3
  139. package/dist/esm/operation-node/create-table-node.js +2 -2
  140. package/dist/esm/operation-node/create-view-node.d.ts +23 -0
  141. package/dist/esm/operation-node/create-view-node.js +22 -0
  142. package/dist/esm/operation-node/default-value-node.d.ts +14 -0
  143. package/dist/esm/operation-node/default-value-node.js +15 -0
  144. package/dist/esm/operation-node/drop-index-node.d.ts +1 -2
  145. package/dist/esm/operation-node/drop-schema-node.d.ts +2 -3
  146. package/dist/esm/operation-node/drop-schema-node.js +3 -3
  147. package/dist/esm/operation-node/drop-table-node.d.ts +2 -3
  148. package/dist/esm/operation-node/drop-table-node.js +2 -2
  149. package/dist/esm/operation-node/drop-view-node.d.ts +17 -0
  150. package/dist/esm/operation-node/drop-view-node.js +22 -0
  151. package/dist/esm/operation-node/generated-always-as-node.d.ts +16 -0
  152. package/dist/esm/operation-node/generated-always-as-node.js +22 -0
  153. package/dist/esm/operation-node/having-node.d.ts +4 -8
  154. package/dist/esm/operation-node/having-node.js +3 -3
  155. package/dist/esm/operation-node/join-node.d.ts +6 -9
  156. package/dist/esm/operation-node/join-node.js +10 -7
  157. package/dist/esm/operation-node/on-node.d.ts +14 -0
  158. package/dist/esm/operation-node/on-node.js +25 -0
  159. package/dist/esm/operation-node/operation-node-transformer.d.ts +10 -0
  160. package/dist/esm/operation-node/operation-node-transformer.js +55 -11
  161. package/dist/esm/operation-node/operation-node-visitor.d.ts +11 -0
  162. package/dist/esm/operation-node/operation-node-visitor.js +11 -2
  163. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  164. package/dist/esm/operation-node/query-node.d.ts +3 -3
  165. package/dist/esm/operation-node/raw-node.d.ts +1 -1
  166. package/dist/esm/operation-node/select-query-node.d.ts +5 -5
  167. package/dist/esm/operation-node/select-query-node.js +1 -1
  168. package/dist/esm/operation-node/where-node.d.ts +4 -8
  169. package/dist/esm/operation-node/where-node.js +3 -3
  170. package/dist/esm/parser/filter-parser.js +1 -1
  171. package/dist/esm/parser/returning-parser.d.ts +4 -2
  172. package/dist/esm/parser/select-parser.d.ts +2 -2
  173. package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.d.ts +17 -0
  174. package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.js +18 -0
  175. package/dist/esm/plugin/immediate-value.ts/immediate-value-transformer.d.ts +13 -0
  176. package/dist/esm/plugin/immediate-value.ts/immediate-value-transformer.js +17 -0
  177. package/dist/esm/plugin/with-schema/with-schema-transformer.d.ts +4 -0
  178. package/dist/esm/plugin/with-schema/with-schema-transformer.js +6 -0
  179. package/dist/esm/query-builder/delete-result.d.ts +5 -0
  180. package/dist/esm/query-builder/delete-result.js +9 -0
  181. package/dist/esm/query-builder/expression-builder.d.ts +2 -2
  182. package/dist/esm/query-builder/expression-builder.js +1 -1
  183. package/dist/esm/query-builder/function-builder.d.ts +5 -5
  184. package/dist/esm/query-builder/function-builder.js +3 -3
  185. package/dist/esm/query-builder/insert-result.d.ts +27 -0
  186. package/dist/esm/query-builder/insert-result.js +31 -0
  187. package/dist/esm/query-builder/query-builder.d.ts +91 -81
  188. package/dist/esm/query-builder/query-builder.js +38 -41
  189. package/dist/esm/query-builder/update-result.d.ts +5 -0
  190. package/dist/esm/query-builder/update-result.js +9 -0
  191. package/dist/esm/query-compiler/compiled-query.d.ts +5 -0
  192. package/dist/esm/query-compiler/compiled-query.js +11 -1
  193. package/dist/esm/query-compiler/default-query-compiler.d.ts +10 -0
  194. package/dist/esm/query-compiler/default-query-compiler.js +82 -23
  195. package/dist/esm/query-compiler/query-compiler.d.ts +3 -1
  196. package/dist/esm/query-creator.d.ts +36 -26
  197. package/dist/esm/query-creator.js +25 -17
  198. package/dist/esm/raw-builder/raw-builder.d.ts +1 -1
  199. package/dist/esm/schema/alter-table-builder.d.ts +6 -2
  200. package/dist/esm/schema/alter-table-builder.js +28 -4
  201. package/dist/esm/schema/column-definition-builder.d.ts +43 -2
  202. package/dist/esm/schema/column-definition-builder.js +23 -6
  203. package/dist/esm/schema/create-schema-builder.js +1 -1
  204. package/dist/esm/schema/create-table-builder.d.ts +7 -8
  205. package/dist/esm/schema/create-table-builder.js +8 -9
  206. package/dist/esm/schema/create-view-builder.d.ts +28 -0
  207. package/dist/esm/schema/create-view-builder.js +80 -0
  208. package/dist/esm/schema/drop-index-builder.js +1 -1
  209. package/dist/esm/schema/drop-schema-builder.js +3 -1
  210. package/dist/esm/schema/drop-table-builder.js +3 -1
  211. package/dist/esm/schema/drop-view-builder.d.ts +20 -0
  212. package/dist/esm/schema/drop-view-builder.js +35 -0
  213. package/dist/esm/schema/schema.d.ts +30 -3
  214. package/dist/esm/schema/schema.js +44 -3
  215. package/dist/esm/util/dynamic-import.d.ts +2 -0
  216. package/dist/esm/util/dynamic-import.js +27 -0
  217. package/dist/esm/util/performance-now.d.ts +1 -0
  218. package/dist/esm/util/performance-now.js +9 -0
  219. package/dist/esm/util/type-utils.d.ts +4 -15
  220. package/package.json +5 -3
@@ -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, 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)
@@ -237,7 +237,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
237
237
  * .whereRef('person.first_name', '=', 'pet.name')
238
238
  * ```
239
239
  *
240
- * The generated SQL (postgresql):
240
+ * The generated SQL (PostgreSQL):
241
241
  *
242
242
  * ```sql
243
243
  * select * from "person", "pet" where "person"."first_name" = "pet"."name"
@@ -260,7 +260,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
260
260
  * .execute()
261
261
  * ```
262
262
  *
263
- * The generated SQL (postgresql):
263
+ * The generated SQL (PostgreSQL):
264
264
  *
265
265
  * ```sql
266
266
  * select "person".*, (
@@ -290,7 +290,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
290
290
  * .execute()
291
291
  * ```
292
292
  *
293
- * The generated SQL (postgresql):
293
+ * The generated SQL (PostgreSQL):
294
294
  *
295
295
  * ```sql
296
296
  * select * from "person" where "id" = 1 or "id" = 2
@@ -310,7 +310,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
310
310
  * .execute()
311
311
  * ```
312
312
  *
313
- * The generated SQL (postgresql):
313
+ * The generated SQL (PostgreSQL):
314
314
  *
315
315
  * ```sql
316
316
  * select * from "person" (where "id" = 1 or "id" = 2)
@@ -331,7 +331,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
331
331
  * .execute()
332
332
  * ```
333
333
  *
334
- * The generated SQL (postgresql):
334
+ * The generated SQL (PostgreSQL):
335
335
  *
336
336
  * ```sql
337
337
  * select * from "person" (where "id" = 1 or "id" = 2)
@@ -367,7 +367,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
367
367
  * .execute()
368
368
  * ```
369
369
  *
370
- * The generated SQL (postgresql):
370
+ * The generated SQL (PostgreSQL):
371
371
  *
372
372
  * ```sql
373
373
  * select * from "person"
@@ -393,7 +393,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
393
393
  * )
394
394
  * ```
395
395
  *
396
- * The generated SQL (postgresql):
396
+ * The generated SQL (PostgreSQL):
397
397
  *
398
398
  * ```sql
399
399
  * select * from "person"
@@ -491,7 +491,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
491
491
  * persons[0].id
492
492
  * ```
493
493
  *
494
- * The generated SQL (postgresql):
494
+ * The generated SQL (PostgreSQL):
495
495
  *
496
496
  * ```sql
497
497
  * select "id" from "person" where "first_name" = $1
@@ -508,7 +508,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
508
508
  * persons[0].id
509
509
  * ```
510
510
  *
511
- * The generated SQL (postgresql):
511
+ * The generated SQL (PostgreSQL):
512
512
  *
513
513
  * ```sql
514
514
  * select "person"."id" from "person", "pet"
@@ -526,7 +526,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
526
526
  * persons[0].first_name
527
527
  * ```
528
528
  *
529
- * The generated SQL (postgresql):
529
+ * The generated SQL (PostgreSQL):
530
530
  *
531
531
  * ```sql
532
532
  * select "person"."id", "first_name" from "person"
@@ -547,7 +547,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
547
547
  * persons[0].ln
548
548
  * ```
549
549
  *
550
- * The generated SQL (postgresql):
550
+ * The generated SQL (PostgreSQL):
551
551
  *
552
552
  * ```sql
553
553
  * select
@@ -578,7 +578,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
578
578
  * persons[0].full_name
579
579
  * ```
580
580
  *
581
- * The generated SQL (postgresql):
581
+ * The generated SQL (PostgreSQL):
582
582
  *
583
583
  * ```sql
584
584
  * select
@@ -644,14 +644,14 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
644
644
  * @example
645
645
  * ```ts
646
646
  * await db.selectFrom('person')
647
- * .selectAll('person')
648
- * .distinctOn('person.id')
649
647
  * .innerJoin('pet', 'pet.owner_id', 'person.id')
650
648
  * .where('pet.name', '=', 'Doggo')
649
+ * .distinctOn('person.id')
650
+ * .selectAll('person')
651
651
  * .execute()
652
652
  * ```
653
653
  *
654
- * The generated SQL (postgresql):
654
+ * The generated SQL (PostgreSQL):
655
655
  *
656
656
  * ```sql
657
657
  * select distinct on ("person"."id") "person".*
@@ -673,7 +673,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
673
673
  * .execute()
674
674
  * ```
675
675
  *
676
- * The generated SQL (postgresql):
676
+ * The generated SQL (PostgreSQL):
677
677
  *
678
678
  * ```sql
679
679
  * select distinct "first_name" from "person"
@@ -715,7 +715,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
715
715
  * .execute()
716
716
  * ```
717
717
  *
718
- * The generated SQL (postgresql):
718
+ * The generated SQL (PostgreSQL):
719
719
  *
720
720
  * ```sql
721
721
  * select * from "person"
@@ -729,7 +729,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
729
729
  * .execute()
730
730
  * ```
731
731
  *
732
- * The generated SQL (postgresql):
732
+ * The generated SQL (PostgreSQL):
733
733
  *
734
734
  * ```sql
735
735
  * select "person".* from "person"
@@ -743,7 +743,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
743
743
  * .execute()
744
744
  * ```
745
745
  *
746
- * The generated SQL (postgresql):
746
+ * The generated SQL (PostgreSQL):
747
747
  *
748
748
  * ```sql
749
749
  * select "person".*, "pet".* from "person", "pet"
@@ -761,21 +761,20 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
761
761
  * ```ts
762
762
  * const result = await db
763
763
  * .selectFrom('person')
764
- * .selectAll()
765
764
  * .innerJoin('pet', 'pet.owner_id', 'person.id')
765
+ * // `select` needs to come after the call to `innerJoin` so
766
+ * // that you can select from the joined table.
767
+ * .select('person.id', 'pet.name')
766
768
  * .execute()
767
769
  *
768
- * // The result has all `Person` columns
769
- * result[0].first_name
770
- *
771
- * // The result has all `Pet` columns
772
- * result[0].species
770
+ * result[0].id
771
+ * result[0].name
773
772
  * ```
774
773
  *
775
- * The generated SQL (postgresql):
774
+ * The generated SQL (PostgreSQL):
776
775
  *
777
776
  * ```sql
778
- * select *
777
+ * select "person"."id", "pet"."name"
779
778
  * from "person"
780
779
  * inner join "pet"
781
780
  * on "pet"."owner_id" = "person"."id"
@@ -786,13 +785,13 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
786
785
  *
787
786
  * ```ts
788
787
  * await db.selectFrom('person')
789
- * .selectAll()
790
788
  * .innerJoin('pet as p', 'p.owner_id', 'person.id')
791
789
  * .where('p.name', '=', 'Doggo')
790
+ * .selectAll()
792
791
  * .execute()
793
792
  * ```
794
793
  *
795
- * The generated SQL (postgresql):
794
+ * The generated SQL (PostgreSQL):
796
795
  *
797
796
  * ```sql
798
797
  * select *
@@ -813,17 +812,17 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
813
812
  *
814
813
  * ```ts
815
814
  * await db.selectFrom('person')
816
- * .selectAll()
817
815
  * .innerJoin(
818
816
  * 'pet',
819
817
  * (join) => join
820
818
  * .onRef('pet.owner_id', '=', 'person.id')
821
819
  * .on('pet.name', '=', 'Doggo')
822
820
  * )
821
+ * .selectAll()
823
822
  * .execute()
824
823
  * ```
825
824
  *
826
- * The generated SQL (postgresql):
825
+ * The generated SQL (PostgreSQL):
827
826
  *
828
827
  * ```sql
829
828
  * select *
@@ -839,7 +838,6 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
839
838
  *
840
839
  * ```ts
841
840
  * await db.selectFrom('person')
842
- * .selectAll()
843
841
  * .innerJoin(
844
842
  * (qb) => qb.subQuery('pet')
845
843
  * .select(['owner_id', 'name'])
@@ -848,10 +846,11 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
848
846
  * 'doggos.owner_id',
849
847
  * 'person.id',
850
848
  * )
849
+ * .selectAll()
851
850
  * .execute()
852
851
  * ```
853
852
  *
854
- * The generated SQL (postgresql):
853
+ * The generated SQL (PostgreSQL):
855
854
  *
856
855
  * ```sql
857
856
  * select *
@@ -890,19 +889,19 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
890
889
  * This method takes an object whose keys are column names and values are
891
890
  * values to insert. In addition to the column's type, the values can be
892
891
  * {@link Kysely.raw | raw} instances, select queries or the
893
- * {@link Kysely.generated} placeholder.
892
+ * {@link Kysely.generated | generated} placeholder.
894
893
  *
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
894
+ * You must provide all values defined by the interface of the table you
895
+ * are inserting into. Values that are generated by the database like auto incrementing
897
896
  * identifiers can be marked with the {@link Kysely.generated} placeholder unless you
898
897
  * want to insert a specific value instead of the generated default.
899
898
  *
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.
899
+ * The return value of an `insert` query is an instance of {@link InsertResult}. The
900
+ * {@link InsertResult.insertId | insertId} field holds the auto incremented primary
901
+ * key if the database returned one.
902
+ *
903
+ * On PostgreSQL and some other dialects, you need to call `returning` to get
904
+ * something out of the query.
906
905
  *
907
906
  * @example
908
907
  * Insert a row into `person`:
@@ -917,16 +916,16 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
917
916
  * .executeTakeFirstOrThrow()
918
917
  * ```
919
918
  *
920
- * The generated SQL (postgresql):
919
+ * The generated SQL (PostgreSQL):
921
920
  *
922
921
  * ```sql
923
922
  * insert into "person" ("first_name", "last_name") values ($1, $2)
924
923
  * ```
925
924
  *
926
925
  * @example
927
- * On dialects that support it (for example postgres) you can insert multiple
926
+ * On dialects that support it (for example PostgreSQL) you can insert multiple
928
927
  * 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
928
+ * dialect-specific. Some databases may only return the id of the *last* inserted
930
929
  * row and some return nothing at all unless you call `returning`.
931
930
  *
932
931
  * ```ts
@@ -944,7 +943,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
944
943
  * .execute()
945
944
  * ```
946
945
  *
947
- * The generated SQL (postgresql):
946
+ * The generated SQL (PostgreSQL):
948
947
  *
949
948
  * ```sql
950
949
  * insert into "person" ("first_name", "last_name") values (($1, $2), ($3, $4))
@@ -969,7 +968,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
969
968
  * row.id
970
969
  * ```
971
970
  *
972
- * The generated SQL (postgresql):
971
+ * The generated SQL (PostgreSQL):
973
972
  *
974
973
  * ```sql
975
974
  * insert into "person" ("first_name", "last_name") values ($1, $2) returning "id"
@@ -980,7 +979,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
980
979
  * select queries:
981
980
  *
982
981
  * ```ts
983
- * const maybeId = await db
982
+ * const result = await db
984
983
  * .insertInto('person')
985
984
  * .values({
986
985
  * id: db.generated,
@@ -989,9 +988,11 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
989
988
  * age: db.selectFrom('person').select(raw('avg(age)')),
990
989
  * })
991
990
  * .executeTakeFirst()
991
+ *
992
+ * console.log(result.insertId)
992
993
  * ```
993
994
  *
994
- * The generated SQL (postgresql):
995
+ * The generated SQL (PostgreSQL):
995
996
  *
996
997
  * ```sql
997
998
  * insert into "person" ("first_name", "last_name", "age")
@@ -1010,7 +1011,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1010
1011
  * database, calling `onConflictDoNothing('name')` will ignore the conflict
1011
1012
  * and do nothing. By default the query would throw.
1012
1013
  *
1013
- * Only some dialects like postgres and sqlite implement the `on conflict`
1014
+ * Only some dialects like PostgreSQL and SQLite implement the `on conflict`
1014
1015
  * statement. On MySQL you should use the {@link ignore} method to achieve
1015
1016
  * similar results.
1016
1017
  *
@@ -1030,7 +1031,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1030
1031
  * .execute()
1031
1032
  * ```
1032
1033
  *
1033
- * The generated SQL (postgresql):
1034
+ * The generated SQL (PostgreSQL):
1034
1035
  *
1035
1036
  * ```sql
1036
1037
  * insert into "pet" ("name", "species")
@@ -1055,7 +1056,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1055
1056
  * .execute()
1056
1057
  * ```
1057
1058
  *
1058
- * The generated SQL (postgresql):
1059
+ * The generated SQL (PostgreSQL):
1059
1060
  *
1060
1061
  * ```sql
1061
1062
  * insert into "pet" ("name", "species")
@@ -1104,7 +1105,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1104
1105
  * method accepts.
1105
1106
  *
1106
1107
  * 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}
1108
+ * like PostgreSQL and SQLite. On MySQL you should use the {@link onDuplicateKeyUpdate}
1108
1109
  * method instead.
1109
1110
  *
1110
1111
  * Also see the {@link QueryBuilder.onConflictDoNothing | onConflictDoNothing}
@@ -1123,7 +1124,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1123
1124
  * .execute()
1124
1125
  * ```
1125
1126
  *
1126
- * The generated SQL (postgresql):
1127
+ * The generated SQL (PostgreSQL):
1127
1128
  *
1128
1129
  * ```sql
1129
1130
  * insert into "pet" ("name", "species")
@@ -1149,7 +1150,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1149
1150
  * .execute()
1150
1151
  * ```
1151
1152
  *
1152
- * The generated SQL (postgresql):
1153
+ * The generated SQL (PostgreSQL):
1153
1154
  *
1154
1155
  * ```sql
1155
1156
  * insert into "pet" ("name", "species")
@@ -1186,15 +1187,15 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1186
1187
  * values to update. In addition to the column's type, the values can be `raw`
1187
1188
  * instances or select queries.
1188
1189
  *
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.
1190
+ * The return value of an update query is an instance of {@link UpdateResult}.
1191
+ * You can use the {@link QueryBuilder.returning | returning} method on
1192
+ * supported databases to get out the updated rows.
1192
1193
  *
1193
1194
  * @example
1194
1195
  * Update a row in `person` table:
1195
1196
  *
1196
1197
  * ```ts
1197
- * const numAffectedRows = await db
1198
+ * const result = await db
1198
1199
  * .updateTable('person')
1199
1200
  * .set({
1200
1201
  * first_name: 'Jennifer',
@@ -1202,9 +1203,11 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1202
1203
  * })
1203
1204
  * .where('id', '=', 1)
1204
1205
  * .executeTakeFirst()
1206
+ *
1207
+ * console.log(result.numUpdatedRows)
1205
1208
  * ```
1206
1209
  *
1207
- * The generated SQL (postgresql):
1210
+ * The generated SQL (PostgreSQL):
1208
1211
  *
1209
1212
  * ```sql
1210
1213
  * update "person" set "first_name" = $1, "last_name" = $2 where "id" = $3
@@ -1229,7 +1232,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1229
1232
  * row.id
1230
1233
  * ```
1231
1234
  *
1232
- * The generated SQL (postgresql):
1235
+ * The generated SQL (PostgreSQL):
1233
1236
  *
1234
1237
  * ```sql
1235
1238
  * update "person" set "first_name" = $1, "last_name" = $2 where "id" = $3 returning "id"
@@ -1240,7 +1243,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1240
1243
  * select queries:
1241
1244
  *
1242
1245
  * ```ts
1243
- * const numAffectedRows = await db
1246
+ * const result = await db
1244
1247
  * .updateTable('person')
1245
1248
  * .set({
1246
1249
  * first_name: 'Jennifer',
@@ -1249,9 +1252,11 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1249
1252
  * })
1250
1253
  * .where('id', '=', 1)
1251
1254
  * .executeTakeFirst()
1255
+ *
1256
+ * console.log(result.numUpdatedRows)
1252
1257
  * ```
1253
1258
  *
1254
- * The generated SQL (postgresql):
1259
+ * The generated SQL (PostgreSQL):
1255
1260
  *
1256
1261
  * ```sql
1257
1262
  * update "person" set
@@ -1265,9 +1270,13 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1265
1270
  /**
1266
1271
  * Allows you to return data from modified rows.
1267
1272
  *
1268
- * On supported databases like postgres, this method can be chained to
1273
+ * On supported databases like PostgreSQL, this method can be chained to
1269
1274
  * `insert`, `update` and `delete` queries to return data.
1270
1275
  *
1276
+ * Note that on SQLite you need to give aliases for the expressions to avoid
1277
+ * [this bug](https://sqlite.org/forum/forumpost/033daf0b32) in SQLite.
1278
+ * For example `.returning('id as id')`.
1279
+ *
1271
1280
  * Also see the {@link QueryBuilder.returningAll | returningAll} method.
1272
1281
  *
1273
1282
  * @example
@@ -1314,6 +1323,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1314
1323
  * last_name: 'Aniston'
1315
1324
  * })
1316
1325
  * .returning([
1326
+ * 'id as id',
1317
1327
  * raw<string>(`concat(first_name, ' ', last_name)`).as('full_name'),
1318
1328
  * (qb) => qb.subQuery('pets').select('pet.id').limit(1).as('first_pet_id')
1319
1329
  * ])
@@ -1324,7 +1334,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1324
1334
  returning<S extends SelectExpression<DB, TB>>(selection: S): QueryBuilderWithReturning<DB, TB, O, S>;
1325
1335
  /**
1326
1336
  * Adds a `returning *` to an insert/update/delete query on databases
1327
- * that support `returning` such as postgres.
1337
+ * that support `returning` such as PostgreSQL.
1328
1338
  */
1329
1339
  returningAll(): QueryBuilder<DB, TB, DB[TB]>;
1330
1340
  /**
@@ -1346,7 +1356,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1346
1356
  * .execute()
1347
1357
  * ```
1348
1358
  *
1349
- * The generated SQL (postgresql):
1359
+ * The generated SQL (PostgreSQL):
1350
1360
  *
1351
1361
  * ```sql
1352
1362
  * select "person"."first_name" as "fn"
@@ -1373,7 +1383,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1373
1383
  * .execute()
1374
1384
  * ```
1375
1385
  *
1376
- * The generated SQL (postgresql):
1386
+ * The generated SQL (PostgreSQL):
1377
1387
  *
1378
1388
  * ```sql
1379
1389
  * select *
@@ -1405,7 +1415,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1405
1415
  * someQuery('fn')
1406
1416
  * ```
1407
1417
  *
1408
- * The generated SQL (postgresql):
1418
+ * The generated SQL (PostgreSQL):
1409
1419
  *
1410
1420
  * ```sql
1411
1421
  * select "person"."first_name" as "fn"
@@ -1429,7 +1439,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1429
1439
  * .execute()
1430
1440
  * ```
1431
1441
  *
1432
- * The generated SQL (postgresql):
1442
+ * The generated SQL (PostgreSQL):
1433
1443
  *
1434
1444
  * ```sql
1435
1445
  * select "first_name", max(id)
@@ -1457,7 +1467,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1457
1467
  * .execute()
1458
1468
  * ```
1459
1469
  *
1460
- * The generated SQL (postgresql):
1470
+ * The generated SQL (PostgreSQL):
1461
1471
  *
1462
1472
  * ```sql
1463
1473
  * select "first_name", "last_name", max(id)
@@ -1504,7 +1514,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1504
1514
  * someQuery('first_name')
1505
1515
  * ```
1506
1516
  *
1507
- * The generated SQL (postgresql):
1517
+ * The generated SQL (PostgreSQL):
1508
1518
  *
1509
1519
  * ```sql
1510
1520
  * select "first_name"
@@ -1648,12 +1658,12 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1648
1658
  *
1649
1659
  * Also see the {@link executeTakeFirst} and {@link executeTakeFirstOrThrow} methods.
1650
1660
  */
1651
- execute(): Promise<ManyResultRowType<O>[]>;
1661
+ execute(): Promise<O[]>;
1652
1662
  /**
1653
1663
  * Executes the query and returns the first result or undefined if
1654
1664
  * the query returned no result.
1655
1665
  */
1656
- executeTakeFirst(): Promise<SingleResultRowType<O>>;
1666
+ executeTakeFirst(): Promise<SingleResultType<O>>;
1657
1667
  /**
1658
1668
  * Executes the query and returns the first result or throws if
1659
1669
  * the query returned no result.
@@ -1662,7 +1672,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
1662
1672
  * provide a custom error class as the only argument to throw a different
1663
1673
  * error.
1664
1674
  */
1665
- executeTakeFirstOrThrow(errorConstructor?: NoResultErrorConstructor): Promise<NonEmptySingleResultRowType<O>>;
1675
+ executeTakeFirstOrThrow(errorConstructor?: NoResultErrorConstructor): Promise<O>;
1666
1676
  }
1667
1677
  export interface QueryBuilderProps {
1668
1678
  readonly queryId: QueryId;