kysely 0.20.1 → 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/dist/cjs/dialect/postgres/postgres-dialect-config.d.ts +5 -12
- package/dist/cjs/dialect/postgres/postgres-driver.js +16 -11
- 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/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/identifier-node.d.ts +2 -2
- package/dist/cjs/operation-node/identifier-node.js +2 -2
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +6 -4
- package/dist/cjs/operation-node/operation-node-transformer.js +23 -13
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +6 -4
- package/dist/cjs/operation-node/operation-node-visitor.js +1 -0
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- 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/table-node.d.ts +2 -3
- package/dist/cjs/operation-node/table-node.js +3 -4
- 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-compiler/default-query-compiler.d.ts +2 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +6 -3
- package/dist/cjs/schema/alter-table-builder.d.ts +6 -6
- package/dist/cjs/schema/column-definition-builder.d.ts +6 -6
- 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/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/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/identifier-node.d.ts +2 -2
- package/dist/esm/operation-node/identifier-node.js +2 -2
- package/dist/esm/operation-node/operation-node-transformer.d.ts +6 -4
- package/dist/esm/operation-node/operation-node-transformer.js +23 -13
- package/dist/esm/operation-node/operation-node-visitor.d.ts +6 -4
- package/dist/esm/operation-node/operation-node-visitor.js +1 -0
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- 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/table-node.d.ts +2 -3
- package/dist/esm/operation-node/table-node.js +3 -4
- 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-compiler/default-query-compiler.d.ts +2 -0
- package/dist/esm/query-compiler/default-query-compiler.js +6 -3
- package/dist/esm/schema/alter-table-builder.d.ts +6 -6
- package/dist/esm/schema/column-definition-builder.d.ts +6 -6
- package/package.json +2 -1
|
@@ -1,14 +1,4 @@
|
|
|
1
1
|
import { DatabaseConnection } from '../../driver/database-connection.js';
|
|
2
|
-
export declare type PostgresCursorConstructor = new <T>(sql: string, parameters: readonly unknown[]) => PostgresCursor<T>;
|
|
3
|
-
export declare type PostgresCursor<T> = {
|
|
4
|
-
state: 'initialized' | 'idle' | 'submitted' | 'busy';
|
|
5
|
-
read: (rowsCount: number) => Promise<T[]>;
|
|
6
|
-
} | {
|
|
7
|
-
state: 'done';
|
|
8
|
-
} | {
|
|
9
|
-
state: 'error';
|
|
10
|
-
_error: Error;
|
|
11
|
-
};
|
|
12
2
|
/**
|
|
13
3
|
* Config for the PostgreSQL dialect.
|
|
14
4
|
*/
|
|
@@ -56,13 +46,16 @@ export interface PostgresPoolClient {
|
|
|
56
46
|
query<R>(cursor: PostgresCursor<R>): PostgresCursor<R>;
|
|
57
47
|
release(): void;
|
|
58
48
|
}
|
|
49
|
+
export interface PostgresCursor<T> {
|
|
50
|
+
read(rowsCount: number): Promise<T[]>;
|
|
51
|
+
close(): Promise<void>;
|
|
52
|
+
}
|
|
53
|
+
export declare type PostgresCursorConstructor = new <T>(sql: string, parameters: unknown[]) => PostgresCursor<T>;
|
|
59
54
|
export interface PostgresQueryResult<R> {
|
|
60
55
|
command: 'UPDATE' | 'DELETE' | 'INSERT' | 'SELECT';
|
|
61
56
|
rowCount: number;
|
|
62
57
|
rows: R[];
|
|
63
58
|
}
|
|
64
|
-
export interface PostgresStreamOptions {
|
|
65
|
-
}
|
|
66
59
|
export interface PostgresStream<T> {
|
|
67
60
|
[Symbol.asyncIterator](): AsyncIterableIterator<T>;
|
|
68
61
|
}
|
|
@@ -90,18 +90,23 @@ class PostgresConnection {
|
|
|
90
90
|
if (!this.#options.cursor) {
|
|
91
91
|
throw new Error("'cursor' is not present in your postgres dialect config. It's required to make streaming work in postgres.");
|
|
92
92
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
93
|
+
if (!Number.isInteger(chunkSize) || chunkSize <= 0) {
|
|
94
|
+
throw new Error('chunkSize must be a positive integer');
|
|
95
|
+
}
|
|
96
|
+
const cursor = this.#client.query(new this.#options.cursor(compiledQuery.sql, compiledQuery.parameters.slice()));
|
|
97
|
+
try {
|
|
98
|
+
while (true) {
|
|
99
|
+
const rows = await cursor.read(chunkSize);
|
|
100
|
+
if (rows.length === 0) {
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
yield {
|
|
104
|
+
rows,
|
|
105
|
+
};
|
|
100
106
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
};
|
|
107
|
+
}
|
|
108
|
+
finally {
|
|
109
|
+
await cursor.close();
|
|
105
110
|
}
|
|
106
111
|
}
|
|
107
112
|
[PRIVATE_RELEASE_METHOD]() {
|
|
@@ -1,10 +1,10 @@
|
|
|
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
|
import { ValueListNode } from './value-list-node.js';
|
|
4
4
|
export declare type CreateTypeNodeParams = Omit<Partial<CreateTypeNode>, 'kind'>;
|
|
5
5
|
export interface CreateTypeNode extends OperationNode {
|
|
6
6
|
readonly kind: 'CreateTypeNode';
|
|
7
|
-
readonly name:
|
|
7
|
+
readonly name: SchemableIdentifierNode;
|
|
8
8
|
readonly enum?: ValueListNode;
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CreateTypeNode = 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
|
const value_list_node_js_1 = require("./value-list-node.js");
|
|
7
7
|
const value_node_js_1 = require("./value-node.js");
|
|
8
8
|
/**
|
|
@@ -15,7 +15,7 @@ exports.CreateTypeNode = (0, object_utils_js_1.freeze)({
|
|
|
15
15
|
create(name) {
|
|
16
16
|
return (0, object_utils_js_1.freeze)({
|
|
17
17
|
kind: 'CreateTypeNode',
|
|
18
|
-
name:
|
|
18
|
+
name: schemable_identifier_node_js_1.SchemableIdentifierNode.create(name),
|
|
19
19
|
});
|
|
20
20
|
},
|
|
21
21
|
cloneWithEnum(createType, values) {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { ColumnNode } from './column-node.js';
|
|
2
|
-
import { IdentifierNode } from './identifier-node.js';
|
|
3
2
|
import { OperationNode } from './operation-node.js';
|
|
4
3
|
import { RawNode } from './raw-node.js';
|
|
4
|
+
import { SchemableIdentifierNode } from './schemable-identifier-node.js';
|
|
5
5
|
import { SelectQueryNode } from './select-query-node.js';
|
|
6
6
|
export declare type CreateViewNodeParams = Omit<Partial<CreateViewNode>, 'kind' | 'name'>;
|
|
7
7
|
export interface CreateViewNode extends OperationNode {
|
|
8
8
|
readonly kind: 'CreateViewNode';
|
|
9
|
-
readonly name:
|
|
9
|
+
readonly name: SchemableIdentifierNode;
|
|
10
10
|
readonly temporary?: boolean;
|
|
11
11
|
readonly materialized?: boolean;
|
|
12
12
|
readonly orReplace?: boolean;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CreateViewNode = 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,7 +13,7 @@ exports.CreateViewNode = (0, object_utils_js_1.freeze)({
|
|
|
13
13
|
create(name) {
|
|
14
14
|
return (0, object_utils_js_1.freeze)({
|
|
15
15
|
kind: 'CreateViewNode',
|
|
16
|
-
name:
|
|
16
|
+
name: schemable_identifier_node_js_1.SchemableIdentifierNode.create(name),
|
|
17
17
|
});
|
|
18
18
|
},
|
|
19
19
|
cloneWith(createView, params) {
|
|
@@ -1,10 +1,10 @@
|
|
|
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
|
import { TableNode } from './table-node.js';
|
|
4
4
|
export declare type DropIndexNodeProps = Omit<DropIndexNode, 'kind' | 'name'>;
|
|
5
5
|
export interface DropIndexNode extends OperationNode {
|
|
6
6
|
readonly kind: 'DropIndexNode';
|
|
7
|
-
readonly name:
|
|
7
|
+
readonly name: SchemableIdentifierNode;
|
|
8
8
|
readonly table?: TableNode;
|
|
9
9
|
readonly ifExists?: boolean;
|
|
10
10
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DropIndexNode = 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,7 +13,7 @@ exports.DropIndexNode = (0, object_utils_js_1.freeze)({
|
|
|
13
13
|
create(name, params) {
|
|
14
14
|
return (0, object_utils_js_1.freeze)({
|
|
15
15
|
kind: 'DropIndexNode',
|
|
16
|
-
name:
|
|
16
|
+
name: schemable_identifier_node_js_1.SchemableIdentifierNode.create(name),
|
|
17
17
|
...params,
|
|
18
18
|
});
|
|
19
19
|
},
|
|
@@ -1,9 +1,9 @@
|
|
|
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 declare type DropTypeNodeParams = Omit<Partial<DropTypeNode>, 'kind' | 'name'>;
|
|
4
4
|
export interface DropTypeNode extends OperationNode {
|
|
5
5
|
readonly kind: 'DropTypeNode';
|
|
6
|
-
readonly name:
|
|
6
|
+
readonly name: SchemableIdentifierNode;
|
|
7
7
|
readonly ifExists?: boolean;
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DropTypeNode = 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,7 +13,7 @@ exports.DropTypeNode = (0, object_utils_js_1.freeze)({
|
|
|
13
13
|
create(name) {
|
|
14
14
|
return (0, object_utils_js_1.freeze)({
|
|
15
15
|
kind: 'DropTypeNode',
|
|
16
|
-
name:
|
|
16
|
+
name: schemable_identifier_node_js_1.SchemableIdentifierNode.create(name),
|
|
17
17
|
});
|
|
18
18
|
},
|
|
19
19
|
cloneWith(dropType, params) {
|
|
@@ -1,9 +1,9 @@
|
|
|
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 declare type DropViewNodeParams = Omit<Partial<DropViewNode>, 'kind' | 'name'>;
|
|
4
4
|
export interface DropViewNode extends OperationNode {
|
|
5
5
|
readonly kind: 'DropViewNode';
|
|
6
|
-
readonly name:
|
|
6
|
+
readonly name: SchemableIdentifierNode;
|
|
7
7
|
readonly ifExists?: boolean;
|
|
8
8
|
readonly materialized?: boolean;
|
|
9
9
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DropViewNode = 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,7 +13,7 @@ exports.DropViewNode = (0, object_utils_js_1.freeze)({
|
|
|
13
13
|
create(name) {
|
|
14
14
|
return (0, object_utils_js_1.freeze)({
|
|
15
15
|
kind: 'DropViewNode',
|
|
16
|
-
name:
|
|
16
|
+
name: schemable_identifier_node_js_1.SchemableIdentifierNode.create(name),
|
|
17
17
|
});
|
|
18
18
|
},
|
|
19
19
|
cloneWith(dropView, params) {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
2
|
export interface IdentifierNode extends OperationNode {
|
|
3
3
|
readonly kind: 'IdentifierNode';
|
|
4
|
-
readonly
|
|
4
|
+
readonly name: string;
|
|
5
5
|
}
|
|
6
6
|
/**
|
|
7
7
|
* @internal
|
|
8
8
|
*/
|
|
9
9
|
export declare const IdentifierNode: Readonly<{
|
|
10
10
|
is(node: OperationNode): node is IdentifierNode;
|
|
11
|
-
create(
|
|
11
|
+
create(name: string): IdentifierNode;
|
|
12
12
|
}>;
|
|
@@ -9,10 +9,10 @@ exports.IdentifierNode = (0, object_utils_js_1.freeze)({
|
|
|
9
9
|
is(node) {
|
|
10
10
|
return node.kind === 'IdentifierNode';
|
|
11
11
|
},
|
|
12
|
-
create(
|
|
12
|
+
create(name) {
|
|
13
13
|
return (0, object_utils_js_1.freeze)({
|
|
14
14
|
kind: 'IdentifierNode',
|
|
15
|
-
|
|
15
|
+
name,
|
|
16
16
|
});
|
|
17
17
|
},
|
|
18
18
|
});
|
|
@@ -69,6 +69,7 @@ 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
71
|
import { ExplainNode } from './explain-node.js';
|
|
72
|
+
import { SchemableIdentifierNode } from './schemable-identifier-node.js';
|
|
72
73
|
/**
|
|
73
74
|
* Transforms an operation node tree into another one.
|
|
74
75
|
*
|
|
@@ -101,9 +102,9 @@ import { ExplainNode } from './explain-node.js';
|
|
|
101
102
|
export declare class OperationNodeTransformer {
|
|
102
103
|
#private;
|
|
103
104
|
protected readonly nodeStack: OperationNode[];
|
|
104
|
-
|
|
105
|
-
protected
|
|
106
|
-
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;
|
|
107
108
|
protected transformSelectQuery(node: SelectQueryNode): SelectQueryNode;
|
|
108
109
|
protected transformSelection(node: SelectionNode): SelectionNode;
|
|
109
110
|
protected transformColumn(node: ColumnNode): ColumnNode;
|
|
@@ -167,11 +168,12 @@ export declare class OperationNodeTransformer {
|
|
|
167
168
|
protected transformSelectModifier(node: SelectModifierNode): SelectModifierNode;
|
|
168
169
|
protected transformCreateType(node: CreateTypeNode): CreateTypeNode;
|
|
169
170
|
protected transformDropType(node: DropTypeNode): DropTypeNode;
|
|
171
|
+
protected transformExplain(node: ExplainNode): ExplainNode;
|
|
172
|
+
protected transformSchemableIdentifier(node: SchemableIdentifierNode): SchemableIdentifierNode;
|
|
170
173
|
protected transformDataType(node: DataTypeNode): DataTypeNode;
|
|
171
174
|
protected transformSelectAll(node: SelectAllNode): SelectAllNode;
|
|
172
175
|
protected transformIdentifier(node: IdentifierNode): IdentifierNode;
|
|
173
176
|
protected transformValue(node: ValueNode): ValueNode;
|
|
174
177
|
protected transformPrimitiveValueList(node: PrimitiveValueListNode): PrimitiveValueListNode;
|
|
175
178
|
protected transformOperator(node: OperatorNode): OperatorNode;
|
|
176
|
-
protected transformExplain(node: ExplainNode): ExplainNode;
|
|
177
179
|
}
|
|
@@ -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),
|
|
@@ -106,20 +107,23 @@ class OperationNodeTransformer {
|
|
|
106
107
|
DropTypeNode: this.transformDropType.bind(this),
|
|
107
108
|
ExplainNode: this.transformExplain.bind(this),
|
|
108
109
|
});
|
|
109
|
-
transformNode
|
|
110
|
+
transformNode(node) {
|
|
110
111
|
if (!node) {
|
|
111
|
-
return
|
|
112
|
+
return node;
|
|
112
113
|
}
|
|
113
114
|
this.nodeStack.push(node);
|
|
114
|
-
const out = this
|
|
115
|
+
const out = this.transformNodeImpl(node);
|
|
115
116
|
this.nodeStack.pop();
|
|
116
117
|
return (0, object_utils_js_1.freeze)(out);
|
|
117
|
-
}
|
|
118
|
+
}
|
|
119
|
+
transformNodeImpl(node) {
|
|
120
|
+
return this.#transformers[node.kind](node);
|
|
121
|
+
}
|
|
118
122
|
transformNodeList(list) {
|
|
119
123
|
if (!list) {
|
|
120
124
|
return list;
|
|
121
125
|
}
|
|
122
|
-
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)));
|
|
123
127
|
}
|
|
124
128
|
transformSelectQuery(node) {
|
|
125
129
|
return (0, require_all_props_js_1.requireAllProps)({
|
|
@@ -163,7 +167,6 @@ class OperationNodeTransformer {
|
|
|
163
167
|
transformTable(node) {
|
|
164
168
|
return (0, require_all_props_js_1.requireAllProps)({
|
|
165
169
|
kind: 'TableNode',
|
|
166
|
-
schema: this.transformNode(node.schema),
|
|
167
170
|
table: this.transformNode(node.table),
|
|
168
171
|
});
|
|
169
172
|
}
|
|
@@ -627,6 +630,20 @@ class OperationNodeTransformer {
|
|
|
627
630
|
ifExists: node.ifExists,
|
|
628
631
|
});
|
|
629
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
|
+
}
|
|
630
647
|
transformDataType(node) {
|
|
631
648
|
// An Object.freezed leaf node. No need to clone.
|
|
632
649
|
return node;
|
|
@@ -651,12 +668,5 @@ class OperationNodeTransformer {
|
|
|
651
668
|
// An Object.freezed leaf node. No need to clone.
|
|
652
669
|
return node;
|
|
653
670
|
}
|
|
654
|
-
transformExplain(node) {
|
|
655
|
-
return (0, require_all_props_js_1.requireAllProps)({
|
|
656
|
-
kind: 'ExplainNode',
|
|
657
|
-
format: node.format,
|
|
658
|
-
options: this.transformNode(node.options),
|
|
659
|
-
});
|
|
660
|
-
}
|
|
661
671
|
}
|
|
662
672
|
exports.OperationNodeTransformer = OperationNodeTransformer;
|
|
@@ -69,6 +69,7 @@ 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
71
|
import { ExplainNode } from './explain-node.js';
|
|
72
|
+
import { SchemableIdentifierNode } from './schemable-identifier-node.js';
|
|
72
73
|
export declare abstract class OperationNodeVisitor {
|
|
73
74
|
#private;
|
|
74
75
|
protected readonly nodeStack: OperationNode[];
|
|
@@ -129,10 +130,11 @@ export declare abstract class OperationNodeVisitor {
|
|
|
129
130
|
protected abstract visitForeignKeyConstraint(node: ForeignKeyConstraintNode): void;
|
|
130
131
|
protected abstract visitUnion(node: UnionNode): void;
|
|
131
132
|
protected abstract visitDataType(node: DataTypeNode): void;
|
|
132
|
-
protected abstract visitSelectAll(
|
|
133
|
-
protected abstract visitIdentifier(
|
|
134
|
-
protected abstract
|
|
135
|
-
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;
|
|
136
138
|
protected abstract visitOperator(node: OperatorNode): void;
|
|
137
139
|
protected abstract visitCreateView(node: CreateViewNode): void;
|
|
138
140
|
protected abstract visitDropView(node: DropViewNode): void;
|
|
@@ -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),
|
|
@@ -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' | 'ExplainNode';
|
|
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
|
}
|
|
@@ -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
|
+
});
|
|
@@ -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
|
});
|
|
@@ -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
|
}
|