kysely 0.7.1 → 0.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/README.md +24 -19
  2. package/dist/cjs/dialect/dialect-adapter.d.ts +11 -9
  3. package/dist/cjs/dialect/mysql/mysql-dialect.d.ts +1 -1
  4. package/dist/cjs/dialect/mysql/mysql-driver.js +1 -0
  5. package/dist/cjs/dialect/mysql/mysql-introspector.d.ts +0 -1
  6. package/dist/cjs/dialect/mysql/mysql-introspector.js +2 -2
  7. package/dist/cjs/dialect/mysql/mysql-query-compiler.d.ts +0 -4
  8. package/dist/cjs/dialect/mysql/mysql-query-compiler.js +0 -18
  9. package/dist/cjs/dialect/postgres/postgres-introspector.d.ts +0 -1
  10. package/dist/cjs/dialect/postgres/postgres-introspector.js +2 -2
  11. package/dist/cjs/driver/database-connection.d.ts +2 -1
  12. package/dist/cjs/driver/driver.d.ts +1 -1
  13. package/dist/cjs/driver/single-connection-provider.d.ts +0 -1
  14. package/dist/cjs/driver/single-connection-provider.js +2 -2
  15. package/dist/cjs/index.d.ts +2 -1
  16. package/dist/cjs/index.js +2 -1
  17. package/dist/cjs/kysely.d.ts +7 -6
  18. package/dist/cjs/kysely.js +8 -6
  19. package/dist/cjs/migration/migration.js +11 -10
  20. package/dist/cjs/operation-node/alter-column-node.d.ts +2 -2
  21. package/dist/cjs/operation-node/alter-column-node.js +2 -2
  22. package/dist/cjs/operation-node/alter-table-node.d.ts +2 -2
  23. package/dist/cjs/operation-node/alter-table-node.js +2 -2
  24. package/dist/cjs/operation-node/column-definition-node.d.ts +2 -2
  25. package/dist/cjs/operation-node/column-definition-node.js +2 -2
  26. package/dist/cjs/operation-node/create-index-node.d.ts +2 -2
  27. package/dist/cjs/operation-node/create-index-node.js +2 -2
  28. package/dist/cjs/operation-node/create-table-node.d.ts +2 -1
  29. package/dist/cjs/operation-node/create-table-node.js +1 -5
  30. package/dist/cjs/operation-node/drop-index-node.d.ts +3 -3
  31. package/dist/cjs/operation-node/drop-index-node.js +2 -2
  32. package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +12 -1
  33. package/dist/cjs/operation-node/foreign-key-constraint-node.js +6 -0
  34. package/dist/cjs/operation-node/insert-query-node.d.ts +5 -2
  35. package/dist/cjs/operation-node/insert-query-node.js +2 -9
  36. package/dist/cjs/operation-node/join-node.d.ts +1 -0
  37. package/dist/cjs/operation-node/join-node.js +8 -0
  38. package/dist/cjs/operation-node/on-conflict-node.d.ts +2 -2
  39. package/dist/cjs/operation-node/on-conflict-node.js +2 -2
  40. package/dist/cjs/operation-node/on-duplicate-key-node.d.ts +14 -0
  41. package/dist/cjs/operation-node/on-duplicate-key-node.js +18 -0
  42. package/dist/cjs/operation-node/operation-node-transformer.d.ts +2 -0
  43. package/dist/cjs/operation-node/operation-node-transformer.js +12 -0
  44. package/dist/cjs/operation-node/operation-node-visitor.d.ts +2 -0
  45. package/dist/cjs/operation-node/operation-node-visitor.js +4 -0
  46. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  47. package/dist/cjs/operation-node/references-node.d.ts +5 -3
  48. package/dist/cjs/operation-node/references-node.js +6 -0
  49. package/dist/cjs/operation-node/table-node.js +2 -2
  50. package/dist/cjs/parser/data-type-parser.d.ts +5 -0
  51. package/dist/cjs/parser/data-type-parser.js +11 -0
  52. package/dist/cjs/parser/default-value-parser.d.ts +6 -0
  53. package/dist/cjs/parser/default-value-parser.js +11 -0
  54. package/dist/cjs/parser/filter-parser.d.ts +2 -2
  55. package/dist/cjs/parser/filter-parser.js +34 -36
  56. package/dist/cjs/parser/join-parser.d.ts +1 -1
  57. package/dist/cjs/parser/join-parser.js +9 -11
  58. package/dist/cjs/parser/parse-context.d.ts +34 -7
  59. package/dist/cjs/parser/parse-context.js +42 -34
  60. package/dist/cjs/parser/reference-parser.d.ts +2 -2
  61. package/dist/cjs/parser/reference-parser.js +16 -12
  62. package/dist/cjs/parser/select-parser.d.ts +1 -2
  63. package/dist/cjs/parser/select-parser.js +4 -5
  64. package/dist/cjs/parser/table-parser.js +11 -6
  65. package/dist/cjs/parser/update-set-parser.js +1 -1
  66. package/dist/cjs/parser/value-parser.js +1 -1
  67. package/dist/cjs/query-builder/{sub-query-builder.d.ts → expression-builder.d.ts} +7 -7
  68. package/dist/cjs/query-builder/{sub-query-builder.js → expression-builder.js} +6 -10
  69. package/dist/cjs/query-builder/join-builder.d.ts +2 -2
  70. package/dist/cjs/query-builder/join-builder.js +8 -12
  71. package/dist/cjs/query-builder/query-builder.d.ts +47 -8
  72. package/dist/cjs/query-builder/query-builder.js +163 -91
  73. package/dist/cjs/query-builder/type-utils.d.ts +5 -5
  74. package/dist/cjs/query-compiler/default-query-compiler.d.ts +2 -1
  75. package/dist/cjs/query-compiler/default-query-compiler.js +26 -6
  76. package/dist/cjs/query-creator.d.ts +2 -2
  77. package/dist/cjs/query-creator.js +8 -12
  78. package/dist/cjs/schema/alter-table-builder.d.ts +31 -8
  79. package/dist/cjs/schema/alter-table-builder.js +80 -7
  80. package/dist/cjs/schema/column-definition-builder.d.ts +10 -4
  81. package/dist/cjs/schema/column-definition-builder.js +11 -6
  82. package/dist/cjs/schema/create-index-builder.d.ts +5 -5
  83. package/dist/cjs/schema/create-index-builder.js +19 -28
  84. package/dist/cjs/schema/create-schema-builder.d.ts +5 -5
  85. package/dist/cjs/schema/create-schema-builder.js +9 -13
  86. package/dist/cjs/schema/create-table-builder.d.ts +22 -10
  87. package/dist/cjs/schema/create-table-builder.js +41 -34
  88. package/dist/cjs/schema/drop-index-builder.d.ts +5 -5
  89. package/dist/cjs/schema/drop-index-builder.js +11 -16
  90. package/dist/cjs/schema/drop-schema-builder.d.ts +5 -5
  91. package/dist/cjs/schema/drop-schema-builder.js +9 -13
  92. package/dist/cjs/schema/drop-table-builder.d.ts +5 -5
  93. package/dist/cjs/schema/drop-table-builder.js +9 -13
  94. package/dist/cjs/schema/foreign-key-constraint-builder.d.ts +14 -0
  95. package/dist/cjs/schema/foreign-key-constraint-builder.js +26 -0
  96. package/dist/cjs/transformers/with-schema-transformer.d.ts +0 -5
  97. package/dist/cjs/transformers/with-schema-transformer.js +21 -21
  98. package/dist/esm/dialect/dialect-adapter.d.ts +11 -9
  99. package/dist/esm/dialect/mysql/mysql-dialect.d.ts +1 -1
  100. package/dist/esm/dialect/mysql/mysql-driver.js +1 -0
  101. package/dist/esm/dialect/mysql/mysql-introspector.d.ts +0 -1
  102. package/dist/esm/dialect/mysql/mysql-introspector.js +2 -2
  103. package/dist/esm/dialect/mysql/mysql-query-compiler.d.ts +0 -4
  104. package/dist/esm/dialect/mysql/mysql-query-compiler.js +0 -18
  105. package/dist/esm/dialect/postgres/postgres-introspector.d.ts +0 -1
  106. package/dist/esm/dialect/postgres/postgres-introspector.js +2 -2
  107. package/dist/esm/driver/database-connection.d.ts +2 -1
  108. package/dist/esm/driver/driver.d.ts +1 -1
  109. package/dist/esm/driver/single-connection-provider.d.ts +0 -1
  110. package/dist/esm/driver/single-connection-provider.js +2 -2
  111. package/dist/esm/index.d.ts +2 -1
  112. package/dist/esm/index.js +2 -1
  113. package/dist/esm/kysely.d.ts +7 -6
  114. package/dist/esm/kysely.js +8 -6
  115. package/dist/esm/migration/migration.js +12 -11
  116. package/dist/esm/operation-node/alter-column-node.d.ts +2 -2
  117. package/dist/esm/operation-node/alter-column-node.js +2 -2
  118. package/dist/esm/operation-node/alter-table-node.d.ts +2 -2
  119. package/dist/esm/operation-node/alter-table-node.js +2 -2
  120. package/dist/esm/operation-node/column-definition-node.d.ts +2 -2
  121. package/dist/esm/operation-node/column-definition-node.js +2 -2
  122. package/dist/esm/operation-node/create-index-node.d.ts +2 -2
  123. package/dist/esm/operation-node/create-index-node.js +2 -2
  124. package/dist/esm/operation-node/create-table-node.d.ts +2 -1
  125. package/dist/esm/operation-node/create-table-node.js +1 -5
  126. package/dist/esm/operation-node/drop-index-node.d.ts +3 -3
  127. package/dist/esm/operation-node/drop-index-node.js +2 -2
  128. package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +12 -1
  129. package/dist/esm/operation-node/foreign-key-constraint-node.js +6 -0
  130. package/dist/esm/operation-node/insert-query-node.d.ts +5 -2
  131. package/dist/esm/operation-node/insert-query-node.js +2 -9
  132. package/dist/esm/operation-node/join-node.d.ts +1 -0
  133. package/dist/esm/operation-node/join-node.js +8 -0
  134. package/dist/esm/operation-node/on-conflict-node.d.ts +2 -2
  135. package/dist/esm/operation-node/on-conflict-node.js +2 -2
  136. package/dist/esm/operation-node/on-duplicate-key-node.d.ts +14 -0
  137. package/dist/esm/operation-node/on-duplicate-key-node.js +15 -0
  138. package/dist/esm/operation-node/operation-node-transformer.d.ts +2 -0
  139. package/dist/esm/operation-node/operation-node-transformer.js +12 -0
  140. package/dist/esm/operation-node/operation-node-visitor.d.ts +2 -0
  141. package/dist/esm/operation-node/operation-node-visitor.js +4 -0
  142. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  143. package/dist/esm/operation-node/references-node.d.ts +5 -3
  144. package/dist/esm/operation-node/references-node.js +6 -0
  145. package/dist/esm/operation-node/table-node.js +2 -2
  146. package/dist/esm/parser/data-type-parser.d.ts +5 -0
  147. package/dist/esm/parser/data-type-parser.js +7 -0
  148. package/dist/esm/parser/default-value-parser.d.ts +6 -0
  149. package/dist/esm/parser/default-value-parser.js +7 -0
  150. package/dist/esm/parser/filter-parser.d.ts +2 -2
  151. package/dist/esm/parser/filter-parser.js +31 -33
  152. package/dist/esm/parser/join-parser.d.ts +1 -1
  153. package/dist/esm/parser/join-parser.js +7 -9
  154. package/dist/esm/parser/parse-context.d.ts +34 -7
  155. package/dist/esm/parser/parse-context.js +40 -32
  156. package/dist/esm/parser/reference-parser.d.ts +2 -2
  157. package/dist/esm/parser/reference-parser.js +16 -12
  158. package/dist/esm/parser/select-parser.d.ts +1 -2
  159. package/dist/esm/parser/select-parser.js +3 -3
  160. package/dist/esm/parser/table-parser.js +11 -6
  161. package/dist/esm/parser/update-set-parser.js +1 -1
  162. package/dist/esm/parser/value-parser.js +1 -1
  163. package/dist/esm/query-builder/{sub-query-builder.d.ts → expression-builder.d.ts} +7 -7
  164. package/dist/esm/query-builder/{sub-query-builder.js → expression-builder.js} +4 -8
  165. package/dist/esm/query-builder/join-builder.d.ts +2 -2
  166. package/dist/esm/query-builder/join-builder.js +9 -13
  167. package/dist/esm/query-builder/query-builder.d.ts +47 -8
  168. package/dist/esm/query-builder/query-builder.js +165 -93
  169. package/dist/esm/query-builder/type-utils.d.ts +5 -5
  170. package/dist/esm/query-compiler/default-query-compiler.d.ts +2 -1
  171. package/dist/esm/query-compiler/default-query-compiler.js +27 -7
  172. package/dist/esm/query-creator.d.ts +2 -2
  173. package/dist/esm/query-creator.js +8 -12
  174. package/dist/esm/schema/alter-table-builder.d.ts +31 -8
  175. package/dist/esm/schema/alter-table-builder.js +78 -6
  176. package/dist/esm/schema/column-definition-builder.d.ts +10 -4
  177. package/dist/esm/schema/column-definition-builder.js +12 -7
  178. package/dist/esm/schema/create-index-builder.d.ts +5 -5
  179. package/dist/esm/schema/create-index-builder.js +19 -28
  180. package/dist/esm/schema/create-schema-builder.d.ts +5 -5
  181. package/dist/esm/schema/create-schema-builder.js +9 -13
  182. package/dist/esm/schema/create-table-builder.d.ts +22 -10
  183. package/dist/esm/schema/create-table-builder.js +41 -34
  184. package/dist/esm/schema/drop-index-builder.d.ts +5 -5
  185. package/dist/esm/schema/drop-index-builder.js +11 -16
  186. package/dist/esm/schema/drop-schema-builder.d.ts +5 -5
  187. package/dist/esm/schema/drop-schema-builder.js +9 -13
  188. package/dist/esm/schema/drop-table-builder.d.ts +5 -5
  189. package/dist/esm/schema/drop-table-builder.js +9 -13
  190. package/dist/esm/schema/foreign-key-constraint-builder.d.ts +14 -0
  191. package/dist/esm/schema/foreign-key-constraint-builder.js +22 -0
  192. package/dist/esm/transformers/with-schema-transformer.d.ts +0 -5
  193. package/dist/esm/transformers/with-schema-transformer.js +21 -21
  194. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import { AliasNode } from '../operation-node/alias-node.js';
2
- import { parseJoinArgs, } from '../parser/join-parser.js';
3
- import { parseSelectExpressionOrList, parseSelectAllArgs, } from '../parser/select-parser.js';
4
- import { parseExistExpression, parseReferenceFilter, parseWhereFilter, parseHavingFilter, parseNotExistExpression, } from '../parser/filter-parser.js';
2
+ import { parseJoin, } from '../parser/join-parser.js';
3
+ import { parseSelectExpressionOrList, parseSelectAll, } from '../parser/select-parser.js';
4
+ import { parseExistFilter, parseReferenceFilter, parseWhereFilter, parseHavingFilter, parseNotExistFilter, } from '../parser/filter-parser.js';
5
5
  import { parseInsertObjectOrList, } from '../parser/insert-values-parser.js';
6
6
  import { parseReferenceExpression, parseReferenceExpressionOrList, } from '../parser/reference-parser.js';
7
7
  import { OrderByItemNode, } from '../operation-node/order-by-item-node.js';
@@ -15,9 +15,9 @@ import { preventAwait } from '../util/prevent-await.js';
15
15
  import { LimitNode } from '../operation-node/limit-node.js';
16
16
  import { OffsetNode } from '../operation-node/offset-node.js';
17
17
  import { parseOnConflictDoNothing, parseOnConflictUpdate, } from '../parser/on-conflict-parser.js';
18
- import { DeleteQueryNode } from '../index.js';
19
18
  import { freeze } from '../util/object-utils.js';
20
- import { createParseContext } from '../parser/parse-context.js';
19
+ import { DeleteQueryNode } from '../operation-node/delete-query-node.js';
20
+ import { OnDuplicateKeyNode } from '../operation-node/on-duplicate-key-node.js';
21
21
  /**
22
22
  * The main query builder class.
23
23
  *
@@ -39,10 +39,10 @@ export class QueryBuilder {
39
39
  this.#props = freeze(props);
40
40
  }
41
41
  where(...args) {
42
- ensureCanHaveWhereClause(this.#props.queryNode);
42
+ assertCanHaveWhereClause(this.#props.queryNode);
43
43
  return new QueryBuilder({
44
44
  ...this.#props,
45
- queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, 'And', parseWhereFilter(this.#parseContext, args)),
45
+ queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, 'And', parseWhereFilter(this.#props.parseContext, args)),
46
46
  });
47
47
  }
48
48
  /**
@@ -97,17 +97,17 @@ export class QueryBuilder {
97
97
  * from "person"
98
98
  */
99
99
  whereRef(lhs, op, rhs) {
100
- ensureCanHaveWhereClause(this.#props.queryNode);
100
+ assertCanHaveWhereClause(this.#props.queryNode);
101
101
  return new QueryBuilder({
102
102
  ...this.#props,
103
- queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, 'And', parseReferenceFilter(this.#parseContext, lhs, op, rhs)),
103
+ queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, 'And', parseReferenceFilter(this.#props.parseContext, lhs, op, rhs)),
104
104
  });
105
105
  }
106
106
  orWhere(...args) {
107
- ensureCanHaveWhereClause(this.#props.queryNode);
107
+ assertCanHaveWhereClause(this.#props.queryNode);
108
108
  return new QueryBuilder({
109
109
  ...this.#props,
110
- queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, 'Or', parseWhereFilter(this.#parseContext, args)),
110
+ queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, 'Or', parseWhereFilter(this.#props.parseContext, args)),
111
111
  });
112
112
  }
113
113
  /**
@@ -117,10 +117,10 @@ export class QueryBuilder {
117
117
  * Also see {@link QueryBuilder.orWhere | orWhere} and {@link QueryBuilder.where | where}.
118
118
  */
119
119
  orWhereRef(lhs, op, rhs) {
120
- ensureCanHaveWhereClause(this.#props.queryNode);
120
+ assertCanHaveWhereClause(this.#props.queryNode);
121
121
  return new QueryBuilder({
122
122
  ...this.#props,
123
- queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, 'Or', parseReferenceFilter(this.#parseContext, lhs, op, rhs)),
123
+ queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, 'Or', parseReferenceFilter(this.#props.parseContext, lhs, op, rhs)),
124
124
  });
125
125
  }
126
126
  /**
@@ -183,47 +183,47 @@ export class QueryBuilder {
183
183
  * ```
184
184
  */
185
185
  whereExists(arg) {
186
- ensureCanHaveWhereClause(this.#props.queryNode);
186
+ assertCanHaveWhereClause(this.#props.queryNode);
187
187
  return new QueryBuilder({
188
188
  ...this.#props,
189
- queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, 'And', parseExistExpression(this.#parseContext, arg)),
189
+ queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, 'And', parseExistFilter(this.#props.parseContext, arg)),
190
190
  });
191
191
  }
192
192
  /**
193
193
  * Just like {@link QueryBuilder.whereExists | whereExists} but creates a `not exists` clause.
194
194
  */
195
195
  whereNotExists(arg) {
196
- ensureCanHaveWhereClause(this.#props.queryNode);
196
+ assertCanHaveWhereClause(this.#props.queryNode);
197
197
  return new QueryBuilder({
198
198
  ...this.#props,
199
- queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, 'And', parseNotExistExpression(this.#parseContext, arg)),
199
+ queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, 'And', parseNotExistFilter(this.#props.parseContext, arg)),
200
200
  });
201
201
  }
202
202
  /**
203
203
  * Just like {@link QueryBuilder.whereExists | whereExists} but creates a `or exists` clause.
204
204
  */
205
205
  orWhereExists(arg) {
206
- ensureCanHaveWhereClause(this.#props.queryNode);
206
+ assertCanHaveWhereClause(this.#props.queryNode);
207
207
  return new QueryBuilder({
208
208
  ...this.#props,
209
- queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, 'Or', parseExistExpression(this.#parseContext, arg)),
209
+ queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, 'Or', parseExistFilter(this.#props.parseContext, arg)),
210
210
  });
211
211
  }
212
212
  /**
213
213
  * Just like {@link QueryBuilder.whereExists | whereExists} but creates a `or not exists` clause.
214
214
  */
215
215
  orWhereNotExists(arg) {
216
- ensureCanHaveWhereClause(this.#props.queryNode);
216
+ assertCanHaveWhereClause(this.#props.queryNode);
217
217
  return new QueryBuilder({
218
218
  ...this.#props,
219
- queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, 'Or', parseNotExistExpression(this.#parseContext, arg)),
219
+ queryNode: QueryNode.cloneWithWhere(this.#props.queryNode, 'Or', parseNotExistFilter(this.#props.parseContext, arg)),
220
220
  });
221
221
  }
222
222
  having(...args) {
223
- ensureCanHaveHavingClause(this.#props.queryNode);
223
+ assertCanHaveHavingClause(this.#props.queryNode);
224
224
  return new QueryBuilder({
225
225
  ...this.#props,
226
- queryNode: SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'And', parseHavingFilter(this.#parseContext, args)),
226
+ queryNode: SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'And', parseHavingFilter(this.#props.parseContext, args)),
227
227
  });
228
228
  }
229
229
  /**
@@ -231,17 +231,17 @@ export class QueryBuilder {
231
231
  * instead of a `where` statement.
232
232
  */
233
233
  havingRef(lhs, op, rhs) {
234
- ensureCanHaveHavingClause(this.#props.queryNode);
234
+ assertCanHaveHavingClause(this.#props.queryNode);
235
235
  return new QueryBuilder({
236
236
  ...this.#props,
237
- queryNode: SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'And', parseReferenceFilter(this.#parseContext, lhs, op, rhs)),
237
+ queryNode: SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'And', parseReferenceFilter(this.#props.parseContext, lhs, op, rhs)),
238
238
  });
239
239
  }
240
240
  orHaving(...args) {
241
- ensureCanHaveHavingClause(this.#props.queryNode);
241
+ assertCanHaveHavingClause(this.#props.queryNode);
242
242
  return new QueryBuilder({
243
243
  ...this.#props,
244
- queryNode: SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'Or', parseHavingFilter(this.#parseContext, args)),
244
+ queryNode: SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'Or', parseHavingFilter(this.#props.parseContext, args)),
245
245
  });
246
246
  }
247
247
  /**
@@ -249,10 +249,10 @@ export class QueryBuilder {
249
249
  * instead of a `where` statement.
250
250
  */
251
251
  orHavingRef(lhs, op, rhs) {
252
- ensureCanHaveHavingClause(this.#props.queryNode);
252
+ assertCanHaveHavingClause(this.#props.queryNode);
253
253
  return new QueryBuilder({
254
254
  ...this.#props,
255
- queryNode: SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'Or', parseReferenceFilter(this.#parseContext, lhs, op, rhs)),
255
+ queryNode: SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'Or', parseReferenceFilter(this.#props.parseContext, lhs, op, rhs)),
256
256
  });
257
257
  }
258
258
  /**
@@ -260,10 +260,10 @@ export class QueryBuilder {
260
260
  * instead of a `where` statement.
261
261
  */
262
262
  havingExists(arg) {
263
- ensureCanHaveHavingClause(this.#props.queryNode);
263
+ assertCanHaveHavingClause(this.#props.queryNode);
264
264
  return new QueryBuilder({
265
265
  ...this.#props,
266
- queryNode: SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'And', parseExistExpression(this.#parseContext, arg)),
266
+ queryNode: SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'And', parseExistFilter(this.#props.parseContext, arg)),
267
267
  });
268
268
  }
269
269
  /**
@@ -271,10 +271,10 @@ export class QueryBuilder {
271
271
  * instead of a `where` statement.
272
272
  */
273
273
  havingNotExist(arg) {
274
- ensureCanHaveHavingClause(this.#props.queryNode);
274
+ assertCanHaveHavingClause(this.#props.queryNode);
275
275
  return new QueryBuilder({
276
276
  ...this.#props,
277
- queryNode: SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'And', parseNotExistExpression(this.#parseContext, arg)),
277
+ queryNode: SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'And', parseNotExistFilter(this.#props.parseContext, arg)),
278
278
  });
279
279
  }
280
280
  /**
@@ -282,10 +282,10 @@ export class QueryBuilder {
282
282
  * instead of a `where` statement.
283
283
  */
284
284
  orHavingExists(arg) {
285
- ensureCanHaveHavingClause(this.#props.queryNode);
285
+ assertCanHaveHavingClause(this.#props.queryNode);
286
286
  return new QueryBuilder({
287
287
  ...this.#props,
288
- queryNode: SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'Or', parseExistExpression(this.#parseContext, arg)),
288
+ queryNode: SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'Or', parseExistFilter(this.#props.parseContext, arg)),
289
289
  });
290
290
  }
291
291
  /**
@@ -293,24 +293,24 @@ export class QueryBuilder {
293
293
  * instead of a `where` statement.
294
294
  */
295
295
  orHavingNotExists(arg) {
296
- ensureCanHaveHavingClause(this.#props.queryNode);
296
+ assertCanHaveHavingClause(this.#props.queryNode);
297
297
  return new QueryBuilder({
298
298
  ...this.#props,
299
- queryNode: SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'Or', parseNotExistExpression(this.#parseContext, arg)),
299
+ queryNode: SelectQueryNode.cloneWithHaving(this.#props.queryNode, 'Or', parseNotExistFilter(this.#props.parseContext, arg)),
300
300
  });
301
301
  }
302
302
  select(selection) {
303
- ensureCanHaveSelectClause(this.#props.queryNode);
303
+ assertCanHaveSelectClause(this.#props.queryNode);
304
304
  return new QueryBuilder({
305
305
  ...this.#props,
306
- queryNode: SelectQueryNode.cloneWithSelections(this.#props.queryNode, parseSelectExpressionOrList(this.#parseContext, selection)),
306
+ queryNode: SelectQueryNode.cloneWithSelections(this.#props.queryNode, parseSelectExpressionOrList(this.#props.parseContext, selection)),
307
307
  });
308
308
  }
309
309
  distinctOn(selection) {
310
- ensureCanHaveSelectClause(this.#props.queryNode);
310
+ assertCanHaveSelectClause(this.#props.queryNode);
311
311
  return new QueryBuilder({
312
312
  ...this.#props,
313
- queryNode: SelectQueryNode.cloneWithDistinctOnSelections(this.#props.queryNode, parseSelectExpressionOrList(this.#parseContext, selection)),
313
+ queryNode: SelectQueryNode.cloneWithDistinctOnSelections(this.#props.queryNode, parseSelectExpressionOrList(this.#props.parseContext, selection)),
314
314
  });
315
315
  }
316
316
  /**
@@ -331,7 +331,7 @@ export class QueryBuilder {
331
331
  * ```
332
332
  */
333
333
  distinct() {
334
- ensureCanHaveSelectClause(this.#props.queryNode);
334
+ assertCanHaveSelectClause(this.#props.queryNode);
335
335
  return new QueryBuilder({
336
336
  ...this.#props,
337
337
  queryNode: SelectQueryNode.cloneWithDistinct(this.#props.queryNode),
@@ -341,7 +341,7 @@ export class QueryBuilder {
341
341
  * Adds the `for update` option to a select query on supported databases.
342
342
  */
343
343
  forUpdate() {
344
- ensureCanHaveSelectClause(this.#props.queryNode);
344
+ assertCanHaveSelectClause(this.#props.queryNode);
345
345
  return new QueryBuilder({
346
346
  ...this.#props,
347
347
  queryNode: SelectQueryNode.cloneWithModifier(this.#props.queryNode, 'ForUpdate'),
@@ -351,7 +351,7 @@ export class QueryBuilder {
351
351
  * Adds the `for share` option to a select query on supported databases.
352
352
  */
353
353
  forShare() {
354
- ensureCanHaveSelectClause(this.#props.queryNode);
354
+ assertCanHaveSelectClause(this.#props.queryNode);
355
355
  return new QueryBuilder({
356
356
  ...this.#props,
357
357
  queryNode: SelectQueryNode.cloneWithModifier(this.#props.queryNode, 'ForShare'),
@@ -361,7 +361,7 @@ export class QueryBuilder {
361
361
  * Adds the `for key share` option to a select query on supported databases.
362
362
  */
363
363
  forKeyShare() {
364
- ensureCanHaveSelectClause(this.#props.queryNode);
364
+ assertCanHaveSelectClause(this.#props.queryNode);
365
365
  return new QueryBuilder({
366
366
  ...this.#props,
367
367
  queryNode: SelectQueryNode.cloneWithModifier(this.#props.queryNode, 'ForKeyShare'),
@@ -371,7 +371,7 @@ export class QueryBuilder {
371
371
  * Adds the `for no key update` option to a select query on supported databases.
372
372
  */
373
373
  forNoKeyUpdate() {
374
- ensureCanHaveSelectClause(this.#props.queryNode);
374
+ assertCanHaveSelectClause(this.#props.queryNode);
375
375
  return new QueryBuilder({
376
376
  ...this.#props,
377
377
  queryNode: SelectQueryNode.cloneWithModifier(this.#props.queryNode, 'ForNoKeyUpdate'),
@@ -381,7 +381,7 @@ export class QueryBuilder {
381
381
  * Adds the `skip locked` option to a select query on supported databases.
382
382
  */
383
383
  skipLocked() {
384
- ensureCanHaveSelectClause(this.#props.queryNode);
384
+ assertCanHaveSelectClause(this.#props.queryNode);
385
385
  return new QueryBuilder({
386
386
  ...this.#props,
387
387
  queryNode: SelectQueryNode.cloneWithModifier(this.#props.queryNode, 'SkipLocked'),
@@ -391,66 +391,129 @@ export class QueryBuilder {
391
391
  * Adds the `nowait` option to a select query on supported databases.
392
392
  */
393
393
  noWait() {
394
- ensureCanHaveSelectClause(this.#props.queryNode);
394
+ assertCanHaveSelectClause(this.#props.queryNode);
395
395
  return new QueryBuilder({
396
396
  ...this.#props,
397
397
  queryNode: SelectQueryNode.cloneWithModifier(this.#props.queryNode, 'NoWait'),
398
398
  });
399
399
  }
400
400
  selectAll(table) {
401
- ensureCanHaveSelectClause(this.#props.queryNode);
401
+ assertCanHaveSelectClause(this.#props.queryNode);
402
402
  return new QueryBuilder({
403
403
  ...this.#props,
404
- queryNode: SelectQueryNode.cloneWithSelections(this.#props.queryNode, parseSelectAllArgs(table)),
404
+ queryNode: SelectQueryNode.cloneWithSelections(this.#props.queryNode, parseSelectAll(table)),
405
405
  });
406
406
  }
407
407
  innerJoin(...args) {
408
- ensureCanHaveJoins(this.#props.queryNode);
408
+ assertCanHaveJoins(this.#props.queryNode);
409
409
  return new QueryBuilder({
410
410
  ...this.#props,
411
- queryNode: QueryNode.cloneWithJoin(this.#props.queryNode, parseJoinArgs(this.#parseContext, 'InnerJoin', args)),
411
+ queryNode: QueryNode.cloneWithJoin(this.#props.queryNode, parseJoin(this.#props.parseContext, 'InnerJoin', args)),
412
412
  });
413
413
  }
414
414
  leftJoin(...args) {
415
- ensureCanHaveJoins(this.#props.queryNode);
415
+ assertCanHaveJoins(this.#props.queryNode);
416
416
  return new QueryBuilder({
417
417
  ...this.#props,
418
- queryNode: QueryNode.cloneWithJoin(this.#props.queryNode, parseJoinArgs(this.#parseContext, 'LeftJoin', args)),
418
+ queryNode: QueryNode.cloneWithJoin(this.#props.queryNode, parseJoin(this.#props.parseContext, 'LeftJoin', args)),
419
419
  });
420
420
  }
421
421
  rightJoin(...args) {
422
- ensureCanHaveJoins(this.#props.queryNode);
422
+ assertCanHaveJoins(this.#props.queryNode);
423
423
  return new QueryBuilder({
424
424
  ...this.#props,
425
- queryNode: QueryNode.cloneWithJoin(this.#props.queryNode, parseJoinArgs(this.#parseContext, 'RightJoin', args)),
425
+ queryNode: QueryNode.cloneWithJoin(this.#props.queryNode, parseJoin(this.#props.parseContext, 'RightJoin', args)),
426
426
  });
427
427
  }
428
428
  fullJoin(...args) {
429
- ensureCanHaveJoins(this.#props.queryNode);
429
+ assertCanHaveJoins(this.#props.queryNode);
430
430
  return new QueryBuilder({
431
431
  ...this.#props,
432
- queryNode: QueryNode.cloneWithJoin(this.#props.queryNode, parseJoinArgs(this.#parseContext, 'FullJoin', args)),
432
+ queryNode: QueryNode.cloneWithJoin(this.#props.queryNode, parseJoin(this.#props.parseContext, 'FullJoin', args)),
433
433
  });
434
434
  }
435
435
  values(args) {
436
- ensureCanHaveInsertValues(this.#props.queryNode);
436
+ assertCanHaveInsertValues(this.#props.queryNode);
437
+ const [columns, values] = parseInsertObjectOrList(args);
437
438
  return new QueryBuilder({
438
439
  ...this.#props,
439
- queryNode: InsertQueryNode.cloneWithColumnsAndValues(this.#props.queryNode, ...parseInsertObjectOrList(args)),
440
+ queryNode: InsertQueryNode.cloneWith(this.#props.queryNode, {
441
+ columns,
442
+ values,
443
+ }),
440
444
  });
441
445
  }
442
446
  onConflictDoNothing(target) {
443
- ensureCanHaveOnConflict(this.#props.queryNode);
447
+ assertCanHaveOnConflict(this.#props.queryNode);
444
448
  return new QueryBuilder({
445
449
  ...this.#props,
446
- queryNode: InsertQueryNode.cloneWithOnConflict(this.#props.queryNode, parseOnConflictDoNothing(target)),
450
+ queryNode: InsertQueryNode.cloneWith(this.#props.queryNode, {
451
+ onConflict: parseOnConflictDoNothing(target),
452
+ }),
453
+ });
454
+ }
455
+ /**
456
+ * Changes an `insert into` query to an `insert ignore into` query.
457
+ *
458
+ * If you use the ignore modifier, ignorable errors that occur while executing the
459
+ * insert statement are ignored. For example, without ignore, a row that duplicates
460
+ * an existing unique index or primary key value in the table causes a duplicate-key
461
+ * error and the statement is aborted. With ignore, the row is discarded and no error
462
+ * occurs.
463
+ *
464
+ * This is only supported on some dialects like MySQL. On most dialects you should
465
+ * use the {@link onConflictDoNothing} method.
466
+ *
467
+ * @example
468
+ * ```ts
469
+ * await db.insertInto('person')
470
+ * .ignore()
471
+ * .values(values)
472
+ * .execute()
473
+ * ```
474
+ */
475
+ ignore() {
476
+ assertCanHaveInsertIgnore(this.#props.queryNode);
477
+ return new QueryBuilder({
478
+ ...this.#props,
479
+ queryNode: InsertQueryNode.cloneWith(this.#props.queryNode, {
480
+ ignore: true,
481
+ }),
447
482
  });
448
483
  }
449
484
  onConflictUpdate(target, updates) {
450
- ensureCanHaveOnConflict(this.#props.queryNode);
485
+ assertCanHaveOnConflict(this.#props.queryNode);
451
486
  return new QueryBuilder({
452
487
  ...this.#props,
453
- queryNode: InsertQueryNode.cloneWithOnConflict(this.#props.queryNode, parseOnConflictUpdate(this.#parseContext, target, updates)),
488
+ queryNode: InsertQueryNode.cloneWith(this.#props.queryNode, {
489
+ onConflict: parseOnConflictUpdate(this.#props.parseContext, target, updates),
490
+ }),
491
+ });
492
+ }
493
+ /**
494
+ * Adds `on duplicate key update` to an insert query.
495
+ *
496
+ * If you specify `on duplicate key update`, and a row is inserted that would cause
497
+ * a duplicate value in a unique index or primary key, an update of the old row occurs.
498
+ *
499
+ * This is only implemented by some dialects like MySQL. On most dialects you should
500
+ * use {@link onConflictUpdate} instead.
501
+ *
502
+ * @example
503
+ * ```ts
504
+ * await db
505
+ * .insertInto('person')
506
+ * .values(values)
507
+ * .onDuplicateKeyUpdate({ species: 'hamster' })
508
+ * ```
509
+ */
510
+ onDuplicateKeyUpdate(updates) {
511
+ assertCanHaveOnDuplicateKey(this.#props.queryNode);
512
+ return new QueryBuilder({
513
+ ...this.#props,
514
+ queryNode: InsertQueryNode.cloneWith(this.#props.queryNode, {
515
+ onDuplicateKey: OnDuplicateKeyNode.create(parseUpdateObject(this.#props.parseContext, updates)),
516
+ }),
454
517
  });
455
518
  }
456
519
  /**
@@ -536,17 +599,17 @@ export class QueryBuilder {
536
599
  * ```
537
600
  */
538
601
  set(row) {
539
- ensureCanHaveUpdates(this.#props.queryNode);
602
+ assertCanHaveUpdates(this.#props.queryNode);
540
603
  return new QueryBuilder({
541
604
  ...this.#props,
542
- queryNode: UpdateQueryNode.cloneWithUpdates(this.#props.queryNode, parseUpdateObject(this.#parseContext, row)),
605
+ queryNode: UpdateQueryNode.cloneWithUpdates(this.#props.queryNode, parseUpdateObject(this.#props.parseContext, row)),
543
606
  });
544
607
  }
545
608
  returning(selection) {
546
- ensureCanHaveReturningClause(this.#props.queryNode);
609
+ assertCanHaveReturningClause(this.#props.queryNode);
547
610
  return new QueryBuilder({
548
611
  ...this.#props,
549
- queryNode: QueryNode.cloneWithReturning(this.#props.queryNode, parseSelectExpressionOrList(this.#parseContext, selection)),
612
+ queryNode: QueryNode.cloneWithReturning(this.#props.queryNode, parseSelectExpressionOrList(this.#props.parseContext, selection)),
550
613
  });
551
614
  }
552
615
  /**
@@ -554,10 +617,10 @@ export class QueryBuilder {
554
617
  * that support `returning` such as postgres.
555
618
  */
556
619
  returningAll() {
557
- ensureCanHaveReturningClause(this.#props.queryNode);
620
+ assertCanHaveReturningClause(this.#props.queryNode);
558
621
  return new QueryBuilder({
559
622
  ...this.#props,
560
- queryNode: QueryNode.cloneWithReturning(this.#props.queryNode, parseSelectAllArgs()),
623
+ queryNode: QueryNode.cloneWithReturning(this.#props.queryNode, parseSelectAll()),
561
624
  });
562
625
  }
563
626
  /**
@@ -647,17 +710,17 @@ export class QueryBuilder {
647
710
  * ```
648
711
  */
649
712
  orderBy(orderBy, direction = 'asc') {
650
- ensureCanHaveOrderByClause(this.#props.queryNode);
713
+ assertCanHaveOrderByClause(this.#props.queryNode);
651
714
  return new QueryBuilder({
652
715
  ...this.#props,
653
- queryNode: SelectQueryNode.cloneWithOrderByItem(this.#props.queryNode, OrderByItemNode.create(parseReferenceExpression(this.#parseContext, orderBy), direction)),
716
+ queryNode: SelectQueryNode.cloneWithOrderByItem(this.#props.queryNode, OrderByItemNode.create(parseReferenceExpression(this.#props.parseContext, orderBy), direction)),
654
717
  });
655
718
  }
656
719
  groupBy(orderBy) {
657
- ensureCanHaveGroupByClause(this.#props.queryNode);
720
+ assertCanHaveGroupByClause(this.#props.queryNode);
658
721
  return new QueryBuilder({
659
722
  ...this.#props,
660
- queryNode: SelectQueryNode.cloneWithGroupByItems(this.#props.queryNode, parseReferenceExpressionOrList(this.#parseContext, orderBy).map(GroupByItemNode.create)),
723
+ queryNode: SelectQueryNode.cloneWithGroupByItems(this.#props.queryNode, parseReferenceExpressionOrList(this.#props.parseContext, orderBy).map(GroupByItemNode.create)),
661
724
  });
662
725
  }
663
726
  /**
@@ -685,7 +748,7 @@ export class QueryBuilder {
685
748
  * ```
686
749
  */
687
750
  limit(limit) {
688
- ensureCanHaveLimit(this.#props.queryNode);
751
+ assertCanHaveLimit(this.#props.queryNode);
689
752
  return new QueryBuilder({
690
753
  ...this.#props,
691
754
  queryNode: SelectQueryNode.cloneWithLimit(this.#props.queryNode, LimitNode.create(limit)),
@@ -706,7 +769,7 @@ export class QueryBuilder {
706
769
  * ```
707
770
  */
708
771
  offset(offset) {
709
- ensureCanHaveOffset(this.#props.queryNode);
772
+ assertCanHaveOffset(this.#props.queryNode);
710
773
  return new QueryBuilder({
711
774
  ...this.#props,
712
775
  queryNode: SelectQueryNode.cloneWithOffset(this.#props.queryNode, OffsetNode.create(offset)),
@@ -756,7 +819,8 @@ export class QueryBuilder {
756
819
  const compildQuery = this.#props.executor.compileQuery(node, this.#props.queryId);
757
820
  const result = await this.#props.executor.executeQuery(compildQuery, this.#props.queryId);
758
821
  if (InsertQueryNode.is(node)) {
759
- if (this.#props.adapter.supportsReturning && node.returning) {
822
+ if (this.#props.parseContext.adapter.supportsReturning &&
823
+ node.returning) {
760
824
  return result.rows;
761
825
  }
762
826
  else if (result.insertedPrimaryKey != null) {
@@ -767,7 +831,8 @@ export class QueryBuilder {
767
831
  }
768
832
  }
769
833
  else if (UpdateQueryNode.is(node) || DeleteQueryNode.is(node)) {
770
- if (this.#props.adapter.supportsReturning && node.returning) {
834
+ if (this.#props.parseContext.adapter.supportsReturning &&
835
+ node.returning) {
771
836
  return result.rows;
772
837
  }
773
838
  else if (result.numUpdatedOrDeletedRows != null) {
@@ -804,9 +869,6 @@ export class QueryBuilder {
804
869
  }
805
870
  return result;
806
871
  }
807
- get #parseContext() {
808
- return createParseContext(this.#props.adapter);
809
- }
810
872
  }
811
873
  preventAwait(QueryBuilder, "don't await QueryBuilder instances directly. To execute the query you need to call `execute` or `executeTakeFirst`.");
812
874
  /**
@@ -848,62 +910,72 @@ export class NoResultError extends Error {
848
910
  this.node = node;
849
911
  }
850
912
  }
851
- function ensureCanHaveWhereClause(node) {
913
+ function assertCanHaveWhereClause(node) {
852
914
  if (!QueryNode.isFilterable(node)) {
853
915
  throw new Error('only select, delete and update queries can have a where clause');
854
916
  }
855
917
  }
856
- function ensureCanHaveHavingClause(node) {
918
+ function assertCanHaveHavingClause(node) {
857
919
  if (!SelectQueryNode.is(node)) {
858
920
  throw new Error('only select queries can have a having clause');
859
921
  }
860
922
  }
861
- function ensureCanHaveSelectClause(node) {
923
+ function assertCanHaveSelectClause(node) {
862
924
  if (!SelectQueryNode.is(node)) {
863
925
  throw new Error('only a select query can have selections');
864
926
  }
865
927
  }
866
- function ensureCanHaveJoins(node) {
928
+ function assertCanHaveJoins(node) {
867
929
  if (!QueryNode.isFilterable(node)) {
868
930
  throw new Error('only select, delete and update queries can have joins');
869
931
  }
870
932
  }
871
- function ensureCanHaveInsertValues(node) {
933
+ function assertCanHaveInsertValues(node) {
872
934
  if (!InsertQueryNode.is(node)) {
873
935
  throw new Error('only an insert query can have insert values');
874
936
  }
875
937
  }
876
- function ensureCanHaveOnConflict(node) {
938
+ function assertCanHaveInsertIgnore(node) {
939
+ if (!InsertQueryNode.is(node)) {
940
+ throw new Error('only an insert query can have the ignore clause');
941
+ }
942
+ }
943
+ function assertCanHaveOnConflict(node) {
877
944
  if (!InsertQueryNode.is(node)) {
878
945
  throw new Error('only an insert query can have an on conflict clause');
879
946
  }
880
947
  }
881
- function ensureCanHaveUpdates(node) {
948
+ function assertCanHaveOnDuplicateKey(node) {
949
+ if (!InsertQueryNode.is(node)) {
950
+ throw new Error('only an insert query can have an on duplicate key clause');
951
+ }
952
+ }
953
+ function assertCanHaveUpdates(node) {
882
954
  if (!UpdateQueryNode.is(node)) {
883
955
  throw new Error('only an update query can set values');
884
956
  }
885
957
  }
886
- function ensureCanHaveReturningClause(node) {
958
+ function assertCanHaveReturningClause(node) {
887
959
  if (!QueryNode.isMutating(node)) {
888
960
  throw new Error('only an insert, delete and update queries can have a returning clause');
889
961
  }
890
962
  }
891
- function ensureCanHaveOrderByClause(node) {
963
+ function assertCanHaveOrderByClause(node) {
892
964
  if (!SelectQueryNode.is(node)) {
893
965
  throw new Error('only a select query can have an order by clause');
894
966
  }
895
967
  }
896
- function ensureCanHaveGroupByClause(node) {
968
+ function assertCanHaveGroupByClause(node) {
897
969
  if (!SelectQueryNode.is(node)) {
898
970
  throw new Error('only a select query can have a group by clause');
899
971
  }
900
972
  }
901
- function ensureCanHaveLimit(node) {
973
+ function assertCanHaveLimit(node) {
902
974
  if (!SelectQueryNode.is(node)) {
903
975
  throw new Error('only a select query can have a limit');
904
976
  }
905
977
  }
906
- function ensureCanHaveOffset(node) {
978
+ function assertCanHaveOffset(node) {
907
979
  if (!SelectQueryNode.is(node)) {
908
980
  throw new Error('only a select query can have an offset');
909
981
  }
@@ -1,6 +1,6 @@
1
1
  import { AliasedRawBuilder, RawBuilder } from '../raw-builder/raw-builder.js';
2
2
  import { AliasedQueryBuilder, QueryBuilder } from './query-builder.js';
3
- import { SubQueryBuilder } from './sub-query-builder.js';
3
+ import { ExpressionBuilder } from './expression-builder.js';
4
4
  export declare type ValueType<T> = T[keyof T];
5
5
  /**
6
6
  * Given a database type and a union of table names returns the row type
@@ -127,10 +127,10 @@ export declare type AnyQueryBuilder = QueryBuilder<any, any, any>;
127
127
  export declare type AnyAliasedQueryBuilder = AliasedQueryBuilder<any, any, any, any>;
128
128
  export declare type AnyRawBuilder = RawBuilder<any>;
129
129
  export declare type AnyAliasedRawBuilder = AliasedRawBuilder<any, any>;
130
- export declare type QueryBuilderFactory<DB, TB extends keyof DB> = (qb: SubQueryBuilder<DB, TB>) => QueryBuilder<any, any, any>;
131
- export declare type AliasedQueryBuilderFactory<DB, TB extends keyof DB> = (qb: SubQueryBuilder<DB, TB>) => AnyAliasedQueryBuilder;
132
- export declare type RawBuilderFactory<DB, TB extends keyof DB> = (qb: SubQueryBuilder<DB, TB>) => AnyRawBuilder;
133
- export declare type AliasedRawBuilderFactory<DB, TB extends keyof DB> = (qb: SubQueryBuilder<DB, TB>) => AnyAliasedRawBuilder;
130
+ export declare type QueryBuilderFactory<DB, TB extends keyof DB> = (qb: ExpressionBuilder<DB, TB>) => QueryBuilder<any, any, any>;
131
+ export declare type AliasedQueryBuilderFactory<DB, TB extends keyof DB> = (qb: ExpressionBuilder<DB, TB>) => AnyAliasedQueryBuilder;
132
+ export declare type RawBuilderFactory<DB, TB extends keyof DB> = (qb: ExpressionBuilder<DB, TB>) => AnyRawBuilder;
133
+ export declare type AliasedRawBuilderFactory<DB, TB extends keyof DB> = (qb: ExpressionBuilder<DB, TB>) => AnyAliasedRawBuilder;
134
134
  export interface InsertResultTypeTag {
135
135
  /** @internal */
136
136
  __isInsertResultTypeTag__: true;
@@ -59,6 +59,7 @@ import { DropConstraintNode } from '../operation-node/drop-constraint-node.js';
59
59
  import { ForeignKeyConstraintNode } from '../operation-node/foreign-key-constraint-node.js';
60
60
  import { ColumnDefinitionNode } from '../operation-node/column-definition-node.js';
61
61
  import { ModifyColumnNode } from '../operation-node/modify-column-node.js';
62
+ import { OnDuplicateKeyNode } from '../operation-node/on-duplicate-key-node.js';
62
63
  export declare class DefaultQueryCompiler extends OperationNodeVisitor implements QueryCompiler {
63
64
  #private;
64
65
  protected get numBindings(): number;
@@ -71,7 +72,6 @@ export declare class DefaultQueryCompiler extends OperationNodeVisitor implement
71
72
  protected visitWhere(node: WhereNode): void;
72
73
  protected visitHaving(node: HavingNode): void;
73
74
  protected visitInsertQuery(node: InsertQueryNode): void;
74
- protected getInsertInto(node: InsertQueryNode): string;
75
75
  protected visitDeleteQuery(node: DeleteQueryNode): void;
76
76
  protected visitReturning(node: ReturningNode): void;
77
77
  protected visitAlias(node: AliasNode): void;
@@ -104,6 +104,7 @@ export declare class DefaultQueryCompiler extends OperationNodeVisitor implement
104
104
  protected visitLimit(node: LimitNode): void;
105
105
  protected visitOffset(node: OffsetNode): void;
106
106
  protected visitOnConflict(node: OnConflictNode): void;
107
+ protected visitOnDuplicateKey(node: OnDuplicateKeyNode): void;
107
108
  protected visitCreateIndex(node: CreateIndexNode): void;
108
109
  protected visitDropIndex(node: DropIndexNode): void;
109
110
  protected visitCreateSchema(node: CreateSchemaNode): void;