kysely 0.9.6 → 0.10.0

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 (102) hide show
  1. package/README.md +15 -13
  2. package/dist/cjs/index.d.ts +2 -0
  3. package/dist/cjs/index.js +2 -0
  4. package/dist/cjs/operation-node/column-definition-node.d.ts +4 -4
  5. package/dist/cjs/operation-node/column-definition-node.js +4 -4
  6. package/dist/cjs/operation-node/create-schema-node.d.ts +1 -2
  7. package/dist/cjs/operation-node/create-table-node.d.ts +2 -3
  8. package/dist/cjs/operation-node/create-table-node.js +2 -2
  9. package/dist/cjs/operation-node/create-view-node.d.ts +22 -0
  10. package/dist/cjs/operation-node/create-view-node.js +25 -0
  11. package/dist/cjs/operation-node/drop-index-node.d.ts +1 -2
  12. package/dist/cjs/operation-node/drop-schema-node.d.ts +2 -3
  13. package/dist/cjs/operation-node/drop-schema-node.js +3 -3
  14. package/dist/cjs/operation-node/drop-table-node.d.ts +2 -3
  15. package/dist/cjs/operation-node/drop-table-node.js +2 -2
  16. package/dist/cjs/operation-node/drop-view-node.d.ts +17 -0
  17. package/dist/cjs/operation-node/drop-view-node.js +25 -0
  18. package/dist/cjs/operation-node/operation-node-transformer.d.ts +4 -0
  19. package/dist/cjs/operation-node/operation-node-transformer.js +29 -9
  20. package/dist/cjs/operation-node/operation-node-visitor.d.ts +4 -0
  21. package/dist/cjs/operation-node/operation-node-visitor.js +2 -0
  22. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  23. package/dist/cjs/operation-node/operator-node.d.ts +1 -1
  24. package/dist/cjs/operation-node/operator-node.js +5 -0
  25. package/dist/cjs/operation-node/select-query-node.d.ts +1 -1
  26. package/dist/cjs/operation-node/select-query-node.js +1 -1
  27. package/dist/cjs/plugin/immediate-value.ts/immediate-value-plugin.d.ts +17 -0
  28. package/dist/cjs/plugin/immediate-value.ts/immediate-value-plugin.js +22 -0
  29. package/dist/cjs/plugin/immediate-value.ts/immediate-value-transformer.d.ts +13 -0
  30. package/dist/cjs/plugin/immediate-value.ts/immediate-value-transformer.js +21 -0
  31. package/dist/cjs/plugin/with-schema/with-schema-transformer.d.ts +4 -0
  32. package/dist/cjs/plugin/with-schema/with-schema-transformer.js +6 -0
  33. package/dist/cjs/query-compiler/default-query-compiler.d.ts +4 -0
  34. package/dist/cjs/query-compiler/default-query-compiler.js +42 -10
  35. package/dist/cjs/query-compiler/query-compiler.d.ts +3 -1
  36. package/dist/cjs/schema/alter-table-builder.d.ts +2 -2
  37. package/dist/cjs/schema/alter-table-builder.js +4 -4
  38. package/dist/cjs/schema/column-definition-builder.d.ts +2 -2
  39. package/dist/cjs/schema/column-definition-builder.js +5 -5
  40. package/dist/cjs/schema/create-schema-builder.js +1 -1
  41. package/dist/cjs/schema/create-table-builder.d.ts +1 -1
  42. package/dist/cjs/schema/create-table-builder.js +2 -2
  43. package/dist/cjs/schema/create-view-builder.d.ts +24 -0
  44. package/dist/cjs/schema/create-view-builder.js +73 -0
  45. package/dist/cjs/schema/drop-index-builder.js +1 -1
  46. package/dist/cjs/schema/drop-schema-builder.js +3 -1
  47. package/dist/cjs/schema/drop-table-builder.js +3 -1
  48. package/dist/cjs/schema/drop-view-builder.d.ts +20 -0
  49. package/dist/cjs/schema/drop-view-builder.js +39 -0
  50. package/dist/cjs/schema/schema.d.ts +30 -3
  51. package/dist/cjs/schema/schema.js +44 -3
  52. package/dist/esm/index.d.ts +2 -0
  53. package/dist/esm/index.js +2 -0
  54. package/dist/esm/operation-node/column-definition-node.d.ts +4 -4
  55. package/dist/esm/operation-node/column-definition-node.js +4 -4
  56. package/dist/esm/operation-node/create-schema-node.d.ts +1 -2
  57. package/dist/esm/operation-node/create-table-node.d.ts +2 -3
  58. package/dist/esm/operation-node/create-table-node.js +2 -2
  59. package/dist/esm/operation-node/create-view-node.d.ts +22 -0
  60. package/dist/esm/operation-node/create-view-node.js +22 -0
  61. package/dist/esm/operation-node/drop-index-node.d.ts +1 -2
  62. package/dist/esm/operation-node/drop-schema-node.d.ts +2 -3
  63. package/dist/esm/operation-node/drop-schema-node.js +3 -3
  64. package/dist/esm/operation-node/drop-table-node.d.ts +2 -3
  65. package/dist/esm/operation-node/drop-table-node.js +2 -2
  66. package/dist/esm/operation-node/drop-view-node.d.ts +17 -0
  67. package/dist/esm/operation-node/drop-view-node.js +22 -0
  68. package/dist/esm/operation-node/operation-node-transformer.d.ts +4 -0
  69. package/dist/esm/operation-node/operation-node-transformer.js +29 -9
  70. package/dist/esm/operation-node/operation-node-visitor.d.ts +4 -0
  71. package/dist/esm/operation-node/operation-node-visitor.js +2 -0
  72. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  73. package/dist/esm/operation-node/operator-node.d.ts +1 -1
  74. package/dist/esm/operation-node/operator-node.js +5 -0
  75. package/dist/esm/operation-node/select-query-node.d.ts +1 -1
  76. package/dist/esm/operation-node/select-query-node.js +1 -1
  77. package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.d.ts +17 -0
  78. package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.js +18 -0
  79. package/dist/esm/plugin/immediate-value.ts/immediate-value-transformer.d.ts +13 -0
  80. package/dist/esm/plugin/immediate-value.ts/immediate-value-transformer.js +17 -0
  81. package/dist/esm/plugin/with-schema/with-schema-transformer.d.ts +4 -0
  82. package/dist/esm/plugin/with-schema/with-schema-transformer.js +6 -0
  83. package/dist/esm/query-compiler/default-query-compiler.d.ts +4 -0
  84. package/dist/esm/query-compiler/default-query-compiler.js +42 -10
  85. package/dist/esm/query-compiler/query-compiler.d.ts +3 -1
  86. package/dist/esm/schema/alter-table-builder.d.ts +2 -2
  87. package/dist/esm/schema/alter-table-builder.js +4 -4
  88. package/dist/esm/schema/column-definition-builder.d.ts +2 -2
  89. package/dist/esm/schema/column-definition-builder.js +5 -5
  90. package/dist/esm/schema/create-schema-builder.js +1 -1
  91. package/dist/esm/schema/create-table-builder.d.ts +1 -1
  92. package/dist/esm/schema/create-table-builder.js +2 -2
  93. package/dist/esm/schema/create-view-builder.d.ts +24 -0
  94. package/dist/esm/schema/create-view-builder.js +69 -0
  95. package/dist/esm/schema/drop-index-builder.js +1 -1
  96. package/dist/esm/schema/drop-schema-builder.js +3 -1
  97. package/dist/esm/schema/drop-table-builder.js +3 -1
  98. package/dist/esm/schema/drop-view-builder.d.ts +20 -0
  99. package/dist/esm/schema/drop-view-builder.js +35 -0
  100. package/dist/esm/schema/schema.d.ts +30 -3
  101. package/dist/esm/schema/schema.js +44 -3
  102. package/package.json +4 -1
@@ -12,10 +12,10 @@ export interface ColumnDefinitionNode extends OperationNode {
12
12
  readonly column: ColumnNode;
13
13
  readonly dataType: ColumnDataTypeNode;
14
14
  readonly references?: ReferencesNode;
15
- readonly isPrimaryKey: boolean;
16
- readonly isAutoIncrementing: boolean;
17
- readonly isUnique: boolean;
18
- readonly isNullable: boolean;
15
+ readonly primaryKey: boolean;
16
+ readonly autoIncrement: boolean;
17
+ readonly unique: boolean;
18
+ readonly nullable: boolean;
19
19
  readonly defaultTo?: ValueNode | RawNode;
20
20
  readonly check?: CheckConstraintNode;
21
21
  }
@@ -12,10 +12,10 @@ export const ColumnDefinitionNode = freeze({
12
12
  kind: 'ColumnDefinitionNode',
13
13
  column: ColumnNode.create(column),
14
14
  dataType,
15
- isPrimaryKey: false,
16
- isAutoIncrementing: false,
17
- isUnique: false,
18
- isNullable: true,
15
+ primaryKey: false,
16
+ autoIncrement: false,
17
+ unique: false,
18
+ nullable: true,
19
19
  });
20
20
  },
21
21
  cloneWith(node, props) {
@@ -1,11 +1,10 @@
1
1
  import { IdentifierNode } from './identifier-node.js';
2
2
  import { OperationNode } from './operation-node.js';
3
- export declare type CreateSchemaNodeModifier = 'IfNotExists';
4
3
  export declare type CreateSchemaNodeParams = Omit<Partial<CreateSchemaNode>, 'kind' | 'schema'>;
5
4
  export interface CreateSchemaNode extends OperationNode {
6
5
  readonly kind: 'CreateSchemaNode';
7
6
  readonly schema: IdentifierNode;
8
- readonly modifier?: CreateSchemaNodeModifier;
7
+ readonly ifNotExists?: boolean;
9
8
  }
10
9
  /**
11
10
  * @internal
@@ -2,12 +2,11 @@ import { OperationNode } from './operation-node.js';
2
2
  import { TableNode } from './table-node.js';
3
3
  import { ConstraintNode } from './constraint-node.js';
4
4
  import { ColumnDefinitionNode } from './column-definition-node.js';
5
- export declare type CreateTableNodeModifier = 'IfNotExists';
6
5
  export interface CreateTableNode extends OperationNode {
7
6
  readonly kind: 'CreateTableNode';
8
7
  readonly table: TableNode;
9
8
  readonly columns: ReadonlyArray<ColumnDefinitionNode>;
10
- readonly modifier?: CreateTableNodeModifier;
9
+ readonly ifNotExists?: boolean;
11
10
  readonly constraints?: ReadonlyArray<ConstraintNode>;
12
11
  }
13
12
  /**
@@ -17,6 +16,6 @@ export declare const CreateTableNode: Readonly<{
17
16
  is(node: OperationNode): node is CreateTableNode;
18
17
  create(table: TableNode): CreateTableNode;
19
18
  cloneWithColumn(createTable: CreateTableNode, column: ColumnDefinitionNode): CreateTableNode;
20
- cloneWithModifier(createTable: CreateTableNode, modifier: CreateTableNodeModifier): CreateTableNode;
19
+ cloneWithIfNotExists(createTable: CreateTableNode, ifNotExists: boolean): CreateTableNode;
21
20
  cloneWithConstraint(createTable: CreateTableNode, constraint: ConstraintNode): CreateTableNode;
22
21
  }>;
@@ -19,10 +19,10 @@ export const CreateTableNode = freeze({
19
19
  columns: freeze([...createTable.columns, column]),
20
20
  });
21
21
  },
22
- cloneWithModifier(createTable, modifier) {
22
+ cloneWithIfNotExists(createTable, ifNotExists) {
23
23
  return freeze({
24
24
  ...createTable,
25
- modifier,
25
+ ifNotExists,
26
26
  });
27
27
  },
28
28
  cloneWithConstraint(createTable, constraint) {
@@ -0,0 +1,22 @@
1
+ import { ColumnNode } from './column-node.js';
2
+ import { IdentifierNode } from './identifier-node.js';
3
+ import { OperationNode } from './operation-node.js';
4
+ import { RawNode } from './raw-node.js';
5
+ import { SelectQueryNode } from './select-query-node.js';
6
+ export declare type CreateViewNodeParams = Omit<Partial<CreateViewNode>, 'kind' | 'name'>;
7
+ export interface CreateViewNode extends OperationNode {
8
+ readonly kind: 'CreateViewNode';
9
+ readonly name: IdentifierNode;
10
+ readonly materialized?: boolean;
11
+ readonly orReplace?: boolean;
12
+ readonly columns?: ReadonlyArray<ColumnNode>;
13
+ readonly as?: SelectQueryNode | RawNode;
14
+ }
15
+ /**
16
+ * @internal
17
+ */
18
+ export declare const CreateViewNode: Readonly<{
19
+ is(node: OperationNode): node is CreateViewNode;
20
+ create(name: string): CreateViewNode;
21
+ cloneWith(createView: CreateViewNode, params: CreateViewNodeParams): CreateViewNode;
22
+ }>;
@@ -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 CreateViewNode = freeze({
7
+ is(node) {
8
+ return node.kind === 'CreateViewNode';
9
+ },
10
+ create(name) {
11
+ return freeze({
12
+ kind: 'CreateViewNode',
13
+ name: IdentifierNode.create(name),
14
+ });
15
+ },
16
+ cloneWith(createView, params) {
17
+ return freeze({
18
+ ...createView,
19
+ ...params,
20
+ });
21
+ },
22
+ });
@@ -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
+ });
@@ -58,6 +58,8 @@ 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';
61
63
  /**
62
64
  * Transforms an operation node tree into another one.
63
65
  *
@@ -145,6 +147,8 @@ export declare class OperationNodeTransformer {
145
147
  protected transformModifyColumn(node: ModifyColumnNode): ModifyColumnNode;
146
148
  protected transformAddConstraint(node: AddConstraintNode): AddConstraintNode;
147
149
  protected transformDropConstraint(node: DropConstraintNode): DropConstraintNode;
150
+ protected transformCreateView(node: CreateViewNode): CreateViewNode;
151
+ protected transformDropView(node: DropViewNode): DropViewNode;
148
152
  protected transformDataType(node: DataTypeNode): DataTypeNode;
149
153
  protected transformSelectAll(node: SelectAllNode): SelectAllNode;
150
154
  protected transformIdentifier(node: IdentifierNode): IdentifierNode;
@@ -90,6 +90,8 @@ 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
+ CreateViewNode: this.transformCreateView.bind(this),
94
+ DropViewNode: this.transformDropView.bind(this),
93
95
  };
94
96
  transformNode = (node) => {
95
97
  if (!node) {
@@ -112,7 +114,7 @@ export class OperationNodeTransformer {
112
114
  from: this.transformNode(node.from),
113
115
  selections: this.transformNodeList(node.selections),
114
116
  distinctOnSelections: this.transformNodeList(node.distinctOnSelections),
115
- isDistinct: node.isDistinct,
117
+ distinct: node.distinct,
116
118
  joins: this.transformNodeList(node.joins),
117
119
  groupBy: this.transformNode(node.groupBy),
118
120
  orderBy: this.transformNode(node.orderBy),
@@ -254,7 +256,7 @@ export class OperationNodeTransformer {
254
256
  table: this.transformNode(node.table),
255
257
  columns: this.transformNodeList(node.columns),
256
258
  constraints: this.transformNodeList(node.constraints),
257
- modifier: node.modifier,
259
+ ifNotExists: node.ifNotExists,
258
260
  };
259
261
  }
260
262
  transformColumnDefinition(node) {
@@ -263,10 +265,10 @@ export class OperationNodeTransformer {
263
265
  column: this.transformNode(node.column),
264
266
  dataType: this.transformNode(node.dataType),
265
267
  references: this.transformNode(node.references),
266
- isPrimaryKey: node.isPrimaryKey,
267
- isAutoIncrementing: node.isAutoIncrementing,
268
- isUnique: node.isUnique,
269
- isNullable: node.isNullable,
268
+ primaryKey: node.primaryKey,
269
+ autoIncrement: node.autoIncrement,
270
+ unique: node.unique,
271
+ nullable: node.nullable,
270
272
  defaultTo: this.transformNode(node.defaultTo),
271
273
  check: this.transformNode(node.check),
272
274
  };
@@ -281,7 +283,7 @@ export class OperationNodeTransformer {
281
283
  return {
282
284
  kind: 'DropTableNode',
283
285
  table: this.transformNode(node.table),
284
- modifier: node.modifier,
286
+ ifExists: node.ifExists,
285
287
  };
286
288
  }
287
289
  transformOrderBy(node) {
@@ -375,7 +377,7 @@ export class OperationNodeTransformer {
375
377
  kind: 'DropIndexNode',
376
378
  name: this.transformNode(node.name),
377
379
  table: this.transformNode(node.table),
378
- modifier: node.modifier,
380
+ ifExists: node.ifExists,
379
381
  };
380
382
  }
381
383
  transformPrimaryKeyConstraint(node) {
@@ -454,7 +456,7 @@ export class OperationNodeTransformer {
454
456
  return {
455
457
  kind: 'DropSchemaNode',
456
458
  schema: this.transformNode(node.schema),
457
- modifier: node.modifier,
459
+ ifExists: node.ifExists,
458
460
  };
459
461
  }
460
462
  transformAlterTable(node) {
@@ -515,6 +517,24 @@ export class OperationNodeTransformer {
515
517
  constraintName: this.transformNode(node.constraintName),
516
518
  };
517
519
  }
520
+ transformCreateView(node) {
521
+ return {
522
+ kind: 'CreateViewNode',
523
+ name: this.transformNode(node.name),
524
+ orReplace: node.orReplace,
525
+ materialized: node.materialized,
526
+ columns: this.transformNodeList(node.columns),
527
+ as: this.transformNode(node.as),
528
+ };
529
+ }
530
+ transformDropView(node) {
531
+ return {
532
+ kind: 'DropViewNode',
533
+ name: this.transformNode(node.name),
534
+ ifExists: node.ifExists,
535
+ materialized: node.materialized,
536
+ };
537
+ }
518
538
  transformDataType(node) {
519
539
  // An Object.freezed leaf node. No need to clone.
520
540
  return node;
@@ -58,6 +58,8 @@ 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';
61
63
  export declare abstract class OperationNodeVisitor {
62
64
  #private;
63
65
  protected readonly nodeStack: OperationNode[];
@@ -121,4 +123,6 @@ export declare abstract class OperationNodeVisitor {
121
123
  protected abstract visitValue(_: ValueNode): void;
122
124
  protected abstract visitPrimitiveValueList(_: PrimitiveValueListNode): void;
123
125
  protected abstract visitOperator(node: OperatorNode): void;
126
+ protected abstract visitCreateView(node: CreateViewNode): void;
127
+ protected abstract visitDropView(node: DropViewNode): void;
124
128
  }
@@ -60,6 +60,8 @@ export class OperationNodeVisitor {
60
60
  DropConstraintNode: this.visitDropConstraint.bind(this),
61
61
  ForeignKeyConstraintNode: this.visitForeignKeyConstraint.bind(this),
62
62
  UnionNode: this.visitUnion.bind(this),
63
+ CreateViewNode: this.visitCreateView.bind(this),
64
+ DropViewNode: this.visitDropView.bind(this),
63
65
  };
64
66
  visitNode = (node) => {
65
67
  this.nodeStack.push(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';
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
@@ -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,8 @@ 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';
65
67
  export declare class DefaultQueryCompiler extends OperationNodeVisitor implements QueryCompiler {
66
68
  #private;
67
69
  protected get numParameters(): number;
@@ -130,6 +132,8 @@ export declare class DefaultQueryCompiler extends OperationNodeVisitor implement
130
132
  protected visitAddConstraint(node: AddConstraintNode): void;
131
133
  protected visitDropConstraint(node: DropConstraintNode): void;
132
134
  protected visitUnion(node: UnionNode): void;
135
+ protected visitCreateView(node: CreateViewNode): void;
136
+ protected visitDropView(node: DropViewNode): void;
133
137
  protected append(str: string): void;
134
138
  protected appendValue(parameter: unknown): void;
135
139
  protected getLeftIdentifierWrapper(): string;