kysely 0.19.12 → 0.21.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.
- package/README.md +1 -1
- package/dist/cjs/dialect/mysql/mysql-introspector.js +2 -0
- package/dist/cjs/dialect/mysql/mysql-query-compiler.d.ts +5 -0
- package/dist/cjs/dialect/mysql/mysql-query-compiler.js +16 -0
- package/dist/cjs/dialect/postgres/postgres-dialect-config.d.ts +5 -12
- package/dist/cjs/dialect/postgres/postgres-driver.js +16 -11
- package/dist/cjs/dialect/postgres/postgres-introspector.js +17 -9
- package/dist/cjs/dialect/postgres/postgres-query-compiler.d.ts +1 -3
- package/dist/cjs/dialect/postgres/postgres-query-compiler.js +3 -8
- package/dist/cjs/dialect/sqlite/sqlite-introspector.js +2 -0
- package/dist/cjs/dialect/sqlite/sqlite-query-compiler.d.ts +3 -0
- package/dist/cjs/dialect/sqlite/sqlite-query-compiler.js +10 -0
- package/dist/cjs/index.d.ts +3 -0
- package/dist/cjs/index.js +3 -0
- package/dist/cjs/operation-node/create-table-node.d.ts +6 -1
- package/dist/cjs/operation-node/create-table-node.js +16 -0
- package/dist/cjs/operation-node/create-type-node.d.ts +2 -2
- package/dist/cjs/operation-node/create-type-node.js +2 -2
- package/dist/cjs/operation-node/create-view-node.d.ts +2 -2
- package/dist/cjs/operation-node/create-view-node.js +2 -2
- package/dist/cjs/operation-node/delete-query-node.d.ts +3 -0
- package/dist/cjs/operation-node/delete-query-node.js +6 -0
- package/dist/cjs/operation-node/drop-index-node.d.ts +2 -2
- package/dist/cjs/operation-node/drop-index-node.js +2 -2
- package/dist/cjs/operation-node/drop-type-node.d.ts +2 -2
- package/dist/cjs/operation-node/drop-type-node.js +2 -2
- package/dist/cjs/operation-node/drop-view-node.d.ts +2 -2
- package/dist/cjs/operation-node/drop-view-node.js +2 -2
- package/dist/cjs/operation-node/explain-node.d.ts +16 -0
- package/dist/cjs/operation-node/explain-node.js +19 -0
- package/dist/cjs/operation-node/identifier-node.d.ts +2 -2
- package/dist/cjs/operation-node/identifier-node.js +2 -2
- package/dist/cjs/operation-node/insert-query-node.d.ts +2 -0
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +7 -3
- package/dist/cjs/operation-node/operation-node-transformer.js +30 -6
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +8 -4
- package/dist/cjs/operation-node/operation-node-visitor.js +2 -0
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/reference-node.d.ts +1 -1
- package/dist/cjs/operation-node/reference-node.js +1 -2
- package/dist/cjs/operation-node/schemable-identifier-node.d.ts +15 -0
- package/dist/cjs/operation-node/schemable-identifier-node.js +26 -0
- package/dist/cjs/operation-node/select-query-node.d.ts +3 -0
- package/dist/cjs/operation-node/select-query-node.js +6 -0
- package/dist/cjs/operation-node/selection-node.d.ts +2 -1
- package/dist/cjs/operation-node/table-node.d.ts +2 -3
- package/dist/cjs/operation-node/table-node.js +3 -4
- package/dist/cjs/operation-node/update-query-node.d.ts +3 -0
- package/dist/cjs/operation-node/update-query-node.js +6 -0
- package/dist/cjs/parser/select-parser.js +2 -1
- package/dist/cjs/plugin/camel-case/camel-case-transformer.js +1 -1
- package/dist/cjs/plugin/with-schema/with-schema-transformer.d.ts +4 -28
- package/dist/cjs/plugin/with-schema/with-schema-transformer.js +72 -78
- package/dist/cjs/query-builder/delete-query-builder.d.ts +19 -1
- package/dist/cjs/query-builder/delete-query-builder.js +24 -0
- package/dist/cjs/query-builder/function-builder.d.ts +3 -3
- package/dist/cjs/query-builder/insert-query-builder.d.ts +20 -2
- package/dist/cjs/query-builder/insert-query-builder.js +26 -0
- package/dist/cjs/query-builder/select-query-builder.d.ts +38 -1
- package/dist/cjs/query-builder/select-query-builder.js +45 -2
- package/dist/cjs/query-builder/update-query-builder.d.ts +20 -1
- package/dist/cjs/query-builder/update-query-builder.js +25 -0
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +8 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +63 -5
- package/dist/cjs/raw-builder/sql.d.ts +96 -96
- package/dist/cjs/raw-builder/sql.js +0 -96
- package/dist/cjs/schema/alter-table-builder.d.ts +6 -6
- package/dist/cjs/schema/column-definition-builder.d.ts +6 -6
- package/dist/cjs/schema/create-table-builder.d.ts +54 -0
- package/dist/cjs/schema/create-table-builder.js +64 -0
- package/dist/cjs/util/explainable.d.ts +5 -0
- package/dist/cjs/util/explainable.js +2 -0
- package/dist/esm/dialect/mysql/mysql-introspector.js +2 -0
- package/dist/esm/dialect/mysql/mysql-query-compiler.d.ts +5 -0
- package/dist/esm/dialect/mysql/mysql-query-compiler.js +16 -0
- package/dist/esm/dialect/postgres/postgres-dialect-config.d.ts +5 -12
- package/dist/esm/dialect/postgres/postgres-driver.js +16 -11
- package/dist/esm/dialect/postgres/postgres-introspector.js +17 -9
- package/dist/esm/dialect/postgres/postgres-query-compiler.d.ts +1 -3
- package/dist/esm/dialect/postgres/postgres-query-compiler.js +3 -8
- package/dist/esm/dialect/sqlite/sqlite-introspector.js +2 -0
- package/dist/esm/dialect/sqlite/sqlite-query-compiler.d.ts +3 -0
- package/dist/esm/dialect/sqlite/sqlite-query-compiler.js +10 -0
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/operation-node/create-table-node.d.ts +6 -1
- package/dist/esm/operation-node/create-table-node.js +16 -0
- package/dist/esm/operation-node/create-type-node.d.ts +2 -2
- package/dist/esm/operation-node/create-type-node.js +2 -2
- package/dist/esm/operation-node/create-view-node.d.ts +2 -2
- package/dist/esm/operation-node/create-view-node.js +2 -2
- package/dist/esm/operation-node/delete-query-node.d.ts +3 -0
- package/dist/esm/operation-node/delete-query-node.js +6 -0
- package/dist/esm/operation-node/drop-index-node.d.ts +2 -2
- package/dist/esm/operation-node/drop-index-node.js +2 -2
- package/dist/esm/operation-node/drop-type-node.d.ts +2 -2
- package/dist/esm/operation-node/drop-type-node.js +2 -2
- package/dist/esm/operation-node/drop-view-node.d.ts +2 -2
- package/dist/esm/operation-node/drop-view-node.js +2 -2
- package/dist/esm/operation-node/explain-node.d.ts +16 -0
- package/dist/esm/operation-node/explain-node.js +17 -0
- package/dist/esm/operation-node/identifier-node.d.ts +2 -2
- package/dist/esm/operation-node/identifier-node.js +2 -2
- package/dist/esm/operation-node/insert-query-node.d.ts +2 -0
- package/dist/esm/operation-node/operation-node-transformer.d.ts +7 -3
- package/dist/esm/operation-node/operation-node-transformer.js +30 -6
- package/dist/esm/operation-node/operation-node-visitor.d.ts +8 -4
- package/dist/esm/operation-node/operation-node-visitor.js +2 -0
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/reference-node.d.ts +1 -1
- package/dist/esm/operation-node/reference-node.js +1 -2
- package/dist/esm/operation-node/schemable-identifier-node.d.ts +15 -0
- package/dist/esm/operation-node/schemable-identifier-node.js +24 -0
- package/dist/esm/operation-node/select-query-node.d.ts +3 -0
- package/dist/esm/operation-node/select-query-node.js +6 -0
- package/dist/esm/operation-node/selection-node.d.ts +2 -1
- package/dist/esm/operation-node/table-node.d.ts +2 -3
- package/dist/esm/operation-node/table-node.js +3 -4
- package/dist/esm/operation-node/update-query-node.d.ts +3 -0
- package/dist/esm/operation-node/update-query-node.js +6 -0
- package/dist/esm/parser/select-parser.js +2 -1
- package/dist/esm/plugin/camel-case/camel-case-transformer.js +1 -1
- package/dist/esm/plugin/with-schema/with-schema-transformer.d.ts +4 -28
- package/dist/esm/plugin/with-schema/with-schema-transformer.js +72 -78
- package/dist/esm/query-builder/delete-query-builder.d.ts +19 -1
- package/dist/esm/query-builder/delete-query-builder.js +24 -0
- package/dist/esm/query-builder/function-builder.d.ts +3 -3
- package/dist/esm/query-builder/insert-query-builder.d.ts +20 -2
- package/dist/esm/query-builder/insert-query-builder.js +26 -0
- package/dist/esm/query-builder/select-query-builder.d.ts +38 -1
- package/dist/esm/query-builder/select-query-builder.js +45 -2
- package/dist/esm/query-builder/update-query-builder.d.ts +20 -1
- package/dist/esm/query-builder/update-query-builder.js +25 -0
- package/dist/esm/query-compiler/default-query-compiler.d.ts +8 -0
- package/dist/esm/query-compiler/default-query-compiler.js +63 -5
- package/dist/esm/raw-builder/sql.d.ts +96 -96
- package/dist/esm/raw-builder/sql.js +0 -96
- package/dist/esm/schema/alter-table-builder.d.ts +6 -6
- package/dist/esm/schema/column-definition-builder.d.ts +6 -6
- package/dist/esm/schema/create-table-builder.d.ts +54 -0
- package/dist/esm/schema/create-table-builder.js +64 -0
- package/dist/esm/util/explainable.d.ts +5 -0
- package/dist/esm/util/explainable.js +2 -0
- package/package.json +4 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ColumnNode } from './column-node.js';
|
|
2
|
+
import { ExplainNode } from './explain-node.js';
|
|
2
3
|
import { OnConflictNode } from './on-conflict-node.js';
|
|
3
4
|
import { OnDuplicateKeyNode } from './on-duplicate-key-node.js';
|
|
4
5
|
import { OperationNode } from './operation-node.js';
|
|
@@ -20,6 +21,7 @@ export interface InsertQueryNode extends OperationNode {
|
|
|
20
21
|
readonly with?: WithNode;
|
|
21
22
|
readonly ignore?: boolean;
|
|
22
23
|
readonly replace?: boolean;
|
|
24
|
+
readonly explain?: ExplainNode;
|
|
23
25
|
}
|
|
24
26
|
/**
|
|
25
27
|
* @internal
|
|
@@ -68,6 +68,8 @@ import { ValuesNode } from './values-node.js';
|
|
|
68
68
|
import { SelectModifierNode } from './select-modifier-node.js';
|
|
69
69
|
import { CreateTypeNode } from './create-type-node.js';
|
|
70
70
|
import { DropTypeNode } from './drop-type-node.js';
|
|
71
|
+
import { ExplainNode } from './explain-node.js';
|
|
72
|
+
import { SchemableIdentifierNode } from './schemable-identifier-node.js';
|
|
71
73
|
/**
|
|
72
74
|
* Transforms an operation node tree into another one.
|
|
73
75
|
*
|
|
@@ -100,9 +102,9 @@ import { DropTypeNode } from './drop-type-node.js';
|
|
|
100
102
|
export declare class OperationNodeTransformer {
|
|
101
103
|
#private;
|
|
102
104
|
protected readonly nodeStack: OperationNode[];
|
|
103
|
-
|
|
104
|
-
protected
|
|
105
|
-
protected transformNodeList<T extends OperationNode
|
|
105
|
+
transformNode<T extends OperationNode | undefined>(node: T): T;
|
|
106
|
+
protected transformNodeImpl<T extends OperationNode>(node: T): T;
|
|
107
|
+
protected transformNodeList<T extends ReadonlyArray<OperationNode> | undefined>(list: T): T;
|
|
106
108
|
protected transformSelectQuery(node: SelectQueryNode): SelectQueryNode;
|
|
107
109
|
protected transformSelection(node: SelectionNode): SelectionNode;
|
|
108
110
|
protected transformColumn(node: ColumnNode): ColumnNode;
|
|
@@ -166,6 +168,8 @@ export declare class OperationNodeTransformer {
|
|
|
166
168
|
protected transformSelectModifier(node: SelectModifierNode): SelectModifierNode;
|
|
167
169
|
protected transformCreateType(node: CreateTypeNode): CreateTypeNode;
|
|
168
170
|
protected transformDropType(node: DropTypeNode): DropTypeNode;
|
|
171
|
+
protected transformExplain(node: ExplainNode): ExplainNode;
|
|
172
|
+
protected transformSchemableIdentifier(node: SchemableIdentifierNode): SchemableIdentifierNode;
|
|
169
173
|
protected transformDataType(node: DataTypeNode): DataTypeNode;
|
|
170
174
|
protected transformSelectAll(node: SelectAllNode): SelectAllNode;
|
|
171
175
|
protected transformIdentifier(node: IdentifierNode): IdentifierNode;
|
|
@@ -38,6 +38,7 @@ class OperationNodeTransformer {
|
|
|
38
38
|
AliasNode: this.transformAlias.bind(this),
|
|
39
39
|
ColumnNode: this.transformColumn.bind(this),
|
|
40
40
|
IdentifierNode: this.transformIdentifier.bind(this),
|
|
41
|
+
SchemableIdentifierNode: this.transformSchemableIdentifier.bind(this),
|
|
41
42
|
RawNode: this.transformRaw.bind(this),
|
|
42
43
|
ReferenceNode: this.transformReference.bind(this),
|
|
43
44
|
SelectQueryNode: this.transformSelectQuery.bind(this),
|
|
@@ -104,21 +105,25 @@ class OperationNodeTransformer {
|
|
|
104
105
|
SelectModifierNode: this.transformSelectModifier.bind(this),
|
|
105
106
|
CreateTypeNode: this.transformCreateType.bind(this),
|
|
106
107
|
DropTypeNode: this.transformDropType.bind(this),
|
|
108
|
+
ExplainNode: this.transformExplain.bind(this),
|
|
107
109
|
});
|
|
108
|
-
transformNode
|
|
110
|
+
transformNode(node) {
|
|
109
111
|
if (!node) {
|
|
110
|
-
return
|
|
112
|
+
return node;
|
|
111
113
|
}
|
|
112
114
|
this.nodeStack.push(node);
|
|
113
|
-
const out = this
|
|
115
|
+
const out = this.transformNodeImpl(node);
|
|
114
116
|
this.nodeStack.pop();
|
|
115
117
|
return (0, object_utils_js_1.freeze)(out);
|
|
116
|
-
}
|
|
118
|
+
}
|
|
119
|
+
transformNodeImpl(node) {
|
|
120
|
+
return this.#transformers[node.kind](node);
|
|
121
|
+
}
|
|
117
122
|
transformNodeList(list) {
|
|
118
123
|
if (!list) {
|
|
119
124
|
return list;
|
|
120
125
|
}
|
|
121
|
-
return (0, object_utils_js_1.freeze)(list.map(this.transformNode));
|
|
126
|
+
return (0, object_utils_js_1.freeze)(list.map((node) => this.transformNode(node)));
|
|
122
127
|
}
|
|
123
128
|
transformSelectQuery(node) {
|
|
124
129
|
return (0, require_all_props_js_1.requireAllProps)({
|
|
@@ -137,6 +142,7 @@ class OperationNodeTransformer {
|
|
|
137
142
|
with: this.transformNode(node.with),
|
|
138
143
|
having: this.transformNode(node.having),
|
|
139
144
|
union: this.transformNodeList(node.union),
|
|
145
|
+
explain: this.transformNode(node.explain),
|
|
140
146
|
});
|
|
141
147
|
}
|
|
142
148
|
transformSelection(node) {
|
|
@@ -161,7 +167,6 @@ class OperationNodeTransformer {
|
|
|
161
167
|
transformTable(node) {
|
|
162
168
|
return (0, require_all_props_js_1.requireAllProps)({
|
|
163
169
|
kind: 'TableNode',
|
|
164
|
-
schema: this.transformNode(node.schema),
|
|
165
170
|
table: this.transformNode(node.table),
|
|
166
171
|
});
|
|
167
172
|
}
|
|
@@ -245,6 +250,7 @@ class OperationNodeTransformer {
|
|
|
245
250
|
with: this.transformNode(node.with),
|
|
246
251
|
ignore: node.ignore,
|
|
247
252
|
replace: node.replace,
|
|
253
|
+
explain: this.transformNode(node.explain),
|
|
248
254
|
});
|
|
249
255
|
}
|
|
250
256
|
transformValues(node) {
|
|
@@ -263,6 +269,7 @@ class OperationNodeTransformer {
|
|
|
263
269
|
with: this.transformNode(node.with),
|
|
264
270
|
orderBy: this.transformNode(node.orderBy),
|
|
265
271
|
limit: this.transformNode(node.limit),
|
|
272
|
+
explain: this.transformNode(node.explain),
|
|
266
273
|
});
|
|
267
274
|
}
|
|
268
275
|
transformReturning(node) {
|
|
@@ -280,6 +287,8 @@ class OperationNodeTransformer {
|
|
|
280
287
|
temporary: node.temporary,
|
|
281
288
|
ifNotExists: node.ifNotExists,
|
|
282
289
|
onCommit: node.onCommit,
|
|
290
|
+
frontModifiers: this.transformNodeList(node.frontModifiers),
|
|
291
|
+
endModifiers: this.transformNodeList(node.endModifiers),
|
|
283
292
|
});
|
|
284
293
|
}
|
|
285
294
|
transformColumnDefinition(node) {
|
|
@@ -346,6 +355,7 @@ class OperationNodeTransformer {
|
|
|
346
355
|
updates: this.transformNodeList(node.updates),
|
|
347
356
|
returning: this.transformNode(node.returning),
|
|
348
357
|
with: this.transformNode(node.with),
|
|
358
|
+
explain: this.transformNode(node.explain),
|
|
349
359
|
});
|
|
350
360
|
}
|
|
351
361
|
transformColumnUpdate(node) {
|
|
@@ -620,6 +630,20 @@ class OperationNodeTransformer {
|
|
|
620
630
|
ifExists: node.ifExists,
|
|
621
631
|
});
|
|
622
632
|
}
|
|
633
|
+
transformExplain(node) {
|
|
634
|
+
return (0, require_all_props_js_1.requireAllProps)({
|
|
635
|
+
kind: 'ExplainNode',
|
|
636
|
+
format: node.format,
|
|
637
|
+
options: this.transformNode(node.options),
|
|
638
|
+
});
|
|
639
|
+
}
|
|
640
|
+
transformSchemableIdentifier(node) {
|
|
641
|
+
return (0, require_all_props_js_1.requireAllProps)({
|
|
642
|
+
kind: 'SchemableIdentifierNode',
|
|
643
|
+
schema: this.transformNode(node.schema),
|
|
644
|
+
identifier: this.transformNode(node.identifier),
|
|
645
|
+
});
|
|
646
|
+
}
|
|
623
647
|
transformDataType(node) {
|
|
624
648
|
// An Object.freezed leaf node. No need to clone.
|
|
625
649
|
return node;
|
|
@@ -68,6 +68,8 @@ import { ValuesNode } from './values-node.js';
|
|
|
68
68
|
import { SelectModifierNode } from './select-modifier-node.js';
|
|
69
69
|
import { CreateTypeNode } from './create-type-node.js';
|
|
70
70
|
import { DropTypeNode } from './drop-type-node.js';
|
|
71
|
+
import { ExplainNode } from './explain-node.js';
|
|
72
|
+
import { SchemableIdentifierNode } from './schemable-identifier-node.js';
|
|
71
73
|
export declare abstract class OperationNodeVisitor {
|
|
72
74
|
#private;
|
|
73
75
|
protected readonly nodeStack: OperationNode[];
|
|
@@ -128,10 +130,11 @@ export declare abstract class OperationNodeVisitor {
|
|
|
128
130
|
protected abstract visitForeignKeyConstraint(node: ForeignKeyConstraintNode): void;
|
|
129
131
|
protected abstract visitUnion(node: UnionNode): void;
|
|
130
132
|
protected abstract visitDataType(node: DataTypeNode): void;
|
|
131
|
-
protected abstract visitSelectAll(
|
|
132
|
-
protected abstract visitIdentifier(
|
|
133
|
-
protected abstract
|
|
134
|
-
protected abstract
|
|
133
|
+
protected abstract visitSelectAll(node: SelectAllNode): void;
|
|
134
|
+
protected abstract visitIdentifier(node: IdentifierNode): void;
|
|
135
|
+
protected abstract visitSchemableIdentifier(node: SchemableIdentifierNode): void;
|
|
136
|
+
protected abstract visitValue(node: ValueNode): void;
|
|
137
|
+
protected abstract visitPrimitiveValueList(node: PrimitiveValueListNode): void;
|
|
135
138
|
protected abstract visitOperator(node: OperatorNode): void;
|
|
136
139
|
protected abstract visitCreateView(node: CreateViewNode): void;
|
|
137
140
|
protected abstract visitDropView(node: DropViewNode): void;
|
|
@@ -142,4 +145,5 @@ export declare abstract class OperationNodeVisitor {
|
|
|
142
145
|
protected abstract visitSelectModifier(node: SelectModifierNode): void;
|
|
143
146
|
protected abstract visitCreateType(node: CreateTypeNode): void;
|
|
144
147
|
protected abstract visitDropType(node: DropTypeNode): void;
|
|
148
|
+
protected abstract visitExplain(node: ExplainNode): void;
|
|
145
149
|
}
|
|
@@ -11,6 +11,7 @@ class OperationNodeVisitor {
|
|
|
11
11
|
AliasNode: this.visitAlias.bind(this),
|
|
12
12
|
ColumnNode: this.visitColumn.bind(this),
|
|
13
13
|
IdentifierNode: this.visitIdentifier.bind(this),
|
|
14
|
+
SchemableIdentifierNode: this.visitSchemableIdentifier.bind(this),
|
|
14
15
|
RawNode: this.visitRaw.bind(this),
|
|
15
16
|
ReferenceNode: this.visitReference.bind(this),
|
|
16
17
|
SelectQueryNode: this.visitSelectQuery.bind(this),
|
|
@@ -77,6 +78,7 @@ class OperationNodeVisitor {
|
|
|
77
78
|
SelectModifierNode: this.visitSelectModifier.bind(this),
|
|
78
79
|
CreateTypeNode: this.visitCreateType.bind(this),
|
|
79
80
|
DropTypeNode: this.visitDropType.bind(this),
|
|
81
|
+
ExplainNode: this.visitExplain.bind(this),
|
|
80
82
|
});
|
|
81
83
|
visitNode = (node) => {
|
|
82
84
|
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' | 'CreateViewNode' | 'DropViewNode' | 'GeneratedNode' | 'DefaultValueNode' | 'OnNode' | 'ValuesNode' | 'CommonTableExpressionNameNode' | 'SelectModifierNode' | 'CreateTypeNode' | 'DropTypeNode';
|
|
1
|
+
export declare type OperationNodeKind = 'IdentifierNode' | 'SchemableIdentifierNode' | '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' | 'GeneratedNode' | 'DefaultValueNode' | 'OnNode' | 'ValuesNode' | 'CommonTableExpressionNameNode' | 'SelectModifierNode' | 'CreateTypeNode' | 'DropTypeNode' | 'ExplainNode';
|
|
2
2
|
export interface OperationNode {
|
|
3
3
|
readonly kind: OperationNodeKind;
|
|
4
4
|
}
|
|
@@ -13,5 +13,5 @@ export interface ReferenceNode extends OperationNode {
|
|
|
13
13
|
export declare const ReferenceNode: Readonly<{
|
|
14
14
|
is(node: OperationNode): node is ReferenceNode;
|
|
15
15
|
create(table: TableNode, column: ColumnNode): ReferenceNode;
|
|
16
|
-
createSelectAll(table:
|
|
16
|
+
createSelectAll(table: TableNode): ReferenceNode;
|
|
17
17
|
}>;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ReferenceNode = void 0;
|
|
4
|
-
const table_node_js_1 = require("./table-node.js");
|
|
5
4
|
const select_all_node_js_1 = require("./select-all-node.js");
|
|
6
5
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
7
6
|
/**
|
|
@@ -21,7 +20,7 @@ exports.ReferenceNode = (0, object_utils_js_1.freeze)({
|
|
|
21
20
|
createSelectAll(table) {
|
|
22
21
|
return (0, object_utils_js_1.freeze)({
|
|
23
22
|
kind: 'ReferenceNode',
|
|
24
|
-
table
|
|
23
|
+
table,
|
|
25
24
|
column: select_all_node_js_1.SelectAllNode.create(),
|
|
26
25
|
});
|
|
27
26
|
},
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { IdentifierNode } from './identifier-node.js';
|
|
2
|
+
import { OperationNode } from './operation-node.js';
|
|
3
|
+
export interface SchemableIdentifierNode extends OperationNode {
|
|
4
|
+
readonly kind: 'SchemableIdentifierNode';
|
|
5
|
+
readonly schema?: IdentifierNode;
|
|
6
|
+
readonly identifier: IdentifierNode;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export declare const SchemableIdentifierNode: Readonly<{
|
|
12
|
+
is(node: OperationNode): node is SchemableIdentifierNode;
|
|
13
|
+
create(identifier: string): SchemableIdentifierNode;
|
|
14
|
+
createWithSchema(schema: string, identifier: string): SchemableIdentifierNode;
|
|
15
|
+
}>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SchemableIdentifierNode = void 0;
|
|
4
|
+
const object_utils_js_1 = require("../util/object-utils.js");
|
|
5
|
+
const identifier_node_js_1 = require("./identifier-node.js");
|
|
6
|
+
/**
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
exports.SchemableIdentifierNode = (0, object_utils_js_1.freeze)({
|
|
10
|
+
is(node) {
|
|
11
|
+
return node.kind === 'SchemableIdentifierNode';
|
|
12
|
+
},
|
|
13
|
+
create(identifier) {
|
|
14
|
+
return (0, object_utils_js_1.freeze)({
|
|
15
|
+
kind: 'SchemableIdentifierNode',
|
|
16
|
+
identifier: identifier_node_js_1.IdentifierNode.create(identifier),
|
|
17
|
+
});
|
|
18
|
+
},
|
|
19
|
+
createWithSchema(schema, identifier) {
|
|
20
|
+
return (0, object_utils_js_1.freeze)({
|
|
21
|
+
kind: 'SchemableIdentifierNode',
|
|
22
|
+
schema: identifier_node_js_1.IdentifierNode.create(schema),
|
|
23
|
+
identifier: identifier_node_js_1.IdentifierNode.create(identifier),
|
|
24
|
+
});
|
|
25
|
+
},
|
|
26
|
+
});
|
|
@@ -14,6 +14,7 @@ import { WhereNode } from './where-node.js';
|
|
|
14
14
|
import { WithNode } from './with-node.js';
|
|
15
15
|
import { UnionNode } from './union-node.js';
|
|
16
16
|
import { SelectModifierNode } from './select-modifier-node.js';
|
|
17
|
+
import { ExplainNode } from './explain-node.js';
|
|
17
18
|
export interface SelectQueryNode extends OperationNode {
|
|
18
19
|
readonly kind: 'SelectQueryNode';
|
|
19
20
|
readonly from: FromNode;
|
|
@@ -30,6 +31,7 @@ export interface SelectQueryNode extends OperationNode {
|
|
|
30
31
|
readonly with?: WithNode;
|
|
31
32
|
readonly having?: HavingNode;
|
|
32
33
|
readonly union?: ReadonlyArray<UnionNode>;
|
|
34
|
+
readonly explain?: ExplainNode;
|
|
33
35
|
}
|
|
34
36
|
/**
|
|
35
37
|
* @internal
|
|
@@ -48,4 +50,5 @@ export declare const SelectQueryNode: Readonly<{
|
|
|
48
50
|
cloneWithHaving(selectNode: SelectQueryNode, filter: FilterExpressionNode): SelectQueryNode;
|
|
49
51
|
cloneWithOrHaving(selectNode: SelectQueryNode, filter: FilterExpressionNode): SelectQueryNode;
|
|
50
52
|
cloneWithUnion(selectNode: SelectQueryNode, union: UnionNode): SelectQueryNode;
|
|
53
|
+
cloneWithExplain(selectNode: SelectQueryNode, explain: ExplainNode): SelectQueryNode;
|
|
51
54
|
}>;
|
|
@@ -104,4 +104,10 @@ exports.SelectQueryNode = (0, object_utils_js_1.freeze)({
|
|
|
104
104
|
: (0, object_utils_js_1.freeze)([union]),
|
|
105
105
|
});
|
|
106
106
|
},
|
|
107
|
+
cloneWithExplain(selectNode, explain) {
|
|
108
|
+
return (0, object_utils_js_1.freeze)({
|
|
109
|
+
...selectNode,
|
|
110
|
+
explain,
|
|
111
|
+
});
|
|
112
|
+
},
|
|
107
113
|
});
|
|
@@ -3,6 +3,7 @@ import { ColumnNode } from './column-node.js';
|
|
|
3
3
|
import { OperationNode } from './operation-node.js';
|
|
4
4
|
import { ReferenceNode } from './reference-node.js';
|
|
5
5
|
import { SelectAllNode } from './select-all-node.js';
|
|
6
|
+
import { TableNode } from './table-node.js';
|
|
6
7
|
declare type SelectionNodeChild = ColumnNode | ReferenceNode | AliasNode | SelectAllNode;
|
|
7
8
|
export interface SelectionNode extends OperationNode {
|
|
8
9
|
readonly kind: 'SelectionNode';
|
|
@@ -15,6 +16,6 @@ export declare const SelectionNode: Readonly<{
|
|
|
15
16
|
is(node: OperationNode): node is SelectionNode;
|
|
16
17
|
create(selection: SelectionNodeChild): SelectionNode;
|
|
17
18
|
createSelectAll(): SelectionNode;
|
|
18
|
-
createSelectAllFromTable(table:
|
|
19
|
+
createSelectAllFromTable(table: TableNode): SelectionNode;
|
|
19
20
|
}>;
|
|
20
21
|
export {};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { IdentifierNode } from './identifier-node.js';
|
|
2
1
|
import { OperationNode } from './operation-node.js';
|
|
2
|
+
import { SchemableIdentifierNode } from './schemable-identifier-node.js';
|
|
3
3
|
export interface TableNode extends OperationNode {
|
|
4
4
|
readonly kind: 'TableNode';
|
|
5
|
-
readonly
|
|
6
|
-
readonly table: IdentifierNode;
|
|
5
|
+
readonly table: SchemableIdentifierNode;
|
|
7
6
|
}
|
|
8
7
|
/**
|
|
9
8
|
* @internal
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TableNode = void 0;
|
|
4
4
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
5
|
-
const
|
|
5
|
+
const schemable_identifier_node_js_1 = require("./schemable-identifier-node.js");
|
|
6
6
|
/**
|
|
7
7
|
* @internal
|
|
8
8
|
*/
|
|
@@ -13,14 +13,13 @@ exports.TableNode = (0, object_utils_js_1.freeze)({
|
|
|
13
13
|
create(table) {
|
|
14
14
|
return (0, object_utils_js_1.freeze)({
|
|
15
15
|
kind: 'TableNode',
|
|
16
|
-
table:
|
|
16
|
+
table: schemable_identifier_node_js_1.SchemableIdentifierNode.create(table),
|
|
17
17
|
});
|
|
18
18
|
},
|
|
19
19
|
createWithSchema(schema, table) {
|
|
20
20
|
return (0, object_utils_js_1.freeze)({
|
|
21
21
|
kind: 'TableNode',
|
|
22
|
-
|
|
23
|
-
table: identifier_node_js_1.IdentifierNode.create(table),
|
|
22
|
+
table: schemable_identifier_node_js_1.SchemableIdentifierNode.createWithSchema(schema, table),
|
|
24
23
|
});
|
|
25
24
|
},
|
|
26
25
|
});
|
|
@@ -8,6 +8,7 @@ import { ValueListNode } from './value-list-node.js';
|
|
|
8
8
|
import { WhereNode } from './where-node.js';
|
|
9
9
|
import { WithNode } from './with-node.js';
|
|
10
10
|
import { FromNode } from './from-node.js';
|
|
11
|
+
import { ExplainNode } from './explain-node.js';
|
|
11
12
|
export declare type UpdateValuesNode = ValueListNode | PrimitiveValueListNode;
|
|
12
13
|
export interface UpdateQueryNode extends OperationNode {
|
|
13
14
|
readonly kind: 'UpdateQueryNode';
|
|
@@ -18,6 +19,7 @@ export interface UpdateQueryNode extends OperationNode {
|
|
|
18
19
|
readonly updates?: ReadonlyArray<ColumnUpdateNode>;
|
|
19
20
|
readonly returning?: ReturningNode;
|
|
20
21
|
readonly with?: WithNode;
|
|
22
|
+
readonly explain?: ExplainNode;
|
|
21
23
|
}
|
|
22
24
|
/**
|
|
23
25
|
* @internal
|
|
@@ -27,4 +29,5 @@ export declare const UpdateQueryNode: Readonly<{
|
|
|
27
29
|
create(table: TableExpressionNode, withNode?: WithNode): UpdateQueryNode;
|
|
28
30
|
cloneWithFromItems(updateQuery: UpdateQueryNode, fromItems: ReadonlyArray<TableExpressionNode>): UpdateQueryNode;
|
|
29
31
|
cloneWithUpdates(updateQuery: UpdateQueryNode, updates: ReadonlyArray<ColumnUpdateNode>): UpdateQueryNode;
|
|
32
|
+
cloneWithExplain(updateQuery: UpdateQueryNode, explain: ExplainNode): UpdateQueryNode;
|
|
30
33
|
}>;
|
|
@@ -6,6 +6,7 @@ const selection_node_js_1 = require("../operation-node/selection-node.js");
|
|
|
6
6
|
const reference_parser_js_1 = require("./reference-parser.js");
|
|
7
7
|
const dynamic_reference_builder_js_1 = require("../dynamic/dynamic-reference-builder.js");
|
|
8
8
|
const complex_expression_parser_js_1 = require("./complex-expression-parser.js");
|
|
9
|
+
const table_parser_js_1 = require("./table-parser.js");
|
|
9
10
|
function parseSelectExpressionOrList(selection) {
|
|
10
11
|
if ((0, object_utils_js_1.isReadonlyArray)(selection)) {
|
|
11
12
|
return selection.map((it) => parseSelectExpression(it));
|
|
@@ -40,7 +41,7 @@ function parseSelectAll(table) {
|
|
|
40
41
|
exports.parseSelectAll = parseSelectAll;
|
|
41
42
|
function parseSelectAllArg(table) {
|
|
42
43
|
if ((0, object_utils_js_1.isString)(table)) {
|
|
43
|
-
return selection_node_js_1.SelectionNode.createSelectAllFromTable(table);
|
|
44
|
+
return selection_node_js_1.SelectionNode.createSelectAllFromTable((0, table_parser_js_1.parseTable)(table));
|
|
44
45
|
}
|
|
45
46
|
throw new Error(`invalid value selectAll expression: ${JSON.stringify(table)}`);
|
|
46
47
|
}
|
|
@@ -1,33 +1,9 @@
|
|
|
1
|
-
import { AlterTableNode } from '../../operation-node/alter-table-node.js';
|
|
2
|
-
import { CreateIndexNode } from '../../operation-node/create-index-node.js';
|
|
3
|
-
import { CreateTableNode } from '../../operation-node/create-table-node.js';
|
|
4
|
-
import { CreateTypeNode } from '../../operation-node/create-type-node.js';
|
|
5
|
-
import { CreateViewNode } from '../../operation-node/create-view-node.js';
|
|
6
|
-
import { DeleteQueryNode } from '../../operation-node/delete-query-node.js';
|
|
7
|
-
import { DropIndexNode } from '../../operation-node/drop-index-node.js';
|
|
8
|
-
import { DropTableNode } from '../../operation-node/drop-table-node.js';
|
|
9
|
-
import { DropTypeNode } from '../../operation-node/drop-type-node.js';
|
|
10
|
-
import { DropViewNode } from '../../operation-node/drop-view-node.js';
|
|
11
|
-
import { InsertQueryNode } from '../../operation-node/insert-query-node.js';
|
|
12
1
|
import { OperationNodeTransformer } from '../../operation-node/operation-node-transformer.js';
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import { UpdateQueryNode } from '../../operation-node/update-query-node.js';
|
|
2
|
+
import { OperationNode } from '../../operation-node/operation-node.js';
|
|
3
|
+
import { SchemableIdentifierNode } from '../../operation-node/schemable-identifier-node.js';
|
|
16
4
|
export declare class WithSchemaTransformer extends OperationNodeTransformer {
|
|
17
5
|
#private;
|
|
18
6
|
constructor(schema: string);
|
|
19
|
-
protected
|
|
20
|
-
protected
|
|
21
|
-
protected transformUpdateQuery(node: UpdateQueryNode): UpdateQueryNode;
|
|
22
|
-
protected transformDeleteQuery(node: DeleteQueryNode): DeleteQueryNode;
|
|
23
|
-
protected transformCreateTable(node: CreateTableNode): CreateTableNode;
|
|
24
|
-
protected transformDropTable(node: DropTableNode): DropTableNode;
|
|
25
|
-
protected transformCreateIndex(node: CreateIndexNode): CreateIndexNode;
|
|
26
|
-
protected transformDropIndex(node: DropIndexNode): DropIndexNode;
|
|
27
|
-
protected transformCreateView(node: CreateViewNode): CreateViewNode;
|
|
28
|
-
protected transformDropView(node: DropViewNode): DropViewNode;
|
|
29
|
-
protected transformCreateType(node: CreateTypeNode): CreateTypeNode;
|
|
30
|
-
protected transformDropType(node: DropTypeNode): DropTypeNode;
|
|
31
|
-
protected transformAlterTable(node: AlterTableNode): AlterTableNode;
|
|
32
|
-
protected transformTable(node: TableNode): TableNode;
|
|
7
|
+
protected transformNodeImpl<T extends OperationNode>(node: T): T;
|
|
8
|
+
protected transformSchemableIdentifier(node: SchemableIdentifierNode): SchemableIdentifierNode;
|
|
33
9
|
}
|