kysely 0.8.1 → 0.9.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 (110) hide show
  1. package/README.md +47 -4
  2. package/dist/cjs/dialect/mysql/mysql-driver.js +2 -2
  3. package/dist/cjs/dialect/mysql/mysql-query-compiler.d.ts +0 -2
  4. package/dist/cjs/dialect/mysql/mysql-query-compiler.js +0 -29
  5. package/dist/cjs/operation-node/create-schema-node.d.ts +1 -1
  6. package/dist/cjs/operation-node/create-schema-node.js +2 -2
  7. package/dist/cjs/operation-node/create-table-node.d.ts +1 -5
  8. package/dist/cjs/operation-node/create-table-node.js +1 -31
  9. package/dist/cjs/operation-node/join-node.d.ts +2 -1
  10. package/dist/cjs/operation-node/join-node.js +8 -6
  11. package/dist/cjs/operation-node/operation-node-source.d.ts +1 -1
  12. package/dist/cjs/operation-node/operation-node-transformer.d.ts +2 -0
  13. package/dist/cjs/operation-node/operation-node-transformer.js +11 -1
  14. package/dist/cjs/operation-node/operation-node-visitor.d.ts +61 -59
  15. package/dist/cjs/operation-node/operation-node-visitor.js +1 -316
  16. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  17. package/dist/cjs/operation-node/primitive-value-list-node.js +1 -1
  18. package/dist/cjs/operation-node/query-node.d.ts +4 -3
  19. package/dist/cjs/operation-node/query-node.js +10 -2
  20. package/dist/cjs/operation-node/select-query-node.d.ts +5 -1
  21. package/dist/cjs/operation-node/select-query-node.js +18 -2
  22. package/dist/cjs/operation-node/union-node.d.ts +16 -0
  23. package/dist/cjs/operation-node/union-node.js +19 -0
  24. package/dist/cjs/parser/group-by-parser.d.ts +4 -0
  25. package/dist/cjs/parser/group-by-parser.js +9 -0
  26. package/dist/cjs/parser/insert-values-parser.d.ts +1 -1
  27. package/dist/cjs/parser/join-parser.d.ts +6 -3
  28. package/dist/cjs/parser/order-by-parser.d.ts +2 -4
  29. package/dist/cjs/parser/order-by-parser.js +6 -3
  30. package/dist/cjs/parser/reference-parser.d.ts +1 -1
  31. package/dist/cjs/parser/reference-parser.js +1 -1
  32. package/dist/cjs/parser/table-parser.d.ts +8 -8
  33. package/dist/cjs/parser/union-parser.d.ts +5 -0
  34. package/dist/cjs/parser/union-parser.js +13 -0
  35. package/dist/cjs/parser/value-parser.d.ts +1 -1
  36. package/dist/cjs/query-builder/function-builder.d.ts +6 -6
  37. package/dist/cjs/query-builder/function-builder.js +6 -6
  38. package/dist/cjs/query-builder/join-builder.js +8 -8
  39. package/dist/cjs/query-builder/query-builder.d.ts +30 -1
  40. package/dist/cjs/query-builder/query-builder.js +66 -22
  41. package/dist/cjs/query-compiler/compiled-query.d.ts +1 -1
  42. package/dist/cjs/query-compiler/default-query-compiler.d.ts +8 -2
  43. package/dist/cjs/query-compiler/default-query-compiler.js +33 -22
  44. package/dist/cjs/query-creator.d.ts +6 -3
  45. package/dist/cjs/query-creator.js +5 -2
  46. package/dist/cjs/schema/alter-table-builder.d.ts +3 -0
  47. package/dist/cjs/schema/alter-table-builder.js +3 -0
  48. package/dist/cjs/schema/column-definition-builder.d.ts +14 -5
  49. package/dist/cjs/schema/create-schema-builder.js +1 -1
  50. package/dist/cjs/schema/create-table-builder.d.ts +55 -10
  51. package/dist/cjs/schema/create-table-builder.js +59 -17
  52. package/dist/cjs/schema/schema.d.ts +37 -2
  53. package/dist/cjs/schema/schema.js +36 -1
  54. package/dist/cjs/util/object-utils.d.ts +12 -11
  55. package/dist/cjs/util/object-utils.js +6 -2
  56. package/dist/esm/dialect/mysql/mysql-driver.js +3 -3
  57. package/dist/esm/dialect/mysql/mysql-query-compiler.d.ts +0 -2
  58. package/dist/esm/dialect/mysql/mysql-query-compiler.js +0 -29
  59. package/dist/esm/operation-node/create-schema-node.d.ts +1 -1
  60. package/dist/esm/operation-node/create-schema-node.js +2 -2
  61. package/dist/esm/operation-node/create-table-node.d.ts +1 -5
  62. package/dist/esm/operation-node/create-table-node.js +1 -31
  63. package/dist/esm/operation-node/join-node.d.ts +2 -1
  64. package/dist/esm/operation-node/join-node.js +8 -6
  65. package/dist/esm/operation-node/operation-node-source.d.ts +1 -1
  66. package/dist/esm/operation-node/operation-node-transformer.d.ts +2 -0
  67. package/dist/esm/operation-node/operation-node-transformer.js +11 -1
  68. package/dist/esm/operation-node/operation-node-visitor.d.ts +61 -59
  69. package/dist/esm/operation-node/operation-node-visitor.js +1 -316
  70. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  71. package/dist/esm/operation-node/primitive-value-list-node.js +1 -1
  72. package/dist/esm/operation-node/query-node.d.ts +4 -3
  73. package/dist/esm/operation-node/query-node.js +10 -2
  74. package/dist/esm/operation-node/select-query-node.d.ts +5 -1
  75. package/dist/esm/operation-node/select-query-node.js +18 -2
  76. package/dist/esm/operation-node/union-node.d.ts +16 -0
  77. package/dist/esm/operation-node/union-node.js +16 -0
  78. package/dist/esm/parser/group-by-parser.d.ts +4 -0
  79. package/dist/esm/parser/group-by-parser.js +5 -0
  80. package/dist/esm/parser/insert-values-parser.d.ts +1 -1
  81. package/dist/esm/parser/join-parser.d.ts +6 -3
  82. package/dist/esm/parser/order-by-parser.d.ts +2 -4
  83. package/dist/esm/parser/order-by-parser.js +6 -2
  84. package/dist/esm/parser/reference-parser.d.ts +1 -1
  85. package/dist/esm/parser/reference-parser.js +2 -2
  86. package/dist/esm/parser/table-parser.d.ts +8 -8
  87. package/dist/esm/parser/union-parser.d.ts +5 -0
  88. package/dist/esm/parser/union-parser.js +9 -0
  89. package/dist/esm/parser/value-parser.d.ts +1 -1
  90. package/dist/esm/query-builder/function-builder.d.ts +6 -6
  91. package/dist/esm/query-builder/function-builder.js +6 -6
  92. package/dist/esm/query-builder/join-builder.js +8 -8
  93. package/dist/esm/query-builder/query-builder.d.ts +30 -1
  94. package/dist/esm/query-builder/query-builder.js +67 -23
  95. package/dist/esm/query-compiler/compiled-query.d.ts +1 -1
  96. package/dist/esm/query-compiler/default-query-compiler.d.ts +8 -2
  97. package/dist/esm/query-compiler/default-query-compiler.js +33 -22
  98. package/dist/esm/query-creator.d.ts +6 -3
  99. package/dist/esm/query-creator.js +5 -2
  100. package/dist/esm/schema/alter-table-builder.d.ts +3 -0
  101. package/dist/esm/schema/alter-table-builder.js +3 -0
  102. package/dist/esm/schema/column-definition-builder.d.ts +14 -5
  103. package/dist/esm/schema/create-schema-builder.js +1 -1
  104. package/dist/esm/schema/create-table-builder.d.ts +55 -10
  105. package/dist/esm/schema/create-table-builder.js +60 -18
  106. package/dist/esm/schema/schema.d.ts +37 -2
  107. package/dist/esm/schema/schema.js +36 -1
  108. package/dist/esm/util/object-utils.d.ts +12 -11
  109. package/dist/esm/util/object-utils.js +4 -1
  110. package/package.json +1 -1
package/README.md CHANGED
@@ -4,7 +4,8 @@
4
4
  # [Kysely](https://koskimas.github.io/kysely/index.html)
5
5
 
6
6
  A type-safe and autocompletion-friendly typescript SQL query builder for node.js. Inspired by
7
- [knex](http://knexjs.org/). You can find an introduction to Kysely [here](https://www.jakso.me/blog/kysely-a-type-safe-sql-query-builder-for-typescript).
7
+ [knex](http://knexjs.org/). [Here's](https://www.jakso.me/blog/kysely-a-type-safe-sql-query-builder-for-typescript)
8
+ an introductory blog post for you.
8
9
 
9
10
  ![](https://github.com/koskimas/kysely/blob/master/assets/demo.gif)
10
11
 
@@ -25,7 +26,8 @@ type-safety! See the [DynamicModule](https://koskimas.github.io/kysely/classes/D
25
26
  for more info.
26
27
 
27
28
  Kysely is still young and some useful features are propably not yet implemented. If you start
28
- using Kysely and can't find something you'd want to use, please open an issue.
29
+ using Kysely and can't find something you'd want to use, please open an issue or join our
30
+ [discord server](https://discord.gg/C9aJ49mCra).
29
31
 
30
32
  # Table of contents
31
33
 
@@ -161,13 +163,15 @@ changes completely. Migrations need to be "frozen in time".
161
163
  The migrations can use the [Kysely.schema](https://koskimas.github.io/kysely/classes/SchemaModule.html)
162
164
  module to modify the schema. Migrations can also run normal queries to modify the data.
163
165
 
166
+ ### PostgreSQL migration example
167
+
164
168
  ```ts
165
169
  import { Kysely } from 'kysely'
166
170
 
167
171
  export async function up(db: Kysely<any>): Promise<void> {
168
172
  await db.schema
169
173
  .createTable('person')
170
- .addColumn('id', 'integer', (col) => col.increments().primaryKey())
174
+ .addColumn('id', 'serial', (col) => col.primaryKey())
171
175
  .addColumn('first_name', 'varchar')
172
176
  .addColumn('last_name', 'varchar')
173
177
  .addColumn('gender', 'varchar(50)')
@@ -175,7 +179,7 @@ export async function up(db: Kysely<any>): Promise<void> {
175
179
 
176
180
  await db.schema
177
181
  .createTable('pet')
178
- .addColumn('id', 'integer', (col) => col.increments().primaryKey())
182
+ .addColumn('id', 'serial', (col) => col.primaryKey())
179
183
  .addColumn('name', 'varchar', (col) => col.notNull().unique())
180
184
  .addColumn('owner_id', 'integer', (col) =>
181
185
  col.references('person.id').onDelete('cascade')
@@ -196,6 +200,45 @@ export async function down(db: Kysely<any>): Promise<void> {
196
200
  }
197
201
  ```
198
202
 
203
+ ### MySQL migration example
204
+
205
+ ```ts
206
+ import { Kysely } from 'kysely'
207
+
208
+ export async function up(db: Kysely<any>): Promise<void> {
209
+ await db.schema
210
+ .createTable('person')
211
+ .addColumn('id', 'integer', (col) => col.increments().primaryKey())
212
+ .addColumn('first_name', 'varchar')
213
+ .addColumn('last_name', 'varchar')
214
+ .addColumn('gender', 'varchar(50)')
215
+ .execute()
216
+
217
+ await db.schema
218
+ .createTable('pet')
219
+ .addColumn('id', 'integer', (col) => col.increments().primaryKey())
220
+ .addColumn('name', 'varchar', (col) => col.notNull().unique())
221
+ .addColumn('owner_id', 'integer')
222
+ .addColumn('species', 'varchar')
223
+ .addForeignKeyConstraint(
224
+ 'pet_owner_id_fk', ['owner_id'], 'person', ['id'],
225
+ (cb) => cb.onDelete('cascade')
226
+ )
227
+ .execute()
228
+
229
+ await db.schema
230
+ .createIndex('pet_owner_id_index')
231
+ .on('pet')
232
+ .column('owner_id')
233
+ .execute()
234
+ }
235
+
236
+ export async function down(db: Kysely<any>): Promise<void> {
237
+ await db.schema.dropTable('pet').execute()
238
+ await db.schema.dropTable('person').execute()
239
+ }
240
+ ```
241
+
199
242
  You can then use
200
243
 
201
244
  ```ts
@@ -107,13 +107,13 @@ class MysqlConnection {
107
107
  async executeQuery(compiledQuery) {
108
108
  const result = await this.#executeQuery(compiledQuery);
109
109
  if ((0, object_utils_js_1.isObject)(result) && 'insertId' in result && 'affectedRows' in result) {
110
- if (result.insertId) {
110
+ if ((0, object_utils_js_1.isNumber)(result.insertId) && result.insertId > 0) {
111
111
  return {
112
112
  insertedPrimaryKey: result.insertId,
113
113
  rows: [],
114
114
  };
115
115
  }
116
- else {
116
+ else if ((0, object_utils_js_1.isNumber)(result.affectedRows)) {
117
117
  return {
118
118
  numUpdatedOrDeletedRows: result.affectedRows,
119
119
  rows: [],
@@ -1,7 +1,5 @@
1
- import { ColumnDefinitionNode } from '../../operation-node/column-definition-node.js';
2
1
  import { DefaultQueryCompiler } from '../../query-compiler/default-query-compiler.js';
3
2
  export declare class MysqlQueryCompiler extends DefaultQueryCompiler {
4
- protected visitColumnDefinition(node: ColumnDefinitionNode): void;
5
3
  protected visitReturning(): void;
6
4
  protected getSql(): string;
7
5
  protected getCurrentParameterPlaceholder(): string;
@@ -3,35 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MysqlQueryCompiler = void 0;
4
4
  const default_query_compiler_js_1 = require("../../query-compiler/default-query-compiler.js");
5
5
  class MysqlQueryCompiler extends default_query_compiler_js_1.DefaultQueryCompiler {
6
- visitColumnDefinition(node) {
7
- this.visitNode(node.column);
8
- this.append(' ');
9
- this.visitNode(node.dataType);
10
- if (node.defaultTo) {
11
- this.append(' default ');
12
- this.visitNode(node.defaultTo);
13
- }
14
- if (!node.isNullable || node.isAutoIncrementing) {
15
- this.append(' not null');
16
- }
17
- if (node.isAutoIncrementing) {
18
- this.append(' auto_increment');
19
- }
20
- if (node.isUnique) {
21
- this.append(' unique');
22
- }
23
- if (node.isPrimaryKey) {
24
- this.append(' primary key');
25
- }
26
- if (node.references) {
27
- this.append(' ');
28
- this.visitNode(node.references);
29
- }
30
- if (node.check) {
31
- this.append(' ');
32
- this.visitNode(node.check);
33
- }
34
- }
35
6
  visitReturning() {
36
7
  // Do nothing.
37
8
  }
@@ -13,5 +13,5 @@ export interface CreateSchemaNode extends OperationNode {
13
13
  export declare const CreateSchemaNode: Readonly<{
14
14
  is(node: OperationNode): node is CreateSchemaNode;
15
15
  create(schema: string, params?: CreateSchemaNodeParams | undefined): CreateSchemaNode;
16
- cloneWithModifier(createSchema: CreateSchemaNode, modifier: CreateSchemaNodeModifier): CreateSchemaNode;
16
+ cloneWith(createSchema: CreateSchemaNode, params: CreateSchemaNodeParams): CreateSchemaNode;
17
17
  }>;
@@ -17,10 +17,10 @@ exports.CreateSchemaNode = (0, object_utils_js_1.freeze)({
17
17
  ...params,
18
18
  });
19
19
  },
20
- cloneWithModifier(createSchema, modifier) {
20
+ cloneWith(createSchema, params) {
21
21
  return (0, object_utils_js_1.freeze)({
22
22
  ...createSchema,
23
- modifier,
23
+ ...params,
24
24
  });
25
25
  },
26
26
  });
@@ -1,6 +1,5 @@
1
1
  import { OperationNode } from './operation-node.js';
2
2
  import { TableNode } from './table-node.js';
3
- import { ForeignKeyConstraintNode } from './foreign-key-constraint-node.js';
4
3
  import { ConstraintNode } from './constraint-node.js';
5
4
  import { ColumnDefinitionNode } from './column-definition-node.js';
6
5
  export declare type CreateTableNodeModifier = 'IfNotExists';
@@ -19,8 +18,5 @@ export declare const CreateTableNode: Readonly<{
19
18
  create(table: TableNode): CreateTableNode;
20
19
  cloneWithColumn(createTable: CreateTableNode, column: ColumnDefinitionNode): CreateTableNode;
21
20
  cloneWithModifier(createTable: CreateTableNode, modifier: CreateTableNodeModifier): CreateTableNode;
22
- cloneWithPrimaryKeyConstraint(createTable: CreateTableNode, constraintName: string, columns: string[]): CreateTableNode;
23
- cloneWithUniqueConstraint(createTable: CreateTableNode, constraintName: string, columns: string[]): CreateTableNode;
24
- cloneWithCheckConstraint(createTable: CreateTableNode, constraintName: string, sql: string): CreateTableNode;
25
- cloneWithForeignKeyConstraint(createTable: CreateTableNode, constraint: ForeignKeyConstraintNode): CreateTableNode;
21
+ cloneWithConstraint(createTable: CreateTableNode, constraint: ConstraintNode): CreateTableNode;
26
22
  }>;
@@ -2,9 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CreateTableNode = void 0;
4
4
  const object_utils_js_1 = require("../util/object-utils.js");
5
- const check_constraint_node_js_1 = require("./check-constraint-node.js");
6
- const primary_constraint_node_js_1 = require("./primary-constraint-node.js");
7
- const unique_constraint_node_js_1 = require("./unique-constraint-node.js");
8
5
  /**
9
6
  * @internal
10
7
  */
@@ -31,34 +28,7 @@ exports.CreateTableNode = (0, object_utils_js_1.freeze)({
31
28
  modifier,
32
29
  });
33
30
  },
34
- cloneWithPrimaryKeyConstraint(createTable, constraintName, columns) {
35
- const constraint = primary_constraint_node_js_1.PrimaryConstraintNode.create(columns, constraintName);
36
- return (0, object_utils_js_1.freeze)({
37
- ...createTable,
38
- constraints: createTable.constraints
39
- ? (0, object_utils_js_1.freeze)([...createTable.constraints, constraint])
40
- : (0, object_utils_js_1.freeze)([constraint]),
41
- });
42
- },
43
- cloneWithUniqueConstraint(createTable, constraintName, columns) {
44
- const constraint = unique_constraint_node_js_1.UniqueConstraintNode.create(columns, constraintName);
45
- return (0, object_utils_js_1.freeze)({
46
- ...createTable,
47
- constraints: createTable.constraints
48
- ? (0, object_utils_js_1.freeze)([...createTable.constraints, constraint])
49
- : (0, object_utils_js_1.freeze)([constraint]),
50
- });
51
- },
52
- cloneWithCheckConstraint(createTable, constraintName, sql) {
53
- const constraint = check_constraint_node_js_1.CheckConstraintNode.create(sql, constraintName);
54
- return (0, object_utils_js_1.freeze)({
55
- ...createTable,
56
- constraints: createTable.constraints
57
- ? (0, object_utils_js_1.freeze)([...createTable.constraints, constraint])
58
- : (0, object_utils_js_1.freeze)([constraint]),
59
- });
60
- },
61
- cloneWithForeignKeyConstraint(createTable, constraint) {
31
+ cloneWithConstraint(createTable, constraint) {
62
32
  return (0, object_utils_js_1.freeze)({
63
33
  ...createTable,
64
34
  constraints: createTable.constraints
@@ -21,5 +21,6 @@ export declare const JoinNode: Readonly<{
21
21
  is(node: OperationNode): node is JoinNode;
22
22
  create(joinType: JoinType, table: JoinTableNode): JoinNode;
23
23
  createWithOn(joinType: JoinType, table: JoinTableNode, on: JoinNodeOnNode): JoinNode;
24
- cloneWithOn(joinNode: JoinNode, op: 'And' | 'Or', on: JoinNodeOnNode): JoinNode;
24
+ cloneWithOn(joinNode: JoinNode, on: JoinNodeOnNode): JoinNode;
25
+ cloneWithOrOn(joinNode: JoinNode, on: JoinNodeOnNode): JoinNode;
25
26
  }>;
@@ -27,14 +27,16 @@ exports.JoinNode = (0, object_utils_js_1.freeze)({
27
27
  on,
28
28
  });
29
29
  },
30
- cloneWithOn(joinNode, op, on) {
30
+ cloneWithOn(joinNode, on) {
31
31
  return (0, object_utils_js_1.freeze)({
32
32
  ...joinNode,
33
- on: joinNode.on
34
- ? op === 'And'
35
- ? and_node_js_1.AndNode.create(joinNode.on, on)
36
- : or_node_js_1.OrNode.create(joinNode.on, on)
37
- : on,
33
+ on: joinNode.on ? and_node_js_1.AndNode.create(joinNode.on, on) : on,
34
+ });
35
+ },
36
+ cloneWithOrOn(joinNode, on) {
37
+ return (0, object_utils_js_1.freeze)({
38
+ ...joinNode,
39
+ on: joinNode.on ? or_node_js_1.OrNode.create(joinNode.on, on) : on,
38
40
  });
39
41
  },
40
42
  });
@@ -2,4 +2,4 @@ import { OperationNode } from './operation-node.js';
2
2
  export interface OperationNodeSource {
3
3
  toOperationNode(): OperationNode;
4
4
  }
5
- export declare function isOperationNodeSource(obj: any): obj is OperationNodeSource;
5
+ export declare function isOperationNodeSource(obj: unknown): obj is OperationNodeSource;
@@ -57,6 +57,7 @@ import { ForeignKeyConstraintNode } from './foreign-key-constraint-node.js';
57
57
  import { ColumnDefinitionNode } from './column-definition-node.js';
58
58
  import { ModifyColumnNode } from './modify-column-node.js';
59
59
  import { OnDuplicateKeyNode } from './on-duplicate-key-node.js';
60
+ import { UnionNode } from './union-node.js';
60
61
  /**
61
62
  * Transforms an operation node tree into another one.
62
63
  *
@@ -129,6 +130,7 @@ export declare class OperationNodeTransformer {
129
130
  protected transformPrimaryKeyConstraint(node: PrimaryKeyConstraintNode): PrimaryKeyConstraintNode;
130
131
  protected transformUniqueConstraint(node: UniqueConstraintNode): UniqueConstraintNode;
131
132
  protected transformForeignKeyConstraint(node: ForeignKeyConstraintNode): ForeignKeyConstraintNode;
133
+ protected transformUnion(node: UnionNode): UnionNode;
132
134
  protected transformReferences(node: ReferencesNode): ReferencesNode;
133
135
  protected transformCheckConstraint(node: CheckConstraintNode): CheckConstraintNode;
134
136
  protected transformWith(node: WithNode): WithNode;
@@ -92,6 +92,7 @@ class OperationNodeTransformer {
92
92
  AddConstraintNode: this.transformAddConstraint.bind(this),
93
93
  DropConstraintNode: this.transformDropConstraint.bind(this),
94
94
  ForeignKeyConstraintNode: this.transformForeignKeyConstraint.bind(this),
95
+ UnionNode: this.transformUnion.bind(this),
95
96
  };
96
97
  transformNode = (node) => {
97
98
  if (!node) {
@@ -124,6 +125,7 @@ class OperationNodeTransformer {
124
125
  offset: this.transformNode(node.offset),
125
126
  with: this.transformNode(node.with),
126
127
  having: this.transformNode(node.having),
128
+ union: this.transformNodeList(node.union),
127
129
  };
128
130
  }
129
131
  transformSelection(node) {
@@ -403,6 +405,13 @@ class OperationNodeTransformer {
403
405
  onUpdate: node.onUpdate,
404
406
  };
405
407
  }
408
+ transformUnion(node) {
409
+ return {
410
+ kind: 'UnionNode',
411
+ union: this.transformNode(node.union),
412
+ all: node.all,
413
+ };
414
+ }
406
415
  transformReferences(node) {
407
416
  return {
408
417
  kind: 'ReferencesNode',
@@ -456,11 +465,12 @@ class OperationNodeTransformer {
456
465
  kind: 'AlterTableNode',
457
466
  table: this.transformNode(node.table),
458
467
  renameTo: this.transformNode(node.renameTo),
459
- renameColumn: this.transformNode(node.renameColumn),
460
468
  setSchema: this.transformNode(node.setSchema),
469
+ renameColumn: this.transformNode(node.renameColumn),
461
470
  addColumn: this.transformNode(node.addColumn),
462
471
  dropColumn: this.transformNode(node.dropColumn),
463
472
  alterColumn: this.transformNode(node.alterColumn),
473
+ modifyColumn: this.transformNode(node.modifyColumn),
464
474
  addConstraint: this.transformNode(node.addConstraint),
465
475
  dropConstraint: this.transformNode(node.dropConstraint),
466
476
  };
@@ -57,66 +57,68 @@ import { ForeignKeyConstraintNode } from './foreign-key-constraint-node.js';
57
57
  import { ColumnDefinitionNode } from './column-definition-node.js';
58
58
  import { ModifyColumnNode } from './modify-column-node.js';
59
59
  import { OnDuplicateKeyNode } from './on-duplicate-key-node.js';
60
- export declare class OperationNodeVisitor {
60
+ import { UnionNode } from './union-node.js';
61
+ export declare abstract class OperationNodeVisitor {
61
62
  #private;
62
63
  protected readonly nodeStack: OperationNode[];
63
64
  protected readonly visitNode: (node: OperationNode) => void;
64
- protected visitSelectQuery(node: SelectQueryNode): void;
65
- protected visitSelection(node: SelectionNode): void;
66
- protected visitColumn(node: ColumnNode): void;
67
- protected visitAlias(node: AliasNode): void;
68
- protected visitTable(node: TableNode): void;
69
- protected visitFrom(node: FromNode): void;
70
- protected visitReference(node: ReferenceNode): void;
71
- protected visitFilter(node: FilterNode): void;
72
- protected visitAnd(node: AndNode): void;
73
- protected visitOr(node: OrNode): void;
74
- protected visitValueList(node: ValueListNode): void;
75
- protected visitParens(node: ParensNode): void;
76
- protected visitJoin(node: JoinNode): void;
77
- protected visitRaw(node: RawNode): void;
78
- protected visitWhere(node: WhereNode): void;
79
- protected visitInsertQuery(node: InsertQueryNode): void;
80
- protected visitDeleteQuery(node: DeleteQueryNode): void;
81
- protected visitReturning(node: ReturningNode): void;
82
- protected visitCreateTable(node: CreateTableNode): void;
83
- protected visitAddColumn(node: AddColumnNode): void;
84
- protected visitColumnDefinition(node: ColumnDefinitionNode): void;
85
- protected visitDropTable(node: DropTableNode): void;
86
- protected visitOrderBy(node: OrderByNode): void;
87
- protected visitOrderByItem(node: OrderByItemNode): void;
88
- protected visitGroupBy(node: GroupByNode): void;
89
- protected visitGroupByItem(node: GroupByItemNode): void;
90
- protected visitUpdateQuery(node: UpdateQueryNode): void;
91
- protected visitColumnUpdate(node: ColumnUpdateNode): void;
92
- protected visitLimit(node: LimitNode): void;
93
- protected visitOffset(node: OffsetNode): void;
94
- protected visitOnConflict(node: OnConflictNode): void;
95
- protected visitOnDuplicateKey(node: OnDuplicateKeyNode): void;
96
- protected visitCreateIndex(node: CreateIndexNode): void;
97
- protected visitList(node: ListNode): void;
98
- protected visitDropIndex(node: DropIndexNode): void;
99
- protected visitPrimaryKeyConstraint(node: PrimaryKeyConstraintNode): void;
100
- protected visitUniqueConstraint(node: UniqueConstraintNode): void;
101
- protected visitReferences(node: ReferencesNode): void;
102
- protected visitCheckConstraint(node: CheckConstraintNode): void;
103
- protected visitWith(node: WithNode): void;
104
- protected visitCommonTableExpression(node: CommonTableExpressionNode): void;
105
- protected visitHaving(node: HavingNode): void;
106
- protected visitCreateSchema(node: CreateSchemaNode): void;
107
- protected visitDropSchema(node: DropSchemaNode): void;
108
- protected visitAlterTable(node: AlterTableNode): void;
109
- protected visitDropColumn(node: DropColumnNode): void;
110
- protected visitRenameColumn(node: RenameColumnNode): void;
111
- protected visitAlterColumn(node: AlterColumnNode): void;
112
- protected visitModifyColumn(node: ModifyColumnNode): void;
113
- protected visitAddConstraint(node: AddConstraintNode): void;
114
- protected visitDropConstraint(node: DropConstraintNode): void;
115
- protected visitForeignKeyConstraint(node: ForeignKeyConstraintNode): void;
116
- protected visitDataType(node: DataTypeNode): void;
117
- protected visitSelectAll(_: SelectAllNode): void;
118
- protected visitIdentifier(_: IdentifierNode): void;
119
- protected visitValue(_: ValueNode): void;
120
- protected visitPrimitiveValueList(_: PrimitiveValueListNode): void;
121
- protected visitOperator(node: OperatorNode): void;
65
+ protected abstract visitSelectQuery(node: SelectQueryNode): void;
66
+ protected abstract visitSelection(node: SelectionNode): void;
67
+ protected abstract visitColumn(node: ColumnNode): void;
68
+ protected abstract visitAlias(node: AliasNode): void;
69
+ protected abstract visitTable(node: TableNode): void;
70
+ protected abstract visitFrom(node: FromNode): void;
71
+ protected abstract visitReference(node: ReferenceNode): void;
72
+ protected abstract visitFilter(node: FilterNode): void;
73
+ protected abstract visitAnd(node: AndNode): void;
74
+ protected abstract visitOr(node: OrNode): void;
75
+ protected abstract visitValueList(node: ValueListNode): void;
76
+ protected abstract visitParens(node: ParensNode): void;
77
+ protected abstract visitJoin(node: JoinNode): void;
78
+ protected abstract visitRaw(node: RawNode): void;
79
+ protected abstract visitWhere(node: WhereNode): void;
80
+ protected abstract visitInsertQuery(node: InsertQueryNode): void;
81
+ protected abstract visitDeleteQuery(node: DeleteQueryNode): void;
82
+ protected abstract visitReturning(node: ReturningNode): void;
83
+ protected abstract visitCreateTable(node: CreateTableNode): void;
84
+ protected abstract visitAddColumn(node: AddColumnNode): void;
85
+ protected abstract visitColumnDefinition(node: ColumnDefinitionNode): void;
86
+ protected abstract visitDropTable(node: DropTableNode): void;
87
+ protected abstract visitOrderBy(node: OrderByNode): void;
88
+ protected abstract visitOrderByItem(node: OrderByItemNode): void;
89
+ protected abstract visitGroupBy(node: GroupByNode): void;
90
+ protected abstract visitGroupByItem(node: GroupByItemNode): void;
91
+ protected abstract visitUpdateQuery(node: UpdateQueryNode): void;
92
+ protected abstract visitColumnUpdate(node: ColumnUpdateNode): void;
93
+ protected abstract visitLimit(node: LimitNode): void;
94
+ protected abstract visitOffset(node: OffsetNode): void;
95
+ protected abstract visitOnConflict(node: OnConflictNode): void;
96
+ protected abstract visitOnDuplicateKey(node: OnDuplicateKeyNode): void;
97
+ protected abstract visitCreateIndex(node: CreateIndexNode): void;
98
+ protected abstract visitDropIndex(node: DropIndexNode): void;
99
+ protected abstract visitList(node: ListNode): void;
100
+ protected abstract visitPrimaryKeyConstraint(node: PrimaryKeyConstraintNode): void;
101
+ protected abstract visitUniqueConstraint(node: UniqueConstraintNode): void;
102
+ protected abstract visitReferences(node: ReferencesNode): void;
103
+ protected abstract visitCheckConstraint(node: CheckConstraintNode): void;
104
+ protected abstract visitWith(node: WithNode): void;
105
+ protected abstract visitCommonTableExpression(node: CommonTableExpressionNode): void;
106
+ protected abstract visitHaving(node: HavingNode): void;
107
+ protected abstract visitCreateSchema(node: CreateSchemaNode): void;
108
+ protected abstract visitDropSchema(node: DropSchemaNode): void;
109
+ protected abstract visitAlterTable(node: AlterTableNode): void;
110
+ protected abstract visitDropColumn(node: DropColumnNode): void;
111
+ protected abstract visitRenameColumn(node: RenameColumnNode): void;
112
+ protected abstract visitAlterColumn(node: AlterColumnNode): void;
113
+ protected abstract visitModifyColumn(node: ModifyColumnNode): void;
114
+ protected abstract visitAddConstraint(node: AddConstraintNode): void;
115
+ protected abstract visitDropConstraint(node: DropConstraintNode): void;
116
+ protected abstract visitForeignKeyConstraint(node: ForeignKeyConstraintNode): void;
117
+ protected abstract visitUnion(node: UnionNode): void;
118
+ protected abstract visitDataType(node: DataTypeNode): void;
119
+ protected abstract visitSelectAll(_: SelectAllNode): void;
120
+ protected abstract visitIdentifier(_: IdentifierNode): void;
121
+ protected abstract visitValue(_: ValueNode): void;
122
+ protected abstract visitPrimitiveValueList(_: PrimitiveValueListNode): void;
123
+ protected abstract visitOperator(node: OperatorNode): void;
122
124
  }