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.
- package/README.md +15 -13
- package/dist/cjs/driver/runtime-driver.js +3 -4
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/operation-node/column-definition-node.d.ts +8 -6
- package/dist/cjs/operation-node/column-definition-node.js +4 -4
- package/dist/cjs/operation-node/create-schema-node.d.ts +1 -2
- package/dist/cjs/operation-node/create-table-node.d.ts +2 -3
- package/dist/cjs/operation-node/create-table-node.js +2 -2
- package/dist/cjs/operation-node/create-view-node.d.ts +22 -0
- package/dist/cjs/operation-node/create-view-node.js +25 -0
- package/dist/cjs/operation-node/default-value-node.d.ts +14 -0
- package/dist/cjs/operation-node/default-value-node.js +18 -0
- package/dist/cjs/operation-node/drop-index-node.d.ts +1 -2
- package/dist/cjs/operation-node/drop-schema-node.d.ts +2 -3
- package/dist/cjs/operation-node/drop-schema-node.js +3 -3
- package/dist/cjs/operation-node/drop-table-node.d.ts +2 -3
- package/dist/cjs/operation-node/drop-table-node.js +2 -2
- package/dist/cjs/operation-node/drop-view-node.d.ts +17 -0
- package/dist/cjs/operation-node/drop-view-node.js +25 -0
- package/dist/cjs/operation-node/generated-always-as-node.d.ts +16 -0
- package/dist/cjs/operation-node/generated-always-as-node.js +25 -0
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +8 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +47 -11
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +8 -0
- package/dist/cjs/operation-node/operation-node-visitor.js +7 -2
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/operator-node.d.ts +1 -1
- package/dist/cjs/operation-node/operator-node.js +5 -0
- package/dist/cjs/operation-node/raw-node.d.ts +1 -1
- package/dist/cjs/operation-node/select-query-node.d.ts +1 -1
- package/dist/cjs/operation-node/select-query-node.js +1 -1
- package/dist/cjs/plugin/immediate-value.ts/immediate-value-plugin.d.ts +17 -0
- package/dist/cjs/plugin/immediate-value.ts/immediate-value-plugin.js +22 -0
- package/dist/cjs/plugin/immediate-value.ts/immediate-value-transformer.d.ts +13 -0
- package/dist/cjs/plugin/immediate-value.ts/immediate-value-transformer.js +21 -0
- package/dist/cjs/plugin/with-schema/with-schema-transformer.d.ts +4 -0
- package/dist/cjs/plugin/with-schema/with-schema-transformer.js +6 -0
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +8 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +59 -11
- package/dist/cjs/query-compiler/query-compiler.d.ts +3 -1
- package/dist/cjs/raw-builder/raw-builder.d.ts +1 -1
- package/dist/cjs/schema/alter-table-builder.d.ts +6 -2
- package/dist/cjs/schema/alter-table-builder.js +28 -4
- package/dist/cjs/schema/column-definition-builder.d.ts +43 -2
- package/dist/cjs/schema/column-definition-builder.js +23 -6
- package/dist/cjs/schema/create-schema-builder.js +1 -1
- package/dist/cjs/schema/create-table-builder.d.ts +7 -8
- package/dist/cjs/schema/create-table-builder.js +8 -9
- package/dist/cjs/schema/create-view-builder.d.ts +24 -0
- package/dist/cjs/schema/create-view-builder.js +73 -0
- package/dist/cjs/schema/drop-index-builder.js +1 -1
- package/dist/cjs/schema/drop-schema-builder.js +3 -1
- package/dist/cjs/schema/drop-table-builder.js +3 -1
- package/dist/cjs/schema/drop-view-builder.d.ts +20 -0
- package/dist/cjs/schema/drop-view-builder.js +39 -0
- package/dist/cjs/schema/schema.d.ts +30 -3
- package/dist/cjs/schema/schema.js +44 -3
- package/dist/cjs/util/performance-now.d.ts +1 -0
- package/dist/cjs/util/performance-now.js +13 -0
- package/dist/esm/driver/runtime-driver.js +3 -4
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/operation-node/column-definition-node.d.ts +8 -6
- package/dist/esm/operation-node/column-definition-node.js +4 -4
- package/dist/esm/operation-node/create-schema-node.d.ts +1 -2
- package/dist/esm/operation-node/create-table-node.d.ts +2 -3
- package/dist/esm/operation-node/create-table-node.js +2 -2
- package/dist/esm/operation-node/create-view-node.d.ts +22 -0
- package/dist/esm/operation-node/create-view-node.js +22 -0
- package/dist/esm/operation-node/default-value-node.d.ts +14 -0
- package/dist/esm/operation-node/default-value-node.js +15 -0
- package/dist/esm/operation-node/drop-index-node.d.ts +1 -2
- package/dist/esm/operation-node/drop-schema-node.d.ts +2 -3
- package/dist/esm/operation-node/drop-schema-node.js +3 -3
- package/dist/esm/operation-node/drop-table-node.d.ts +2 -3
- package/dist/esm/operation-node/drop-table-node.js +2 -2
- package/dist/esm/operation-node/drop-view-node.d.ts +17 -0
- package/dist/esm/operation-node/drop-view-node.js +22 -0
- package/dist/esm/operation-node/generated-always-as-node.d.ts +16 -0
- package/dist/esm/operation-node/generated-always-as-node.js +22 -0
- package/dist/esm/operation-node/operation-node-transformer.d.ts +8 -0
- package/dist/esm/operation-node/operation-node-transformer.js +47 -11
- package/dist/esm/operation-node/operation-node-visitor.d.ts +8 -0
- package/dist/esm/operation-node/operation-node-visitor.js +7 -2
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/operator-node.d.ts +1 -1
- package/dist/esm/operation-node/operator-node.js +5 -0
- package/dist/esm/operation-node/raw-node.d.ts +1 -1
- package/dist/esm/operation-node/select-query-node.d.ts +1 -1
- package/dist/esm/operation-node/select-query-node.js +1 -1
- package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.d.ts +17 -0
- package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.js +18 -0
- package/dist/esm/plugin/immediate-value.ts/immediate-value-transformer.d.ts +13 -0
- package/dist/esm/plugin/immediate-value.ts/immediate-value-transformer.js +17 -0
- package/dist/esm/plugin/with-schema/with-schema-transformer.d.ts +4 -0
- package/dist/esm/plugin/with-schema/with-schema-transformer.js +6 -0
- package/dist/esm/query-compiler/default-query-compiler.d.ts +8 -0
- package/dist/esm/query-compiler/default-query-compiler.js +59 -11
- package/dist/esm/query-compiler/query-compiler.d.ts +3 -1
- package/dist/esm/raw-builder/raw-builder.d.ts +1 -1
- package/dist/esm/schema/alter-table-builder.d.ts +6 -2
- package/dist/esm/schema/alter-table-builder.js +28 -4
- package/dist/esm/schema/column-definition-builder.d.ts +43 -2
- package/dist/esm/schema/column-definition-builder.js +23 -6
- package/dist/esm/schema/create-schema-builder.js +1 -1
- package/dist/esm/schema/create-table-builder.d.ts +7 -8
- package/dist/esm/schema/create-table-builder.js +8 -9
- package/dist/esm/schema/create-view-builder.d.ts +24 -0
- package/dist/esm/schema/create-view-builder.js +69 -0
- package/dist/esm/schema/drop-index-builder.js +1 -1
- package/dist/esm/schema/drop-schema-builder.js +3 -1
- package/dist/esm/schema/drop-table-builder.js +3 -1
- package/dist/esm/schema/drop-view-builder.d.ts +20 -0
- package/dist/esm/schema/drop-view-builder.js +35 -0
- package/dist/esm/schema/schema.d.ts +30 -3
- package/dist/esm/schema/schema.js +44 -3
- package/dist/esm/util/performance-now.d.ts +1 -0
- package/dist/esm/util/performance-now.js +9 -0
- 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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
17
|
+
cloneWith(dropSchema, params) {
|
|
18
18
|
return freeze({
|
|
19
|
-
...
|
|
20
|
-
|
|
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
|
|
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
|
-
|
|
15
|
+
cloneWith(dropIndex: DropTableNode, params: DropTablexNodeParams): DropTableNode;
|
|
17
16
|
}>;
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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';
|
|
@@ -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
|
|
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
|
|
22
|
+
readonly distinct?: boolean;
|
|
23
23
|
readonly joins?: ReadonlyArray<JoinNode>;
|
|
24
24
|
readonly groupBy?: GroupByNode;
|
|
25
25
|
readonly orderBy?: OrderByNode;
|
|
@@ -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;
|