kysely 0.27.1 → 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 (161) 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/migration/migrator.d.ts +19 -2
  16. package/dist/cjs/migration/migrator.js +77 -43
  17. package/dist/cjs/operation-node/add-index-node.js +1 -1
  18. package/dist/cjs/operation-node/cast-node.d.ts +13 -0
  19. package/dist/cjs/operation-node/cast-node.js +19 -0
  20. package/dist/cjs/operation-node/column-definition-node.d.ts +1 -0
  21. package/dist/cjs/operation-node/data-type-node.d.ts +5 -1
  22. package/dist/cjs/operation-node/data-type-node.js +55 -1
  23. package/dist/cjs/operation-node/delete-query-node.d.ts +4 -0
  24. package/dist/cjs/operation-node/delete-query-node.js +12 -0
  25. package/dist/cjs/operation-node/fetch-node.d.ts +15 -0
  26. package/dist/cjs/operation-node/fetch-node.js +19 -0
  27. package/dist/cjs/operation-node/insert-query-node.d.ts +4 -1
  28. package/dist/cjs/operation-node/insert-query-node.js +5 -0
  29. package/dist/cjs/operation-node/join-node.d.ts +1 -1
  30. package/dist/cjs/operation-node/matched-node.d.ts +13 -0
  31. package/dist/cjs/operation-node/matched-node.js +19 -0
  32. package/dist/cjs/operation-node/merge-query-node.d.ts +25 -0
  33. package/dist/cjs/operation-node/merge-query-node.js +45 -0
  34. package/dist/cjs/operation-node/operation-node-transformer.d.ts +10 -0
  35. package/dist/cjs/operation-node/operation-node-transformer.js +50 -0
  36. package/dist/cjs/operation-node/operation-node-visitor.d.ts +10 -0
  37. package/dist/cjs/operation-node/operation-node-visitor.js +5 -0
  38. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  39. package/dist/cjs/operation-node/query-node.d.ts +10 -3
  40. package/dist/cjs/operation-node/query-node.js +15 -1
  41. package/dist/cjs/operation-node/select-query-node.d.ts +5 -0
  42. package/dist/cjs/operation-node/select-query-node.js +6 -0
  43. package/dist/cjs/operation-node/top-node.d.ts +14 -0
  44. package/dist/cjs/operation-node/top-node.js +19 -0
  45. package/dist/cjs/operation-node/update-query-node.d.ts +7 -1
  46. package/dist/cjs/operation-node/update-query-node.js +11 -0
  47. package/dist/cjs/parser/binary-operation-parser.d.ts +1 -1
  48. package/dist/cjs/parser/binary-operation-parser.js +2 -2
  49. package/dist/cjs/parser/data-type-parser.js +7 -3
  50. package/dist/cjs/parser/fetch-parser.d.ts +2 -0
  51. package/dist/cjs/parser/fetch-parser.js +18 -0
  52. package/dist/cjs/parser/insert-values-parser.d.ts +3 -3
  53. package/dist/cjs/parser/merge-parser.d.ts +9 -0
  54. package/dist/cjs/parser/merge-parser.js +32 -0
  55. package/dist/cjs/parser/table-parser.d.ts +4 -3
  56. package/dist/cjs/parser/top-parser.d.ts +2 -0
  57. package/dist/cjs/parser/top-parser.js +20 -0
  58. package/dist/cjs/plugin/with-schema/with-schema-transformer.js +4 -0
  59. package/dist/cjs/query-builder/delete-query-builder.d.ts +99 -0
  60. package/dist/cjs/query-builder/delete-query-builder.js +120 -0
  61. package/dist/cjs/query-builder/insert-query-builder.d.ts +73 -3
  62. package/dist/cjs/query-builder/insert-query-builder.js +242 -0
  63. package/dist/cjs/query-builder/merge-query-builder.d.ts +557 -0
  64. package/dist/cjs/query-builder/merge-query-builder.js +518 -0
  65. package/dist/cjs/query-builder/merge-result.d.ts +4 -0
  66. package/dist/cjs/query-builder/merge-result.js +10 -0
  67. package/dist/cjs/query-builder/select-query-builder.d.ts +102 -7
  68. package/dist/cjs/query-builder/select-query-builder.js +14 -0
  69. package/dist/cjs/query-builder/update-query-builder.d.ts +82 -3
  70. package/dist/cjs/query-builder/update-query-builder.js +98 -0
  71. package/dist/cjs/query-compiler/default-query-compiler.d.ts +10 -0
  72. package/dist/cjs/query-compiler/default-query-compiler.js +94 -10
  73. package/dist/cjs/query-compiler/query-compiler.d.ts +2 -1
  74. package/dist/cjs/query-creator.d.ts +40 -2
  75. package/dist/cjs/query-creator.js +9 -0
  76. package/dist/cjs/schema/alter-table-add-index-builder.js +6 -2
  77. package/dist/cjs/schema/column-definition-builder.d.ts +13 -1
  78. package/dist/cjs/schema/column-definition-builder.js +15 -1
  79. package/dist/cjs/util/infer-result.d.ts +2 -1
  80. package/dist/cjs/util/type-utils.d.ts +3 -2
  81. package/dist/esm/dialect/database-introspector.d.ts +1 -0
  82. package/dist/esm/dialect/mssql/mssql-introspector.js +13 -2
  83. package/dist/esm/dialect/mssql/mssql-query-compiler.d.ts +4 -0
  84. package/dist/esm/dialect/mssql/mssql-query-compiler.js +8 -0
  85. package/dist/esm/dialect/mysql/mysql-introspector.js +2 -0
  86. package/dist/esm/dialect/postgres/postgres-dialect-config.d.ts +1 -1
  87. package/dist/esm/dialect/postgres/postgres-driver.js +2 -1
  88. package/dist/esm/dialect/postgres/postgres-introspector.js +2 -0
  89. package/dist/esm/dialect/sqlite/sqlite-introspector.js +1 -0
  90. package/dist/esm/driver/database-connection.d.ts +1 -1
  91. package/dist/esm/expression/expression-builder.d.ts +30 -4
  92. package/dist/esm/expression/expression-builder.js +5 -0
  93. package/dist/esm/index.d.ts +7 -1
  94. package/dist/esm/index.js +6 -0
  95. package/dist/esm/migration/migrator.d.ts +19 -2
  96. package/dist/esm/migration/migrator.js +76 -42
  97. package/dist/esm/operation-node/add-index-node.js +1 -1
  98. package/dist/esm/operation-node/cast-node.d.ts +13 -0
  99. package/dist/esm/operation-node/cast-node.js +17 -0
  100. package/dist/esm/operation-node/column-definition-node.d.ts +1 -0
  101. package/dist/esm/operation-node/data-type-node.d.ts +5 -1
  102. package/dist/esm/operation-node/data-type-node.js +53 -0
  103. package/dist/esm/operation-node/delete-query-node.d.ts +4 -0
  104. package/dist/esm/operation-node/delete-query-node.js +12 -0
  105. package/dist/esm/operation-node/fetch-node.d.ts +15 -0
  106. package/dist/esm/operation-node/fetch-node.js +17 -0
  107. package/dist/esm/operation-node/insert-query-node.d.ts +4 -1
  108. package/dist/esm/operation-node/insert-query-node.js +5 -0
  109. package/dist/esm/operation-node/join-node.d.ts +1 -1
  110. package/dist/esm/operation-node/matched-node.d.ts +13 -0
  111. package/dist/esm/operation-node/matched-node.js +17 -0
  112. package/dist/esm/operation-node/merge-query-node.d.ts +25 -0
  113. package/dist/esm/operation-node/merge-query-node.js +43 -0
  114. package/dist/esm/operation-node/operation-node-transformer.d.ts +10 -0
  115. package/dist/esm/operation-node/operation-node-transformer.js +50 -0
  116. package/dist/esm/operation-node/operation-node-visitor.d.ts +10 -0
  117. package/dist/esm/operation-node/operation-node-visitor.js +5 -0
  118. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  119. package/dist/esm/operation-node/query-node.d.ts +10 -3
  120. package/dist/esm/operation-node/query-node.js +15 -1
  121. package/dist/esm/operation-node/select-query-node.d.ts +5 -0
  122. package/dist/esm/operation-node/select-query-node.js +6 -0
  123. package/dist/esm/operation-node/top-node.d.ts +14 -0
  124. package/dist/esm/operation-node/top-node.js +17 -0
  125. package/dist/esm/operation-node/update-query-node.d.ts +7 -1
  126. package/dist/esm/operation-node/update-query-node.js +11 -0
  127. package/dist/esm/parser/binary-operation-parser.d.ts +1 -1
  128. package/dist/esm/parser/binary-operation-parser.js +2 -2
  129. package/dist/esm/parser/data-type-parser.js +8 -4
  130. package/dist/esm/parser/fetch-parser.d.ts +2 -0
  131. package/dist/esm/parser/fetch-parser.js +15 -0
  132. package/dist/esm/parser/insert-values-parser.d.ts +3 -3
  133. package/dist/esm/parser/merge-parser.d.ts +9 -0
  134. package/dist/esm/parser/merge-parser.js +28 -0
  135. package/dist/esm/parser/table-parser.d.ts +4 -3
  136. package/dist/esm/parser/top-parser.d.ts +2 -0
  137. package/dist/esm/parser/top-parser.js +17 -0
  138. package/dist/esm/plugin/with-schema/with-schema-transformer.js +4 -0
  139. package/dist/esm/query-builder/delete-query-builder.d.ts +99 -0
  140. package/dist/esm/query-builder/delete-query-builder.js +120 -0
  141. package/dist/esm/query-builder/insert-query-builder.d.ts +73 -3
  142. package/dist/esm/query-builder/insert-query-builder.js +242 -0
  143. package/dist/esm/query-builder/merge-query-builder.d.ts +557 -0
  144. package/dist/esm/query-builder/merge-query-builder.js +512 -0
  145. package/dist/esm/query-builder/merge-result.d.ts +4 -0
  146. package/dist/esm/query-builder/merge-result.js +7 -0
  147. package/dist/esm/query-builder/select-query-builder.d.ts +102 -7
  148. package/dist/esm/query-builder/select-query-builder.js +14 -0
  149. package/dist/esm/query-builder/update-query-builder.d.ts +82 -3
  150. package/dist/esm/query-builder/update-query-builder.js +98 -0
  151. package/dist/esm/query-compiler/default-query-compiler.d.ts +10 -0
  152. package/dist/esm/query-compiler/default-query-compiler.js +94 -10
  153. package/dist/esm/query-compiler/query-compiler.d.ts +2 -1
  154. package/dist/esm/query-creator.d.ts +40 -2
  155. package/dist/esm/query-creator.js +10 -1
  156. package/dist/esm/schema/alter-table-add-index-builder.js +7 -3
  157. package/dist/esm/schema/column-definition-builder.d.ts +13 -1
  158. package/dist/esm/schema/column-definition-builder.js +15 -1
  159. package/dist/esm/util/infer-result.d.ts +2 -1
  160. package/dist/esm/util/type-utils.d.ts +3 -2
  161. package/package.json +22 -21
@@ -119,7 +119,12 @@ export class OperationNodeTransformer {
119
119
  JSONPathLegNode: this.transformJSONPathLeg.bind(this),
120
120
  JSONOperatorChainNode: this.transformJSONOperatorChain.bind(this),
121
121
  TupleNode: this.transformTuple.bind(this),
122
+ MergeQueryNode: this.transformMergeQuery.bind(this),
123
+ MatchedNode: this.transformMatched.bind(this),
122
124
  AddIndexNode: this.transformAddIndex.bind(this),
125
+ CastNode: this.transformCast.bind(this),
126
+ FetchNode: this.transformFetch.bind(this),
127
+ TopNode: this.transformTop.bind(this),
123
128
  });
124
129
  transformNode(node) {
125
130
  if (!node) {
@@ -157,6 +162,8 @@ export class OperationNodeTransformer {
157
162
  having: this.transformNode(node.having),
158
163
  explain: this.transformNode(node.explain),
159
164
  setOperations: this.transformNodeList(node.setOperations),
165
+ fetch: this.transformNode(node.fetch),
166
+ top: this.transformNode(node.top),
160
167
  });
161
168
  }
162
169
  transformSelection(node) {
@@ -258,6 +265,7 @@ export class OperationNodeTransformer {
258
265
  replace: node.replace,
259
266
  explain: this.transformNode(node.explain),
260
267
  defaultValues: node.defaultValues,
268
+ top: this.transformNode(node.top),
261
269
  });
262
270
  }
263
271
  transformValues(node) {
@@ -278,6 +286,7 @@ export class OperationNodeTransformer {
278
286
  orderBy: this.transformNode(node.orderBy),
279
287
  limit: this.transformNode(node.limit),
280
288
  explain: this.transformNode(node.explain),
289
+ top: this.transformNode(node.top),
281
290
  });
282
291
  }
283
292
  transformReturning(node) {
@@ -317,6 +326,7 @@ export class OperationNodeTransformer {
317
326
  frontModifiers: this.transformNodeList(node.frontModifiers),
318
327
  endModifiers: this.transformNodeList(node.endModifiers),
319
328
  nullsNotDistinct: node.nullsNotDistinct,
329
+ identity: node.identity,
320
330
  });
321
331
  }
322
332
  transformAddColumn(node) {
@@ -369,6 +379,8 @@ export class OperationNodeTransformer {
369
379
  returning: this.transformNode(node.returning),
370
380
  with: this.transformNode(node.with),
371
381
  explain: this.transformNode(node.explain),
382
+ limit: this.transformNode(node.limit),
383
+ top: this.transformNode(node.top),
372
384
  });
373
385
  }
374
386
  transformColumnUpdate(node) {
@@ -772,6 +784,23 @@ export class OperationNodeTransformer {
772
784
  values: this.transformNodeList(node.values),
773
785
  });
774
786
  }
787
+ transformMergeQuery(node) {
788
+ return requireAllProps({
789
+ kind: 'MergeQueryNode',
790
+ into: this.transformNode(node.into),
791
+ using: this.transformNode(node.using),
792
+ whens: this.transformNodeList(node.whens),
793
+ with: this.transformNode(node.with),
794
+ top: this.transformNode(node.top),
795
+ });
796
+ }
797
+ transformMatched(node) {
798
+ return requireAllProps({
799
+ kind: 'MatchedNode',
800
+ not: node.not,
801
+ bySource: node.bySource,
802
+ });
803
+ }
775
804
  transformAddIndex(node) {
776
805
  return requireAllProps({
777
806
  kind: 'AddIndexNode',
@@ -782,6 +811,27 @@ export class OperationNodeTransformer {
782
811
  ifNotExists: node.ifNotExists,
783
812
  });
784
813
  }
814
+ transformCast(node) {
815
+ return requireAllProps({
816
+ kind: 'CastNode',
817
+ expression: this.transformNode(node.expression),
818
+ dataType: this.transformNode(node.dataType),
819
+ });
820
+ }
821
+ transformFetch(node) {
822
+ return requireAllProps({
823
+ kind: 'FetchNode',
824
+ rowCount: this.transformNode(node.rowCount),
825
+ modifier: node.modifier,
826
+ });
827
+ }
828
+ transformTop(node) {
829
+ return requireAllProps({
830
+ kind: 'TopNode',
831
+ expression: node.expression,
832
+ modifiers: node.modifiers,
833
+ });
834
+ }
785
835
  transformDataType(node) {
786
836
  // An Object.freezed leaf node. No need to clone.
787
837
  return node;
@@ -85,7 +85,12 @@ import { JSONPathNode } from './json-path-node.js';
85
85
  import { JSONPathLegNode } from './json-path-leg-node.js';
86
86
  import { JSONOperatorChainNode } from './json-operator-chain-node.js';
87
87
  import { TupleNode } from './tuple-node.js';
88
+ import { MergeQueryNode } from './merge-query-node.js';
89
+ import { MatchedNode } from './matched-node.js';
88
90
  import { AddIndexNode } from './add-index-node.js';
91
+ import { CastNode } from './cast-node.js';
92
+ import { FetchNode } from './fetch-node.js';
93
+ import { TopNode } from './top-node.js';
89
94
  export declare abstract class OperationNodeVisitor {
90
95
  #private;
91
96
  protected readonly nodeStack: OperationNode[];
@@ -177,5 +182,10 @@ export declare abstract class OperationNodeVisitor {
177
182
  protected abstract visitJSONPathLeg(node: JSONPathLegNode): void;
178
183
  protected abstract visitJSONOperatorChain(node: JSONOperatorChainNode): void;
179
184
  protected abstract visitTuple(node: TupleNode): void;
185
+ protected abstract visitMergeQuery(node: MergeQueryNode): void;
186
+ protected abstract visitMatched(node: MatchedNode): void;
180
187
  protected abstract visitAddIndex(node: AddIndexNode): void;
188
+ protected abstract visitCast(node: CastNode): void;
189
+ protected abstract visitFetch(node: FetchNode): void;
190
+ protected abstract visitTop(node: TopNode): void;
181
191
  }
@@ -92,7 +92,12 @@ export class OperationNodeVisitor {
92
92
  JSONPathLegNode: this.visitJSONPathLeg.bind(this),
93
93
  JSONOperatorChainNode: this.visitJSONOperatorChain.bind(this),
94
94
  TupleNode: this.visitTuple.bind(this),
95
+ MergeQueryNode: this.visitMergeQuery.bind(this),
96
+ MatchedNode: this.visitMatched.bind(this),
95
97
  AddIndexNode: this.visitAddIndex.bind(this),
98
+ CastNode: this.visitCast.bind(this),
99
+ FetchNode: this.visitFetch.bind(this),
100
+ TopNode: this.visitTop.bind(this),
96
101
  });
97
102
  visitNode = (node) => {
98
103
  this.nodeStack.push(node);
@@ -1,4 +1,4 @@
1
- export type OperationNodeKind = 'IdentifierNode' | 'SchemableIdentifierNode' | 'RawNode' | 'SelectQueryNode' | 'SelectionNode' | 'ReferenceNode' | 'ColumnNode' | 'TableNode' | 'AliasNode' | 'FromNode' | 'SelectAllNode' | 'AndNode' | 'OrNode' | 'ParensNode' | 'ValueNode' | 'ValueListNode' | 'PrimitiveValueListNode' | 'JoinNode' | 'OperatorNode' | 'WhereNode' | 'InsertQueryNode' | 'DeleteQueryNode' | 'ReturningNode' | 'CreateTableNode' | 'ColumnDefinitionNode' | 'AddColumnNode' | 'DropTableNode' | 'DataTypeNode' | 'OrderByNode' | 'OrderByItemNode' | 'GroupByNode' | 'GroupByItemNode' | 'UpdateQueryNode' | 'ColumnUpdateNode' | 'LimitNode' | 'OffsetNode' | 'OnConflictNode' | 'OnDuplicateKeyNode' | 'CreateIndexNode' | 'DropIndexNode' | 'ListNode' | 'ReferencesNode' | 'PrimaryKeyConstraintNode' | 'UniqueConstraintNode' | 'CheckConstraintNode' | 'ForeignKeyConstraintNode' | 'WithNode' | 'CommonTableExpressionNode' | 'HavingNode' | 'CreateSchemaNode' | 'DropSchemaNode' | 'AlterTableNode' | 'ModifyColumnNode' | 'DropColumnNode' | 'RenameColumnNode' | 'AlterColumnNode' | 'AddConstraintNode' | 'DropConstraintNode' | 'CreateViewNode' | 'DropViewNode' | 'GeneratedNode' | 'DefaultValueNode' | 'OnNode' | 'ValuesNode' | 'CommonTableExpressionNameNode' | 'SelectModifierNode' | 'CreateTypeNode' | 'DropTypeNode' | 'ExplainNode' | 'DefaultInsertValueNode' | 'AggregateFunctionNode' | 'OverNode' | 'PartitionByNode' | 'PartitionByItemNode' | 'SetOperationNode' | 'BinaryOperationNode' | 'UnaryOperationNode' | 'UsingNode' | 'FunctionNode' | 'CaseNode' | 'WhenNode' | 'JSONReferenceNode' | 'JSONPathNode' | 'JSONPathLegNode' | 'JSONOperatorChainNode' | 'TupleNode' | 'AddIndexNode';
1
+ export type OperationNodeKind = 'IdentifierNode' | 'SchemableIdentifierNode' | 'RawNode' | 'SelectQueryNode' | 'SelectionNode' | 'ReferenceNode' | 'ColumnNode' | 'TableNode' | 'AliasNode' | 'FromNode' | 'SelectAllNode' | 'AndNode' | 'OrNode' | 'ParensNode' | 'ValueNode' | 'ValueListNode' | 'PrimitiveValueListNode' | 'JoinNode' | 'OperatorNode' | 'WhereNode' | 'InsertQueryNode' | 'DeleteQueryNode' | 'ReturningNode' | 'CreateTableNode' | 'ColumnDefinitionNode' | 'AddColumnNode' | 'DropTableNode' | 'DataTypeNode' | 'OrderByNode' | 'OrderByItemNode' | 'GroupByNode' | 'GroupByItemNode' | 'UpdateQueryNode' | 'ColumnUpdateNode' | 'LimitNode' | 'OffsetNode' | 'OnConflictNode' | 'OnDuplicateKeyNode' | 'CreateIndexNode' | 'DropIndexNode' | 'ListNode' | 'ReferencesNode' | 'PrimaryKeyConstraintNode' | 'UniqueConstraintNode' | 'CheckConstraintNode' | 'ForeignKeyConstraintNode' | 'WithNode' | 'CommonTableExpressionNode' | 'HavingNode' | 'CreateSchemaNode' | 'DropSchemaNode' | 'AlterTableNode' | 'ModifyColumnNode' | 'DropColumnNode' | 'RenameColumnNode' | 'AlterColumnNode' | 'AddConstraintNode' | 'DropConstraintNode' | 'CreateViewNode' | 'DropViewNode' | 'GeneratedNode' | 'DefaultValueNode' | 'OnNode' | 'ValuesNode' | 'CommonTableExpressionNameNode' | 'SelectModifierNode' | 'CreateTypeNode' | 'DropTypeNode' | 'ExplainNode' | 'DefaultInsertValueNode' | 'AggregateFunctionNode' | 'OverNode' | 'PartitionByNode' | 'PartitionByItemNode' | 'SetOperationNode' | 'BinaryOperationNode' | 'UnaryOperationNode' | 'UsingNode' | 'FunctionNode' | 'CaseNode' | 'WhenNode' | 'JSONReferenceNode' | 'JSONPathNode' | 'JSONPathLegNode' | 'JSONOperatorChainNode' | 'TupleNode' | 'MergeQueryNode' | 'MatchedNode' | 'AddIndexNode' | 'CastNode' | 'FetchNode' | 'TopNode';
2
2
  export interface OperationNode {
3
3
  readonly kind: OperationNodeKind;
4
4
  }
@@ -10,7 +10,9 @@ import { OperationNode } from './operation-node.js';
10
10
  import { ExplainNode } from './explain-node.js';
11
11
  import { ExplainFormat } from '../util/explainable.js';
12
12
  import { Expression } from '../expression/expression.js';
13
- export type QueryNode = SelectQueryNode | InsertQueryNode | UpdateQueryNode | DeleteQueryNode;
13
+ import { MergeQueryNode } from './merge-query-node.js';
14
+ import { TopNode } from './top-node.js';
15
+ export type QueryNode = SelectQueryNode | InsertQueryNode | UpdateQueryNode | DeleteQueryNode | MergeQueryNode;
14
16
  type HasJoins = {
15
17
  joins?: ReadonlyArray<JoinNode>;
16
18
  };
@@ -23,6 +25,9 @@ type HasReturning = {
23
25
  type HasExplain = {
24
26
  explain?: ExplainNode;
25
27
  };
28
+ type HasTop = {
29
+ top?: TopNode;
30
+ };
26
31
  /**
27
32
  * @internal
28
33
  */
@@ -31,7 +36,9 @@ export declare const QueryNode: Readonly<{
31
36
  cloneWithWhere<T extends HasWhere>(node: T, operation: OperationNode): T;
32
37
  cloneWithJoin<T_1 extends HasJoins>(node: T_1, join: JoinNode): T_1;
33
38
  cloneWithReturning<T_2 extends HasReturning>(node: T_2, selections: ReadonlyArray<SelectionNode>): T_2;
34
- cloneWithoutWhere<T_3 extends HasWhere>(node: T_3): T_3;
35
- cloneWithExplain<T_4 extends HasExplain>(node: T_4, format: ExplainFormat | undefined, options: Expression<any> | undefined): T_4;
39
+ cloneWithoutReturning<T_3 extends HasReturning>(node: T_3): T_3;
40
+ cloneWithoutWhere<T_4 extends HasWhere>(node: T_4): T_4;
41
+ cloneWithExplain<T_5 extends HasExplain>(node: T_5, format: ExplainFormat | undefined, options: Expression<any> | undefined): T_5;
42
+ cloneWithTop<T_6 extends HasTop>(node: T_6, top: TopNode): T_6;
36
43
  }>;
37
44
  export {};
@@ -7,6 +7,7 @@ import { WhereNode } from './where-node.js';
7
7
  import { freeze } from '../util/object-utils.js';
8
8
  import { ReturningNode } from './returning-node.js';
9
9
  import { ExplainNode } from './explain-node.js';
10
+ import { MergeQueryNode } from './merge-query-node.js';
10
11
  /**
11
12
  * @internal
12
13
  */
@@ -15,7 +16,8 @@ export const QueryNode = freeze({
15
16
  return (SelectQueryNode.is(node) ||
16
17
  InsertQueryNode.is(node) ||
17
18
  UpdateQueryNode.is(node) ||
18
- DeleteQueryNode.is(node));
19
+ DeleteQueryNode.is(node) ||
20
+ MergeQueryNode.is(node));
19
21
  },
20
22
  cloneWithWhere(node, operation) {
21
23
  return freeze({
@@ -39,6 +41,12 @@ export const QueryNode = freeze({
39
41
  : ReturningNode.create(selections),
40
42
  });
41
43
  },
44
+ cloneWithoutReturning(node) {
45
+ return freeze({
46
+ ...node,
47
+ returning: undefined,
48
+ });
49
+ },
42
50
  cloneWithoutWhere(node) {
43
51
  return freeze({
44
52
  ...node,
@@ -51,4 +59,10 @@ export const QueryNode = freeze({
51
59
  explain: ExplainNode.create(format, options?.toOperationNode()),
52
60
  });
53
61
  },
62
+ cloneWithTop(node, top) {
63
+ return freeze({
64
+ ...node,
65
+ top,
66
+ });
67
+ },
54
68
  });
@@ -14,6 +14,8 @@ import { WithNode } from './with-node.js';
14
14
  import { SelectModifierNode } from './select-modifier-node.js';
15
15
  import { ExplainNode } from './explain-node.js';
16
16
  import { SetOperationNode } from './set-operation-node.js';
17
+ import { FetchNode } from './fetch-node.js';
18
+ import { TopNode } from './top-node.js';
17
19
  export interface SelectQueryNode extends OperationNode {
18
20
  readonly kind: 'SelectQueryNode';
19
21
  readonly from?: FromNode;
@@ -31,6 +33,8 @@ export interface SelectQueryNode extends OperationNode {
31
33
  readonly having?: HavingNode;
32
34
  readonly explain?: ExplainNode;
33
35
  readonly setOperations?: ReadonlyArray<SetOperationNode>;
36
+ readonly fetch?: FetchNode;
37
+ readonly top?: TopNode;
34
38
  }
35
39
  /**
36
40
  * @internal
@@ -47,6 +51,7 @@ export declare const SelectQueryNode: Readonly<{
47
51
  cloneWithGroupByItems(selectNode: SelectQueryNode, items: ReadonlyArray<GroupByItemNode>): SelectQueryNode;
48
52
  cloneWithLimit(selectNode: SelectQueryNode, limit: LimitNode): SelectQueryNode;
49
53
  cloneWithOffset(selectNode: SelectQueryNode, offset: OffsetNode): SelectQueryNode;
54
+ cloneWithFetch(selectNode: SelectQueryNode, fetch: FetchNode): SelectQueryNode;
50
55
  cloneWithHaving(selectNode: SelectQueryNode, operation: OperationNode): SelectQueryNode;
51
56
  cloneWithSetOperations(selectNode: SelectQueryNode, setOperations: ReadonlyArray<SetOperationNode>): SelectQueryNode;
52
57
  cloneWithoutSelections(select: SelectQueryNode): SelectQueryNode;
@@ -84,6 +84,12 @@ export const SelectQueryNode = freeze({
84
84
  offset,
85
85
  });
86
86
  },
87
+ cloneWithFetch(selectNode, fetch) {
88
+ return freeze({
89
+ ...selectNode,
90
+ fetch,
91
+ });
92
+ },
87
93
  cloneWithHaving(selectNode, operation) {
88
94
  return freeze({
89
95
  ...selectNode,
@@ -0,0 +1,14 @@
1
+ import { OperationNode } from './operation-node.js';
2
+ export type TopModifier = 'percent' | 'with ties' | 'percent with ties';
3
+ export interface TopNode extends OperationNode {
4
+ readonly kind: 'TopNode';
5
+ readonly expression: number | bigint;
6
+ readonly modifiers?: TopModifier;
7
+ }
8
+ /**
9
+ * @internal
10
+ */
11
+ export declare const TopNode: Readonly<{
12
+ is(node: OperationNode): node is TopNode;
13
+ create(expression: number | bigint, modifiers?: TopModifier): TopNode;
14
+ }>;
@@ -0,0 +1,17 @@
1
+ /// <reference types="./top-node.d.ts" />
2
+ import { freeze } from '../util/object-utils.js';
3
+ /**
4
+ * @internal
5
+ */
6
+ export const TopNode = freeze({
7
+ is(node) {
8
+ return node.kind === 'TopNode';
9
+ },
10
+ create(expression, modifiers) {
11
+ return freeze({
12
+ kind: 'TopNode',
13
+ expression,
14
+ modifiers,
15
+ });
16
+ },
17
+ });
@@ -8,10 +8,12 @@ import { WhereNode } from './where-node.js';
8
8
  import { WithNode } from './with-node.js';
9
9
  import { FromNode } from './from-node.js';
10
10
  import { ExplainNode } from './explain-node.js';
11
+ import { LimitNode } from './limit-node.js';
12
+ import { TopNode } from './top-node.js';
11
13
  export type UpdateValuesNode = ValueListNode | PrimitiveValueListNode;
12
14
  export interface UpdateQueryNode extends OperationNode {
13
15
  readonly kind: 'UpdateQueryNode';
14
- readonly table: OperationNode;
16
+ readonly table?: OperationNode;
15
17
  readonly from?: FromNode;
16
18
  readonly joins?: ReadonlyArray<JoinNode>;
17
19
  readonly where?: WhereNode;
@@ -19,6 +21,8 @@ export interface UpdateQueryNode extends OperationNode {
19
21
  readonly returning?: ReturningNode;
20
22
  readonly with?: WithNode;
21
23
  readonly explain?: ExplainNode;
24
+ readonly limit?: LimitNode;
25
+ readonly top?: TopNode;
22
26
  }
23
27
  /**
24
28
  * @internal
@@ -26,6 +30,8 @@ export interface UpdateQueryNode extends OperationNode {
26
30
  export declare const UpdateQueryNode: Readonly<{
27
31
  is(node: OperationNode): node is UpdateQueryNode;
28
32
  create(table: OperationNode, withNode?: WithNode): UpdateQueryNode;
33
+ createWithoutTable(): UpdateQueryNode;
29
34
  cloneWithFromItems(updateQuery: UpdateQueryNode, fromItems: ReadonlyArray<OperationNode>): UpdateQueryNode;
30
35
  cloneWithUpdates(updateQuery: UpdateQueryNode, updates: ReadonlyArray<ColumnUpdateNode>): UpdateQueryNode;
36
+ cloneWithLimit(updateQuery: UpdateQueryNode, limit: LimitNode): UpdateQueryNode;
31
37
  }>;
@@ -15,6 +15,11 @@ export const UpdateQueryNode = freeze({
15
15
  ...(withNode && { with: withNode }),
16
16
  });
17
17
  },
18
+ createWithoutTable() {
19
+ return freeze({
20
+ kind: 'UpdateQueryNode',
21
+ });
22
+ },
18
23
  cloneWithFromItems(updateQuery, fromItems) {
19
24
  return freeze({
20
25
  ...updateQuery,
@@ -31,4 +36,10 @@ export const UpdateQueryNode = freeze({
31
36
  : updates,
32
37
  });
33
38
  },
39
+ cloneWithLimit(updateQuery, limit) {
40
+ return freeze({
41
+ ...updateQuery,
42
+ limit,
43
+ });
44
+ },
34
45
  });
@@ -18,4 +18,4 @@ export declare function parseValueBinaryOperationOrExpression(args: any[]): Oper
18
18
  export declare function parseValueBinaryOperation(left: ReferenceExpression<any, any>, operator: BinaryOperatorExpression, right: OperandValueExpressionOrList<any, any, any>): BinaryOperationNode;
19
19
  export declare function parseReferentialBinaryOperation(left: ReferenceExpression<any, any>, operator: BinaryOperatorExpression, right: OperandValueExpressionOrList<any, any, any>): BinaryOperationNode;
20
20
  export declare function parseFilterObject(obj: Readonly<FilterObject<any, any>>, combinator: 'and' | 'or'): OperationNode;
21
- export declare function parseFilterList(list: ReadonlyArray<OperationNodeSource | OperationNode>, combinator: 'and' | 'or'): OperationNode;
21
+ export declare function parseFilterList(list: ReadonlyArray<OperationNodeSource | OperationNode>, combinator: 'and' | 'or', withParens?: boolean): OperationNode;
@@ -32,7 +32,7 @@ export function parseFilterObject(obj, combinator) {
32
32
  .filter(([, v]) => !isUndefined(v))
33
33
  .map(([k, v]) => parseValueBinaryOperation(k, needsIsOperator(v) ? 'is' : '=', v)), combinator);
34
34
  }
35
- export function parseFilterList(list, combinator) {
35
+ export function parseFilterList(list, combinator, withParens = true) {
36
36
  const combine = combinator === 'and' ? AndNode.create : OrNode.create;
37
37
  if (list.length === 0) {
38
38
  return BinaryOperationNode.create(ValueNode.createImmediate(1), OperatorNode.create('='), ValueNode.createImmediate(combinator === 'and' ? 1 : 0));
@@ -41,7 +41,7 @@ export function parseFilterList(list, combinator) {
41
41
  for (let i = 1; i < list.length; ++i) {
42
42
  node = combine(node, toOperationNode(list[i]));
43
43
  }
44
- if (list.length > 1) {
44
+ if (list.length > 1 && withParens) {
45
45
  return ParensNode.create(node);
46
46
  }
47
47
  return node;
@@ -1,8 +1,12 @@
1
1
  /// <reference types="./data-type-parser.d.ts" />
2
- import { DataTypeNode, } from '../operation-node/data-type-node.js';
2
+ import { DataTypeNode, isColumnDataType, } from '../operation-node/data-type-node.js';
3
3
  import { isOperationNodeSource } from '../operation-node/operation-node-source.js';
4
4
  export function parseDataTypeExpression(dataType) {
5
- return isOperationNodeSource(dataType)
6
- ? dataType.toOperationNode()
7
- : DataTypeNode.create(dataType);
5
+ if (isOperationNodeSource(dataType)) {
6
+ return dataType.toOperationNode();
7
+ }
8
+ if (isColumnDataType(dataType)) {
9
+ return DataTypeNode.create(dataType);
10
+ }
11
+ throw new Error(`invalid column data type ${JSON.stringify(dataType)}`);
8
12
  }
@@ -0,0 +1,2 @@
1
+ import { FetchModifier, FetchNode } from '../operation-node/fetch-node.js';
2
+ export declare function parseFetch(rowCount: number | bigint, modifier: FetchModifier): FetchNode;
@@ -0,0 +1,15 @@
1
+ /// <reference types="./fetch-parser.d.ts" />
2
+ import { FetchNode } from '../operation-node/fetch-node.js';
3
+ import { isBigInt, isNumber } from '../util/object-utils.js';
4
+ export function parseFetch(rowCount, modifier) {
5
+ if (!isNumber(rowCount) && !isBigInt(rowCount)) {
6
+ throw new Error(`Invalid fetch row count: ${rowCount}`);
7
+ }
8
+ if (!isFetchModifier(modifier)) {
9
+ throw new Error(`Invalid fetch modifier: ${modifier}`);
10
+ }
11
+ return FetchNode.create(rowCount, modifier);
12
+ }
13
+ function isFetchModifier(value) {
14
+ return value === 'only' || value === 'with ties';
15
+ }
@@ -9,6 +9,6 @@ export type InsertObject<DB, TB extends keyof DB> = {
9
9
  [C in NullableInsertKeys<DB[TB]>]?: ValueExpression<DB, TB, InsertType<DB[TB][C]>> | undefined;
10
10
  };
11
11
  export type InsertObjectOrList<DB, TB extends keyof DB> = InsertObject<DB, TB> | ReadonlyArray<InsertObject<DB, TB>>;
12
- export type InsertObjectOrListFactory<DB, TB extends keyof DB> = (eb: ExpressionBuilder<DB, TB>) => InsertObjectOrList<DB, TB>;
13
- export type InsertExpression<DB, TB extends keyof DB> = InsertObjectOrList<DB, TB> | InsertObjectOrListFactory<DB, TB>;
14
- export declare function parseInsertExpression(arg: InsertExpression<any, any>): [ReadonlyArray<ColumnNode>, ValuesNode];
12
+ export type InsertObjectOrListFactory<DB, TB extends keyof DB, UT extends keyof DB = never> = (eb: ExpressionBuilder<DB, TB | UT>) => InsertObjectOrList<DB, TB>;
13
+ export type InsertExpression<DB, TB extends keyof DB, UT extends keyof DB = never> = InsertObjectOrList<DB, TB> | InsertObjectOrListFactory<DB, TB, UT>;
14
+ export declare function parseInsertExpression(arg: InsertExpression<any, any, any>): [ReadonlyArray<ColumnNode>, ValuesNode];
@@ -0,0 +1,9 @@
1
+ import { InsertQueryNode } from '../operation-node/insert-query-node.js';
2
+ import { OperationNodeSource } from '../operation-node/operation-node-source.js';
3
+ import { OperationNode } from '../operation-node/operation-node.js';
4
+ import { WhenNode } from '../operation-node/when-node.js';
5
+ export declare function parseMergeWhen(type: {
6
+ isMatched: boolean;
7
+ bySource?: boolean;
8
+ }, args?: any[], refRight?: boolean): WhenNode;
9
+ export declare function parseMergeThen(result: 'delete' | 'do nothing' | OperationNodeSource | InsertQueryNode): OperationNode;
@@ -0,0 +1,28 @@
1
+ /// <reference types="./merge-parser.d.ts" />
2
+ import { MatchedNode } from '../operation-node/matched-node.js';
3
+ import { isOperationNodeSource, } from '../operation-node/operation-node-source.js';
4
+ import { RawNode } from '../operation-node/raw-node.js';
5
+ import { WhenNode } from '../operation-node/when-node.js';
6
+ import { isString } from '../util/object-utils.js';
7
+ import { parseFilterList, parseReferentialBinaryOperation, parseValueBinaryOperationOrExpression, } from './binary-operation-parser.js';
8
+ export function parseMergeWhen(type, args, refRight) {
9
+ return WhenNode.create(parseFilterList([
10
+ MatchedNode.create(!type.isMatched, type.bySource),
11
+ ...(args && args.length > 0
12
+ ? [
13
+ args.length === 3 && refRight
14
+ ? parseReferentialBinaryOperation(args[0], args[1], args[2])
15
+ : parseValueBinaryOperationOrExpression(args),
16
+ ]
17
+ : []),
18
+ ], 'and', false));
19
+ }
20
+ export function parseMergeThen(result) {
21
+ if (isString(result)) {
22
+ return RawNode.create([result], []);
23
+ }
24
+ if (isOperationNodeSource(result)) {
25
+ return result.toOperationNode();
26
+ }
27
+ return result;
28
+ }
@@ -6,16 +6,17 @@ import { AliasedExpression } from '../expression/expression.js';
6
6
  import { DrainOuterGeneric, ShallowRecord } from '../util/type-utils.js';
7
7
  export type TableExpression<DB, TB extends keyof DB> = AnyAliasedTable<DB> | AnyTable<DB> | AliasedExpressionOrFactory<DB, TB>;
8
8
  export type TableExpressionOrList<DB, TB extends keyof DB> = TableExpression<DB, TB> | ReadonlyArray<TableExpression<DB, TB>>;
9
- export type TableReference<DB> = AnyAliasedTable<DB> | AnyTable<DB> | AliasedExpression<any, any>;
9
+ export type TableReference<DB> = SimpleTableReference<DB> | AliasedExpression<any, any>;
10
+ export type SimpleTableReference<DB> = AnyAliasedTable<DB> | AnyTable<DB>;
10
11
  export type AnyAliasedTable<DB> = `${AnyTable<DB>} as ${string}`;
11
12
  export type TableReferenceOrList<DB> = TableReference<DB> | ReadonlyArray<TableReference<DB>>;
12
13
  export type From<DB, TE> = DrainOuterGeneric<{
13
14
  [C in keyof DB | ExtractAliasFromTableExpression<DB, TE>]: C extends ExtractAliasFromTableExpression<DB, TE> ? ExtractRowTypeFromTableExpression<DB, TE, C> : C extends keyof DB ? DB[C] : never;
14
15
  }>;
15
16
  export type FromTables<DB, TB extends keyof DB, TE> = DrainOuterGeneric<TB | ExtractAliasFromTableExpression<DB, TE>>;
16
- export type ExtractTableAlias<DB, TE> = TE extends `${string} as ${infer TA}` ? TA : TE extends keyof DB ? TE : never;
17
+ export type ExtractTableAlias<DB, TE> = TE extends `${string} as ${infer TA}` ? TA extends keyof DB ? TA : never : TE extends keyof DB ? TE : never;
17
18
  export type PickTableWithAlias<DB, T extends AnyAliasedTable<DB>> = T extends `${infer TB} as ${infer A}` ? TB extends keyof DB ? ShallowRecord<A, DB[TB]> : never : never;
18
- type ExtractAliasFromTableExpression<DB, TE> = TE extends string ? ExtractTableAlias<DB, TE> : TE extends AliasedExpression<any, infer QA> ? QA : TE extends (qb: any) => AliasedExpression<any, infer QA> ? QA : never;
19
+ type ExtractAliasFromTableExpression<DB, TE> = TE extends string ? TE extends `${string} as ${infer TA}` ? TA : TE extends keyof DB ? TE : never : TE extends AliasedExpression<any, infer QA> ? QA : TE extends (qb: any) => AliasedExpression<any, infer QA> ? QA : never;
19
20
  type ExtractRowTypeFromTableExpression<DB, TE, A extends keyof any> = TE extends `${infer T} as ${infer TA}` ? TA extends A ? T extends keyof DB ? DB[T] : never : never : TE extends A ? TE extends keyof DB ? DB[TE] : never : TE extends AliasedExpression<infer O, infer QA> ? QA extends A ? O : never : TE extends (qb: any) => AliasedExpression<infer O, infer QA> ? QA extends A ? O : never : never;
20
21
  type AnyTable<DB> = keyof DB & string;
21
22
  export declare function parseTableExpressionOrList(table: TableExpressionOrList<any, any>): OperationNode[];
@@ -0,0 +1,2 @@
1
+ import { TopModifier, TopNode } from '../operation-node/top-node.js';
2
+ export declare function parseTop(expression: number | bigint, modifiers?: TopModifier): TopNode;
@@ -0,0 +1,17 @@
1
+ /// <reference types="./top-parser.d.ts" />
2
+ import { TopNode } from '../operation-node/top-node.js';
3
+ import { isBigInt, isNumber, isUndefined } from '../util/object-utils.js';
4
+ export function parseTop(expression, modifiers) {
5
+ if (!isNumber(expression) && !isBigInt(expression)) {
6
+ throw new Error(`Invalid top expression: ${expression}`);
7
+ }
8
+ if (!isUndefined(modifiers) && !isTopModifiers(modifiers)) {
9
+ throw new Error(`Invalid top modifiers: ${modifiers}`);
10
+ }
11
+ return TopNode.create(expression, modifiers);
12
+ }
13
+ function isTopModifiers(modifiers) {
14
+ return (modifiers === 'percent' ||
15
+ modifiers === 'with ties' ||
16
+ modifiers === 'percent with ties');
17
+ }
@@ -27,6 +27,7 @@ const ROOT_OPERATION_NODES = freeze({
27
27
  RawNode: true,
28
28
  SelectQueryNode: true,
29
29
  UpdateQueryNode: true,
30
+ MergeQueryNode: true,
30
31
  });
31
32
  export class WithSchemaTransformer extends OperationNodeTransformer {
32
33
  #schema;
@@ -101,6 +102,9 @@ export class WithSchemaTransformer extends OperationNodeTransformer {
101
102
  this.#collectSchemableIdsFromTableExpr(join.table, schemableIds);
102
103
  }
103
104
  }
105
+ if ('using' in node && node.using) {
106
+ this.#collectSchemableIdsFromTableExpr(node.using, schemableIds);
107
+ }
104
108
  return schemableIds;
105
109
  }
106
110
  #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
  *