rawsql-ts 0.11.21-beta → 0.11.23-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.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +24 -24
- package/dist/esm/index.min.js.map +3 -3
- package/dist/esm/src/index.d.ts +2 -0
- package/dist/esm/src/index.js +1 -0
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/parsers/SelectQueryParser.d.ts +20 -0
- package/dist/esm/src/parsers/SelectQueryParser.js +77 -0
- package/dist/esm/src/parsers/SelectQueryParser.js.map +1 -1
- 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/src/transformers/SchemaCollector.d.ts +18 -0
- package/dist/esm/src/transformers/SchemaCollector.js +57 -4
- package/dist/esm/src/transformers/SchemaCollector.js.map +1 -1
- package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
- package/dist/index.min.js +23 -23
- package/dist/index.min.js.map +3 -3
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/parsers/SelectQueryParser.d.ts +20 -0
- package/dist/src/parsers/SelectQueryParser.js +77 -0
- package/dist/src/parsers/SelectQueryParser.js.map +1 -1
- 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/src/transformers/SchemaCollector.d.ts +18 -0
- package/dist/src/transformers/SchemaCollector.js +57 -4
- package/dist/src/transformers/SchemaCollector.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/esm/src/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from './parsers/SelectQueryParser';
|
|
2
|
+
export { ParseAnalysisResult } from './parsers/SelectQueryParser';
|
|
2
3
|
export * from './parsers/InsertQueryParser';
|
|
3
4
|
export * from './parsers/WithClauseParser';
|
|
4
5
|
export * from './models/BinarySelectQuery';
|
|
@@ -35,6 +36,7 @@ export { unifyJsonMapping } from './transformers/JsonMappingUnifier';
|
|
|
35
36
|
export * from './transformers/UpstreamSelectQueryFinder';
|
|
36
37
|
export * from './transformers/TypeTransformationPostProcessor';
|
|
37
38
|
export * from './transformers/SchemaCollector';
|
|
39
|
+
export { TableSchema, SchemaAnalysisResult } from './transformers/SchemaCollector';
|
|
38
40
|
export * from './transformers/QueryFlowDiagramGenerator';
|
|
39
41
|
export * from './transformers/SqlParamInjector';
|
|
40
42
|
export * from './transformers/SqlSortInjector';
|
package/dist/esm/src/index.js
CHANGED
|
@@ -36,6 +36,7 @@ export { unifyJsonMapping } from './transformers/JsonMappingUnifier';
|
|
|
36
36
|
export * from './transformers/UpstreamSelectQueryFinder';
|
|
37
37
|
export * from './transformers/TypeTransformationPostProcessor';
|
|
38
38
|
export * from './transformers/SchemaCollector';
|
|
39
|
+
export { TableSchema } from './transformers/SchemaCollector';
|
|
39
40
|
export * from './transformers/QueryFlowDiagramGenerator';
|
|
40
41
|
export * from './transformers/SqlParamInjector';
|
|
41
42
|
export * from './transformers/SqlSortInjector';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,cAAc,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAE3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAEhC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yCAAyC,CAAC;AACxD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yCAAyC,CAAC;AACxD,cAAc,6BAA6B,CAAC,CAAC,0BAA0B;AACvE,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,OAAO,EAEH,yBAAyB,EACzB,0BAA0B,EAK7B,MAAM,uCAAuC,CAAC;AAC/C,OAAO;AACH,6DAA6D;AAC7D,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACjB,MAAM,mCAAmC,CAAC;AAE3C,qEAAqE;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,cAAc,0CAA0C,CAAC;AACzD,cAAc,gDAAgD,CAAC;AAE/D,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAwB,MAAM,gCAAgC,CAAC;AACnF,cAAc,0CAA0C,CAAC;AACzD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AAEnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AAGrC,oEAAoE"}
|
|
@@ -1,7 +1,27 @@
|
|
|
1
1
|
import { Lexeme } from "../models/Lexeme";
|
|
2
2
|
import { SelectQuery } from "../models/SelectQuery";
|
|
3
|
+
export interface ParseAnalysisResult {
|
|
4
|
+
success: boolean;
|
|
5
|
+
query?: SelectQuery;
|
|
6
|
+
error?: string;
|
|
7
|
+
errorPosition?: number;
|
|
8
|
+
remainingTokens?: string[];
|
|
9
|
+
}
|
|
3
10
|
export declare class SelectQueryParser {
|
|
4
11
|
static parse(query: string): SelectQuery;
|
|
12
|
+
/**
|
|
13
|
+
* Analyzes SQL string for parsing without throwing errors.
|
|
14
|
+
* Returns a result object containing the parsed query on success,
|
|
15
|
+
* or error information if parsing fails.
|
|
16
|
+
*
|
|
17
|
+
* @param query SQL string to analyze
|
|
18
|
+
* @returns Analysis result containing query, error information, and success status
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Calculate character position from token index by finding token in original query
|
|
22
|
+
*/
|
|
23
|
+
private static calculateCharacterPosition;
|
|
24
|
+
static analyze(query: string): ParseAnalysisResult;
|
|
5
25
|
/**
|
|
6
26
|
* Asynchronously parse SQL string to AST.
|
|
7
27
|
* This method wraps the synchronous parse logic in a Promise for future extensibility.
|
|
@@ -35,6 +35,83 @@ export class SelectQueryParser {
|
|
|
35
35
|
}
|
|
36
36
|
return result.value;
|
|
37
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Analyzes SQL string for parsing without throwing errors.
|
|
40
|
+
* Returns a result object containing the parsed query on success,
|
|
41
|
+
* or error information if parsing fails.
|
|
42
|
+
*
|
|
43
|
+
* @param query SQL string to analyze
|
|
44
|
+
* @returns Analysis result containing query, error information, and success status
|
|
45
|
+
*/
|
|
46
|
+
/**
|
|
47
|
+
* Calculate character position from token index by finding token in original query
|
|
48
|
+
*/
|
|
49
|
+
static calculateCharacterPosition(query, lexemes, tokenIndex) {
|
|
50
|
+
var _a;
|
|
51
|
+
if (tokenIndex >= lexemes.length) {
|
|
52
|
+
return query.length;
|
|
53
|
+
}
|
|
54
|
+
// If lexeme has position information, use it
|
|
55
|
+
const lexeme = lexemes[tokenIndex];
|
|
56
|
+
if (((_a = lexeme.position) === null || _a === void 0 ? void 0 : _a.startPosition) !== undefined) {
|
|
57
|
+
return lexeme.position.startPosition;
|
|
58
|
+
}
|
|
59
|
+
// Fallback: search for token in original query
|
|
60
|
+
// Build search pattern from tokens up to the target
|
|
61
|
+
let searchStart = 0;
|
|
62
|
+
for (let i = 0; i < tokenIndex; i++) {
|
|
63
|
+
const tokenValue = lexemes[i].value;
|
|
64
|
+
const tokenPos = query.indexOf(tokenValue, searchStart);
|
|
65
|
+
if (tokenPos !== -1) {
|
|
66
|
+
searchStart = tokenPos + tokenValue.length;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
const targetToken = lexemes[tokenIndex].value;
|
|
70
|
+
const tokenPos = query.indexOf(targetToken, searchStart);
|
|
71
|
+
return tokenPos !== -1 ? tokenPos : searchStart;
|
|
72
|
+
}
|
|
73
|
+
static analyze(query) {
|
|
74
|
+
let lexemes = [];
|
|
75
|
+
try {
|
|
76
|
+
const tokenizer = new SqlTokenizer(query);
|
|
77
|
+
lexemes = tokenizer.readLexmes();
|
|
78
|
+
// Parse
|
|
79
|
+
const result = this.parseFromLexeme(lexemes, 0);
|
|
80
|
+
// Check for remaining tokens
|
|
81
|
+
if (result.newIndex < lexemes.length) {
|
|
82
|
+
const remainingTokens = lexemes.slice(result.newIndex).map(lex => lex.value);
|
|
83
|
+
const errorLexeme = lexemes[result.newIndex];
|
|
84
|
+
const errorPosition = this.calculateCharacterPosition(query, lexemes, result.newIndex);
|
|
85
|
+
return {
|
|
86
|
+
success: false,
|
|
87
|
+
query: result.value,
|
|
88
|
+
error: `Syntax error: Unexpected token "${errorLexeme.value}" at character position ${errorPosition}. The SELECT query is complete but there are additional tokens.`,
|
|
89
|
+
errorPosition: errorPosition,
|
|
90
|
+
remainingTokens: remainingTokens
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
success: true,
|
|
95
|
+
query: result.value
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
// Extract position information from error message if available
|
|
100
|
+
let errorPosition;
|
|
101
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
102
|
+
// Try to extract token index from error message and convert to character position
|
|
103
|
+
const positionMatch = errorMessage.match(/position (\d+)/);
|
|
104
|
+
if (positionMatch) {
|
|
105
|
+
const tokenIndex = parseInt(positionMatch[1], 10);
|
|
106
|
+
errorPosition = this.calculateCharacterPosition(query, lexemes, tokenIndex);
|
|
107
|
+
}
|
|
108
|
+
return {
|
|
109
|
+
success: false,
|
|
110
|
+
error: errorMessage,
|
|
111
|
+
errorPosition: errorPosition
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
}
|
|
38
115
|
/**
|
|
39
116
|
* Asynchronously parse SQL string to AST.
|
|
40
117
|
* This method wraps the synchronous parse logic in a Promise for future extensibility.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectQueryParser.js","sourceRoot":"","sources":["../../../../src/parsers/SelectQueryParser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SelectQueryParser.js","sourceRoot":"","sources":["../../../../src/parsers/SelectQueryParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,3 +1,4 @@
|
|
|
1
|
+
import { SimpleSelectQuery } from "../models/SimpleSelectQuery";
|
|
1
2
|
import { CTECollector } from "./CTECollector";
|
|
2
3
|
import { TableSourceCollector } from "./TableSourceCollector";
|
|
3
4
|
/**
|
|
@@ -20,7 +21,7 @@ export class CTEDependencyAnalyzer {
|
|
|
20
21
|
analyzeDependencies(query) {
|
|
21
22
|
const ctes = this.cteCollector.collect(query);
|
|
22
23
|
this.buildCTEMap(ctes);
|
|
23
|
-
this.dependencyGraph = this.buildDependencyGraph(ctes);
|
|
24
|
+
this.dependencyGraph = this.buildDependencyGraph(ctes, query);
|
|
24
25
|
return this.dependencyGraph;
|
|
25
26
|
}
|
|
26
27
|
/**
|
|
@@ -43,6 +44,32 @@ export class CTEDependencyAnalyzer {
|
|
|
43
44
|
const node = this.findNodeByName(cteName);
|
|
44
45
|
return node ? [...node.dependents] : [];
|
|
45
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Gets the list of CTEs that are directly referenced by the main query
|
|
49
|
+
* @returns Array of CTE names referenced by the main query
|
|
50
|
+
*/
|
|
51
|
+
getMainQueryDependencies() {
|
|
52
|
+
this.ensureAnalyzed();
|
|
53
|
+
const mainQueryNode = this.findNodeByName(CTEDependencyAnalyzer.MAIN_QUERY_NAME);
|
|
54
|
+
return mainQueryNode ? [...mainQueryNode.dependencies] : [];
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Gets nodes by type (CTE or ROOT)
|
|
58
|
+
* @param nodeType The type of nodes to retrieve
|
|
59
|
+
* @returns Array of nodes of the specified type
|
|
60
|
+
*/
|
|
61
|
+
getNodesByType(nodeType) {
|
|
62
|
+
this.ensureAnalyzed();
|
|
63
|
+
return this.dependencyGraph.nodes.filter(n => n.type === nodeType);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Gets the main query node
|
|
67
|
+
* @returns The main query node or undefined if not found
|
|
68
|
+
*/
|
|
69
|
+
getMainQueryNode() {
|
|
70
|
+
this.ensureAnalyzed();
|
|
71
|
+
return this.findNodeByName(CTEDependencyAnalyzer.MAIN_QUERY_NAME);
|
|
72
|
+
}
|
|
46
73
|
/**
|
|
47
74
|
* Checks if there are any circular dependencies in the CTE graph
|
|
48
75
|
* @returns true if circular dependencies exist, false otherwise
|
|
@@ -99,21 +126,24 @@ export class CTEDependencyAnalyzer {
|
|
|
99
126
|
return result;
|
|
100
127
|
}
|
|
101
128
|
/**
|
|
102
|
-
* Builds the dependency graph from the given CTEs
|
|
129
|
+
* Builds the dependency graph from the given CTEs and main query
|
|
103
130
|
* @param ctes Array of CommonTable objects
|
|
131
|
+
* @param mainQuery The main query that may reference CTEs
|
|
104
132
|
* @returns The constructed dependency graph
|
|
105
133
|
*/
|
|
106
|
-
buildDependencyGraph(ctes) {
|
|
134
|
+
buildDependencyGraph(ctes, mainQuery) {
|
|
107
135
|
const nodes = [];
|
|
108
136
|
const edges = [];
|
|
109
137
|
const dependencyMap = new Map();
|
|
110
138
|
const dependentMap = new Map();
|
|
111
|
-
// Initialize maps for all CTEs
|
|
139
|
+
// Initialize maps for all CTEs and main query
|
|
112
140
|
for (const cte of ctes) {
|
|
113
141
|
const name = CTEDependencyAnalyzer.getCTEName(cte);
|
|
114
142
|
dependencyMap.set(name, new Set());
|
|
115
143
|
dependentMap.set(name, new Set());
|
|
116
144
|
}
|
|
145
|
+
dependencyMap.set(CTEDependencyAnalyzer.MAIN_QUERY_NAME, new Set());
|
|
146
|
+
dependentMap.set(CTEDependencyAnalyzer.MAIN_QUERY_NAME, new Set());
|
|
117
147
|
// Analyze dependencies for each CTE
|
|
118
148
|
for (const cte of ctes) {
|
|
119
149
|
const cteName = CTEDependencyAnalyzer.getCTEName(cte);
|
|
@@ -132,16 +162,42 @@ export class CTEDependencyAnalyzer {
|
|
|
132
162
|
}
|
|
133
163
|
}
|
|
134
164
|
}
|
|
135
|
-
//
|
|
165
|
+
// Analyze main query references to CTEs (excluding WITH clause)
|
|
166
|
+
const mainQueryWithoutCTE = this.getMainQueryWithoutCTE(mainQuery);
|
|
167
|
+
if (mainQueryWithoutCTE) {
|
|
168
|
+
const mainQueryReferences = this.sourceCollector.collect(mainQueryWithoutCTE);
|
|
169
|
+
for (const referencedTable of mainQueryReferences) {
|
|
170
|
+
const referencedName = referencedTable.table.name;
|
|
171
|
+
// If main query references a CTE, create dependency edge
|
|
172
|
+
if (this.cteMap.has(referencedName)) {
|
|
173
|
+
dependencyMap.get(CTEDependencyAnalyzer.MAIN_QUERY_NAME).add(referencedName);
|
|
174
|
+
dependentMap.get(referencedName).add(CTEDependencyAnalyzer.MAIN_QUERY_NAME);
|
|
175
|
+
edges.push({
|
|
176
|
+
from: CTEDependencyAnalyzer.MAIN_QUERY_NAME,
|
|
177
|
+
to: referencedName
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
// Create CTE nodes
|
|
136
183
|
for (const cte of ctes) {
|
|
137
184
|
const name = CTEDependencyAnalyzer.getCTEName(cte);
|
|
138
185
|
nodes.push({
|
|
139
186
|
name,
|
|
187
|
+
type: 'CTE',
|
|
140
188
|
cte,
|
|
141
189
|
dependencies: Array.from(dependencyMap.get(name) || new Set()),
|
|
142
190
|
dependents: Array.from(dependentMap.get(name) || new Set())
|
|
143
191
|
});
|
|
144
192
|
}
|
|
193
|
+
// Create main query node
|
|
194
|
+
nodes.push({
|
|
195
|
+
name: CTEDependencyAnalyzer.MAIN_QUERY_NAME,
|
|
196
|
+
type: 'ROOT',
|
|
197
|
+
cte: null,
|
|
198
|
+
dependencies: Array.from(dependencyMap.get(CTEDependencyAnalyzer.MAIN_QUERY_NAME) || new Set()),
|
|
199
|
+
dependents: Array.from(dependentMap.get(CTEDependencyAnalyzer.MAIN_QUERY_NAME) || new Set())
|
|
200
|
+
});
|
|
145
201
|
return { nodes, edges };
|
|
146
202
|
}
|
|
147
203
|
/**
|
|
@@ -173,6 +229,33 @@ export class CTEDependencyAnalyzer {
|
|
|
173
229
|
var _a;
|
|
174
230
|
return (_a = this.dependencyGraph) === null || _a === void 0 ? void 0 : _a.nodes.find(n => n.name === cteName);
|
|
175
231
|
}
|
|
232
|
+
/**
|
|
233
|
+
* Gets the main query without the WITH clause for analyzing main query dependencies
|
|
234
|
+
* @param query The complete query with WITH clause
|
|
235
|
+
* @returns A query without WITH clause, or null if no main query exists
|
|
236
|
+
*/
|
|
237
|
+
getMainQueryWithoutCTE(query) {
|
|
238
|
+
if (!query.withClause) {
|
|
239
|
+
// No WITH clause, return the query as-is
|
|
240
|
+
return query;
|
|
241
|
+
}
|
|
242
|
+
// Create a copy of the query without the WITH clause
|
|
243
|
+
const mainQueryCopy = new SimpleSelectQuery({
|
|
244
|
+
selectClause: query.selectClause,
|
|
245
|
+
fromClause: query.fromClause,
|
|
246
|
+
whereClause: query.whereClause,
|
|
247
|
+
groupByClause: query.groupByClause,
|
|
248
|
+
havingClause: query.havingClause,
|
|
249
|
+
orderByClause: query.orderByClause,
|
|
250
|
+
limitClause: query.limitClause,
|
|
251
|
+
offsetClause: query.offsetClause,
|
|
252
|
+
fetchClause: query.fetchClause,
|
|
253
|
+
forClause: query.forClause,
|
|
254
|
+
windowClause: query.windowClause,
|
|
255
|
+
// Intentionally skip withClause (defaults to null)
|
|
256
|
+
});
|
|
257
|
+
return mainQueryCopy;
|
|
258
|
+
}
|
|
176
259
|
/**
|
|
177
260
|
* Extracts the name from a CommonTable
|
|
178
261
|
* @param cte The CommonTable object
|
|
@@ -186,4 +269,5 @@ CTEDependencyAnalyzer.ERROR_MESSAGES = {
|
|
|
186
269
|
NOT_ANALYZED: "Must call analyzeDependencies first",
|
|
187
270
|
CIRCULAR_REFERENCE: "Circular reference detected in CTE"
|
|
188
271
|
};
|
|
272
|
+
CTEDependencyAnalyzer.MAIN_QUERY_NAME = 'MAIN_QUERY';
|
|
189
273
|
//# 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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"}
|
|
@@ -149,6 +149,10 @@ export class CTEQueryDecomposer {
|
|
|
149
149
|
processCTENodes(query, nodes, recursiveCTEs) {
|
|
150
150
|
const result = [];
|
|
151
151
|
for (const node of nodes) {
|
|
152
|
+
// Skip ROOT nodes (main query) as they are not CTEs
|
|
153
|
+
if (node.type === 'ROOT') {
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
152
156
|
const isRecursive = recursiveCTEs.includes(node.name);
|
|
153
157
|
if (isRecursive) {
|
|
154
158
|
result.push(this.createRecursiveCTE(node, query));
|
|
@@ -164,12 +168,14 @@ export class CTEQueryDecomposer {
|
|
|
164
168
|
*/
|
|
165
169
|
createRecursiveCTE(node, query) {
|
|
166
170
|
const formattedQuery = this.formatter.format(query).formattedSql;
|
|
167
|
-
|
|
171
|
+
// Filter out MAIN_QUERY from dependents for DecomposedCTE result
|
|
172
|
+
const cteDependents = node.dependents.filter(dep => dep !== 'MAIN_QUERY');
|
|
173
|
+
const finalQuery = this.addCommentsToQuery(formattedQuery, node.name, node.dependencies, node.dependents, true);
|
|
168
174
|
return {
|
|
169
175
|
name: node.name,
|
|
170
176
|
query: finalQuery,
|
|
171
|
-
dependencies: [],
|
|
172
|
-
dependents:
|
|
177
|
+
dependencies: [...node.dependencies],
|
|
178
|
+
dependents: cteDependents,
|
|
173
179
|
isRecursive: true
|
|
174
180
|
};
|
|
175
181
|
}
|
|
@@ -179,11 +185,13 @@ export class CTEQueryDecomposer {
|
|
|
179
185
|
createStandardCTE(node, allNodes) {
|
|
180
186
|
const query = this.buildExecutableQuery(node, allNodes);
|
|
181
187
|
const finalQuery = this.addCommentsToQuery(query, node.name, node.dependencies, node.dependents, false);
|
|
188
|
+
// Filter out MAIN_QUERY from dependents for DecomposedCTE result
|
|
189
|
+
const cteDependents = node.dependents.filter(dep => dep !== 'MAIN_QUERY');
|
|
182
190
|
return {
|
|
183
191
|
name: node.name,
|
|
184
192
|
query: finalQuery,
|
|
185
193
|
dependencies: [...node.dependencies],
|
|
186
|
-
dependents:
|
|
194
|
+
dependents: cteDependents,
|
|
187
195
|
isRecursive: false
|
|
188
196
|
};
|
|
189
197
|
}
|
|
@@ -191,6 +199,10 @@ export class CTEQueryDecomposer {
|
|
|
191
199
|
* Builds an executable query for a CTE by including its dependencies
|
|
192
200
|
*/
|
|
193
201
|
buildExecutableQuery(targetNode, allNodes) {
|
|
202
|
+
// ROOT nodes don't have a cte property
|
|
203
|
+
if (targetNode.type === 'ROOT' || !targetNode.cte) {
|
|
204
|
+
throw new Error(`Cannot build executable query for ROOT node: ${targetNode.name}`);
|
|
205
|
+
}
|
|
194
206
|
const requiredCTEs = this.collectRequiredCTEs(targetNode, allNodes);
|
|
195
207
|
if (requiredCTEs.length === 0) {
|
|
196
208
|
// No dependencies, just return the CTE's query
|
|
@@ -224,7 +236,8 @@ export class CTEQueryDecomposer {
|
|
|
224
236
|
collectDependencies(depName);
|
|
225
237
|
}
|
|
226
238
|
// Then add this node (ensuring dependencies come first)
|
|
227
|
-
|
|
239
|
+
// Skip ROOT nodes and the target node itself
|
|
240
|
+
if (nodeName !== targetNode.name && node.type !== 'ROOT') {
|
|
228
241
|
result.push(node);
|
|
229
242
|
}
|
|
230
243
|
};
|
|
@@ -241,6 +254,10 @@ export class CTEQueryDecomposer {
|
|
|
241
254
|
if (requiredCTEs.length === 0)
|
|
242
255
|
return "";
|
|
243
256
|
const cteDefinitions = requiredCTEs.map(node => {
|
|
257
|
+
// Skip ROOT nodes as they don't have CTE definitions
|
|
258
|
+
if (node.type === 'ROOT' || !node.cte) {
|
|
259
|
+
throw new Error(`Cannot include ROOT node in WITH clause: ${node.name}`);
|
|
260
|
+
}
|
|
244
261
|
const cteName = node.name;
|
|
245
262
|
const cteQuery = this.formatter.format(node.cte.query).formattedSql;
|
|
246
263
|
return `${cteName} as (${cteQuery})`;
|
|
@@ -320,7 +337,9 @@ export class CTEQueryDecomposer {
|
|
|
320
337
|
}
|
|
321
338
|
const depsText = dependencies.length > 0 ? dependencies.join(", ") : NONE;
|
|
322
339
|
comments.push(`${DEPENDENCIES} ${depsText}`);
|
|
323
|
-
|
|
340
|
+
// Filter out MAIN_QUERY from dependents for display purposes
|
|
341
|
+
const cteDependents = dependents.filter(dep => dep !== 'MAIN_QUERY');
|
|
342
|
+
const dependentsText = cteDependents.length > 0 ? cteDependents.join(", ") : NONE;
|
|
324
343
|
comments.push(`${DEPENDENTS} ${dependentsText}`);
|
|
325
344
|
return comments;
|
|
326
345
|
}
|
|
@@ -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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"}
|
|
@@ -5,6 +5,12 @@ export declare class TableSchema {
|
|
|
5
5
|
columns: string[];
|
|
6
6
|
constructor(name: string, columns: string[]);
|
|
7
7
|
}
|
|
8
|
+
export interface SchemaAnalysisResult {
|
|
9
|
+
success: boolean;
|
|
10
|
+
schemas: TableSchema[];
|
|
11
|
+
unresolvedColumns: string[];
|
|
12
|
+
error?: string;
|
|
13
|
+
}
|
|
8
14
|
/**
|
|
9
15
|
* A visitor that collects schema information (table names and column names) from a SQL query structure.
|
|
10
16
|
*/
|
|
@@ -16,6 +22,9 @@ export declare class SchemaCollector implements SqlComponentVisitor<void> {
|
|
|
16
22
|
private visitedNodes;
|
|
17
23
|
private commonTables;
|
|
18
24
|
private running;
|
|
25
|
+
private unresolvedColumns;
|
|
26
|
+
private analysisError;
|
|
27
|
+
private isAnalyzeMode;
|
|
19
28
|
constructor(tableColumnResolver?: TableColumnResolver | null, allowWildcardWithoutResolver?: boolean);
|
|
20
29
|
/**
|
|
21
30
|
* Collects schema information (table names and column names) from a SQL query structure.
|
|
@@ -25,6 +34,15 @@ export declare class SchemaCollector implements SqlComponentVisitor<void> {
|
|
|
25
34
|
* @param arg The SQL query structure to analyze.
|
|
26
35
|
*/
|
|
27
36
|
collect(arg: SqlComponent): TableSchema[];
|
|
37
|
+
/**
|
|
38
|
+
* Analyzes schema information from a SQL query structure without throwing errors.
|
|
39
|
+
* Returns a result object containing successfully resolved schemas, unresolved columns,
|
|
40
|
+
* and error information if any issues were encountered.
|
|
41
|
+
*
|
|
42
|
+
* @param arg The SQL query structure to analyze.
|
|
43
|
+
* @returns Analysis result containing schemas, unresolved columns, and success status.
|
|
44
|
+
*/
|
|
45
|
+
analyze(arg: SqlComponent): SchemaAnalysisResult;
|
|
28
46
|
/**
|
|
29
47
|
* Main entry point for the visitor pattern.
|
|
30
48
|
* Implements the shallow visit pattern to distinguish between root and recursive visits.
|