rawsql-ts 0.1.0-beta.4 → 0.1.0-beta.6

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 (135) hide show
  1. package/README.md +143 -199
  2. package/dist/index.js +32 -0
  3. package/dist/index.js.map +1 -0
  4. package/dist/models/BinarySelectQuery.js +140 -0
  5. package/dist/models/BinarySelectQuery.js.map +1 -0
  6. package/dist/models/Clause.js +318 -0
  7. package/dist/models/Clause.js.map +1 -0
  8. package/dist/models/KeywordTrie.js +52 -0
  9. package/dist/models/KeywordTrie.js.map +1 -0
  10. package/dist/models/Lexeme.js +21 -0
  11. package/dist/models/Lexeme.js.map +1 -0
  12. package/dist/models/SelectQuery.js +10 -0
  13. package/dist/models/SelectQuery.js.map +1 -0
  14. package/dist/models/SimpleSelectQuery.js +290 -0
  15. package/dist/models/SimpleSelectQuery.js.map +1 -0
  16. package/dist/models/SqlComponent.js +27 -0
  17. package/dist/models/SqlComponent.js.map +1 -0
  18. package/dist/models/ValueComponent.js +250 -0
  19. package/dist/models/ValueComponent.js.map +1 -0
  20. package/dist/models/ValuesQuery.js +16 -0
  21. package/dist/models/ValuesQuery.js.map +1 -0
  22. package/dist/parsers/CommandExpressionParser.js +124 -0
  23. package/dist/parsers/CommandExpressionParser.js.map +1 -0
  24. package/dist/parsers/CommonTableParser.js +60 -0
  25. package/dist/parsers/CommonTableParser.js.map +1 -0
  26. package/dist/parsers/ForClauseParser.js +56 -0
  27. package/dist/parsers/ForClauseParser.js.map +1 -0
  28. package/dist/parsers/FromClauseParser.js +45 -0
  29. package/dist/parsers/FromClauseParser.js.map +1 -0
  30. package/dist/parsers/FunctionExpressionParser.js +178 -0
  31. package/dist/parsers/FunctionExpressionParser.js.map +1 -0
  32. package/dist/parsers/GroupByParser.js +56 -0
  33. package/dist/parsers/GroupByParser.js.map +1 -0
  34. package/dist/parsers/HavingParser.js +34 -0
  35. package/dist/parsers/HavingParser.js.map +1 -0
  36. package/dist/parsers/IdentifierParser.js +39 -0
  37. package/dist/parsers/IdentifierParser.js.map +1 -0
  38. package/dist/parsers/JoinClauseParser.js +105 -0
  39. package/dist/parsers/JoinClauseParser.js.map +1 -0
  40. package/dist/parsers/KeywordParser.js +91 -0
  41. package/dist/parsers/KeywordParser.js.map +1 -0
  42. package/dist/parsers/LimitClauseParser.js +48 -0
  43. package/dist/parsers/LimitClauseParser.js.map +1 -0
  44. package/dist/parsers/LiteralParser.js +38 -0
  45. package/dist/parsers/LiteralParser.js.map +1 -0
  46. package/dist/parsers/OrderByClauseParser.js +75 -0
  47. package/dist/parsers/OrderByClauseParser.js.map +1 -0
  48. package/dist/parsers/OverExpressionParser.js +44 -0
  49. package/dist/parsers/OverExpressionParser.js.map +1 -0
  50. package/dist/parsers/ParameterExpressionParser.js +15 -0
  51. package/dist/parsers/ParameterExpressionParser.js.map +1 -0
  52. package/dist/parsers/ParenExpressionParser.js +33 -0
  53. package/dist/parsers/ParenExpressionParser.js.map +1 -0
  54. package/dist/parsers/PartitionByParser.js +51 -0
  55. package/dist/parsers/PartitionByParser.js.map +1 -0
  56. package/dist/parsers/SelectClauseParser.js +82 -0
  57. package/dist/parsers/SelectClauseParser.js.map +1 -0
  58. package/dist/parsers/SelectQueryParser.js +151 -0
  59. package/dist/parsers/SelectQueryParser.js.map +1 -0
  60. package/dist/parsers/SourceAliasExpressionParser.js +48 -0
  61. package/dist/parsers/SourceAliasExpressionParser.js.map +1 -0
  62. package/dist/parsers/SourceExpressionParser.js +34 -0
  63. package/dist/parsers/SourceExpressionParser.js.map +1 -0
  64. package/dist/parsers/SourceParser.js +116 -0
  65. package/dist/parsers/SourceParser.js.map +1 -0
  66. package/dist/parsers/SqlTokenizer.js +174 -0
  67. package/dist/parsers/SqlTokenizer.js.map +1 -0
  68. package/dist/parsers/StringSpecifierExpressionParser.js +22 -0
  69. package/dist/parsers/StringSpecifierExpressionParser.js.map +1 -0
  70. package/dist/parsers/UnaryExpressionParser.js +30 -0
  71. package/dist/parsers/UnaryExpressionParser.js.map +1 -0
  72. package/dist/parsers/ValueParser.js +134 -0
  73. package/dist/parsers/ValueParser.js.map +1 -0
  74. package/dist/parsers/ValuesQueryParser.js +86 -0
  75. package/dist/parsers/ValuesQueryParser.js.map +1 -0
  76. package/dist/parsers/WhereClauseParser.js +34 -0
  77. package/dist/parsers/WhereClauseParser.js.map +1 -0
  78. package/dist/parsers/WindowClauseParser.js +43 -0
  79. package/dist/parsers/WindowClauseParser.js.map +1 -0
  80. package/dist/parsers/WindowExpressionParser.js +151 -0
  81. package/dist/parsers/WindowExpressionParser.js.map +1 -0
  82. package/dist/parsers/WithClauseParser.js +55 -0
  83. package/dist/parsers/WithClauseParser.js.map +1 -0
  84. package/dist/tokenReaders/BaseTokenReader.js +82 -0
  85. package/dist/tokenReaders/BaseTokenReader.js.map +1 -0
  86. package/dist/tokenReaders/CommandTokenReader.js +145 -0
  87. package/dist/tokenReaders/CommandTokenReader.js.map +1 -0
  88. package/dist/tokenReaders/FunctionTokenReader.js +45 -0
  89. package/dist/tokenReaders/FunctionTokenReader.js.map +1 -0
  90. package/dist/tokenReaders/IdentifierTokenReader.js +70 -0
  91. package/dist/tokenReaders/IdentifierTokenReader.js.map +1 -0
  92. package/dist/tokenReaders/LiteralTokenReader.js +189 -0
  93. package/dist/tokenReaders/LiteralTokenReader.js.map +1 -0
  94. package/dist/tokenReaders/OperatorTokenReader.js +98 -0
  95. package/dist/tokenReaders/OperatorTokenReader.js.map +1 -0
  96. package/dist/tokenReaders/ParameterTokenReader.js +44 -0
  97. package/dist/tokenReaders/ParameterTokenReader.js.map +1 -0
  98. package/dist/tokenReaders/StringSpecifierTokenReader.js +31 -0
  99. package/dist/tokenReaders/StringSpecifierTokenReader.js.map +1 -0
  100. package/dist/tokenReaders/SymbolTokenReader.js +35 -0
  101. package/dist/tokenReaders/SymbolTokenReader.js.map +1 -0
  102. package/dist/tokenReaders/TokenReaderManager.js +110 -0
  103. package/dist/tokenReaders/TokenReaderManager.js.map +1 -0
  104. package/dist/tokenReaders/TypeTokenReader.js +59 -0
  105. package/dist/tokenReaders/TypeTokenReader.js.map +1 -0
  106. package/dist/transformers/CTEBuilder.js +188 -0
  107. package/dist/transformers/CTEBuilder.js.map +1 -0
  108. package/dist/transformers/CTECollector.js +384 -0
  109. package/dist/transformers/CTECollector.js.map +1 -0
  110. package/dist/transformers/CTEDisabler.js +325 -0
  111. package/dist/transformers/CTEDisabler.js.map +1 -0
  112. package/dist/transformers/CTEInjector.js +83 -0
  113. package/dist/transformers/CTEInjector.js.map +1 -0
  114. package/dist/transformers/CTENormalizer.js +42 -0
  115. package/dist/transformers/CTENormalizer.js.map +1 -0
  116. package/dist/transformers/Formatter.js +452 -0
  117. package/dist/transformers/Formatter.js.map +1 -0
  118. package/dist/transformers/QueryNormalizer.js +114 -0
  119. package/dist/transformers/QueryNormalizer.js.map +1 -0
  120. package/dist/transformers/SelectValueCollector.js +249 -0
  121. package/dist/transformers/SelectValueCollector.js.map +1 -0
  122. package/dist/transformers/SelectableColumnCollector.js +308 -0
  123. package/dist/transformers/SelectableColumnCollector.js.map +1 -0
  124. package/dist/transformers/TableSourceCollector.js +384 -0
  125. package/dist/transformers/TableSourceCollector.js.map +1 -0
  126. package/dist/transformers/UpstreamSelectQueryFinder.js +129 -0
  127. package/dist/transformers/UpstreamSelectQueryFinder.js.map +1 -0
  128. package/dist/utils/charLookupTable.js +73 -0
  129. package/dist/utils/charLookupTable.js.map +1 -0
  130. package/dist/utils/stringUtils.js +168 -0
  131. package/dist/utils/stringUtils.js.map +1 -0
  132. package/package.json +3 -3
  133. package/dist/tsconfig.tsbuildinfo +0 -1
  134. package/dist/vitest.config.js +0 -15
  135. package/dist/vitest.config.js.map +0 -1
@@ -0,0 +1,325 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CTEDisabler = void 0;
4
+ const Clause_1 = require("../models/Clause");
5
+ const SelectQuery_1 = require("../models/SelectQuery");
6
+ const ValueComponent_1 = require("../models/ValueComponent");
7
+ /**
8
+ * A visitor that disables all WITH clauses in a SQL query structure.
9
+ * This processes and removes WITH clauses from:
10
+ * - Simple SELECT queries
11
+ * - Binary queries (UNION, EXCEPT, etc.)
12
+ * - Subqueries
13
+ * - Inline queries
14
+ *
15
+ * It maintains the CTE queries themselves but restructures the query to not use
16
+ * the WITH clause syntactical construct.
17
+ */
18
+ class CTEDisabler {
19
+ constructor() {
20
+ this.visitedNodes = new Set();
21
+ this.isRootVisit = true;
22
+ this.handlers = new Map();
23
+ // Setup handlers for all component types that might contain WITH clauses
24
+ // SelectQuery types
25
+ this.handlers.set(SelectQuery_1.SimpleSelectQuery.kind, (expr) => this.visitSimpleSelectQuery(expr));
26
+ this.handlers.set(SelectQuery_1.BinarySelectQuery.kind, (expr) => this.visitBinarySelectQuery(expr));
27
+ this.handlers.set(SelectQuery_1.ValuesQuery.kind, (expr) => this.visitValuesQuery(expr));
28
+ // SelectComponent types
29
+ this.handlers.set(Clause_1.SelectItem.kind, (expr) => this.visitSelectItem(expr));
30
+ // Identifiers and raw strings
31
+ this.handlers.set(ValueComponent_1.IdentifierString.kind, (expr) => this.visitIdentifierString(expr));
32
+ this.handlers.set(ValueComponent_1.RawString.kind, (expr) => this.visitRawString(expr));
33
+ this.handlers.set(ValueComponent_1.ColumnReference.kind, (expr) => this.visitColumnReference(expr));
34
+ this.handlers.set(ValueComponent_1.ParameterExpression.kind, (expr) => this.visitParameterExpression(expr));
35
+ this.handlers.set(ValueComponent_1.LiteralValue.kind, (expr) => this.visitLiteralValue(expr));
36
+ // Source components
37
+ this.handlers.set(Clause_1.SourceExpression.kind, (expr) => this.visitSourceExpression(expr));
38
+ this.handlers.set(Clause_1.TableSource.kind, (expr) => this.visitTableSource(expr));
39
+ this.handlers.set(Clause_1.ParenSource.kind, (expr) => this.visitParenSource(expr));
40
+ // Subqueries and inline queries
41
+ this.handlers.set(Clause_1.SubQuerySource.kind, (expr) => this.visitSubQuerySource(expr));
42
+ this.handlers.set(ValueComponent_1.InlineQuery.kind, (expr) => this.visitInlineQuery(expr));
43
+ // FROM and JOIN clauses
44
+ this.handlers.set(Clause_1.FromClause.kind, (expr) => this.visitFromClause(expr));
45
+ this.handlers.set(Clause_1.JoinClause.kind, (expr) => this.visitJoinClause(expr));
46
+ this.handlers.set(Clause_1.JoinOnClause.kind, (expr) => this.visitJoinOnClause(expr));
47
+ this.handlers.set(Clause_1.JoinUsingClause.kind, (expr) => this.visitJoinUsingClause(expr));
48
+ // WHERE clause
49
+ this.handlers.set(Clause_1.WhereClause.kind, (expr) => this.visitWhereClause(expr));
50
+ // Value components that might contain subqueries
51
+ this.handlers.set(ValueComponent_1.ParenExpression.kind, (expr) => this.visitParenExpression(expr));
52
+ this.handlers.set(ValueComponent_1.BinaryExpression.kind, (expr) => this.visitBinaryExpression(expr));
53
+ this.handlers.set(ValueComponent_1.UnaryExpression.kind, (expr) => this.visitUnaryExpression(expr));
54
+ this.handlers.set(ValueComponent_1.CaseExpression.kind, (expr) => this.visitCaseExpression(expr));
55
+ this.handlers.set(ValueComponent_1.CaseKeyValuePair.kind, (expr) => this.visitCaseKeyValuePair(expr));
56
+ this.handlers.set(ValueComponent_1.SwitchCaseArgument.kind, (expr) => this.visitSwitchCaseArgument(expr));
57
+ this.handlers.set(ValueComponent_1.BetweenExpression.kind, (expr) => this.visitBetweenExpression(expr));
58
+ this.handlers.set(ValueComponent_1.FunctionCall.kind, (expr) => this.visitFunctionCall(expr));
59
+ this.handlers.set(ValueComponent_1.ArrayExpression.kind, (expr) => this.visitArrayExpression(expr));
60
+ this.handlers.set(ValueComponent_1.TupleExpression.kind, (expr) => this.visitTupleExpression(expr));
61
+ this.handlers.set(ValueComponent_1.CastExpression.kind, (expr) => this.visitCastExpression(expr));
62
+ this.handlers.set(ValueComponent_1.WindowFrameExpression.kind, (expr) => this.visitWindowFrameExpression(expr));
63
+ this.handlers.set(ValueComponent_1.WindowFrameSpec.kind, (expr) => this.visitWindowFrameSpec(expr));
64
+ this.handlers.set(ValueComponent_1.TypeValue.kind, (expr) => this.visitTypeValue(expr));
65
+ // Add handlers for other clause types
66
+ this.handlers.set(Clause_1.SelectClause.kind, (expr) => this.visitSelectClause(expr));
67
+ this.handlers.set(Clause_1.GroupByClause.kind, (expr) => this.visitGroupByClause(expr));
68
+ this.handlers.set(Clause_1.HavingClause.kind, (expr) => this.visitHavingClause(expr));
69
+ this.handlers.set(Clause_1.OrderByClause.kind, (expr) => this.visitOrderByClause(expr));
70
+ this.handlers.set(Clause_1.WindowFrameClause.kind, (expr) => this.visitWindowFrameClause(expr));
71
+ this.handlers.set(Clause_1.LimitClause.kind, (expr) => this.visitLimitClause(expr));
72
+ this.handlers.set(Clause_1.ForClause.kind, (expr) => this.visitForClause(expr));
73
+ this.handlers.set(Clause_1.OrderByItem.kind, (expr) => this.visitOrderByItem(expr));
74
+ }
75
+ /**
76
+ * Reset the visited nodes tracking
77
+ */
78
+ reset() {
79
+ this.visitedNodes.clear();
80
+ }
81
+ execute(arg) {
82
+ // Reset the visited nodes before starting the visit
83
+ this.reset();
84
+ return this.visit(arg);
85
+ }
86
+ /**
87
+ * Main entry point for the visitor pattern.
88
+ * Implements the shallow visit pattern to distinguish between root and recursive visits.
89
+ */
90
+ visit(arg) {
91
+ // If not a root visit, just visit the node and return
92
+ if (!this.isRootVisit) {
93
+ return this.visitNode(arg);
94
+ }
95
+ // If this is a root visit, we need to reset the state
96
+ this.reset();
97
+ this.isRootVisit = false;
98
+ try {
99
+ return this.visitNode(arg);
100
+ }
101
+ finally {
102
+ // Regardless of success or failure, reset the root visit flag
103
+ this.isRootVisit = true;
104
+ }
105
+ }
106
+ /**
107
+ * Internal visit method used for all nodes.
108
+ * This separates the visit flag management from the actual node visitation logic.
109
+ */
110
+ visitNode(arg) {
111
+ var _a, _b;
112
+ // Check for circular references - if node already visited, return as is
113
+ if (this.visitedNodes.has(arg)) {
114
+ return arg;
115
+ }
116
+ // Mark as visited node
117
+ this.visitedNodes.add(arg);
118
+ const handler = this.handlers.get(arg.getKind());
119
+ if (handler) {
120
+ return handler(arg);
121
+ }
122
+ // Provide more detailed error message
123
+ const kindSymbol = ((_a = arg.getKind()) === null || _a === void 0 ? void 0 : _a.toString()) || 'unknown';
124
+ const constructor = ((_b = arg.constructor) === null || _b === void 0 ? void 0 : _b.name) || 'unknown';
125
+ throw new Error(`No handler for ${constructor} with kind ${kindSymbol}. Consider adding a handler for this type.`);
126
+ }
127
+ visitSimpleSelectQuery(arg) {
128
+ if (arg.WithClause) {
129
+ arg.WithClause.tables.forEach(table => {
130
+ this.visit(table.query);
131
+ });
132
+ }
133
+ arg.WithClause = null; // Explicitly remove WITH clause
134
+ // Visit the components of the SimpleSelectQuery
135
+ arg.selectClause = this.visit(arg.selectClause);
136
+ arg.fromClause = arg.fromClause ? this.visit(arg.fromClause) : null;
137
+ arg.whereClause = arg.whereClause ? this.visit(arg.whereClause) : null;
138
+ arg.groupByClause = arg.groupByClause ? this.visit(arg.groupByClause) : null;
139
+ arg.havingClause = arg.havingClause ? this.visit(arg.havingClause) : null;
140
+ arg.orderByClause = arg.orderByClause ? this.visit(arg.orderByClause) : null;
141
+ arg.windowFrameClause = arg.windowFrameClause ? this.visit(arg.windowFrameClause) : null;
142
+ arg.rowLimitClause = arg.rowLimitClause ? this.visit(arg.rowLimitClause) : null;
143
+ arg.forClause = arg.forClause ? this.visit(arg.forClause) : null;
144
+ return arg;
145
+ }
146
+ visitBinarySelectQuery(query) {
147
+ query.left = this.visit(query.left);
148
+ query.right = this.visit(query.right);
149
+ return query;
150
+ }
151
+ visitValuesQuery(query) {
152
+ const newTuples = query.tuples.map(tuple => this.visit(tuple));
153
+ return new SelectQuery_1.ValuesQuery(newTuples);
154
+ }
155
+ visitSelectClause(clause) {
156
+ const newItems = clause.items.map(item => {
157
+ return this.visit(item);
158
+ });
159
+ return new Clause_1.SelectClause(newItems, clause.distinct);
160
+ }
161
+ visitFromClause(clause) {
162
+ const newSource = this.visit(clause.source);
163
+ const newJoins = clause.joins ? clause.joins.map(join => this.visit(join)) : null;
164
+ return new Clause_1.FromClause(newSource, newJoins);
165
+ }
166
+ visitSubQuerySource(subQuery) {
167
+ const newQuery = this.visit(subQuery.query);
168
+ return new Clause_1.SubQuerySource(newQuery);
169
+ }
170
+ visitInlineQuery(inlineQuery) {
171
+ const newQuery = this.visit(inlineQuery.selectQuery);
172
+ return new ValueComponent_1.InlineQuery(newQuery);
173
+ }
174
+ visitJoinClause(joinClause) {
175
+ const newSource = this.visit(joinClause.source);
176
+ const newCondition = joinClause.condition ? this.visit(joinClause.condition) : null;
177
+ return new Clause_1.JoinClause(joinClause.joinType.value, newSource, newCondition, joinClause.lateral);
178
+ }
179
+ visitJoinOnClause(joinOn) {
180
+ const newCondition = this.visit(joinOn.condition);
181
+ return new Clause_1.JoinOnClause(newCondition);
182
+ }
183
+ visitJoinUsingClause(joinUsing) {
184
+ const newCondition = this.visit(joinUsing.condition);
185
+ return new Clause_1.JoinUsingClause(newCondition);
186
+ }
187
+ visitWhereClause(whereClause) {
188
+ const newCondition = this.visit(whereClause.condition);
189
+ return new Clause_1.WhereClause(newCondition);
190
+ }
191
+ visitGroupByClause(clause) {
192
+ const newGrouping = clause.grouping.map(item => this.visit(item));
193
+ return new Clause_1.GroupByClause(newGrouping);
194
+ }
195
+ visitHavingClause(clause) {
196
+ const newCondition = this.visit(clause.condition);
197
+ return new Clause_1.HavingClause(newCondition);
198
+ }
199
+ visitOrderByClause(clause) {
200
+ const newOrder = clause.order.map(item => this.visit(item));
201
+ return new Clause_1.OrderByClause(newOrder);
202
+ }
203
+ visitWindowFrameClause(clause) {
204
+ const newExpression = this.visit(clause.expression);
205
+ return new Clause_1.WindowFrameClause(clause.name.name, newExpression);
206
+ }
207
+ visitLimitClause(clause) {
208
+ const newLimit = this.visit(clause.limit);
209
+ const newOffset = clause.offset ? this.visit(clause.offset) : null;
210
+ return new Clause_1.LimitClause(newLimit, newOffset);
211
+ }
212
+ visitForClause(clause) {
213
+ return new Clause_1.ForClause(clause.lockMode);
214
+ }
215
+ visitParenExpression(expr) {
216
+ const newExpression = this.visit(expr.expression);
217
+ return new ValueComponent_1.ParenExpression(newExpression);
218
+ }
219
+ visitBinaryExpression(expr) {
220
+ const newLeft = this.visit(expr.left);
221
+ const newRight = this.visit(expr.right);
222
+ return new ValueComponent_1.BinaryExpression(newLeft, expr.operator.value, newRight);
223
+ }
224
+ visitUnaryExpression(expr) {
225
+ const newExpression = this.visit(expr.expression);
226
+ return new ValueComponent_1.UnaryExpression(expr.operator.value, newExpression);
227
+ }
228
+ visitCaseExpression(expr) {
229
+ const newCondition = expr.condition ? this.visit(expr.condition) : null;
230
+ const newSwitchCase = this.visit(expr.switchCase);
231
+ return new ValueComponent_1.CaseExpression(newCondition, newSwitchCase);
232
+ }
233
+ visitSwitchCaseArgument(switchCase) {
234
+ const newCases = switchCase.cases.map(caseItem => this.visit(caseItem));
235
+ const newElseValue = switchCase.elseValue ? this.visit(switchCase.elseValue) : null;
236
+ return new ValueComponent_1.SwitchCaseArgument(newCases, newElseValue);
237
+ }
238
+ visitCaseKeyValuePair(pair) {
239
+ const newKey = this.visit(pair.key);
240
+ const newValue = this.visit(pair.value);
241
+ return new ValueComponent_1.CaseKeyValuePair(newKey, newValue);
242
+ }
243
+ visitBetweenExpression(expr) {
244
+ const newExpression = this.visit(expr.expression);
245
+ const newLower = this.visit(expr.lower);
246
+ const newUpper = this.visit(expr.upper);
247
+ return new ValueComponent_1.BetweenExpression(newExpression, newLower, newUpper, expr.negated);
248
+ }
249
+ visitFunctionCall(func) {
250
+ const newArgument = func.argument ? this.visit(func.argument) : null;
251
+ const newOver = func.over ? this.visit(func.over) : null;
252
+ return new ValueComponent_1.FunctionCall(func.name.value, newArgument, newOver);
253
+ }
254
+ visitArrayExpression(expr) {
255
+ const newExpression = this.visit(expr.expression);
256
+ return new ValueComponent_1.ArrayExpression(newExpression);
257
+ }
258
+ visitTupleExpression(expr) {
259
+ const newValues = expr.values.map(value => this.visit(value));
260
+ return new ValueComponent_1.TupleExpression(newValues);
261
+ }
262
+ visitCastExpression(expr) {
263
+ const newInput = this.visit(expr.input);
264
+ const newCastType = this.visit(expr.castType);
265
+ return new ValueComponent_1.CastExpression(newInput, newCastType);
266
+ }
267
+ visitTypeValue(typeValue) {
268
+ const newArgument = typeValue.argument ? this.visit(typeValue.argument) : null;
269
+ return new ValueComponent_1.TypeValue(typeValue.type.value, newArgument);
270
+ }
271
+ visitSelectItem(item) {
272
+ const newValue = this.visit(item.value);
273
+ return new Clause_1.SelectItem(newValue, item.identifier.name);
274
+ }
275
+ visitIdentifierString(ident) {
276
+ // Identifiers don't have child components, so just return as-is
277
+ return ident;
278
+ }
279
+ visitRawString(raw) {
280
+ // Raw strings don't have child components, so just return as-is
281
+ return raw;
282
+ }
283
+ visitColumnReference(column) {
284
+ // Column references don't have subqueries, so just return as-is
285
+ return column;
286
+ }
287
+ visitSourceExpression(source) {
288
+ const newSource = this.visit(source.datasource);
289
+ // SourceAliasEpression don't contain subqueries, so just return as-is
290
+ const newAlias = source.aliasExpression;
291
+ return new Clause_1.SourceExpression(newSource, newAlias);
292
+ }
293
+ visitTableSource(source) {
294
+ // Table sources don't contain subqueries, so just return as-is
295
+ return source;
296
+ }
297
+ visitParenSource(source) {
298
+ const newSource = this.visit(source.source);
299
+ return new Clause_1.ParenSource(newSource);
300
+ }
301
+ visitParameterExpression(param) {
302
+ // Parameter expressions don't have child components, so just return as-is
303
+ return param;
304
+ }
305
+ visitWindowFrameExpression(expr) {
306
+ const newPartition = expr.partition ? this.visit(expr.partition) : null;
307
+ const newOrder = expr.order ? this.visit(expr.order) : null;
308
+ const newFrameSpec = expr.frameSpec ? this.visit(expr.frameSpec) : null;
309
+ return new ValueComponent_1.WindowFrameExpression(newPartition, newOrder, newFrameSpec);
310
+ }
311
+ visitWindowFrameSpec(spec) {
312
+ // WindowFrameSpec is a simple value object, so return as-is
313
+ return spec;
314
+ }
315
+ visitLiteralValue(value) {
316
+ // Literal values are returned as-is
317
+ return value;
318
+ }
319
+ visitOrderByItem(item) {
320
+ const newValue = this.visit(item.value);
321
+ return new Clause_1.OrderByItem(newValue, item.sortDirection, item.nullsPosition);
322
+ }
323
+ }
324
+ exports.CTEDisabler = CTEDisabler;
325
+ //# sourceMappingURL=CTEDisabler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CTEDisabler.js","sourceRoot":"","sources":["../../src/transformers/CTEDisabler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CTEInjector = void 0;
4
+ const SelectQuery_1 = require("../models/SelectQuery");
5
+ const CTECollector_1 = require("./CTECollector");
6
+ const CTEBuilder_1 = require("./CTEBuilder");
7
+ /**
8
+ * CTEInjector accepts a SelectQuery object and an array of CommonTables,
9
+ * and inserts Common Table Expressions into the query.
10
+ * For BinarySelectQuery, CTEs are inserted into the left query.
11
+ *
12
+ * Uses CTENameConflictResolver to resolve naming conflicts between CTEs.
13
+ */
14
+ class CTEInjector {
15
+ constructor() {
16
+ this.nameConflictResolver = new CTEBuilder_1.CTEBuilder();
17
+ this.cteCollector = new CTECollector_1.CTECollector();
18
+ }
19
+ /**
20
+ * Inserts Common Table Expressions into a SelectQuery object.
21
+ *
22
+ * @param query The query to inject CTEs into
23
+ * @param commonTables Array of CommonTables to be inserted
24
+ * @returns A new query with the injected CTEs
25
+ */
26
+ inject(query, commonTables) {
27
+ // If the array is empty, return the query as is
28
+ if (commonTables.length === 0) {
29
+ return query;
30
+ }
31
+ // Collect CTEs from the query
32
+ commonTables.push(...this.cteCollector.collect(query));
33
+ // Use CTENameConflictResolver to resolve duplicates and sort in appropriate order
34
+ const resolvedWithCaluse = this.nameConflictResolver.build(commonTables);
35
+ // Process based on query type
36
+ if (query instanceof SelectQuery_1.SimpleSelectQuery) {
37
+ return this.injectIntoSimpleQuery(query, resolvedWithCaluse);
38
+ }
39
+ else if (query instanceof SelectQuery_1.BinarySelectQuery) {
40
+ return this.injectIntoBinaryQuery(query, resolvedWithCaluse);
41
+ }
42
+ // Unsupported query type
43
+ throw new Error("Unsupported query type");
44
+ }
45
+ /**
46
+ * Inserts Common Table Expressions into a SimpleSelectQuery.
47
+ *
48
+ * @param query The SimpleSelectQuery to inject CTEs into
49
+ * @param commonTables Array of CommonTables to be inserted
50
+ * @param needRecursive Boolean indicating if recursive WITH clause is needed
51
+ * @returns A new SimpleSelectQuery with the injected CTEs
52
+ */
53
+ injectIntoSimpleQuery(query, withClause) {
54
+ if (query.WithClause) {
55
+ throw new Error("The query already has a WITH clause. Please remove it before injecting new CTEs.");
56
+ }
57
+ // If the query doesn't have a WITH clause, set the new one
58
+ query.WithClause = withClause;
59
+ return query;
60
+ }
61
+ /**
62
+ * Inserts Common Table Expressions into the left query of a BinarySelectQuery.
63
+ *
64
+ * @param query The BinarySelectQuery to inject CTEs into
65
+ * @param commonTables Array of CommonTables to be inserted
66
+ * @param needRecursive Boolean indicating if recursive WITH clause is needed
67
+ * @returns A new BinarySelectQuery with the injected CTEs
68
+ */
69
+ injectIntoBinaryQuery(query, withClause) {
70
+ // Insert CTEs into the left query
71
+ if (query.left instanceof SelectQuery_1.SimpleSelectQuery) {
72
+ this.injectIntoSimpleQuery(query.left, withClause);
73
+ return query;
74
+ }
75
+ else if (query.left instanceof SelectQuery_1.BinarySelectQuery) {
76
+ this.injectIntoBinaryQuery(query.left, withClause);
77
+ return query;
78
+ }
79
+ throw new Error("Unsupported query type for BinarySelectQuery left side");
80
+ }
81
+ }
82
+ exports.CTEInjector = CTEInjector;
83
+ //# sourceMappingURL=CTEInjector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CTEInjector.js","sourceRoot":"","sources":["../../src/transformers/CTEInjector.ts"],"names":[],"mappings":";;;AACA,uDAAuG;AACvG,iDAA8C;AAC9C,6CAA0C;AAE1C;;;;;;GAMG;AACH,MAAa,WAAW;IAIpB;QACI,IAAI,CAAC,oBAAoB,GAAG,IAAI,uBAAU,EAAE,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,2BAAY,EAAE,CAAC;IAC3C,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,KAAkB,EAAE,YAA2B;QACzD,gDAAgD;QAChD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,8BAA8B;QAC9B,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAEvD,kFAAkF;QAClF,MAAM,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAEzE,8BAA8B;QAC9B,IAAI,KAAK,YAAY,+BAAiB,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACjE,CAAC;aAAM,IAAI,KAAK,YAAY,+BAAiB,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACjE,CAAC;QAED,yBAAyB;QACzB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;;OAOG;IACK,qBAAqB,CAAC,KAAwB,EAAE,UAAsB;QAC1E,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;QACxG,CAAC;QACD,2DAA2D;QAC3D,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QAC9B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;;OAOG;IACK,qBAAqB,CAAC,KAAwB,EAAE,UAAsB;QAC1E,kCAAkC;QAClC,IAAI,KAAK,CAAC,IAAI,YAAY,+BAAiB,EAAE,CAAC;YAC1C,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACnD,OAAO,KAAK,CAAC;QACjB,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,YAAY,+BAAiB,EAAE,CAAC;YACjD,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACnD,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC9E,CAAC;CACJ;AA3ED,kCA2EC"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CTENormalizer = void 0;
4
+ const CTECollector_1 = require("./CTECollector");
5
+ const CTEDisabler_1 = require("./CTEDisabler");
6
+ const CTEInjector_1 = require("./CTEInjector");
7
+ /**
8
+ * CTENormalizer is responsible for normalizing Common Table Expressions (CTEs) within SQL queries.
9
+ * It collects all CTEs from various parts of the query and consolidates them into a single WITH clause
10
+ * at the root level of the query.
11
+ *
12
+ * This implementation uses:
13
+ * 1. CommonTableCollector - to gather all CTEs from the query structure
14
+ * 2. WithClauseDisabler - to remove all original WITH clauses from the query
15
+ * 3. CTENameConflictResolver - to resolve name conflicts among CTEs and sort them properly
16
+ */
17
+ class CTENormalizer {
18
+ constructor() {
19
+ this.cteCollector = new CTECollector_1.CTECollector();
20
+ this.cteDisabler = new CTEDisabler_1.CTEDisabler();
21
+ this.injector = new CTEInjector_1.CTEInjector();
22
+ }
23
+ /**
24
+ * Normalizes a SQL query by consolidating all CTEs into a single WITH clause
25
+ * at the root level of the query.
26
+ *
27
+ * @param query The query to normalize
28
+ * @returns A new normalized query with all CTEs at the root level
29
+ */
30
+ normalize(query) {
31
+ // No need to normalize if the query doesn't have any CTEs
32
+ const allCommonTables = this.cteCollector.collect(query);
33
+ if (allCommonTables.length === 0) {
34
+ return query;
35
+ }
36
+ // Remove all WITH clauses from the original query
37
+ this.cteDisabler.execute(query);
38
+ return this.injector.inject(query, allCommonTables);
39
+ }
40
+ }
41
+ exports.CTENormalizer = CTENormalizer;
42
+ //# sourceMappingURL=CTENormalizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CTENormalizer.js","sourceRoot":"","sources":["../../src/transformers/CTENormalizer.ts"],"names":[],"mappings":";;;AAEA,iDAA8C;AAE9C,+CAA4C;AAG5C,+CAA4C;AAE5C;;;;;;;;;GASG;AACH,MAAa,aAAa;IAKtB;QACI,IAAI,CAAC,YAAY,GAAG,IAAI,2BAAY,EAAE,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,IAAI,yBAAW,EAAE,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,yBAAW,EAAE,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACI,SAAS,CAAC,KAAkB;QAC/B,0DAA0D;QAC1D,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEzD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,kDAAkD;QAClD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEhC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IACxD,CAAC;CACJ;AA/BD,sCA+BC"}