rawsql-ts 0.11.21-beta → 0.11.22-beta
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/esm/index.min.js +12 -12
- package/dist/esm/index.min.js.map +3 -3
- package/dist/esm/src/transformers/CTEDependencyAnalyzer.d.ts +34 -5
- package/dist/esm/src/transformers/CTEDependencyAnalyzer.js +89 -5
- package/dist/esm/src/transformers/CTEDependencyAnalyzer.js.map +1 -1
- package/dist/esm/src/transformers/CTEQueryDecomposer.js +25 -6
- package/dist/esm/src/transformers/CTEQueryDecomposer.js.map +1 -1
- package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
- package/dist/index.min.js +12 -12
- package/dist/index.min.js.map +3 -3
- package/dist/src/transformers/CTEDependencyAnalyzer.d.ts +34 -5
- package/dist/src/transformers/CTEDependencyAnalyzer.js +89 -5
- package/dist/src/transformers/CTEDependencyAnalyzer.js.map +1 -1
- package/dist/src/transformers/CTEQueryDecomposer.js +25 -6
- package/dist/src/transformers/CTEQueryDecomposer.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1,23 +1,28 @@
|
|
|
1
1
|
import { CommonTable } from "../models/Clause";
|
|
2
2
|
import { SimpleSelectQuery } from "../models/SimpleSelectQuery";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Node type for distinguishing between CTE and main query nodes
|
|
5
|
+
*/
|
|
6
|
+
export type NodeType = 'CTE' | 'ROOT';
|
|
7
|
+
/**
|
|
8
|
+
* Interface representing a dependency relationship between nodes
|
|
5
9
|
*/
|
|
6
10
|
export interface CTEEdge {
|
|
7
11
|
from: string;
|
|
8
12
|
to: string;
|
|
9
13
|
}
|
|
10
14
|
/**
|
|
11
|
-
* Interface representing a
|
|
15
|
+
* Interface representing a node in the dependency graph (either CTE or main query)
|
|
12
16
|
*/
|
|
13
17
|
export interface CTENode {
|
|
14
18
|
name: string;
|
|
15
|
-
|
|
19
|
+
type: NodeType;
|
|
20
|
+
cte: CommonTable | null;
|
|
16
21
|
dependencies: string[];
|
|
17
22
|
dependents: string[];
|
|
18
23
|
}
|
|
19
24
|
/**
|
|
20
|
-
* Interface representing the complete CTE dependency graph
|
|
25
|
+
* Interface representing the complete CTE dependency graph including main query
|
|
21
26
|
*/
|
|
22
27
|
export interface CTEDependencyGraph {
|
|
23
28
|
nodes: CTENode[];
|
|
@@ -30,6 +35,7 @@ export interface CTEDependencyGraph {
|
|
|
30
35
|
*/
|
|
31
36
|
export declare class CTEDependencyAnalyzer {
|
|
32
37
|
private static readonly ERROR_MESSAGES;
|
|
38
|
+
private static readonly MAIN_QUERY_NAME;
|
|
33
39
|
private readonly sourceCollector;
|
|
34
40
|
private readonly cteCollector;
|
|
35
41
|
private dependencyGraph;
|
|
@@ -53,6 +59,22 @@ export declare class CTEDependencyAnalyzer {
|
|
|
53
59
|
* @returns Array of CTE names that depend on this CTE
|
|
54
60
|
*/
|
|
55
61
|
getDependents(cteName: string): string[];
|
|
62
|
+
/**
|
|
63
|
+
* Gets the list of CTEs that are directly referenced by the main query
|
|
64
|
+
* @returns Array of CTE names referenced by the main query
|
|
65
|
+
*/
|
|
66
|
+
getMainQueryDependencies(): string[];
|
|
67
|
+
/**
|
|
68
|
+
* Gets nodes by type (CTE or ROOT)
|
|
69
|
+
* @param nodeType The type of nodes to retrieve
|
|
70
|
+
* @returns Array of nodes of the specified type
|
|
71
|
+
*/
|
|
72
|
+
getNodesByType(nodeType: NodeType): CTENode[];
|
|
73
|
+
/**
|
|
74
|
+
* Gets the main query node
|
|
75
|
+
* @returns The main query node or undefined if not found
|
|
76
|
+
*/
|
|
77
|
+
getMainQueryNode(): CTENode | undefined;
|
|
56
78
|
/**
|
|
57
79
|
* Checks if there are any circular dependencies in the CTE graph
|
|
58
80
|
* @returns true if circular dependencies exist, false otherwise
|
|
@@ -65,8 +87,9 @@ export declare class CTEDependencyAnalyzer {
|
|
|
65
87
|
*/
|
|
66
88
|
getExecutionOrder(): string[];
|
|
67
89
|
/**
|
|
68
|
-
* Builds the dependency graph from the given CTEs
|
|
90
|
+
* Builds the dependency graph from the given CTEs and main query
|
|
69
91
|
* @param ctes Array of CommonTable objects
|
|
92
|
+
* @param mainQuery The main query that may reference CTEs
|
|
70
93
|
* @returns The constructed dependency graph
|
|
71
94
|
*/
|
|
72
95
|
private buildDependencyGraph;
|
|
@@ -86,6 +109,12 @@ export declare class CTEDependencyAnalyzer {
|
|
|
86
109
|
* @returns The CTENode if found, undefined otherwise
|
|
87
110
|
*/
|
|
88
111
|
private findNodeByName;
|
|
112
|
+
/**
|
|
113
|
+
* Gets the main query without the WITH clause for analyzing main query dependencies
|
|
114
|
+
* @param query The complete query with WITH clause
|
|
115
|
+
* @returns A query without WITH clause, or null if no main query exists
|
|
116
|
+
*/
|
|
117
|
+
private getMainQueryWithoutCTE;
|
|
89
118
|
/**
|
|
90
119
|
* Extracts the name from a CommonTable
|
|
91
120
|
* @param cte The CommonTable object
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CTEDependencyAnalyzer = void 0;
|
|
4
|
+
const SimpleSelectQuery_1 = require("../models/SimpleSelectQuery");
|
|
4
5
|
const CTECollector_1 = require("./CTECollector");
|
|
5
6
|
const TableSourceCollector_1 = require("./TableSourceCollector");
|
|
6
7
|
/**
|
|
@@ -23,7 +24,7 @@ class CTEDependencyAnalyzer {
|
|
|
23
24
|
analyzeDependencies(query) {
|
|
24
25
|
const ctes = this.cteCollector.collect(query);
|
|
25
26
|
this.buildCTEMap(ctes);
|
|
26
|
-
this.dependencyGraph = this.buildDependencyGraph(ctes);
|
|
27
|
+
this.dependencyGraph = this.buildDependencyGraph(ctes, query);
|
|
27
28
|
return this.dependencyGraph;
|
|
28
29
|
}
|
|
29
30
|
/**
|
|
@@ -46,6 +47,32 @@ class CTEDependencyAnalyzer {
|
|
|
46
47
|
const node = this.findNodeByName(cteName);
|
|
47
48
|
return node ? [...node.dependents] : [];
|
|
48
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Gets the list of CTEs that are directly referenced by the main query
|
|
52
|
+
* @returns Array of CTE names referenced by the main query
|
|
53
|
+
*/
|
|
54
|
+
getMainQueryDependencies() {
|
|
55
|
+
this.ensureAnalyzed();
|
|
56
|
+
const mainQueryNode = this.findNodeByName(CTEDependencyAnalyzer.MAIN_QUERY_NAME);
|
|
57
|
+
return mainQueryNode ? [...mainQueryNode.dependencies] : [];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Gets nodes by type (CTE or ROOT)
|
|
61
|
+
* @param nodeType The type of nodes to retrieve
|
|
62
|
+
* @returns Array of nodes of the specified type
|
|
63
|
+
*/
|
|
64
|
+
getNodesByType(nodeType) {
|
|
65
|
+
this.ensureAnalyzed();
|
|
66
|
+
return this.dependencyGraph.nodes.filter(n => n.type === nodeType);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Gets the main query node
|
|
70
|
+
* @returns The main query node or undefined if not found
|
|
71
|
+
*/
|
|
72
|
+
getMainQueryNode() {
|
|
73
|
+
this.ensureAnalyzed();
|
|
74
|
+
return this.findNodeByName(CTEDependencyAnalyzer.MAIN_QUERY_NAME);
|
|
75
|
+
}
|
|
49
76
|
/**
|
|
50
77
|
* Checks if there are any circular dependencies in the CTE graph
|
|
51
78
|
* @returns true if circular dependencies exist, false otherwise
|
|
@@ -102,21 +129,24 @@ class CTEDependencyAnalyzer {
|
|
|
102
129
|
return result;
|
|
103
130
|
}
|
|
104
131
|
/**
|
|
105
|
-
* Builds the dependency graph from the given CTEs
|
|
132
|
+
* Builds the dependency graph from the given CTEs and main query
|
|
106
133
|
* @param ctes Array of CommonTable objects
|
|
134
|
+
* @param mainQuery The main query that may reference CTEs
|
|
107
135
|
* @returns The constructed dependency graph
|
|
108
136
|
*/
|
|
109
|
-
buildDependencyGraph(ctes) {
|
|
137
|
+
buildDependencyGraph(ctes, mainQuery) {
|
|
110
138
|
const nodes = [];
|
|
111
139
|
const edges = [];
|
|
112
140
|
const dependencyMap = new Map();
|
|
113
141
|
const dependentMap = new Map();
|
|
114
|
-
// Initialize maps for all CTEs
|
|
142
|
+
// Initialize maps for all CTEs and main query
|
|
115
143
|
for (const cte of ctes) {
|
|
116
144
|
const name = CTEDependencyAnalyzer.getCTEName(cte);
|
|
117
145
|
dependencyMap.set(name, new Set());
|
|
118
146
|
dependentMap.set(name, new Set());
|
|
119
147
|
}
|
|
148
|
+
dependencyMap.set(CTEDependencyAnalyzer.MAIN_QUERY_NAME, new Set());
|
|
149
|
+
dependentMap.set(CTEDependencyAnalyzer.MAIN_QUERY_NAME, new Set());
|
|
120
150
|
// Analyze dependencies for each CTE
|
|
121
151
|
for (const cte of ctes) {
|
|
122
152
|
const cteName = CTEDependencyAnalyzer.getCTEName(cte);
|
|
@@ -135,16 +165,42 @@ class CTEDependencyAnalyzer {
|
|
|
135
165
|
}
|
|
136
166
|
}
|
|
137
167
|
}
|
|
138
|
-
//
|
|
168
|
+
// Analyze main query references to CTEs (excluding WITH clause)
|
|
169
|
+
const mainQueryWithoutCTE = this.getMainQueryWithoutCTE(mainQuery);
|
|
170
|
+
if (mainQueryWithoutCTE) {
|
|
171
|
+
const mainQueryReferences = this.sourceCollector.collect(mainQueryWithoutCTE);
|
|
172
|
+
for (const referencedTable of mainQueryReferences) {
|
|
173
|
+
const referencedName = referencedTable.table.name;
|
|
174
|
+
// If main query references a CTE, create dependency edge
|
|
175
|
+
if (this.cteMap.has(referencedName)) {
|
|
176
|
+
dependencyMap.get(CTEDependencyAnalyzer.MAIN_QUERY_NAME).add(referencedName);
|
|
177
|
+
dependentMap.get(referencedName).add(CTEDependencyAnalyzer.MAIN_QUERY_NAME);
|
|
178
|
+
edges.push({
|
|
179
|
+
from: CTEDependencyAnalyzer.MAIN_QUERY_NAME,
|
|
180
|
+
to: referencedName
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
// Create CTE nodes
|
|
139
186
|
for (const cte of ctes) {
|
|
140
187
|
const name = CTEDependencyAnalyzer.getCTEName(cte);
|
|
141
188
|
nodes.push({
|
|
142
189
|
name,
|
|
190
|
+
type: 'CTE',
|
|
143
191
|
cte,
|
|
144
192
|
dependencies: Array.from(dependencyMap.get(name) || new Set()),
|
|
145
193
|
dependents: Array.from(dependentMap.get(name) || new Set())
|
|
146
194
|
});
|
|
147
195
|
}
|
|
196
|
+
// Create main query node
|
|
197
|
+
nodes.push({
|
|
198
|
+
name: CTEDependencyAnalyzer.MAIN_QUERY_NAME,
|
|
199
|
+
type: 'ROOT',
|
|
200
|
+
cte: null,
|
|
201
|
+
dependencies: Array.from(dependencyMap.get(CTEDependencyAnalyzer.MAIN_QUERY_NAME) || new Set()),
|
|
202
|
+
dependents: Array.from(dependentMap.get(CTEDependencyAnalyzer.MAIN_QUERY_NAME) || new Set())
|
|
203
|
+
});
|
|
148
204
|
return { nodes, edges };
|
|
149
205
|
}
|
|
150
206
|
/**
|
|
@@ -176,6 +232,33 @@ class CTEDependencyAnalyzer {
|
|
|
176
232
|
var _a;
|
|
177
233
|
return (_a = this.dependencyGraph) === null || _a === void 0 ? void 0 : _a.nodes.find(n => n.name === cteName);
|
|
178
234
|
}
|
|
235
|
+
/**
|
|
236
|
+
* Gets the main query without the WITH clause for analyzing main query dependencies
|
|
237
|
+
* @param query The complete query with WITH clause
|
|
238
|
+
* @returns A query without WITH clause, or null if no main query exists
|
|
239
|
+
*/
|
|
240
|
+
getMainQueryWithoutCTE(query) {
|
|
241
|
+
if (!query.withClause) {
|
|
242
|
+
// No WITH clause, return the query as-is
|
|
243
|
+
return query;
|
|
244
|
+
}
|
|
245
|
+
// Create a copy of the query without the WITH clause
|
|
246
|
+
const mainQueryCopy = new SimpleSelectQuery_1.SimpleSelectQuery({
|
|
247
|
+
selectClause: query.selectClause,
|
|
248
|
+
fromClause: query.fromClause,
|
|
249
|
+
whereClause: query.whereClause,
|
|
250
|
+
groupByClause: query.groupByClause,
|
|
251
|
+
havingClause: query.havingClause,
|
|
252
|
+
orderByClause: query.orderByClause,
|
|
253
|
+
limitClause: query.limitClause,
|
|
254
|
+
offsetClause: query.offsetClause,
|
|
255
|
+
fetchClause: query.fetchClause,
|
|
256
|
+
forClause: query.forClause,
|
|
257
|
+
windowClause: query.windowClause,
|
|
258
|
+
// Intentionally skip withClause (defaults to null)
|
|
259
|
+
});
|
|
260
|
+
return mainQueryCopy;
|
|
261
|
+
}
|
|
179
262
|
/**
|
|
180
263
|
* Extracts the name from a CommonTable
|
|
181
264
|
* @param cte The CommonTable object
|
|
@@ -190,4 +273,5 @@ CTEDependencyAnalyzer.ERROR_MESSAGES = {
|
|
|
190
273
|
NOT_ANALYZED: "Must call analyzeDependencies first",
|
|
191
274
|
CIRCULAR_REFERENCE: "Circular reference detected in CTE"
|
|
192
275
|
};
|
|
276
|
+
CTEDependencyAnalyzer.MAIN_QUERY_NAME = 'MAIN_QUERY';
|
|
193
277
|
//# sourceMappingURL=CTEDependencyAnalyzer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CTEDependencyAnalyzer.js","sourceRoot":"","sources":["../../../src/transformers/CTEDependencyAnalyzer.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"CTEDependencyAnalyzer.js","sourceRoot":"","sources":["../../../src/transformers/CTEDependencyAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -154,6 +154,10 @@ class CTEQueryDecomposer {
|
|
|
154
154
|
processCTENodes(query, nodes, recursiveCTEs) {
|
|
155
155
|
const result = [];
|
|
156
156
|
for (const node of nodes) {
|
|
157
|
+
// Skip ROOT nodes (main query) as they are not CTEs
|
|
158
|
+
if (node.type === 'ROOT') {
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
157
161
|
const isRecursive = recursiveCTEs.includes(node.name);
|
|
158
162
|
if (isRecursive) {
|
|
159
163
|
result.push(this.createRecursiveCTE(node, query));
|
|
@@ -169,12 +173,14 @@ class CTEQueryDecomposer {
|
|
|
169
173
|
*/
|
|
170
174
|
createRecursiveCTE(node, query) {
|
|
171
175
|
const formattedQuery = this.formatter.format(query).formattedSql;
|
|
172
|
-
|
|
176
|
+
// Filter out MAIN_QUERY from dependents for DecomposedCTE result
|
|
177
|
+
const cteDependents = node.dependents.filter(dep => dep !== 'MAIN_QUERY');
|
|
178
|
+
const finalQuery = this.addCommentsToQuery(formattedQuery, node.name, node.dependencies, node.dependents, true);
|
|
173
179
|
return {
|
|
174
180
|
name: node.name,
|
|
175
181
|
query: finalQuery,
|
|
176
|
-
dependencies: [],
|
|
177
|
-
dependents:
|
|
182
|
+
dependencies: [...node.dependencies],
|
|
183
|
+
dependents: cteDependents,
|
|
178
184
|
isRecursive: true
|
|
179
185
|
};
|
|
180
186
|
}
|
|
@@ -184,11 +190,13 @@ class CTEQueryDecomposer {
|
|
|
184
190
|
createStandardCTE(node, allNodes) {
|
|
185
191
|
const query = this.buildExecutableQuery(node, allNodes);
|
|
186
192
|
const finalQuery = this.addCommentsToQuery(query, node.name, node.dependencies, node.dependents, false);
|
|
193
|
+
// Filter out MAIN_QUERY from dependents for DecomposedCTE result
|
|
194
|
+
const cteDependents = node.dependents.filter(dep => dep !== 'MAIN_QUERY');
|
|
187
195
|
return {
|
|
188
196
|
name: node.name,
|
|
189
197
|
query: finalQuery,
|
|
190
198
|
dependencies: [...node.dependencies],
|
|
191
|
-
dependents:
|
|
199
|
+
dependents: cteDependents,
|
|
192
200
|
isRecursive: false
|
|
193
201
|
};
|
|
194
202
|
}
|
|
@@ -196,6 +204,10 @@ class CTEQueryDecomposer {
|
|
|
196
204
|
* Builds an executable query for a CTE by including its dependencies
|
|
197
205
|
*/
|
|
198
206
|
buildExecutableQuery(targetNode, allNodes) {
|
|
207
|
+
// ROOT nodes don't have a cte property
|
|
208
|
+
if (targetNode.type === 'ROOT' || !targetNode.cte) {
|
|
209
|
+
throw new Error(`Cannot build executable query for ROOT node: ${targetNode.name}`);
|
|
210
|
+
}
|
|
199
211
|
const requiredCTEs = this.collectRequiredCTEs(targetNode, allNodes);
|
|
200
212
|
if (requiredCTEs.length === 0) {
|
|
201
213
|
// No dependencies, just return the CTE's query
|
|
@@ -229,7 +241,8 @@ class CTEQueryDecomposer {
|
|
|
229
241
|
collectDependencies(depName);
|
|
230
242
|
}
|
|
231
243
|
// Then add this node (ensuring dependencies come first)
|
|
232
|
-
|
|
244
|
+
// Skip ROOT nodes and the target node itself
|
|
245
|
+
if (nodeName !== targetNode.name && node.type !== 'ROOT') {
|
|
233
246
|
result.push(node);
|
|
234
247
|
}
|
|
235
248
|
};
|
|
@@ -246,6 +259,10 @@ class CTEQueryDecomposer {
|
|
|
246
259
|
if (requiredCTEs.length === 0)
|
|
247
260
|
return "";
|
|
248
261
|
const cteDefinitions = requiredCTEs.map(node => {
|
|
262
|
+
// Skip ROOT nodes as they don't have CTE definitions
|
|
263
|
+
if (node.type === 'ROOT' || !node.cte) {
|
|
264
|
+
throw new Error(`Cannot include ROOT node in WITH clause: ${node.name}`);
|
|
265
|
+
}
|
|
249
266
|
const cteName = node.name;
|
|
250
267
|
const cteQuery = this.formatter.format(node.cte.query).formattedSql;
|
|
251
268
|
return `${cteName} as (${cteQuery})`;
|
|
@@ -328,7 +345,9 @@ class CTEQueryDecomposer {
|
|
|
328
345
|
}
|
|
329
346
|
const depsText = dependencies.length > 0 ? dependencies.join(", ") : NONE;
|
|
330
347
|
comments.push(`${DEPENDENCIES} ${depsText}`);
|
|
331
|
-
|
|
348
|
+
// Filter out MAIN_QUERY from dependents for display purposes
|
|
349
|
+
const cteDependents = dependents.filter(dep => dep !== 'MAIN_QUERY');
|
|
350
|
+
const dependentsText = cteDependents.length > 0 ? cteDependents.join(", ") : NONE;
|
|
332
351
|
comments.push(`${DEPENDENTS} ${dependentsText}`);
|
|
333
352
|
return comments;
|
|
334
353
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CTEQueryDecomposer.js","sourceRoot":"","sources":["../../../src/transformers/CTEQueryDecomposer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"CTEQueryDecomposer.js","sourceRoot":"","sources":["../../../src/transformers/CTEQueryDecomposer.ts"],"names":[],"mappings":"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"}
|