kysely 0.27.2 → 0.27.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 (157) hide show
  1. package/dist/cjs/dialect/database-introspector.d.ts +1 -0
  2. package/dist/cjs/dialect/mssql/mssql-introspector.js +13 -2
  3. package/dist/cjs/dialect/mssql/mssql-query-compiler.d.ts +4 -0
  4. package/dist/cjs/dialect/mssql/mssql-query-compiler.js +8 -0
  5. package/dist/cjs/dialect/mysql/mysql-introspector.js +2 -0
  6. package/dist/cjs/dialect/postgres/postgres-dialect-config.d.ts +1 -1
  7. package/dist/cjs/dialect/postgres/postgres-driver.js +2 -1
  8. package/dist/cjs/dialect/postgres/postgres-introspector.js +2 -0
  9. package/dist/cjs/dialect/sqlite/sqlite-introspector.js +1 -0
  10. package/dist/cjs/driver/database-connection.d.ts +1 -1
  11. package/dist/cjs/expression/expression-builder.d.ts +30 -4
  12. package/dist/cjs/expression/expression-builder.js +5 -0
  13. package/dist/cjs/index.d.ts +7 -1
  14. package/dist/cjs/index.js +6 -0
  15. package/dist/cjs/operation-node/add-index-node.js +1 -1
  16. package/dist/cjs/operation-node/cast-node.d.ts +13 -0
  17. package/dist/cjs/operation-node/cast-node.js +19 -0
  18. package/dist/cjs/operation-node/column-definition-node.d.ts +1 -0
  19. package/dist/cjs/operation-node/data-type-node.d.ts +5 -1
  20. package/dist/cjs/operation-node/data-type-node.js +55 -1
  21. package/dist/cjs/operation-node/delete-query-node.d.ts +4 -0
  22. package/dist/cjs/operation-node/delete-query-node.js +12 -0
  23. package/dist/cjs/operation-node/fetch-node.d.ts +15 -0
  24. package/dist/cjs/operation-node/fetch-node.js +19 -0
  25. package/dist/cjs/operation-node/insert-query-node.d.ts +4 -1
  26. package/dist/cjs/operation-node/insert-query-node.js +5 -0
  27. package/dist/cjs/operation-node/join-node.d.ts +1 -1
  28. package/dist/cjs/operation-node/matched-node.d.ts +13 -0
  29. package/dist/cjs/operation-node/matched-node.js +19 -0
  30. package/dist/cjs/operation-node/merge-query-node.d.ts +25 -0
  31. package/dist/cjs/operation-node/merge-query-node.js +45 -0
  32. package/dist/cjs/operation-node/operation-node-transformer.d.ts +10 -0
  33. package/dist/cjs/operation-node/operation-node-transformer.js +50 -0
  34. package/dist/cjs/operation-node/operation-node-visitor.d.ts +10 -0
  35. package/dist/cjs/operation-node/operation-node-visitor.js +5 -0
  36. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  37. package/dist/cjs/operation-node/query-node.d.ts +10 -3
  38. package/dist/cjs/operation-node/query-node.js +15 -1
  39. package/dist/cjs/operation-node/select-query-node.d.ts +5 -0
  40. package/dist/cjs/operation-node/select-query-node.js +6 -0
  41. package/dist/cjs/operation-node/top-node.d.ts +14 -0
  42. package/dist/cjs/operation-node/top-node.js +19 -0
  43. package/dist/cjs/operation-node/update-query-node.d.ts +7 -1
  44. package/dist/cjs/operation-node/update-query-node.js +11 -0
  45. package/dist/cjs/parser/binary-operation-parser.d.ts +1 -1
  46. package/dist/cjs/parser/binary-operation-parser.js +2 -2
  47. package/dist/cjs/parser/data-type-parser.js +7 -3
  48. package/dist/cjs/parser/fetch-parser.d.ts +2 -0
  49. package/dist/cjs/parser/fetch-parser.js +18 -0
  50. package/dist/cjs/parser/insert-values-parser.d.ts +3 -3
  51. package/dist/cjs/parser/merge-parser.d.ts +9 -0
  52. package/dist/cjs/parser/merge-parser.js +32 -0
  53. package/dist/cjs/parser/table-parser.d.ts +4 -3
  54. package/dist/cjs/parser/top-parser.d.ts +2 -0
  55. package/dist/cjs/parser/top-parser.js +20 -0
  56. package/dist/cjs/plugin/with-schema/with-schema-transformer.js +4 -0
  57. package/dist/cjs/query-builder/delete-query-builder.d.ts +99 -0
  58. package/dist/cjs/query-builder/delete-query-builder.js +120 -0
  59. package/dist/cjs/query-builder/insert-query-builder.d.ts +71 -0
  60. package/dist/cjs/query-builder/insert-query-builder.js +82 -0
  61. package/dist/cjs/query-builder/merge-query-builder.d.ts +557 -0
  62. package/dist/cjs/query-builder/merge-query-builder.js +518 -0
  63. package/dist/cjs/query-builder/merge-result.d.ts +4 -0
  64. package/dist/cjs/query-builder/merge-result.js +10 -0
  65. package/dist/cjs/query-builder/select-query-builder.d.ts +102 -7
  66. package/dist/cjs/query-builder/select-query-builder.js +14 -0
  67. package/dist/cjs/query-builder/update-query-builder.d.ts +80 -0
  68. package/dist/cjs/query-builder/update-query-builder.js +98 -0
  69. package/dist/cjs/query-compiler/default-query-compiler.d.ts +10 -0
  70. package/dist/cjs/query-compiler/default-query-compiler.js +94 -10
  71. package/dist/cjs/query-compiler/query-compiler.d.ts +2 -1
  72. package/dist/cjs/query-creator.d.ts +40 -2
  73. package/dist/cjs/query-creator.js +9 -0
  74. package/dist/cjs/schema/alter-table-add-index-builder.js +6 -2
  75. package/dist/cjs/schema/column-definition-builder.d.ts +13 -1
  76. package/dist/cjs/schema/column-definition-builder.js +15 -1
  77. package/dist/cjs/util/infer-result.d.ts +2 -1
  78. package/dist/cjs/util/type-utils.d.ts +3 -2
  79. package/dist/esm/dialect/database-introspector.d.ts +1 -0
  80. package/dist/esm/dialect/mssql/mssql-introspector.js +13 -2
  81. package/dist/esm/dialect/mssql/mssql-query-compiler.d.ts +4 -0
  82. package/dist/esm/dialect/mssql/mssql-query-compiler.js +8 -0
  83. package/dist/esm/dialect/mysql/mysql-introspector.js +2 -0
  84. package/dist/esm/dialect/postgres/postgres-dialect-config.d.ts +1 -1
  85. package/dist/esm/dialect/postgres/postgres-driver.js +2 -1
  86. package/dist/esm/dialect/postgres/postgres-introspector.js +2 -0
  87. package/dist/esm/dialect/sqlite/sqlite-introspector.js +1 -0
  88. package/dist/esm/driver/database-connection.d.ts +1 -1
  89. package/dist/esm/expression/expression-builder.d.ts +30 -4
  90. package/dist/esm/expression/expression-builder.js +5 -0
  91. package/dist/esm/index.d.ts +7 -1
  92. package/dist/esm/index.js +6 -0
  93. package/dist/esm/operation-node/add-index-node.js +1 -1
  94. package/dist/esm/operation-node/cast-node.d.ts +13 -0
  95. package/dist/esm/operation-node/cast-node.js +17 -0
  96. package/dist/esm/operation-node/column-definition-node.d.ts +1 -0
  97. package/dist/esm/operation-node/data-type-node.d.ts +5 -1
  98. package/dist/esm/operation-node/data-type-node.js +53 -0
  99. package/dist/esm/operation-node/delete-query-node.d.ts +4 -0
  100. package/dist/esm/operation-node/delete-query-node.js +12 -0
  101. package/dist/esm/operation-node/fetch-node.d.ts +15 -0
  102. package/dist/esm/operation-node/fetch-node.js +17 -0
  103. package/dist/esm/operation-node/insert-query-node.d.ts +4 -1
  104. package/dist/esm/operation-node/insert-query-node.js +5 -0
  105. package/dist/esm/operation-node/join-node.d.ts +1 -1
  106. package/dist/esm/operation-node/matched-node.d.ts +13 -0
  107. package/dist/esm/operation-node/matched-node.js +17 -0
  108. package/dist/esm/operation-node/merge-query-node.d.ts +25 -0
  109. package/dist/esm/operation-node/merge-query-node.js +43 -0
  110. package/dist/esm/operation-node/operation-node-transformer.d.ts +10 -0
  111. package/dist/esm/operation-node/operation-node-transformer.js +50 -0
  112. package/dist/esm/operation-node/operation-node-visitor.d.ts +10 -0
  113. package/dist/esm/operation-node/operation-node-visitor.js +5 -0
  114. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  115. package/dist/esm/operation-node/query-node.d.ts +10 -3
  116. package/dist/esm/operation-node/query-node.js +15 -1
  117. package/dist/esm/operation-node/select-query-node.d.ts +5 -0
  118. package/dist/esm/operation-node/select-query-node.js +6 -0
  119. package/dist/esm/operation-node/top-node.d.ts +14 -0
  120. package/dist/esm/operation-node/top-node.js +17 -0
  121. package/dist/esm/operation-node/update-query-node.d.ts +7 -1
  122. package/dist/esm/operation-node/update-query-node.js +11 -0
  123. package/dist/esm/parser/binary-operation-parser.d.ts +1 -1
  124. package/dist/esm/parser/binary-operation-parser.js +2 -2
  125. package/dist/esm/parser/data-type-parser.js +8 -4
  126. package/dist/esm/parser/fetch-parser.d.ts +2 -0
  127. package/dist/esm/parser/fetch-parser.js +15 -0
  128. package/dist/esm/parser/insert-values-parser.d.ts +3 -3
  129. package/dist/esm/parser/merge-parser.d.ts +9 -0
  130. package/dist/esm/parser/merge-parser.js +28 -0
  131. package/dist/esm/parser/table-parser.d.ts +4 -3
  132. package/dist/esm/parser/top-parser.d.ts +2 -0
  133. package/dist/esm/parser/top-parser.js +17 -0
  134. package/dist/esm/plugin/with-schema/with-schema-transformer.js +4 -0
  135. package/dist/esm/query-builder/delete-query-builder.d.ts +99 -0
  136. package/dist/esm/query-builder/delete-query-builder.js +120 -0
  137. package/dist/esm/query-builder/insert-query-builder.d.ts +71 -0
  138. package/dist/esm/query-builder/insert-query-builder.js +82 -0
  139. package/dist/esm/query-builder/merge-query-builder.d.ts +557 -0
  140. package/dist/esm/query-builder/merge-query-builder.js +512 -0
  141. package/dist/esm/query-builder/merge-result.d.ts +4 -0
  142. package/dist/esm/query-builder/merge-result.js +7 -0
  143. package/dist/esm/query-builder/select-query-builder.d.ts +102 -7
  144. package/dist/esm/query-builder/select-query-builder.js +14 -0
  145. package/dist/esm/query-builder/update-query-builder.d.ts +80 -0
  146. package/dist/esm/query-builder/update-query-builder.js +98 -0
  147. package/dist/esm/query-compiler/default-query-compiler.d.ts +10 -0
  148. package/dist/esm/query-compiler/default-query-compiler.js +94 -10
  149. package/dist/esm/query-compiler/query-compiler.d.ts +2 -1
  150. package/dist/esm/query-creator.d.ts +40 -2
  151. package/dist/esm/query-creator.js +10 -1
  152. package/dist/esm/schema/alter-table-add-index-builder.js +7 -3
  153. package/dist/esm/schema/column-definition-builder.d.ts +13 -1
  154. package/dist/esm/schema/column-definition-builder.js +15 -1
  155. package/dist/esm/util/infer-result.d.ts +2 -1
  156. package/dist/esm/util/type-utils.d.ts +3 -2
  157. package/package.json +22 -21
@@ -29,6 +29,7 @@ const ROOT_OPERATION_NODES = (0, object_utils_js_1.freeze)({
29
29
  RawNode: true,
30
30
  SelectQueryNode: true,
31
31
  UpdateQueryNode: true,
32
+ MergeQueryNode: true,
32
33
  });
33
34
  class WithSchemaTransformer extends operation_node_transformer_js_1.OperationNodeTransformer {
34
35
  #schema;
@@ -103,6 +104,9 @@ class WithSchemaTransformer extends operation_node_transformer_js_1.OperationNod
103
104
  this.#collectSchemableIdsFromTableExpr(join.table, schemableIds);
104
105
  }
105
106
  }
107
+ if ('using' in node && node.using) {
108
+ this.#collectSchemableIdsFromTableExpr(node.using, schemableIds);
109
+ }
106
110
  return schemableIds;
107
111
  }
108
112
  #collectCTEs(node) {
@@ -399,6 +399,46 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
399
399
  * ```
400
400
  */
401
401
  clearWhere(): DeleteQueryBuilder<DB, TB, O>;
402
+ /**
403
+ * Changes a `delete from` query into a `delete top from` query.
404
+ *
405
+ * `top` clause is only supported by some dialects like MS SQL Server.
406
+ *
407
+ * ### Examples
408
+ *
409
+ * Delete the first 5 rows:
410
+ *
411
+ * ```ts
412
+ * await db
413
+ * .deleteFrom('person')
414
+ * .top(5)
415
+ * .where('age', '>', 18)
416
+ * .executeTakeFirstOrThrow()
417
+ * ```
418
+ *
419
+ * The generated SQL (MS SQL Server):
420
+ *
421
+ * ```sql
422
+ * delete top(5) from "person" where "age" > @1
423
+ * ```
424
+ *
425
+ * Delete the first 50% of rows:
426
+ *
427
+ * ```ts
428
+ * await db
429
+ * .deleteFrom('person')
430
+ * .top(50, 'percent')
431
+ * .where('age', '>', 18)
432
+ * .executeTakeFirstOrThrow()
433
+ * ```
434
+ *
435
+ * The generated SQL (MS SQL Server):
436
+ *
437
+ * ```sql
438
+ * delete top(50) percent from "person" where "age" > @1
439
+ * ```
440
+ */
441
+ top(expression: number | bigint, modifiers?: 'percent'): DeleteQueryBuilder<DB, TB, O>;
402
442
  /**
403
443
  * Adds a `using` clause to the query.
404
444
  *
@@ -762,6 +802,65 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
762
802
  */
763
803
  returningAll<T extends TB>(table: T): DeleteQueryBuilder<DB, TB, ReturningAllRow<DB, T, O>>;
764
804
  returningAll(): DeleteQueryBuilder<DB, TB, ReturningAllRow<DB, TB, O>>;
805
+ /**
806
+ * Clears all `returning` clauses from the query.
807
+ *
808
+ * ### Examples
809
+ *
810
+ * ```ts
811
+ * db.deleteFrom('pet')
812
+ * .returningAll()
813
+ * .where('name', '=', 'Max')
814
+ * .clearReturning()
815
+ * ```
816
+ *
817
+ * The generated SQL(PostgreSQL):
818
+ *
819
+ * ```sql
820
+ * delete from "pet" where "name" = "Max"
821
+ * ```
822
+ */
823
+ clearReturning(): DeleteQueryBuilder<DB, TB, DeleteResult>;
824
+ /**
825
+ * Clears the `limit` clause from the query.
826
+ *
827
+ * ### Examples
828
+ *
829
+ * ```ts
830
+ * db.deleteFrom('pet')
831
+ * .returningAll()
832
+ * .where('name', '=', 'Max')
833
+ * .limit(5)
834
+ * .clearLimit()
835
+ * ```
836
+ *
837
+ * The generated SQL(PostgreSQL):
838
+ *
839
+ * ```sql
840
+ * delete from "pet" where "name" = "Max" returning *
841
+ * ```
842
+ */
843
+ clearLimit(): DeleteQueryBuilder<DB, TB, O>;
844
+ /**
845
+ * Clears the `order by` clause from the query.
846
+ *
847
+ * ### Examples
848
+ *
849
+ * ```ts
850
+ * db.deleteFrom('pet')
851
+ * .returningAll()
852
+ * .where('name', '=', 'Max')
853
+ * .orderBy('id')
854
+ * .clearOrderBy()
855
+ * ```
856
+ *
857
+ * The generated SQL(PostgreSQL):
858
+ *
859
+ * ```sql
860
+ * delete from "pet" where "name" = "Max" returning *
861
+ * ```
862
+ */
863
+ clearOrderBy(): DeleteQueryBuilder<DB, TB, O>;
765
864
  /**
766
865
  * Adds an `order by` clause to the query.
767
866
  *
@@ -14,6 +14,7 @@ const limit_node_js_1 = require("../operation-node/limit-node.js");
14
14
  const order_by_parser_js_1 = require("../parser/order-by-parser.js");
15
15
  const binary_operation_parser_js_1 = require("../parser/binary-operation-parser.js");
16
16
  const value_parser_js_1 = require("../parser/value-parser.js");
17
+ const top_parser_js_1 = require("../parser/top-parser.js");
17
18
  class DeleteQueryBuilder {
18
19
  #props;
19
20
  constructor(props) {
@@ -37,6 +38,51 @@ class DeleteQueryBuilder {
37
38
  queryNode: query_node_js_1.QueryNode.cloneWithoutWhere(this.#props.queryNode),
38
39
  });
39
40
  }
41
+ /**
42
+ * Changes a `delete from` query into a `delete top from` query.
43
+ *
44
+ * `top` clause is only supported by some dialects like MS SQL Server.
45
+ *
46
+ * ### Examples
47
+ *
48
+ * Delete the first 5 rows:
49
+ *
50
+ * ```ts
51
+ * await db
52
+ * .deleteFrom('person')
53
+ * .top(5)
54
+ * .where('age', '>', 18)
55
+ * .executeTakeFirstOrThrow()
56
+ * ```
57
+ *
58
+ * The generated SQL (MS SQL Server):
59
+ *
60
+ * ```sql
61
+ * delete top(5) from "person" where "age" > @1
62
+ * ```
63
+ *
64
+ * Delete the first 50% of rows:
65
+ *
66
+ * ```ts
67
+ * await db
68
+ * .deleteFrom('person')
69
+ * .top(50, 'percent')
70
+ * .where('age', '>', 18)
71
+ * .executeTakeFirstOrThrow()
72
+ * ```
73
+ *
74
+ * The generated SQL (MS SQL Server):
75
+ *
76
+ * ```sql
77
+ * delete top(50) percent from "person" where "age" > @1
78
+ * ```
79
+ */
80
+ top(expression, modifiers) {
81
+ return new DeleteQueryBuilder({
82
+ ...this.#props,
83
+ queryNode: query_node_js_1.QueryNode.cloneWithTop(this.#props.queryNode, (0, top_parser_js_1.parseTop)(expression, modifiers)),
84
+ });
85
+ }
40
86
  using(tables) {
41
87
  return new DeleteQueryBuilder({
42
88
  ...this.#props,
@@ -79,6 +125,80 @@ class DeleteQueryBuilder {
79
125
  queryNode: query_node_js_1.QueryNode.cloneWithReturning(this.#props.queryNode, (0, select_parser_js_1.parseSelectAll)(table)),
80
126
  });
81
127
  }
128
+ /**
129
+ * Clears all `returning` clauses from the query.
130
+ *
131
+ * ### Examples
132
+ *
133
+ * ```ts
134
+ * db.deleteFrom('pet')
135
+ * .returningAll()
136
+ * .where('name', '=', 'Max')
137
+ * .clearReturning()
138
+ * ```
139
+ *
140
+ * The generated SQL(PostgreSQL):
141
+ *
142
+ * ```sql
143
+ * delete from "pet" where "name" = "Max"
144
+ * ```
145
+ */
146
+ clearReturning() {
147
+ return new DeleteQueryBuilder({
148
+ ...this.#props,
149
+ queryNode: query_node_js_1.QueryNode.cloneWithoutReturning(this.#props.queryNode),
150
+ });
151
+ }
152
+ /**
153
+ * Clears the `limit` clause from the query.
154
+ *
155
+ * ### Examples
156
+ *
157
+ * ```ts
158
+ * db.deleteFrom('pet')
159
+ * .returningAll()
160
+ * .where('name', '=', 'Max')
161
+ * .limit(5)
162
+ * .clearLimit()
163
+ * ```
164
+ *
165
+ * The generated SQL(PostgreSQL):
166
+ *
167
+ * ```sql
168
+ * delete from "pet" where "name" = "Max" returning *
169
+ * ```
170
+ */
171
+ clearLimit() {
172
+ return new DeleteQueryBuilder({
173
+ ...this.#props,
174
+ queryNode: delete_query_node_js_1.DeleteQueryNode.cloneWithoutLimit(this.#props.queryNode),
175
+ });
176
+ }
177
+ /**
178
+ * Clears the `order by` clause from the query.
179
+ *
180
+ * ### Examples
181
+ *
182
+ * ```ts
183
+ * db.deleteFrom('pet')
184
+ * .returningAll()
185
+ * .where('name', '=', 'Max')
186
+ * .orderBy('id')
187
+ * .clearOrderBy()
188
+ * ```
189
+ *
190
+ * The generated SQL(PostgreSQL):
191
+ *
192
+ * ```sql
193
+ * delete from "pet" where "name" = "Max" returning *
194
+ * ```
195
+ */
196
+ clearOrderBy() {
197
+ return new DeleteQueryBuilder({
198
+ ...this.#props,
199
+ queryNode: delete_query_node_js_1.DeleteQueryNode.cloneWithoutOrderBy(this.#props.queryNode),
200
+ });
201
+ }
82
202
  /**
83
203
  * Adds an `order by` clause to the query.
84
204
  *
@@ -241,6 +241,14 @@ export declare class InsertQueryBuilder<DB, TB extends keyof DB, O> implements R
241
241
  expression(expression: ExpressionOrFactory<DB, TB, any>): InsertQueryBuilder<DB, TB, O>;
242
242
  /**
243
243
  * Creates an `insert into "person" default values` query.
244
+ *
245
+ * ### Examples
246
+ *
247
+ * ```ts
248
+ * await db.insertInto('person')
249
+ * .defaultValues()
250
+ * .execute()
251
+ * ```
244
252
  */
245
253
  defaultValues(): InsertQueryBuilder<DB, TB, O>;
246
254
  /**
@@ -265,6 +273,50 @@ export declare class InsertQueryBuilder<DB, TB extends keyof DB, O> implements R
265
273
  * ```
266
274
  */
267
275
  ignore(): InsertQueryBuilder<DB, TB, O>;
276
+ /**
277
+ * Changes an `insert into` query to an `insert top into` query.
278
+ *
279
+ * `top` clause is only supported by some dialects like MS SQL Server.
280
+ *
281
+ * ### Examples
282
+ *
283
+ * Insert the first 5 rows:
284
+ *
285
+ * ```ts
286
+ * await db.insertInto('person')
287
+ * .top(5)
288
+ * .columns(['first_name', 'gender'])
289
+ * .expression(
290
+ * (eb) => eb.selectFrom('pet').select(['name', sql.lit('other').as('gender')])
291
+ * )
292
+ * .execute()
293
+ * ```
294
+ *
295
+ * The generated SQL (MS SQL Server):
296
+ *
297
+ * ```sql
298
+ * insert top(5) into "person" ("first_name", "gender") select "name", 'other' as "gender" from "pet"
299
+ * ```
300
+ *
301
+ * Insert the first 50 percent of rows:
302
+ *
303
+ * ```ts
304
+ * await db.insertInto('person')
305
+ * .top(50, 'percent')
306
+ * .columns(['first_name', 'gender'])
307
+ * .expression(
308
+ * (eb) => eb.selectFrom('pet').select(['name', sql.lit('other').as('gender')])
309
+ * )
310
+ * .execute()
311
+ * ```
312
+ *
313
+ * The generated SQL (MS SQL Server):
314
+ *
315
+ * ```sql
316
+ * insert top(50) percent into "person" ("first_name", "gender") select "name", 'other' as "gender" from "pet"
317
+ * ```
318
+ */
319
+ top(expression: number | bigint, modifiers?: 'percent'): InsertQueryBuilder<DB, TB, O>;
268
320
  /**
269
321
  * Adds an `on conflict` clause to the query.
270
322
  *
@@ -503,6 +555,25 @@ export declare class InsertQueryBuilder<DB, TB extends keyof DB, O> implements R
503
555
  * that support `returning` such as PostgreSQL.
504
556
  */
505
557
  returningAll(): InsertQueryBuilder<DB, TB, Selectable<DB[TB]>>;
558
+ /**
559
+ * Clears all `returning` clauses from the query.
560
+ *
561
+ * ### Examples
562
+ *
563
+ * ```ts
564
+ * db.insertInto('person')
565
+ * .values({ first_name: 'James', last_name: 'Smith', age: 42 })
566
+ * .returning(['first_name'])
567
+ * .clearReturning()
568
+ * ```
569
+ *
570
+ * The generated SQL(PostgreSQL):
571
+ *
572
+ * ```sql
573
+ * insert into "person" ("James", "Smith", 42)
574
+ * ```
575
+ */
576
+ clearReturning(): InsertQueryBuilder<DB, TB, InsertResult>;
506
577
  /**
507
578
  * Simply calls the provided function passing `this` as the only argument. `$call` returns
508
579
  * what the provided function returns.
@@ -15,6 +15,7 @@ const expression_parser_js_1 = require("../parser/expression-parser.js");
15
15
  const column_node_js_1 = require("../operation-node/column-node.js");
16
16
  const on_conflict_builder_js_1 = require("./on-conflict-builder.js");
17
17
  const on_conflict_node_js_1 = require("../operation-node/on-conflict-node.js");
18
+ const top_parser_js_1 = require("../parser/top-parser.js");
18
19
  class InsertQueryBuilder {
19
20
  #props;
20
21
  constructor(props) {
@@ -260,6 +261,14 @@ class InsertQueryBuilder {
260
261
  }
261
262
  /**
262
263
  * Creates an `insert into "person" default values` query.
264
+ *
265
+ * ### Examples
266
+ *
267
+ * ```ts
268
+ * await db.insertInto('person')
269
+ * .defaultValues()
270
+ * .execute()
271
+ * ```
263
272
  */
264
273
  defaultValues() {
265
274
  return new InsertQueryBuilder({
@@ -298,6 +307,55 @@ class InsertQueryBuilder {
298
307
  }),
299
308
  });
300
309
  }
310
+ /**
311
+ * Changes an `insert into` query to an `insert top into` query.
312
+ *
313
+ * `top` clause is only supported by some dialects like MS SQL Server.
314
+ *
315
+ * ### Examples
316
+ *
317
+ * Insert the first 5 rows:
318
+ *
319
+ * ```ts
320
+ * await db.insertInto('person')
321
+ * .top(5)
322
+ * .columns(['first_name', 'gender'])
323
+ * .expression(
324
+ * (eb) => eb.selectFrom('pet').select(['name', sql.lit('other').as('gender')])
325
+ * )
326
+ * .execute()
327
+ * ```
328
+ *
329
+ * The generated SQL (MS SQL Server):
330
+ *
331
+ * ```sql
332
+ * insert top(5) into "person" ("first_name", "gender") select "name", 'other' as "gender" from "pet"
333
+ * ```
334
+ *
335
+ * Insert the first 50 percent of rows:
336
+ *
337
+ * ```ts
338
+ * await db.insertInto('person')
339
+ * .top(50, 'percent')
340
+ * .columns(['first_name', 'gender'])
341
+ * .expression(
342
+ * (eb) => eb.selectFrom('pet').select(['name', sql.lit('other').as('gender')])
343
+ * )
344
+ * .execute()
345
+ * ```
346
+ *
347
+ * The generated SQL (MS SQL Server):
348
+ *
349
+ * ```sql
350
+ * insert top(50) percent into "person" ("first_name", "gender") select "name", 'other' as "gender" from "pet"
351
+ * ```
352
+ */
353
+ top(expression, modifiers) {
354
+ return new InsertQueryBuilder({
355
+ ...this.#props,
356
+ queryNode: query_node_js_1.QueryNode.cloneWithTop(this.#props.queryNode, (0, top_parser_js_1.parseTop)(expression, modifiers)),
357
+ });
358
+ }
301
359
  /**
302
360
  * Adds an `on conflict` clause to the query.
303
361
  *
@@ -497,6 +555,30 @@ class InsertQueryBuilder {
497
555
  queryNode: query_node_js_1.QueryNode.cloneWithReturning(this.#props.queryNode, (0, select_parser_js_1.parseSelectAll)()),
498
556
  });
499
557
  }
558
+ /**
559
+ * Clears all `returning` clauses from the query.
560
+ *
561
+ * ### Examples
562
+ *
563
+ * ```ts
564
+ * db.insertInto('person')
565
+ * .values({ first_name: 'James', last_name: 'Smith', age: 42 })
566
+ * .returning(['first_name'])
567
+ * .clearReturning()
568
+ * ```
569
+ *
570
+ * The generated SQL(PostgreSQL):
571
+ *
572
+ * ```sql
573
+ * insert into "person" ("James", "Smith", 42)
574
+ * ```
575
+ */
576
+ clearReturning() {
577
+ return new InsertQueryBuilder({
578
+ ...this.#props,
579
+ queryNode: query_node_js_1.QueryNode.cloneWithoutReturning(this.#props.queryNode),
580
+ });
581
+ }
500
582
  /**
501
583
  * Simply calls the provided function passing `this` as the only argument. `$call` returns
502
584
  * what the provided function returns.