rawsql-ts 0.11.11-beta → 0.11.13-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.
Files changed (93) hide show
  1. package/dist/esm/index.js +3 -0
  2. package/dist/esm/index.js.map +1 -1
  3. package/dist/esm/index.min.js +14 -14
  4. package/dist/esm/index.min.js.map +4 -4
  5. package/dist/esm/src/index.d.ts +3 -0
  6. package/dist/esm/src/index.js +3 -0
  7. package/dist/esm/src/index.js.map +1 -1
  8. package/dist/esm/src/models/Lexeme.d.ts +12 -0
  9. package/dist/esm/src/models/SqlPrintToken.d.ts +6 -4
  10. package/dist/esm/src/models/SqlPrintToken.js +2 -0
  11. package/dist/esm/src/models/SqlPrintToken.js.map +1 -1
  12. package/dist/esm/src/parsers/FunctionExpressionParser.js +5 -4
  13. package/dist/esm/src/parsers/FunctionExpressionParser.js.map +1 -1
  14. package/dist/esm/src/parsers/SelectQueryParser.js +3 -2
  15. package/dist/esm/src/parsers/SelectQueryParser.js.map +1 -1
  16. package/dist/esm/src/parsers/SqlPrintTokenParser.d.ts +40 -0
  17. package/dist/esm/src/parsers/SqlPrintTokenParser.js +103 -8
  18. package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
  19. package/dist/esm/src/parsers/ValueParser.js +4 -4
  20. package/dist/esm/src/parsers/ValueParser.js.map +1 -1
  21. package/dist/esm/src/reporting/models/DataFlowGraph.d.ts +3 -1
  22. package/dist/esm/src/reporting/models/DataFlowGraph.js +5 -27
  23. package/dist/esm/src/reporting/models/DataFlowGraph.js.map +1 -1
  24. package/dist/esm/src/reporting/models/DataFlowNode.d.ts +8 -2
  25. package/dist/esm/src/reporting/models/DataFlowNode.js +34 -10
  26. package/dist/esm/src/reporting/models/DataFlowNode.js.map +1 -1
  27. package/dist/esm/src/reporting/services/ProcessHandler.d.ts +6 -42
  28. package/dist/esm/src/reporting/services/ProcessHandler.js +9 -164
  29. package/dist/esm/src/reporting/services/ProcessHandler.js.map +1 -1
  30. package/dist/esm/src/tokenReaders/BaseTokenReader.d.ts +5 -1
  31. package/dist/esm/src/tokenReaders/BaseTokenReader.js +19 -13
  32. package/dist/esm/src/tokenReaders/BaseTokenReader.js.map +1 -1
  33. package/dist/esm/src/transformers/CTEDependencyAnalyzer.d.ts +95 -0
  34. package/dist/esm/src/transformers/CTEDependencyAnalyzer.js +189 -0
  35. package/dist/esm/src/transformers/CTEDependencyAnalyzer.js.map +1 -0
  36. package/dist/esm/src/transformers/CTEDisabler.d.ts +7 -2
  37. package/dist/esm/src/transformers/CTEDisabler.js +25 -2
  38. package/dist/esm/src/transformers/CTEDisabler.js.map +1 -1
  39. package/dist/esm/src/transformers/QueryFlowDiagramGenerator.js +11 -1
  40. package/dist/esm/src/transformers/QueryFlowDiagramGenerator.js.map +1 -1
  41. package/dist/esm/src/transformers/SqlPrinter.d.ts +47 -2
  42. package/dist/esm/src/transformers/SqlPrinter.js +138 -51
  43. package/dist/esm/src/transformers/SqlPrinter.js.map +1 -1
  44. package/dist/esm/src/utils/LexemeCursor.d.ts +57 -0
  45. package/dist/esm/src/utils/LexemeCursor.js +187 -0
  46. package/dist/esm/src/utils/LexemeCursor.js.map +1 -0
  47. package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
  48. package/dist/index.min.js +14 -14
  49. package/dist/index.min.js.map +4 -4
  50. package/dist/src/index.d.ts +3 -0
  51. package/dist/src/index.js +3 -0
  52. package/dist/src/index.js.map +1 -1
  53. package/dist/src/models/Lexeme.d.ts +12 -0
  54. package/dist/src/models/SqlPrintToken.d.ts +6 -4
  55. package/dist/src/models/SqlPrintToken.js +2 -0
  56. package/dist/src/models/SqlPrintToken.js.map +1 -1
  57. package/dist/src/parsers/FunctionExpressionParser.js +5 -4
  58. package/dist/src/parsers/FunctionExpressionParser.js.map +1 -1
  59. package/dist/src/parsers/SelectQueryParser.js +3 -2
  60. package/dist/src/parsers/SelectQueryParser.js.map +1 -1
  61. package/dist/src/parsers/SqlPrintTokenParser.d.ts +40 -0
  62. package/dist/src/parsers/SqlPrintTokenParser.js +103 -8
  63. package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
  64. package/dist/src/parsers/ValueParser.js +4 -4
  65. package/dist/src/parsers/ValueParser.js.map +1 -1
  66. package/dist/src/reporting/models/DataFlowGraph.d.ts +3 -1
  67. package/dist/src/reporting/models/DataFlowGraph.js +5 -27
  68. package/dist/src/reporting/models/DataFlowGraph.js.map +1 -1
  69. package/dist/src/reporting/models/DataFlowNode.d.ts +8 -2
  70. package/dist/src/reporting/models/DataFlowNode.js +34 -10
  71. package/dist/src/reporting/models/DataFlowNode.js.map +1 -1
  72. package/dist/src/reporting/services/ProcessHandler.d.ts +6 -42
  73. package/dist/src/reporting/services/ProcessHandler.js +9 -164
  74. package/dist/src/reporting/services/ProcessHandler.js.map +1 -1
  75. package/dist/src/tokenReaders/BaseTokenReader.d.ts +5 -1
  76. package/dist/src/tokenReaders/BaseTokenReader.js +19 -13
  77. package/dist/src/tokenReaders/BaseTokenReader.js.map +1 -1
  78. package/dist/src/transformers/CTEDependencyAnalyzer.d.ts +95 -0
  79. package/dist/src/transformers/CTEDependencyAnalyzer.js +193 -0
  80. package/dist/src/transformers/CTEDependencyAnalyzer.js.map +1 -0
  81. package/dist/src/transformers/CTEDisabler.d.ts +7 -2
  82. package/dist/src/transformers/CTEDisabler.js +23 -0
  83. package/dist/src/transformers/CTEDisabler.js.map +1 -1
  84. package/dist/src/transformers/QueryFlowDiagramGenerator.js +11 -1
  85. package/dist/src/transformers/QueryFlowDiagramGenerator.js.map +1 -1
  86. package/dist/src/transformers/SqlPrinter.d.ts +47 -2
  87. package/dist/src/transformers/SqlPrinter.js +138 -51
  88. package/dist/src/transformers/SqlPrinter.js.map +1 -1
  89. package/dist/src/utils/LexemeCursor.d.ts +57 -0
  90. package/dist/src/utils/LexemeCursor.js +191 -0
  91. package/dist/src/utils/LexemeCursor.js.map +1 -0
  92. package/dist/tsconfig.tsbuildinfo +1 -1
  93. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DataFlowNode.js","sourceRoot":"","sources":["../../../../src/reporting/models/DataFlowNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataFlowNode.js","sourceRoot":"","sources":["../../../../src/reporting/models/DataFlowNode.ts"],"names":[],"mappings":"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"}
@@ -2,54 +2,18 @@ import { SimpleSelectQuery } from '../../models/SimpleSelectQuery';
2
2
  import { DataFlowGraph } from '../models/DataFlowGraph';
3
3
  import { DataSourceHandler } from './DataSourceHandler';
4
4
  /**
5
- * Handles the processing of SQL clauses (WHERE, GROUP BY, HAVING, etc.)
5
+ * Handles the processing of SQL clauses for data flow generation
6
+ * Note: This class is simplified to focus on data flow only,
7
+ * filtering clauses like WHERE, GROUP BY, HAVING, etc. are excluded
6
8
  */
7
9
  export declare class ProcessHandler {
8
10
  private graph;
9
11
  private dataSourceHandler;
10
12
  constructor(graph: DataFlowGraph, dataSourceHandler: DataSourceHandler);
11
13
  /**
12
- * Processes SQL clauses in the correct execution order
14
+ * Processes SQL clauses for data flow diagram generation
15
+ * Returns the current node ID without adding process nodes
16
+ * since we focus only on data flow (sources, joins, unions)
13
17
  */
14
18
  processQueryClauses(query: SimpleSelectQuery, context: string, currentNodeId: string, cteNames: Set<string>, queryProcessor: (query: any, context: string, cteNames: Set<string>) => string): string;
15
- /**
16
- * Processes WHERE clause including subqueries
17
- */
18
- private processWhereClause;
19
- /**
20
- * Processes GROUP BY clause
21
- */
22
- private processGroupByClause;
23
- /**
24
- * Processes HAVING clause
25
- */
26
- private processHavingClause;
27
- /**
28
- * Processes SELECT clause
29
- */
30
- private processSelectClause;
31
- /**
32
- * Processes ORDER BY clause
33
- */
34
- private processOrderByClause;
35
- /**
36
- * Processes LIMIT/OFFSET clause
37
- */
38
- private processLimitClause;
39
- /**
40
- * Determines if a SELECT node should be added
41
- */
42
- private shouldAddSelectNode;
43
- /**
44
- * Processes WHERE clause to find subqueries (EXISTS, IN, etc.)
45
- */
46
- private processWhereSubqueries;
47
- /**
48
- * Recursively processes ValueComponent to find InlineQuery (subqueries)
49
- */
50
- private processValueComponent;
51
- /**
52
- * Processes only the tables from a query for EXISTS/NOT EXISTS conditions
53
- */
54
- private processQueryTablesOnly;
55
19
  }
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ProcessHandler = void 0;
4
- const ValueComponent_1 = require("../../models/ValueComponent");
5
4
  /**
6
- * Handles the processing of SQL clauses (WHERE, GROUP BY, HAVING, etc.)
5
+ * Handles the processing of SQL clauses for data flow generation
6
+ * Note: This class is simplified to focus on data flow only,
7
+ * filtering clauses like WHERE, GROUP BY, HAVING, etc. are excluded
7
8
  */
8
9
  class ProcessHandler {
9
10
  constructor(graph, dataSourceHandler) {
@@ -11,170 +12,14 @@ class ProcessHandler {
11
12
  this.dataSourceHandler = dataSourceHandler;
12
13
  }
13
14
  /**
14
- * Processes SQL clauses in the correct execution order
15
+ * Processes SQL clauses for data flow diagram generation
16
+ * Returns the current node ID without adding process nodes
17
+ * since we focus only on data flow (sources, joins, unions)
15
18
  */
16
19
  processQueryClauses(query, context, currentNodeId, cteNames, queryProcessor) {
17
- let resultNodeId = currentNodeId;
18
- // 2. Process WHERE clause
19
- if (query.whereClause && resultNodeId) {
20
- resultNodeId = this.processWhereClause(query.whereClause, context, resultNodeId, cteNames, queryProcessor);
21
- }
22
- // 3. Process GROUP BY clause
23
- if (query.groupByClause && resultNodeId) {
24
- resultNodeId = this.processGroupByClause(context, resultNodeId);
25
- }
26
- // 4. Process HAVING clause
27
- if (query.havingClause && resultNodeId) {
28
- resultNodeId = this.processHavingClause(context, resultNodeId);
29
- }
30
- // 5. Process SELECT clause - only add if needed
31
- if (this.shouldAddSelectNode(query, context)) {
32
- resultNodeId = this.processSelectClause(context, resultNodeId);
33
- }
34
- // 6. Process ORDER BY clause
35
- if (query.orderByClause && resultNodeId) {
36
- resultNodeId = this.processOrderByClause(context, resultNodeId);
37
- }
38
- // 7. Process LIMIT/OFFSET clause
39
- if ((query.limitClause || query.offsetClause) && resultNodeId) {
40
- resultNodeId = this.processLimitClause(context, resultNodeId, !!query.offsetClause);
41
- }
42
- return resultNodeId;
43
- }
44
- /**
45
- * Processes WHERE clause including subqueries
46
- */
47
- processWhereClause(whereClause, context, currentNodeId, cteNames, queryProcessor) {
48
- const whereNode = this.graph.createProcessNode('where', context);
49
- // Connect FROM result to WHERE
50
- this.graph.addConnection(currentNodeId, whereNode.id);
51
- // Process WHERE subqueries
52
- const whereSubqueryInfo = this.processWhereSubqueries(whereClause, context, cteNames, queryProcessor);
53
- // Connect WHERE subqueries to WHERE node
54
- for (const subqueryInfo of whereSubqueryInfo) {
55
- this.graph.addConnection(subqueryInfo.nodeId, whereNode.id, subqueryInfo.operator);
56
- }
57
- return whereNode.id;
58
- }
59
- /**
60
- * Processes GROUP BY clause
61
- */
62
- processGroupByClause(context, currentNodeId) {
63
- const groupByNode = this.graph.createProcessNode('group by', context);
64
- this.graph.addConnection(currentNodeId, groupByNode.id);
65
- return groupByNode.id;
66
- }
67
- /**
68
- * Processes HAVING clause
69
- */
70
- processHavingClause(context, currentNodeId) {
71
- const havingNode = this.graph.createProcessNode('having', context);
72
- this.graph.addConnection(currentNodeId, havingNode.id);
73
- return havingNode.id;
74
- }
75
- /**
76
- * Processes SELECT clause
77
- */
78
- processSelectClause(context, currentNodeId) {
79
- const selectNode = this.graph.createProcessNode('select', context);
80
- this.graph.addConnection(currentNodeId, selectNode.id);
81
- return selectNode.id;
82
- }
83
- /**
84
- * Processes ORDER BY clause
85
- */
86
- processOrderByClause(context, currentNodeId) {
87
- const orderByNode = this.graph.createProcessNode('order by', context);
88
- this.graph.addConnection(currentNodeId, orderByNode.id);
89
- return orderByNode.id;
90
- }
91
- /**
92
- * Processes LIMIT/OFFSET clause
93
- */
94
- processLimitClause(context, currentNodeId, hasOffset) {
95
- const limitNode = this.graph.createProcessNode(hasOffset ? 'limit/offset' : 'limit', context);
96
- this.graph.addConnection(currentNodeId, limitNode.id);
97
- return limitNode.id;
98
- }
99
- /**
100
- * Determines if a SELECT node should be added
101
- */
102
- shouldAddSelectNode(query, context) {
103
- // Always add SELECT node - UNION combines SELECT results, not raw data sources
104
- return true;
105
- }
106
- /**
107
- * Processes WHERE clause to find subqueries (EXISTS, IN, etc.)
108
- */
109
- processWhereSubqueries(whereClause, context, cteNames, queryProcessor) {
110
- const subqueryInfo = [];
111
- this.processValueComponent(whereClause.condition, context, cteNames, queryProcessor, subqueryInfo);
112
- return subqueryInfo;
113
- }
114
- /**
115
- * Recursively processes ValueComponent to find InlineQuery (subqueries)
116
- */
117
- processValueComponent(value, context, cteNames, queryProcessor, subqueryInfo) {
118
- if (value instanceof ValueComponent_1.InlineQuery) {
119
- const subqueryNodeId = queryProcessor(value.selectQuery, `${context}_where_subquery`, cteNames);
120
- subqueryInfo.push({ nodeId: subqueryNodeId, operator: 'SUBQUERY' });
121
- }
122
- else if (value instanceof ValueComponent_1.FunctionCall) {
123
- const functionName = value.qualifiedName.name.toString().toLowerCase();
124
- if (functionName === 'exists' && value.argument instanceof ValueComponent_1.InlineQuery) {
125
- const subqueryNodeId = queryProcessor(value.argument.selectQuery, `${context}_where_subquery`, cteNames);
126
- subqueryInfo.push({ nodeId: subqueryNodeId, operator: 'EXISTS' });
127
- }
128
- else if (value.argument) {
129
- this.processValueComponent(value.argument, context, cteNames, queryProcessor, subqueryInfo);
130
- }
131
- }
132
- else if (value instanceof ValueComponent_1.UnaryExpression) {
133
- const operator = value.operator.value.toLowerCase();
134
- if ((operator === 'exists' || operator === 'not exists') && value.expression instanceof ValueComponent_1.InlineQuery) {
135
- this.processQueryTablesOnly(value.expression.selectQuery, context, cteNames, subqueryInfo, operator.toUpperCase());
136
- }
137
- else {
138
- this.processValueComponent(value.expression, context, cteNames, queryProcessor, subqueryInfo);
139
- }
140
- }
141
- else if (value instanceof ValueComponent_1.BinaryExpression) {
142
- const operator = value.operator.value.toLowerCase();
143
- if ((operator === 'in' || operator === 'not in') && value.right instanceof ValueComponent_1.InlineQuery) {
144
- this.processQueryTablesOnly(value.right.selectQuery, context, cteNames, subqueryInfo, operator.toUpperCase());
145
- }
146
- else {
147
- this.processValueComponent(value.left, context, cteNames, queryProcessor, subqueryInfo);
148
- this.processValueComponent(value.right, context, cteNames, queryProcessor, subqueryInfo);
149
- }
150
- }
151
- else if (value && typeof value === 'object') {
152
- for (const [key, val] of Object.entries(value)) {
153
- if (val && typeof val === 'object') {
154
- if (Array.isArray(val)) {
155
- val.forEach(item => {
156
- if (item && typeof item === 'object' && 'selectQuery' in item) {
157
- this.processValueComponent(item, context, cteNames, queryProcessor, subqueryInfo);
158
- }
159
- });
160
- }
161
- else if ('selectQuery' in val) {
162
- this.processValueComponent(val, context, cteNames, queryProcessor, subqueryInfo);
163
- }
164
- }
165
- }
166
- }
167
- }
168
- /**
169
- * Processes only the tables from a query for EXISTS/NOT EXISTS conditions
170
- */
171
- processQueryTablesOnly(query, context, cteNames, subqueryInfo, operator) {
172
- if (query.fromClause) {
173
- const tableNodes = this.dataSourceHandler.extractTableNodeIds(query.fromClause, cteNames);
174
- for (const tableNodeId of tableNodes) {
175
- subqueryInfo.push({ nodeId: tableNodeId, operator });
176
- }
177
- }
20
+ // Return the current node without adding process nodes
21
+ // Data flow focused: only sources, joins, and unions are shown
22
+ return currentNodeId;
178
23
  }
179
24
  }
180
25
  exports.ProcessHandler = ProcessHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"ProcessHandler.js","sourceRoot":"","sources":["../../../../src/reporting/services/ProcessHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProcessHandler.js","sourceRoot":"","sources":["../../../../src/reporting/services/ProcessHandler.ts"],"names":[],"mappings":";;;AAIA;;;;GAIG;AACH,MAAa,cAAc;IACvB,YACY,KAAoB,EACpB,iBAAoC;QADpC,UAAK,GAAL,KAAK,CAAe;QACpB,sBAAiB,GAAjB,iBAAiB,CAAmB;IAC7C,CAAC;IAEJ;;;;OAIG;IACH,mBAAmB,CACf,KAAwB,EACxB,OAAe,EACf,aAAqB,EACrB,QAAqB,EACrB,cAA8E;QAE9E,uDAAuD;QACvD,+DAA+D;QAC/D,OAAO,aAAa,CAAC;IACzB,CAAC;CACJ;AAtBD,wCAsBC"}
@@ -29,7 +29,11 @@ export declare abstract class BaseTokenReader {
29
29
  /**
30
30
  * Create a lexeme with the specified type and value
31
31
  */
32
- protected createLexeme(type: TokenType, value: string, comments?: string[] | null): Lexeme;
32
+ protected createLexeme(type: TokenType, value: string, comments?: string[] | null, startPosition?: number, endPosition?: number): Lexeme;
33
+ /**
34
+ * Create a lexeme with automatic position tracking
35
+ */
36
+ protected createLexemeWithPosition(type: TokenType, value: string, startPos: number, comments?: string[] | null): Lexeme;
33
37
  /**
34
38
  * Get debug info for error reporting
35
39
  */
@@ -52,22 +52,28 @@ class BaseTokenReader {
52
52
  /**
53
53
  * Create a lexeme with the specified type and value
54
54
  */
55
- createLexeme(type, value, comments = null) {
56
- if (type === Lexeme_1.TokenType.Command || type === Lexeme_1.TokenType.Operator || type === Lexeme_1.TokenType.Function) {
57
- // Benchmark tests showed that directly calling toLowerCase() is ~5x faster
58
- // than first checking if the string is already lowercase.
59
- // See benchmarks/lowercase-benchmark.js for detailed performance analysis.
60
- return {
61
- type,
62
- value: value.toLowerCase(),
63
- comments: comments,
64
- };
65
- }
66
- return {
55
+ createLexeme(type, value, comments = null, startPosition, endPosition) {
56
+ const lexeme = {
67
57
  type,
68
- value,
58
+ value: (type === Lexeme_1.TokenType.Command || type === Lexeme_1.TokenType.Operator || type === Lexeme_1.TokenType.Function)
59
+ ? value.toLowerCase()
60
+ : value,
69
61
  comments: comments,
70
62
  };
63
+ // Add position information if provided
64
+ if (startPosition !== undefined && endPosition !== undefined) {
65
+ lexeme.position = {
66
+ startPosition,
67
+ endPosition,
68
+ };
69
+ }
70
+ return lexeme;
71
+ }
72
+ /**
73
+ * Create a lexeme with automatic position tracking
74
+ */
75
+ createLexemeWithPosition(type, value, startPos, comments = null) {
76
+ return this.createLexeme(type, value, comments, startPos, startPos + value.length);
71
77
  }
72
78
  /**
73
79
  * Get debug info for error reporting
@@ -1 +1 @@
1
- {"version":3,"file":"BaseTokenReader.js","sourceRoot":"","sources":["../../../src/tokenReaders/BaseTokenReader.ts"],"names":[],"mappings":";;;AAAA,6CAAqD;AACrD,sDAAmD;AAEnD;;GAEG;AACH,MAAsB,eAAe;IAIjC,YAAY,KAAa,EAAE,WAAmB,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED;;OAEG;IACI,WAAW;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,QAAgB;QAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED;;OAEG;IACO,YAAY,CAAC,QAAgB,CAAC;QACpC,OAAO,IAAI,CAAC,QAAQ,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IACtD,CAAC;IAED;;OAEG;IACO,OAAO,CAAC,QAAgB,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACO,IAAI,CAAC,UAAkB;QAC7B,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,iCAAiC,UAAU,mCAAmC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnH,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,iCAAiC,UAAU,aAAa,IAAI,eAAe,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChH,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACO,YAAY,CAAC,IAAe,EAAE,KAAa,EAAE,WAA4B,IAAI;QACnF,IAAI,IAAI,KAAK,kBAAS,CAAC,OAAO,IAAI,IAAI,KAAK,kBAAS,CAAC,QAAQ,IAAI,IAAI,KAAK,kBAAS,CAAC,QAAQ,EAAE,CAAC;YAC3F,2EAA2E;YAC3E,0DAA0D;YAC1D,2EAA2E;YAC3E,OAAO;gBACH,IAAI;gBACJ,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE;gBAC1B,QAAQ,EAAE,QAAQ;aACrB,CAAC;QACN,CAAC;QACD,OAAO;YACH,IAAI;YACJ,KAAK;YACL,QAAQ,EAAE,QAAQ;SACrB,CAAC;IACN,CAAC;IAED;;OAEG;IACO,oBAAoB,CAAC,WAAmB;QAC9C,OAAO,yBAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACrE,CAAC;CAQJ;AAxFD,0CAwFC"}
1
+ {"version":3,"file":"BaseTokenReader.js","sourceRoot":"","sources":["../../../src/tokenReaders/BaseTokenReader.ts"],"names":[],"mappings":";;;AAAA,6CAAqE;AACrE,sDAAmD;AAEnD;;GAEG;AACH,MAAsB,eAAe;IAIjC,YAAY,KAAa,EAAE,WAAmB,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED;;OAEG;IACI,WAAW;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,QAAgB;QAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED;;OAEG;IACO,YAAY,CAAC,QAAgB,CAAC;QACpC,OAAO,IAAI,CAAC,QAAQ,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IACtD,CAAC;IAED;;OAEG;IACO,OAAO,CAAC,QAAgB,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACO,IAAI,CAAC,UAAkB;QAC7B,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,iCAAiC,UAAU,mCAAmC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnH,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,iCAAiC,UAAU,aAAa,IAAI,eAAe,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChH,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACO,YAAY,CAAC,IAAe,EAAE,KAAa,EAAE,WAA4B,IAAI,EAAE,aAAsB,EAAE,WAAoB;QACjI,MAAM,MAAM,GAAW;YACnB,IAAI;YACJ,KAAK,EAAE,CAAC,IAAI,KAAK,kBAAS,CAAC,OAAO,IAAI,IAAI,KAAK,kBAAS,CAAC,QAAQ,IAAI,IAAI,KAAK,kBAAS,CAAC,QAAQ,CAAC;gBAC7F,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE;gBACrB,CAAC,CAAC,KAAK;YACX,QAAQ,EAAE,QAAQ;SACrB,CAAC;QAEF,uCAAuC;QACvC,IAAI,aAAa,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC3D,MAAM,CAAC,QAAQ,GAAG;gBACd,aAAa;gBACb,WAAW;aACd,CAAC;QACN,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACO,wBAAwB,CAAC,IAAe,EAAE,KAAa,EAAE,QAAgB,EAAE,WAA4B,IAAI;QACjH,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IACvF,CAAC;IAED;;OAEG;IACO,oBAAoB,CAAC,WAAmB;QAC9C,OAAO,yBAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACrE,CAAC;CAQJ;AAjGD,0CAiGC"}
@@ -0,0 +1,95 @@
1
+ import { CommonTable } from "../models/Clause";
2
+ import { SimpleSelectQuery } from "../models/SimpleSelectQuery";
3
+ /**
4
+ * Interface representing a dependency relationship between CTEs
5
+ */
6
+ export interface CTEEdge {
7
+ from: string;
8
+ to: string;
9
+ }
10
+ /**
11
+ * Interface representing a CTE node in the dependency graph
12
+ */
13
+ export interface CTENode {
14
+ name: string;
15
+ cte: CommonTable;
16
+ dependencies: string[];
17
+ dependents: string[];
18
+ }
19
+ /**
20
+ * Interface representing the complete CTE dependency graph
21
+ */
22
+ export interface CTEDependencyGraph {
23
+ nodes: CTENode[];
24
+ edges: CTEEdge[];
25
+ }
26
+ /**
27
+ * Analyzer for CTE dependencies in SQL queries.
28
+ * Provides functionality to analyze dependencies, detect circular references,
29
+ * and generate topological ordering of CTEs.
30
+ */
31
+ export declare class CTEDependencyAnalyzer {
32
+ private static readonly ERROR_MESSAGES;
33
+ private readonly sourceCollector;
34
+ private readonly cteCollector;
35
+ private dependencyGraph;
36
+ private cteMap;
37
+ constructor();
38
+ /**
39
+ * Analyzes the dependencies between CTEs in the given query
40
+ * @param query The query to analyze
41
+ * @returns The dependency graph
42
+ */
43
+ analyzeDependencies(query: SimpleSelectQuery): CTEDependencyGraph;
44
+ /**
45
+ * Gets the list of CTEs that the specified CTE depends on
46
+ * @param cteName The name of the CTE
47
+ * @returns Array of CTE names this CTE depends on
48
+ */
49
+ getDependencies(cteName: string): string[];
50
+ /**
51
+ * Gets the list of CTEs that depend on the specified CTE
52
+ * @param cteName The name of the CTE
53
+ * @returns Array of CTE names that depend on this CTE
54
+ */
55
+ getDependents(cteName: string): string[];
56
+ /**
57
+ * Checks if there are any circular dependencies in the CTE graph
58
+ * @returns true if circular dependencies exist, false otherwise
59
+ */
60
+ hasCircularDependency(): boolean;
61
+ /**
62
+ * Gets the topological sort order for CTE execution
63
+ * @returns Array of CTE names in execution order
64
+ * @throws Error if circular dependencies are detected
65
+ */
66
+ getExecutionOrder(): string[];
67
+ /**
68
+ * Builds the dependency graph from the given CTEs
69
+ * @param ctes Array of CommonTable objects
70
+ * @returns The constructed dependency graph
71
+ */
72
+ private buildDependencyGraph;
73
+ /**
74
+ * Ensures that dependency analysis has been performed
75
+ * @throws Error if analyzeDependencies has not been called
76
+ */
77
+ private ensureAnalyzed;
78
+ /**
79
+ * Builds the CTE name-to-object mapping for quick lookups
80
+ * @param ctes Array of CommonTable objects
81
+ */
82
+ private buildCTEMap;
83
+ /**
84
+ * Finds a node in the dependency graph by CTE name
85
+ * @param cteName The name of the CTE to find
86
+ * @returns The CTENode if found, undefined otherwise
87
+ */
88
+ private findNodeByName;
89
+ /**
90
+ * Extracts the name from a CommonTable
91
+ * @param cte The CommonTable object
92
+ * @returns The name of the CTE
93
+ */
94
+ private static getCTEName;
95
+ }
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CTEDependencyAnalyzer = void 0;
4
+ const CTECollector_1 = require("./CTECollector");
5
+ const TableSourceCollector_1 = require("./TableSourceCollector");
6
+ /**
7
+ * Analyzer for CTE dependencies in SQL queries.
8
+ * Provides functionality to analyze dependencies, detect circular references,
9
+ * and generate topological ordering of CTEs.
10
+ */
11
+ class CTEDependencyAnalyzer {
12
+ constructor() {
13
+ this.dependencyGraph = null;
14
+ this.cteMap = new Map();
15
+ this.sourceCollector = new TableSourceCollector_1.TableSourceCollector(true);
16
+ this.cteCollector = new CTECollector_1.CTECollector();
17
+ }
18
+ /**
19
+ * Analyzes the dependencies between CTEs in the given query
20
+ * @param query The query to analyze
21
+ * @returns The dependency graph
22
+ */
23
+ analyzeDependencies(query) {
24
+ const ctes = this.cteCollector.collect(query);
25
+ this.buildCTEMap(ctes);
26
+ this.dependencyGraph = this.buildDependencyGraph(ctes);
27
+ return this.dependencyGraph;
28
+ }
29
+ /**
30
+ * Gets the list of CTEs that the specified CTE depends on
31
+ * @param cteName The name of the CTE
32
+ * @returns Array of CTE names this CTE depends on
33
+ */
34
+ getDependencies(cteName) {
35
+ this.ensureAnalyzed();
36
+ const node = this.findNodeByName(cteName);
37
+ return node ? [...node.dependencies] : [];
38
+ }
39
+ /**
40
+ * Gets the list of CTEs that depend on the specified CTE
41
+ * @param cteName The name of the CTE
42
+ * @returns Array of CTE names that depend on this CTE
43
+ */
44
+ getDependents(cteName) {
45
+ this.ensureAnalyzed();
46
+ const node = this.findNodeByName(cteName);
47
+ return node ? [...node.dependents] : [];
48
+ }
49
+ /**
50
+ * Checks if there are any circular dependencies in the CTE graph
51
+ * @returns true if circular dependencies exist, false otherwise
52
+ */
53
+ hasCircularDependency() {
54
+ this.ensureAnalyzed();
55
+ try {
56
+ this.getExecutionOrder();
57
+ return false;
58
+ }
59
+ catch (error) {
60
+ if (error instanceof Error && error.message.includes(CTEDependencyAnalyzer.ERROR_MESSAGES.CIRCULAR_REFERENCE)) {
61
+ return true;
62
+ }
63
+ throw error;
64
+ }
65
+ }
66
+ /**
67
+ * Gets the topological sort order for CTE execution
68
+ * @returns Array of CTE names in execution order
69
+ * @throws Error if circular dependencies are detected
70
+ */
71
+ getExecutionOrder() {
72
+ this.ensureAnalyzed();
73
+ const visited = new Set();
74
+ const visiting = new Set();
75
+ const result = [];
76
+ // Build adjacency list from dependency graph
77
+ const dependencyMap = new Map();
78
+ for (const node of this.dependencyGraph.nodes) {
79
+ dependencyMap.set(node.name, new Set(node.dependencies));
80
+ }
81
+ const visit = (nodeName) => {
82
+ if (visited.has(nodeName))
83
+ return;
84
+ if (visiting.has(nodeName)) {
85
+ throw new Error(`${CTEDependencyAnalyzer.ERROR_MESSAGES.CIRCULAR_REFERENCE}: ${nodeName}`);
86
+ }
87
+ visiting.add(nodeName);
88
+ const deps = dependencyMap.get(nodeName) || new Set();
89
+ for (const dep of deps) {
90
+ visit(dep);
91
+ }
92
+ visiting.delete(nodeName);
93
+ visited.add(nodeName);
94
+ result.push(nodeName);
95
+ };
96
+ // Visit all nodes
97
+ for (const node of this.dependencyGraph.nodes) {
98
+ if (!visited.has(node.name)) {
99
+ visit(node.name);
100
+ }
101
+ }
102
+ return result;
103
+ }
104
+ /**
105
+ * Builds the dependency graph from the given CTEs
106
+ * @param ctes Array of CommonTable objects
107
+ * @returns The constructed dependency graph
108
+ */
109
+ buildDependencyGraph(ctes) {
110
+ const nodes = [];
111
+ const edges = [];
112
+ const dependencyMap = new Map();
113
+ const dependentMap = new Map();
114
+ // Initialize maps for all CTEs
115
+ for (const cte of ctes) {
116
+ const name = CTEDependencyAnalyzer.getCTEName(cte);
117
+ dependencyMap.set(name, new Set());
118
+ dependentMap.set(name, new Set());
119
+ }
120
+ // Analyze dependencies for each CTE
121
+ for (const cte of ctes) {
122
+ const cteName = CTEDependencyAnalyzer.getCTEName(cte);
123
+ // Find all table/CTE references in this CTE's query
124
+ const referencedTables = this.sourceCollector.collect(cte.query);
125
+ for (const referencedTable of referencedTables) {
126
+ const referencedName = referencedTable.table.name;
127
+ // Only consider references to other CTEs in our collection
128
+ if (this.cteMap.has(referencedName) && referencedName !== cteName) {
129
+ dependencyMap.get(cteName).add(referencedName);
130
+ dependentMap.get(referencedName).add(cteName);
131
+ edges.push({
132
+ from: cteName,
133
+ to: referencedName
134
+ });
135
+ }
136
+ }
137
+ }
138
+ // Create nodes with dependency and dependent information
139
+ for (const cte of ctes) {
140
+ const name = CTEDependencyAnalyzer.getCTEName(cte);
141
+ nodes.push({
142
+ name,
143
+ cte,
144
+ dependencies: Array.from(dependencyMap.get(name) || new Set()),
145
+ dependents: Array.from(dependentMap.get(name) || new Set())
146
+ });
147
+ }
148
+ return { nodes, edges };
149
+ }
150
+ /**
151
+ * Ensures that dependency analysis has been performed
152
+ * @throws Error if analyzeDependencies has not been called
153
+ */
154
+ ensureAnalyzed() {
155
+ if (!this.dependencyGraph) {
156
+ throw new Error(CTEDependencyAnalyzer.ERROR_MESSAGES.NOT_ANALYZED);
157
+ }
158
+ }
159
+ /**
160
+ * Builds the CTE name-to-object mapping for quick lookups
161
+ * @param ctes Array of CommonTable objects
162
+ */
163
+ buildCTEMap(ctes) {
164
+ this.cteMap.clear();
165
+ for (const cte of ctes) {
166
+ const name = CTEDependencyAnalyzer.getCTEName(cte);
167
+ this.cteMap.set(name, cte);
168
+ }
169
+ }
170
+ /**
171
+ * Finds a node in the dependency graph by CTE name
172
+ * @param cteName The name of the CTE to find
173
+ * @returns The CTENode if found, undefined otherwise
174
+ */
175
+ findNodeByName(cteName) {
176
+ var _a;
177
+ return (_a = this.dependencyGraph) === null || _a === void 0 ? void 0 : _a.nodes.find(n => n.name === cteName);
178
+ }
179
+ /**
180
+ * Extracts the name from a CommonTable
181
+ * @param cte The CommonTable object
182
+ * @returns The name of the CTE
183
+ */
184
+ static getCTEName(cte) {
185
+ return cte.aliasExpression.table.name;
186
+ }
187
+ }
188
+ exports.CTEDependencyAnalyzer = CTEDependencyAnalyzer;
189
+ CTEDependencyAnalyzer.ERROR_MESSAGES = {
190
+ NOT_ANALYZED: "Must call analyzeDependencies first",
191
+ CIRCULAR_REFERENCE: "Circular reference detected in CTE"
192
+ };
193
+ //# sourceMappingURL=CTEDependencyAnalyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CTEDependencyAnalyzer.js","sourceRoot":"","sources":["../../../src/transformers/CTEDependencyAnalyzer.ts"],"names":[],"mappings":"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"}