kysely 0.9.7 → 0.10.1

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 (120) hide show
  1. package/README.md +15 -13
  2. package/dist/cjs/driver/runtime-driver.js +3 -4
  3. package/dist/cjs/index.d.ts +2 -0
  4. package/dist/cjs/index.js +2 -0
  5. package/dist/cjs/operation-node/column-definition-node.d.ts +8 -6
  6. package/dist/cjs/operation-node/column-definition-node.js +4 -4
  7. package/dist/cjs/operation-node/create-schema-node.d.ts +1 -2
  8. package/dist/cjs/operation-node/create-table-node.d.ts +2 -3
  9. package/dist/cjs/operation-node/create-table-node.js +2 -2
  10. package/dist/cjs/operation-node/create-view-node.d.ts +22 -0
  11. package/dist/cjs/operation-node/create-view-node.js +25 -0
  12. package/dist/cjs/operation-node/default-value-node.d.ts +14 -0
  13. package/dist/cjs/operation-node/default-value-node.js +18 -0
  14. package/dist/cjs/operation-node/drop-index-node.d.ts +1 -2
  15. package/dist/cjs/operation-node/drop-schema-node.d.ts +2 -3
  16. package/dist/cjs/operation-node/drop-schema-node.js +3 -3
  17. package/dist/cjs/operation-node/drop-table-node.d.ts +2 -3
  18. package/dist/cjs/operation-node/drop-table-node.js +2 -2
  19. package/dist/cjs/operation-node/drop-view-node.d.ts +17 -0
  20. package/dist/cjs/operation-node/drop-view-node.js +25 -0
  21. package/dist/cjs/operation-node/generated-always-as-node.d.ts +16 -0
  22. package/dist/cjs/operation-node/generated-always-as-node.js +25 -0
  23. package/dist/cjs/operation-node/operation-node-transformer.d.ts +8 -0
  24. package/dist/cjs/operation-node/operation-node-transformer.js +47 -11
  25. package/dist/cjs/operation-node/operation-node-visitor.d.ts +8 -0
  26. package/dist/cjs/operation-node/operation-node-visitor.js +7 -2
  27. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  28. package/dist/cjs/operation-node/operator-node.d.ts +1 -1
  29. package/dist/cjs/operation-node/operator-node.js +5 -0
  30. package/dist/cjs/operation-node/raw-node.d.ts +1 -1
  31. package/dist/cjs/operation-node/select-query-node.d.ts +1 -1
  32. package/dist/cjs/operation-node/select-query-node.js +1 -1
  33. package/dist/cjs/plugin/immediate-value.ts/immediate-value-plugin.d.ts +17 -0
  34. package/dist/cjs/plugin/immediate-value.ts/immediate-value-plugin.js +22 -0
  35. package/dist/cjs/plugin/immediate-value.ts/immediate-value-transformer.d.ts +13 -0
  36. package/dist/cjs/plugin/immediate-value.ts/immediate-value-transformer.js +21 -0
  37. package/dist/cjs/plugin/with-schema/with-schema-transformer.d.ts +4 -0
  38. package/dist/cjs/plugin/with-schema/with-schema-transformer.js +6 -0
  39. package/dist/cjs/query-compiler/default-query-compiler.d.ts +8 -0
  40. package/dist/cjs/query-compiler/default-query-compiler.js +59 -11
  41. package/dist/cjs/query-compiler/query-compiler.d.ts +3 -1
  42. package/dist/cjs/raw-builder/raw-builder.d.ts +1 -1
  43. package/dist/cjs/schema/alter-table-builder.d.ts +6 -2
  44. package/dist/cjs/schema/alter-table-builder.js +28 -4
  45. package/dist/cjs/schema/column-definition-builder.d.ts +43 -2
  46. package/dist/cjs/schema/column-definition-builder.js +23 -6
  47. package/dist/cjs/schema/create-schema-builder.js +1 -1
  48. package/dist/cjs/schema/create-table-builder.d.ts +7 -8
  49. package/dist/cjs/schema/create-table-builder.js +8 -9
  50. package/dist/cjs/schema/create-view-builder.d.ts +24 -0
  51. package/dist/cjs/schema/create-view-builder.js +73 -0
  52. package/dist/cjs/schema/drop-index-builder.js +1 -1
  53. package/dist/cjs/schema/drop-schema-builder.js +3 -1
  54. package/dist/cjs/schema/drop-table-builder.js +3 -1
  55. package/dist/cjs/schema/drop-view-builder.d.ts +20 -0
  56. package/dist/cjs/schema/drop-view-builder.js +39 -0
  57. package/dist/cjs/schema/schema.d.ts +30 -3
  58. package/dist/cjs/schema/schema.js +44 -3
  59. package/dist/cjs/util/performance-now.d.ts +1 -0
  60. package/dist/cjs/util/performance-now.js +13 -0
  61. package/dist/esm/driver/runtime-driver.js +3 -4
  62. package/dist/esm/index.d.ts +2 -0
  63. package/dist/esm/index.js +2 -0
  64. package/dist/esm/operation-node/column-definition-node.d.ts +8 -6
  65. package/dist/esm/operation-node/column-definition-node.js +4 -4
  66. package/dist/esm/operation-node/create-schema-node.d.ts +1 -2
  67. package/dist/esm/operation-node/create-table-node.d.ts +2 -3
  68. package/dist/esm/operation-node/create-table-node.js +2 -2
  69. package/dist/esm/operation-node/create-view-node.d.ts +22 -0
  70. package/dist/esm/operation-node/create-view-node.js +22 -0
  71. package/dist/esm/operation-node/default-value-node.d.ts +14 -0
  72. package/dist/esm/operation-node/default-value-node.js +15 -0
  73. package/dist/esm/operation-node/drop-index-node.d.ts +1 -2
  74. package/dist/esm/operation-node/drop-schema-node.d.ts +2 -3
  75. package/dist/esm/operation-node/drop-schema-node.js +3 -3
  76. package/dist/esm/operation-node/drop-table-node.d.ts +2 -3
  77. package/dist/esm/operation-node/drop-table-node.js +2 -2
  78. package/dist/esm/operation-node/drop-view-node.d.ts +17 -0
  79. package/dist/esm/operation-node/drop-view-node.js +22 -0
  80. package/dist/esm/operation-node/generated-always-as-node.d.ts +16 -0
  81. package/dist/esm/operation-node/generated-always-as-node.js +22 -0
  82. package/dist/esm/operation-node/operation-node-transformer.d.ts +8 -0
  83. package/dist/esm/operation-node/operation-node-transformer.js +47 -11
  84. package/dist/esm/operation-node/operation-node-visitor.d.ts +8 -0
  85. package/dist/esm/operation-node/operation-node-visitor.js +7 -2
  86. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  87. package/dist/esm/operation-node/operator-node.d.ts +1 -1
  88. package/dist/esm/operation-node/operator-node.js +5 -0
  89. package/dist/esm/operation-node/raw-node.d.ts +1 -1
  90. package/dist/esm/operation-node/select-query-node.d.ts +1 -1
  91. package/dist/esm/operation-node/select-query-node.js +1 -1
  92. package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.d.ts +17 -0
  93. package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.js +18 -0
  94. package/dist/esm/plugin/immediate-value.ts/immediate-value-transformer.d.ts +13 -0
  95. package/dist/esm/plugin/immediate-value.ts/immediate-value-transformer.js +17 -0
  96. package/dist/esm/plugin/with-schema/with-schema-transformer.d.ts +4 -0
  97. package/dist/esm/plugin/with-schema/with-schema-transformer.js +6 -0
  98. package/dist/esm/query-compiler/default-query-compiler.d.ts +8 -0
  99. package/dist/esm/query-compiler/default-query-compiler.js +59 -11
  100. package/dist/esm/query-compiler/query-compiler.d.ts +3 -1
  101. package/dist/esm/raw-builder/raw-builder.d.ts +1 -1
  102. package/dist/esm/schema/alter-table-builder.d.ts +6 -2
  103. package/dist/esm/schema/alter-table-builder.js +28 -4
  104. package/dist/esm/schema/column-definition-builder.d.ts +43 -2
  105. package/dist/esm/schema/column-definition-builder.js +23 -6
  106. package/dist/esm/schema/create-schema-builder.js +1 -1
  107. package/dist/esm/schema/create-table-builder.d.ts +7 -8
  108. package/dist/esm/schema/create-table-builder.js +8 -9
  109. package/dist/esm/schema/create-view-builder.d.ts +24 -0
  110. package/dist/esm/schema/create-view-builder.js +69 -0
  111. package/dist/esm/schema/drop-index-builder.js +1 -1
  112. package/dist/esm/schema/drop-schema-builder.js +3 -1
  113. package/dist/esm/schema/drop-table-builder.js +3 -1
  114. package/dist/esm/schema/drop-view-builder.d.ts +20 -0
  115. package/dist/esm/schema/drop-view-builder.js +35 -0
  116. package/dist/esm/schema/schema.d.ts +30 -3
  117. package/dist/esm/schema/schema.js +44 -3
  118. package/dist/esm/util/performance-now.d.ts +1 -0
  119. package/dist/esm/util/performance-now.js +9 -0
  120. package/package.json +3 -3
@@ -2,12 +2,11 @@ import { IdentifierNode } from './identifier-node.js';
2
2
  import { OperationNode } from './operation-node.js';
3
3
  import { TableNode } from './table-node.js';
4
4
  export declare type DropIndexNodeProps = Omit<DropIndexNode, 'kind' | 'name'>;
5
- export declare type DropIndexNodeModifier = 'IfExists';
6
5
  export interface DropIndexNode extends OperationNode {
7
6
  readonly kind: 'DropIndexNode';
8
7
  readonly name: IdentifierNode;
9
8
  readonly table?: TableNode;
10
- readonly modifier?: DropIndexNodeModifier;
9
+ readonly ifExists?: boolean;
11
10
  }
12
11
  /**
13
12
  * @internal
@@ -1,11 +1,10 @@
1
1
  import { IdentifierNode } from './identifier-node.js';
2
2
  import { OperationNode } from './operation-node.js';
3
- export declare type DropSchemaNodeModifier = 'IfExists';
4
3
  export declare type DropSchemaNodeParams = Omit<Partial<DropSchemaNode>, 'kind' | 'schema'>;
5
4
  export interface DropSchemaNode extends OperationNode {
6
5
  readonly kind: 'DropSchemaNode';
7
6
  readonly schema: IdentifierNode;
8
- readonly modifier?: DropSchemaNodeModifier;
7
+ readonly ifExists?: boolean;
9
8
  }
10
9
  /**
11
10
  * @internal
@@ -13,5 +12,5 @@ export interface DropSchemaNode extends OperationNode {
13
12
  export declare const DropSchemaNode: Readonly<{
14
13
  is(node: OperationNode): node is DropSchemaNode;
15
14
  create(schema: string, params?: DropSchemaNodeParams | undefined): DropSchemaNode;
16
- cloneWithModifier(createSchema: DropSchemaNode, modifier: DropSchemaNodeModifier): DropSchemaNode;
15
+ cloneWith(dropSchema: DropSchemaNode, params: DropSchemaNodeParams): DropSchemaNode;
17
16
  }>;
@@ -14,10 +14,10 @@ export const DropSchemaNode = freeze({
14
14
  ...params,
15
15
  });
16
16
  },
17
- cloneWithModifier(createSchema, modifier) {
17
+ cloneWith(dropSchema, params) {
18
18
  return freeze({
19
- ...createSchema,
20
- modifier,
19
+ ...dropSchema,
20
+ ...params,
21
21
  });
22
22
  },
23
23
  });
@@ -1,11 +1,10 @@
1
1
  import { OperationNode } from './operation-node.js';
2
2
  import { TableNode } from './table-node.js';
3
3
  export declare type DropTablexNodeParams = Omit<Partial<DropTableNode>, 'kind' | 'table'>;
4
- export declare type DropTableNodeModifier = 'IfExists';
5
4
  export interface DropTableNode extends OperationNode {
6
5
  readonly kind: 'DropTableNode';
7
6
  readonly table: TableNode;
8
- readonly modifier?: DropTableNodeModifier;
7
+ readonly ifExists?: boolean;
9
8
  }
10
9
  /**
11
10
  * @internal
@@ -13,5 +12,5 @@ export interface DropTableNode extends OperationNode {
13
12
  export declare const DropTableNode: Readonly<{
14
13
  is(node: OperationNode): node is DropTableNode;
15
14
  create(table: TableNode, params?: DropTablexNodeParams | undefined): DropTableNode;
16
- cloneWithModifier(dropIndex: DropTableNode, modifier: DropTableNodeModifier): DropTableNode;
15
+ cloneWith(dropIndex: DropTableNode, params: DropTablexNodeParams): DropTableNode;
17
16
  }>;
@@ -13,10 +13,10 @@ export const DropTableNode = freeze({
13
13
  ...params,
14
14
  });
15
15
  },
16
- cloneWithModifier(dropIndex, modifier) {
16
+ cloneWith(dropIndex, params) {
17
17
  return freeze({
18
18
  ...dropIndex,
19
- modifier,
19
+ ...params,
20
20
  });
21
21
  },
22
22
  });
@@ -0,0 +1,17 @@
1
+ import { IdentifierNode } from './identifier-node.js';
2
+ import { OperationNode } from './operation-node.js';
3
+ export declare type DropViewNodeParams = Omit<Partial<DropViewNode>, 'kind' | 'name'>;
4
+ export interface DropViewNode extends OperationNode {
5
+ readonly kind: 'DropViewNode';
6
+ readonly name: IdentifierNode;
7
+ readonly ifExists?: boolean;
8
+ readonly materialized?: boolean;
9
+ }
10
+ /**
11
+ * @internal
12
+ */
13
+ export declare const DropViewNode: Readonly<{
14
+ is(node: OperationNode): node is DropViewNode;
15
+ create(name: string): DropViewNode;
16
+ cloneWith(dropView: DropViewNode, params: DropViewNodeParams): DropViewNode;
17
+ }>;
@@ -0,0 +1,22 @@
1
+ import { freeze } from '../util/object-utils.js';
2
+ import { IdentifierNode } from './identifier-node.js';
3
+ /**
4
+ * @internal
5
+ */
6
+ export const DropViewNode = freeze({
7
+ is(node) {
8
+ return node.kind === 'DropViewNode';
9
+ },
10
+ create(name) {
11
+ return freeze({
12
+ kind: 'DropViewNode',
13
+ name: IdentifierNode.create(name),
14
+ });
15
+ },
16
+ cloneWith(dropView, params) {
17
+ return freeze({
18
+ ...dropView,
19
+ ...params,
20
+ });
21
+ },
22
+ });
@@ -0,0 +1,16 @@
1
+ import { OperationNode } from './operation-node.js';
2
+ import { RawNode } from './raw-node.js';
3
+ export declare type GeneratedAlwaysAsNodeParams = Omit<GeneratedAlwaysAsNode, 'kind' | 'expression'>;
4
+ export interface GeneratedAlwaysAsNode extends OperationNode {
5
+ readonly kind: 'GeneratedAlwaysAsNode';
6
+ readonly expression: RawNode;
7
+ readonly stored?: boolean;
8
+ }
9
+ /**
10
+ * @internal
11
+ */
12
+ export declare const GeneratedAlwaysAsNode: Readonly<{
13
+ is(node: OperationNode): node is GeneratedAlwaysAsNode;
14
+ create(expression: string): GeneratedAlwaysAsNode;
15
+ cloneWith(node: GeneratedAlwaysAsNode, params: GeneratedAlwaysAsNodeParams): GeneratedAlwaysAsNode;
16
+ }>;
@@ -0,0 +1,22 @@
1
+ import { freeze } from '../util/object-utils.js';
2
+ import { RawNode } from './raw-node.js';
3
+ /**
4
+ * @internal
5
+ */
6
+ export const GeneratedAlwaysAsNode = freeze({
7
+ is(node) {
8
+ return node.kind === 'GeneratedAlwaysAsNode';
9
+ },
10
+ create(expression) {
11
+ return freeze({
12
+ kind: 'GeneratedAlwaysAsNode',
13
+ expression: RawNode.createWithSql(expression),
14
+ });
15
+ },
16
+ cloneWith(node, params) {
17
+ return freeze({
18
+ ...node,
19
+ ...params,
20
+ });
21
+ },
22
+ });
@@ -58,6 +58,10 @@ 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
60
  import { UnionNode } from './union-node.js';
61
+ import { CreateViewNode } from './create-view-node.js';
62
+ import { DropViewNode } from './drop-view-node.js';
63
+ import { GeneratedAlwaysAsNode } from './generated-always-as-node.js';
64
+ import { DefaultValueNode } from './default-value-node.js';
61
65
  /**
62
66
  * Transforms an operation node tree into another one.
63
67
  *
@@ -145,6 +149,10 @@ export declare class OperationNodeTransformer {
145
149
  protected transformModifyColumn(node: ModifyColumnNode): ModifyColumnNode;
146
150
  protected transformAddConstraint(node: AddConstraintNode): AddConstraintNode;
147
151
  protected transformDropConstraint(node: DropConstraintNode): DropConstraintNode;
152
+ protected transformCreateView(node: CreateViewNode): CreateViewNode;
153
+ protected transformDropView(node: DropViewNode): DropViewNode;
154
+ protected transformGeneratedAlwaysAs(node: GeneratedAlwaysAsNode): GeneratedAlwaysAsNode;
155
+ protected transformDefaultValue(node: DefaultValueNode): DefaultValueNode;
148
156
  protected transformDataType(node: DataTypeNode): DataTypeNode;
149
157
  protected transformSelectAll(node: SelectAllNode): SelectAllNode;
150
158
  protected transformIdentifier(node: IdentifierNode): IdentifierNode;
@@ -30,7 +30,7 @@ import { freeze } from '../util/object-utils.js';
30
30
  */
31
31
  export class OperationNodeTransformer {
32
32
  nodeStack = [];
33
- #transformers = {
33
+ #transformers = freeze({
34
34
  AliasNode: this.transformAlias.bind(this),
35
35
  ColumnNode: this.transformColumn.bind(this),
36
36
  IdentifierNode: this.transformIdentifier.bind(this),
@@ -90,7 +90,11 @@ export class OperationNodeTransformer {
90
90
  DropConstraintNode: this.transformDropConstraint.bind(this),
91
91
  ForeignKeyConstraintNode: this.transformForeignKeyConstraint.bind(this),
92
92
  UnionNode: this.transformUnion.bind(this),
93
- };
93
+ CreateViewNode: this.transformCreateView.bind(this),
94
+ DropViewNode: this.transformDropView.bind(this),
95
+ GeneratedAlwaysAsNode: this.transformGeneratedAlwaysAs.bind(this),
96
+ DefaultValueNode: this.transformDefaultValue.bind(this),
97
+ });
94
98
  transformNode = (node) => {
95
99
  if (!node) {
96
100
  return undefined;
@@ -112,7 +116,7 @@ export class OperationNodeTransformer {
112
116
  from: this.transformNode(node.from),
113
117
  selections: this.transformNodeList(node.selections),
114
118
  distinctOnSelections: this.transformNodeList(node.distinctOnSelections),
115
- isDistinct: node.isDistinct,
119
+ distinct: node.distinct,
116
120
  joins: this.transformNodeList(node.joins),
117
121
  groupBy: this.transformNode(node.groupBy),
118
122
  orderBy: this.transformNode(node.orderBy),
@@ -254,7 +258,7 @@ export class OperationNodeTransformer {
254
258
  table: this.transformNode(node.table),
255
259
  columns: this.transformNodeList(node.columns),
256
260
  constraints: this.transformNodeList(node.constraints),
257
- modifier: node.modifier,
261
+ ifNotExists: node.ifNotExists,
258
262
  };
259
263
  }
260
264
  transformColumnDefinition(node) {
@@ -263,12 +267,13 @@ export class OperationNodeTransformer {
263
267
  column: this.transformNode(node.column),
264
268
  dataType: this.transformNode(node.dataType),
265
269
  references: this.transformNode(node.references),
266
- isPrimaryKey: node.isPrimaryKey,
267
- isAutoIncrementing: node.isAutoIncrementing,
268
- isUnique: node.isUnique,
269
- isNullable: node.isNullable,
270
+ primaryKey: node.primaryKey,
271
+ autoIncrement: node.autoIncrement,
272
+ unique: node.unique,
273
+ nullable: node.nullable,
270
274
  defaultTo: this.transformNode(node.defaultTo),
271
275
  check: this.transformNode(node.check),
276
+ generatedAlwaysAs: this.transformNode(node.generatedAlwaysAs),
272
277
  };
273
278
  }
274
279
  transformAddColumn(node) {
@@ -281,7 +286,7 @@ export class OperationNodeTransformer {
281
286
  return {
282
287
  kind: 'DropTableNode',
283
288
  table: this.transformNode(node.table),
284
- modifier: node.modifier,
289
+ ifExists: node.ifExists,
285
290
  };
286
291
  }
287
292
  transformOrderBy(node) {
@@ -375,7 +380,7 @@ export class OperationNodeTransformer {
375
380
  kind: 'DropIndexNode',
376
381
  name: this.transformNode(node.name),
377
382
  table: this.transformNode(node.table),
378
- modifier: node.modifier,
383
+ ifExists: node.ifExists,
379
384
  };
380
385
  }
381
386
  transformPrimaryKeyConstraint(node) {
@@ -454,7 +459,7 @@ export class OperationNodeTransformer {
454
459
  return {
455
460
  kind: 'DropSchemaNode',
456
461
  schema: this.transformNode(node.schema),
457
- modifier: node.modifier,
462
+ ifExists: node.ifExists,
458
463
  };
459
464
  }
460
465
  transformAlterTable(node) {
@@ -515,6 +520,37 @@ export class OperationNodeTransformer {
515
520
  constraintName: this.transformNode(node.constraintName),
516
521
  };
517
522
  }
523
+ transformCreateView(node) {
524
+ return {
525
+ kind: 'CreateViewNode',
526
+ name: this.transformNode(node.name),
527
+ orReplace: node.orReplace,
528
+ materialized: node.materialized,
529
+ columns: this.transformNodeList(node.columns),
530
+ as: this.transformNode(node.as),
531
+ };
532
+ }
533
+ transformDropView(node) {
534
+ return {
535
+ kind: 'DropViewNode',
536
+ name: this.transformNode(node.name),
537
+ ifExists: node.ifExists,
538
+ materialized: node.materialized,
539
+ };
540
+ }
541
+ transformGeneratedAlwaysAs(node) {
542
+ return {
543
+ kind: 'GeneratedAlwaysAsNode',
544
+ expression: this.transformNode(node.expression),
545
+ stored: node.stored,
546
+ };
547
+ }
548
+ transformDefaultValue(node) {
549
+ return {
550
+ kind: 'DefaultValueNode',
551
+ defaultValue: this.transformNode(node.defaultValue),
552
+ };
553
+ }
518
554
  transformDataType(node) {
519
555
  // An Object.freezed leaf node. No need to clone.
520
556
  return node;
@@ -58,6 +58,10 @@ 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
60
  import { UnionNode } from './union-node.js';
61
+ import { CreateViewNode } from './create-view-node.js';
62
+ import { DropViewNode } from './drop-view-node.js';
63
+ import { GeneratedAlwaysAsNode } from './generated-always-as-node.js';
64
+ import { DefaultValueNode } from './default-value-node.js';
61
65
  export declare abstract class OperationNodeVisitor {
62
66
  #private;
63
67
  protected readonly nodeStack: OperationNode[];
@@ -121,4 +125,8 @@ export declare abstract class OperationNodeVisitor {
121
125
  protected abstract visitValue(_: ValueNode): void;
122
126
  protected abstract visitPrimitiveValueList(_: PrimitiveValueListNode): void;
123
127
  protected abstract visitOperator(node: OperatorNode): void;
128
+ protected abstract visitCreateView(node: CreateViewNode): void;
129
+ protected abstract visitDropView(node: DropViewNode): void;
130
+ protected abstract visitGeneratedAlwaysAs(node: GeneratedAlwaysAsNode): void;
131
+ protected abstract visitDefaultValue(node: DefaultValueNode): void;
124
132
  }
@@ -1,6 +1,7 @@
1
+ import { freeze } from '../util/object-utils.js';
1
2
  export class OperationNodeVisitor {
2
3
  nodeStack = [];
3
- #visitors = {
4
+ #visitors = freeze({
4
5
  AliasNode: this.visitAlias.bind(this),
5
6
  ColumnNode: this.visitColumn.bind(this),
6
7
  IdentifierNode: this.visitIdentifier.bind(this),
@@ -60,7 +61,11 @@ export class OperationNodeVisitor {
60
61
  DropConstraintNode: this.visitDropConstraint.bind(this),
61
62
  ForeignKeyConstraintNode: this.visitForeignKeyConstraint.bind(this),
62
63
  UnionNode: this.visitUnion.bind(this),
63
- };
64
+ CreateViewNode: this.visitCreateView.bind(this),
65
+ DropViewNode: this.visitDropView.bind(this),
66
+ GeneratedAlwaysAsNode: this.visitGeneratedAlwaysAs.bind(this),
67
+ DefaultValueNode: this.visitDefaultValue.bind(this),
68
+ });
64
69
  visitNode = (node) => {
65
70
  this.nodeStack.push(node);
66
71
  this.#visitors[node.kind](node);
@@ -1,4 +1,4 @@
1
- export declare type OperationNodeKind = 'IdentifierNode' | 'RawNode' | 'SelectQueryNode' | 'SelectionNode' | 'ReferenceNode' | 'ColumnNode' | 'TableNode' | 'AliasNode' | 'FromNode' | 'SelectAllNode' | 'FilterNode' | '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' | 'UnionNode';
1
+ export declare type OperationNodeKind = 'IdentifierNode' | 'RawNode' | 'SelectQueryNode' | 'SelectionNode' | 'ReferenceNode' | 'ColumnNode' | 'TableNode' | 'AliasNode' | 'FromNode' | 'SelectAllNode' | 'FilterNode' | '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' | 'UnionNode' | 'CreateViewNode' | 'DropViewNode' | 'GeneratedAlwaysAsNode' | 'DefaultValueNode';
2
2
  export interface OperationNode {
3
3
  readonly kind: OperationNodeKind;
4
4
  }
@@ -1,6 +1,6 @@
1
1
  import { ArrayItemType } from '../util/type-utils.js';
2
2
  import { OperationNode } from './operation-node.js';
3
- export declare const OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "ilike", "not ilike", "@>", "<@", "?", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "exists", "not exists", "&&"];
3
+ export declare const OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "ilike", "not ilike", "@>", "<@", "?", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "exists", "not exists", "&&", "||", "@@", "@@@", "!!", "<->"];
4
4
  export declare type Operator = ArrayItemType<typeof OPERATORS>;
5
5
  export interface OperatorNode extends OperationNode {
6
6
  readonly kind: 'OperatorNode';
@@ -31,6 +31,11 @@ export const OPERATORS = [
31
31
  'exists',
32
32
  'not exists',
33
33
  '&&',
34
+ '||',
35
+ '@@',
36
+ '@@@',
37
+ '!!',
38
+ '<->',
34
39
  ];
35
40
  /**
36
41
  * @internal
@@ -9,6 +9,6 @@ export interface RawNode extends OperationNode {
9
9
  */
10
10
  export declare const RawNode: Readonly<{
11
11
  is(node: OperationNode): node is RawNode;
12
- create(sqlFragments: string[], params: ReadonlyArray<OperationNode>): RawNode;
12
+ create(sqlFragments: ReadonlyArray<string>, params: ReadonlyArray<OperationNode>): RawNode;
13
13
  createWithSql(sql: string): RawNode;
14
14
  }>;
@@ -19,7 +19,7 @@ export interface SelectQueryNode extends OperationNode {
19
19
  readonly from: FromNode;
20
20
  readonly selections?: ReadonlyArray<SelectionNode>;
21
21
  readonly distinctOnSelections?: ReadonlyArray<SelectionNode>;
22
- readonly isDistinct?: boolean;
22
+ readonly distinct?: boolean;
23
23
  readonly joins?: ReadonlyArray<JoinNode>;
24
24
  readonly groupBy?: GroupByNode;
25
25
  readonly orderBy?: OrderByNode;
@@ -88,7 +88,7 @@ export const SelectQueryNode = freeze({
88
88
  cloneWithDistinct(selectNode) {
89
89
  return freeze({
90
90
  ...selectNode,
91
- isDistinct: true,
91
+ distinct: true,
92
92
  });
93
93
  },
94
94
  cloneWithUnion(selectNode, union) {
@@ -0,0 +1,17 @@
1
+ import { QueryResult } from '../../driver/database-connection.js';
2
+ import { UnknownRow } from '../../index.js';
3
+ import { RootOperationNode } from '../../query-compiler/query-compiler.js';
4
+ import { KyselyPlugin, PluginTransformQueryArgs, PluginTransformResultArgs } from '../kysely-plugin.js';
5
+ /**
6
+ * Transforms all ValueNodes to immediate.
7
+ *
8
+ * WARNING! This should never be part of the public API. Users should never use this.
9
+ * This is an internal helper.
10
+ *
11
+ * @internal
12
+ */
13
+ export declare class ImmediateValuePlugin implements KyselyPlugin {
14
+ #private;
15
+ transformQuery(args: PluginTransformQueryArgs): RootOperationNode;
16
+ transformResult(args: PluginTransformResultArgs): Promise<QueryResult<UnknownRow>>;
17
+ }
@@ -0,0 +1,18 @@
1
+ import { ImmediateValueTransformer } from './immediate-value-transformer.js';
2
+ /**
3
+ * Transforms all ValueNodes to immediate.
4
+ *
5
+ * WARNING! This should never be part of the public API. Users should never use this.
6
+ * This is an internal helper.
7
+ *
8
+ * @internal
9
+ */
10
+ export class ImmediateValuePlugin {
11
+ #transformer = new ImmediateValueTransformer();
12
+ transformQuery(args) {
13
+ return this.#transformer.transformNode(args.node);
14
+ }
15
+ async transformResult(args) {
16
+ return args.result;
17
+ }
18
+ }
@@ -0,0 +1,13 @@
1
+ import { OperationNodeTransformer } from '../../operation-node/operation-node-transformer.js';
2
+ import { ValueNode } from '../../operation-node/value-node.js';
3
+ /**
4
+ * Transforms all ValueNodes to immediate.
5
+ *
6
+ * WARNING! This should never be part of the public API. Users should never use this.
7
+ * This is an internal helper.
8
+ *
9
+ * @internal
10
+ */
11
+ export declare class ImmediateValueTransformer extends OperationNodeTransformer {
12
+ transformValue(node: ValueNode): ValueNode;
13
+ }
@@ -0,0 +1,17 @@
1
+ import { OperationNodeTransformer } from '../../operation-node/operation-node-transformer.js';
2
+ /**
3
+ * Transforms all ValueNodes to immediate.
4
+ *
5
+ * WARNING! This should never be part of the public API. Users should never use this.
6
+ * This is an internal helper.
7
+ *
8
+ * @internal
9
+ */
10
+ export class ImmediateValueTransformer extends OperationNodeTransformer {
11
+ transformValue(node) {
12
+ return {
13
+ ...super.transformValue(node),
14
+ immediate: true,
15
+ };
16
+ }
17
+ }
@@ -1,9 +1,11 @@
1
1
  import { AlterTableNode } from '../../operation-node/alter-table-node.js';
2
2
  import { CreateIndexNode } from '../../operation-node/create-index-node.js';
3
3
  import { CreateTableNode } from '../../operation-node/create-table-node.js';
4
+ import { CreateViewNode } from '../../operation-node/create-view-node.js';
4
5
  import { DeleteQueryNode } from '../../operation-node/delete-query-node.js';
5
6
  import { DropIndexNode } from '../../operation-node/drop-index-node.js';
6
7
  import { DropTableNode } from '../../operation-node/drop-table-node.js';
8
+ import { DropViewNode } from '../../operation-node/drop-view-node.js';
7
9
  import { InsertQueryNode } from '../../operation-node/insert-query-node.js';
8
10
  import { OperationNodeTransformer } from '../../operation-node/operation-node-transformer.js';
9
11
  import { SelectQueryNode } from '../../operation-node/select-query-node.js';
@@ -20,6 +22,8 @@ export declare class WithSchemaTransformer extends OperationNodeTransformer {
20
22
  protected transformDropTable(node: DropTableNode): DropTableNode;
21
23
  protected transformCreateIndex(node: CreateIndexNode): CreateIndexNode;
22
24
  protected transformDropIndex(node: DropIndexNode): DropIndexNode;
25
+ protected transformCreateView(node: CreateViewNode): CreateViewNode;
26
+ protected transformDropView(node: DropViewNode): DropViewNode;
23
27
  protected transformAlterTable(node: AlterTableNode): AlterTableNode;
24
28
  protected transformTable(node: TableNode): TableNode;
25
29
  }
@@ -32,6 +32,12 @@ export class WithSchemaTransformer extends OperationNodeTransformer {
32
32
  transformDropIndex(node) {
33
33
  return this.#transformRoot(node, (node) => super.transformDropIndex(node));
34
34
  }
35
+ transformCreateView(node) {
36
+ return this.#transformRoot(node, (node) => super.transformCreateView(node));
37
+ }
38
+ transformDropView(node) {
39
+ return this.#transformRoot(node, (node) => super.transformDropView(node));
40
+ }
35
41
  transformAlterTable(node) {
36
42
  return this.#transformRoot(node, (node) => super.transformAlterTable(node));
37
43
  }
@@ -62,6 +62,10 @@ import { ModifyColumnNode } from '../operation-node/modify-column-node.js';
62
62
  import { OnDuplicateKeyNode } from '../operation-node/on-duplicate-key-node.js';
63
63
  import { ColumnNode } from '../operation-node/column-node.js';
64
64
  import { UnionNode } from '../operation-node/union-node.js';
65
+ import { CreateViewNode } from '../operation-node/create-view-node.js';
66
+ import { DropViewNode } from '../operation-node/drop-view-node.js';
67
+ import { GeneratedAlwaysAsNode } from '../operation-node/generated-always-as-node.js';
68
+ import { DefaultValueNode } from '../operation-node/default-value-node.js';
65
69
  export declare class DefaultQueryCompiler extends OperationNodeVisitor implements QueryCompiler {
66
70
  #private;
67
71
  protected get numParameters(): number;
@@ -130,6 +134,10 @@ export declare class DefaultQueryCompiler extends OperationNodeVisitor implement
130
134
  protected visitAddConstraint(node: AddConstraintNode): void;
131
135
  protected visitDropConstraint(node: DropConstraintNode): void;
132
136
  protected visitUnion(node: UnionNode): void;
137
+ protected visitCreateView(node: CreateViewNode): void;
138
+ protected visitDropView(node: DropViewNode): void;
139
+ protected visitGeneratedAlwaysAs(node: GeneratedAlwaysAsNode): void;
140
+ protected visitDefaultValue(node: DefaultValueNode): void;
133
141
  protected append(str: string): void;
134
142
  protected appendValue(parameter: unknown): void;
135
143
  protected getLeftIdentifierWrapper(): string;