rawsql-ts 0.11.26-beta → 0.11.28-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 (43) hide show
  1. package/dist/esm/index.js +1 -0
  2. package/dist/esm/index.js.map +1 -1
  3. package/dist/esm/index.min.js +23 -23
  4. package/dist/esm/index.min.js.map +4 -4
  5. package/dist/esm/src/index.d.ts +1 -0
  6. package/dist/esm/src/index.js +1 -0
  7. package/dist/esm/src/index.js.map +1 -1
  8. package/dist/esm/src/transformers/CTEDependencyAnalyzer.d.ts +1 -0
  9. package/dist/esm/src/transformers/CTEDependencyAnalyzer.js +10 -2
  10. package/dist/esm/src/transformers/CTEDependencyAnalyzer.js.map +1 -1
  11. package/dist/esm/src/transformers/CTEQueryDecomposer.d.ts +6 -0
  12. package/dist/esm/src/transformers/CTEQueryDecomposer.js +79 -1
  13. package/dist/esm/src/transformers/CTEQueryDecomposer.js.map +1 -1
  14. package/dist/esm/src/transformers/CTETableReferenceCollector.d.ts +87 -0
  15. package/dist/esm/src/transformers/CTETableReferenceCollector.js +354 -0
  16. package/dist/esm/src/transformers/CTETableReferenceCollector.js.map +1 -0
  17. package/dist/esm/src/transformers/SchemaCollector.d.ts +3 -1
  18. package/dist/esm/src/transformers/SchemaCollector.js +141 -6
  19. package/dist/esm/src/transformers/SchemaCollector.js.map +1 -1
  20. package/dist/esm/src/transformers/TableSourceCollector.js +2 -2
  21. package/dist/esm/src/transformers/TableSourceCollector.js.map +1 -1
  22. package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
  23. package/dist/index.min.js +25 -25
  24. package/dist/index.min.js.map +4 -4
  25. package/dist/src/index.d.ts +1 -0
  26. package/dist/src/index.js +1 -0
  27. package/dist/src/index.js.map +1 -1
  28. package/dist/src/transformers/CTEDependencyAnalyzer.d.ts +1 -0
  29. package/dist/src/transformers/CTEDependencyAnalyzer.js +10 -2
  30. package/dist/src/transformers/CTEDependencyAnalyzer.js.map +1 -1
  31. package/dist/src/transformers/CTEQueryDecomposer.d.ts +6 -0
  32. package/dist/src/transformers/CTEQueryDecomposer.js +79 -1
  33. package/dist/src/transformers/CTEQueryDecomposer.js.map +1 -1
  34. package/dist/src/transformers/CTETableReferenceCollector.d.ts +87 -0
  35. package/dist/src/transformers/CTETableReferenceCollector.js +358 -0
  36. package/dist/src/transformers/CTETableReferenceCollector.js.map +1 -0
  37. package/dist/src/transformers/SchemaCollector.d.ts +3 -1
  38. package/dist/src/transformers/SchemaCollector.js +141 -6
  39. package/dist/src/transformers/SchemaCollector.js.map +1 -1
  40. package/dist/src/transformers/TableSourceCollector.js +2 -2
  41. package/dist/src/transformers/TableSourceCollector.js.map +1 -1
  42. package/dist/tsconfig.tsbuildinfo +1 -1
  43. package/package.json +1 -1
@@ -0,0 +1,354 @@
1
+ import { FetchClause, ForClause, FromClause, FunctionSource, GroupByClause, HavingClause, JoinClause, JoinOnClause, JoinUsingClause, LimitClause, OffsetClause, OrderByClause, OrderByItem, ParenSource, SelectClause, SelectItem, SourceExpression, SubQuerySource, TableSource, WhereClause, WindowFrameClause } from "../models/Clause";
2
+ import { BinarySelectQuery, SimpleSelectQuery, ValuesQuery } from "../models/SelectQuery";
3
+ import { ArrayExpression, ArrayQueryExpression, BetweenExpression, BinaryExpression, CaseExpression, CaseKeyValuePair, CastExpression, FunctionCall, InlineQuery, ParenExpression, SwitchCaseArgument, TupleExpression, UnaryExpression, ValueList, RawString, StringSpecifierExpression } from "../models/ValueComponent";
4
+ /**
5
+ * A specialized table source collector designed for CTE dependency analysis.
6
+ *
7
+ * Unlike the general-purpose TableSourceCollector, this collector:
8
+ * - Always includes CTE references in results (treats CTEs as valid table sources)
9
+ * - Always performs deep traversal of subqueries, WHERE clauses, etc.
10
+ * - Is optimized for dependency analysis rather than database schema analysis
11
+ *
12
+ * This collector is specifically designed for use by CTEDependencyAnalyzer to track
13
+ * which tables/CTEs are referenced by queries at any nesting level.
14
+ */
15
+ export class CTETableReferenceCollector {
16
+ constructor() {
17
+ this.tableSources = [];
18
+ this.visitedNodes = new Set();
19
+ this.tableNameMap = new Map();
20
+ this.isRootVisit = true;
21
+ this.handlers = new Map();
22
+ // Setup handlers for query components
23
+ this.handlers.set(SimpleSelectQuery.kind, (expr) => this.visitSimpleSelectQuery(expr));
24
+ this.handlers.set(BinarySelectQuery.kind, (expr) => this.visitBinarySelectQuery(expr));
25
+ this.handlers.set(ValuesQuery.kind, (expr) => this.visitValuesQuery(expr));
26
+ // Note: We intentionally do NOT handle WITH clause and CommonTable
27
+ // These are processed separately by CTEDependencyAnalyzer for CTE-to-CTE dependencies
28
+ // Handlers for FROM and JOIN components
29
+ this.handlers.set(FromClause.kind, (expr) => this.visitFromClause(expr));
30
+ this.handlers.set(JoinClause.kind, (expr) => this.visitJoinClause(expr));
31
+ this.handlers.set(JoinOnClause.kind, (expr) => this.visitJoinOnClause(expr));
32
+ this.handlers.set(JoinUsingClause.kind, (expr) => this.visitJoinUsingClause(expr));
33
+ // Source components
34
+ this.handlers.set(SourceExpression.kind, (expr) => this.visitSourceExpression(expr));
35
+ this.handlers.set(TableSource.kind, (expr) => this.visitTableSource(expr));
36
+ this.handlers.set(FunctionSource.kind, (expr) => this.visitFunctionSource(expr));
37
+ this.handlers.set(ParenSource.kind, (expr) => this.visitParenSource(expr));
38
+ this.handlers.set(SubQuerySource.kind, (expr) => this.visitSubQuerySource(expr));
39
+ this.handlers.set(InlineQuery.kind, (expr) => this.visitInlineQuery(expr));
40
+ // Additional clause handlers for full scanning
41
+ this.handlers.set(WhereClause.kind, (expr) => this.visitWhereClause(expr));
42
+ this.handlers.set(GroupByClause.kind, (expr) => this.visitGroupByClause(expr));
43
+ this.handlers.set(HavingClause.kind, (expr) => this.visitHavingClause(expr));
44
+ this.handlers.set(OrderByClause.kind, (expr) => this.visitOrderByClause(expr));
45
+ this.handlers.set(WindowFrameClause.kind, (expr) => this.visitWindowFrameClause(expr));
46
+ this.handlers.set(LimitClause.kind, (expr) => this.visitLimitClause(expr));
47
+ this.handlers.set(OffsetClause.kind, (expr) => this.visitOffsetClause(expr));
48
+ this.handlers.set(FetchClause.kind, (expr) => this.visitFetchClause(expr));
49
+ this.handlers.set(ForClause.kind, (expr) => this.visitForClause(expr));
50
+ this.handlers.set(OrderByItem.kind, (expr) => this.visitOrderByItem(expr));
51
+ this.handlers.set(SelectClause.kind, (expr) => this.visitSelectClause(expr));
52
+ this.handlers.set(SelectItem.kind, (expr) => this.visitSelectItem(expr));
53
+ // Value components that might contain table references
54
+ this.handlers.set(ParenExpression.kind, (expr) => this.visitParenExpression(expr));
55
+ this.handlers.set(BinaryExpression.kind, (expr) => this.visitBinaryExpression(expr));
56
+ this.handlers.set(UnaryExpression.kind, (expr) => this.visitUnaryExpression(expr));
57
+ this.handlers.set(CaseExpression.kind, (expr) => this.visitCaseExpression(expr));
58
+ this.handlers.set(CaseKeyValuePair.kind, (expr) => this.visitCaseKeyValuePair(expr));
59
+ this.handlers.set(SwitchCaseArgument.kind, (expr) => this.visitSwitchCaseArgument(expr));
60
+ this.handlers.set(BetweenExpression.kind, (expr) => this.visitBetweenExpression(expr));
61
+ this.handlers.set(FunctionCall.kind, (expr) => this.visitFunctionCall(expr));
62
+ this.handlers.set(ArrayExpression.kind, (expr) => this.visitArrayExpression(expr));
63
+ this.handlers.set(ArrayQueryExpression.kind, (expr) => this.visitArrayQueryExpression(expr));
64
+ this.handlers.set(TupleExpression.kind, (expr) => this.visitTupleExpression(expr));
65
+ this.handlers.set(CastExpression.kind, (expr) => this.visitCastExpression(expr));
66
+ this.handlers.set(ValueList.kind, (expr) => this.visitValueList(expr));
67
+ this.handlers.set(StringSpecifierExpression.kind, (expr) => this.visitStringSpecifierExpression(expr));
68
+ }
69
+ /**
70
+ * Collects all table references from the given SQL component
71
+ * @param query The SQL component to analyze
72
+ * @returns Array of TableSource objects representing all table references
73
+ */
74
+ collect(query) {
75
+ this.visit(query);
76
+ return this.getTableSources();
77
+ }
78
+ /**
79
+ * Gets all collected table sources
80
+ */
81
+ getTableSources() {
82
+ return this.tableSources;
83
+ }
84
+ /**
85
+ * Reset the collection of table sources
86
+ */
87
+ reset() {
88
+ this.tableSources = [];
89
+ this.tableNameMap.clear();
90
+ this.visitedNodes.clear();
91
+ }
92
+ /**
93
+ * Gets a unique identifier for a table source
94
+ */
95
+ getTableIdentifier(source) {
96
+ // Use QualifiedName for identifier (dot-joined string)
97
+ if (source.qualifiedName.namespaces && source.qualifiedName.namespaces.length > 0) {
98
+ return source.qualifiedName.namespaces.map(ns => ns.name).join('.') + '.' + (source.qualifiedName.name instanceof RawString ? source.qualifiedName.name.value : source.qualifiedName.name.name);
99
+ }
100
+ else {
101
+ return source.qualifiedName.name instanceof RawString ? source.qualifiedName.name.value : source.qualifiedName.name.name;
102
+ }
103
+ }
104
+ /**
105
+ * Main entry point for the visitor pattern.
106
+ */
107
+ visit(arg) {
108
+ // If not a root visit, just visit the node and return
109
+ if (!this.isRootVisit) {
110
+ this.visitNode(arg);
111
+ return;
112
+ }
113
+ // If this is a root visit, we need to reset the state
114
+ this.reset();
115
+ this.isRootVisit = false;
116
+ try {
117
+ this.visitNode(arg);
118
+ }
119
+ finally {
120
+ // Regardless of success or failure, reset the root visit flag
121
+ this.isRootVisit = true;
122
+ }
123
+ }
124
+ /**
125
+ * Internal visit method used for all nodes.
126
+ */
127
+ visitNode(arg) {
128
+ // Skip if we've already visited this node to prevent infinite recursion
129
+ if (this.visitedNodes.has(arg)) {
130
+ return;
131
+ }
132
+ // Mark as visited
133
+ this.visitedNodes.add(arg);
134
+ const handler = this.handlers.get(arg.getKind());
135
+ if (handler) {
136
+ handler(arg);
137
+ return;
138
+ }
139
+ // If no handler found, that's ok - we only care about specific components
140
+ }
141
+ visitSimpleSelectQuery(query) {
142
+ // Skip WITH clause processing - we only want to collect table references from the main query parts
143
+ // The WITH clause is handled separately by CTEDependencyAnalyzer for CTE-to-CTE dependencies
144
+ if (query.fromClause) {
145
+ query.fromClause.accept(this);
146
+ }
147
+ if (query.whereClause) {
148
+ query.whereClause.accept(this);
149
+ }
150
+ if (query.groupByClause) {
151
+ query.groupByClause.accept(this);
152
+ }
153
+ if (query.havingClause) {
154
+ query.havingClause.accept(this);
155
+ }
156
+ if (query.orderByClause) {
157
+ query.orderByClause.accept(this);
158
+ }
159
+ if (query.windowClause) {
160
+ for (const win of query.windowClause.windows) {
161
+ win.accept(this);
162
+ }
163
+ }
164
+ if (query.limitClause) {
165
+ query.limitClause.accept(this);
166
+ }
167
+ if (query.offsetClause) {
168
+ query.offsetClause.accept(this);
169
+ }
170
+ if (query.fetchClause) {
171
+ query.fetchClause.accept(this);
172
+ }
173
+ if (query.forClause) {
174
+ query.forClause.accept(this);
175
+ }
176
+ query.selectClause.accept(this);
177
+ }
178
+ visitBinarySelectQuery(query) {
179
+ // For UNION-like queries, visit both sides
180
+ query.left.accept(this);
181
+ query.right.accept(this);
182
+ }
183
+ visitValuesQuery(query) {
184
+ // VALUES queries might contain subqueries in tuple expressions
185
+ for (const tuple of query.tuples) {
186
+ tuple.accept(this);
187
+ }
188
+ }
189
+ visitFromClause(fromClause) {
190
+ // Check the main source in FROM clause
191
+ fromClause.source.accept(this);
192
+ // Check all JOIN clauses
193
+ if (fromClause.joins) {
194
+ for (const join of fromClause.joins) {
195
+ join.accept(this);
196
+ }
197
+ }
198
+ }
199
+ visitSourceExpression(source) {
200
+ // Process the actual data source, ignoring aliases
201
+ source.datasource.accept(this);
202
+ }
203
+ visitTableSource(source) {
204
+ // Get the table identifier for uniqueness check
205
+ const identifier = this.getTableIdentifier(source);
206
+ // Include all table sources (both real tables and CTEs)
207
+ if (!this.tableNameMap.has(identifier)) {
208
+ this.tableNameMap.set(identifier, true);
209
+ this.tableSources.push(source);
210
+ }
211
+ }
212
+ visitFunctionSource(source) {
213
+ // Function sources are not regular table sources, but may contain subqueries in their arguments
214
+ if (source.argument) {
215
+ this.visitValueComponent(source.argument);
216
+ }
217
+ }
218
+ visitValueComponent(value) {
219
+ value.accept(this);
220
+ }
221
+ visitParenSource(source) {
222
+ source.source.accept(this);
223
+ }
224
+ visitSubQuerySource(subQuery) {
225
+ // Always check subqueries in CTE analysis mode
226
+ subQuery.query.accept(this);
227
+ }
228
+ visitInlineQuery(inlineQuery) {
229
+ // Always visit inline queries
230
+ inlineQuery.selectQuery.accept(this);
231
+ }
232
+ visitJoinClause(joinClause) {
233
+ // Visit the source being joined
234
+ joinClause.source.accept(this);
235
+ // Visit the join condition
236
+ if (joinClause.condition) {
237
+ joinClause.condition.accept(this);
238
+ }
239
+ }
240
+ visitJoinOnClause(joinOn) {
241
+ joinOn.condition.accept(this);
242
+ }
243
+ visitJoinUsingClause(joinUsing) {
244
+ joinUsing.condition.accept(this);
245
+ }
246
+ // Additional visitor methods for comprehensive analysis
247
+ visitWhereClause(whereClause) {
248
+ whereClause.condition.accept(this);
249
+ }
250
+ visitGroupByClause(clause) {
251
+ for (const item of clause.grouping) {
252
+ item.accept(this);
253
+ }
254
+ }
255
+ visitHavingClause(clause) {
256
+ clause.condition.accept(this);
257
+ }
258
+ visitOrderByClause(clause) {
259
+ for (const item of clause.order) {
260
+ item.accept(this);
261
+ }
262
+ }
263
+ visitWindowFrameClause(clause) {
264
+ clause.expression.accept(this);
265
+ }
266
+ visitLimitClause(clause) {
267
+ clause.value.accept(this);
268
+ }
269
+ visitOffsetClause(clause) {
270
+ clause.value.accept(this);
271
+ }
272
+ visitFetchClause(clause) {
273
+ clause.expression.accept(this);
274
+ }
275
+ visitForClause(_clause) {
276
+ // FOR clause doesn't contain table sources
277
+ }
278
+ visitOrderByItem(item) {
279
+ item.value.accept(this);
280
+ }
281
+ visitSelectClause(clause) {
282
+ for (const item of clause.items) {
283
+ item.accept(this);
284
+ }
285
+ }
286
+ visitSelectItem(item) {
287
+ item.value.accept(this);
288
+ }
289
+ visitParenExpression(expr) {
290
+ expr.expression.accept(this);
291
+ }
292
+ visitBinaryExpression(expr) {
293
+ expr.left.accept(this);
294
+ expr.right.accept(this);
295
+ }
296
+ visitUnaryExpression(expr) {
297
+ expr.expression.accept(this);
298
+ }
299
+ visitCaseExpression(expr) {
300
+ if (expr.condition) {
301
+ expr.condition.accept(this);
302
+ }
303
+ expr.switchCase.accept(this);
304
+ }
305
+ visitSwitchCaseArgument(switchCase) {
306
+ for (const caseItem of switchCase.cases) {
307
+ caseItem.accept(this);
308
+ }
309
+ if (switchCase.elseValue) {
310
+ switchCase.elseValue.accept(this);
311
+ }
312
+ }
313
+ visitCaseKeyValuePair(pair) {
314
+ pair.key.accept(this);
315
+ pair.value.accept(this);
316
+ }
317
+ visitBetweenExpression(expr) {
318
+ expr.expression.accept(this);
319
+ expr.lower.accept(this);
320
+ expr.upper.accept(this);
321
+ }
322
+ visitFunctionCall(func) {
323
+ if (func.argument) {
324
+ func.argument.accept(this);
325
+ }
326
+ if (func.over) {
327
+ func.over.accept(this);
328
+ }
329
+ }
330
+ visitArrayExpression(expr) {
331
+ expr.expression.accept(this);
332
+ }
333
+ visitArrayQueryExpression(expr) {
334
+ expr.query.accept(this);
335
+ }
336
+ visitTupleExpression(expr) {
337
+ for (const value of expr.values) {
338
+ value.accept(this);
339
+ }
340
+ }
341
+ visitCastExpression(expr) {
342
+ expr.input.accept(this);
343
+ expr.castType.accept(this);
344
+ }
345
+ visitValueList(valueList) {
346
+ for (const value of valueList.values) {
347
+ value.accept(this);
348
+ }
349
+ }
350
+ visitStringSpecifierExpression(_expr) {
351
+ // StringSpecifierExpression doesn't contain table references
352
+ }
353
+ }
354
+ //# sourceMappingURL=CTETableReferenceCollector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CTETableReferenceCollector.js","sourceRoot":"","sources":["../../../../src/transformers/CTETableReferenceCollector.ts"],"names":[],"mappings":"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"}
@@ -70,7 +70,7 @@ export declare class SchemaCollector implements SqlComponentVisitor<void> {
70
70
  * Note: The resulting schemas and columns are sorted alphabetically to ensure deterministic ordering.
71
71
  */
72
72
  private consolidateTableSchemas;
73
- private handleTableSource;
73
+ private handleSourceExpression;
74
74
  private visitSimpleSelectQuery;
75
75
  private visitBinarySelectQuery;
76
76
  /**
@@ -78,4 +78,6 @@ export declare class SchemaCollector implements SqlComponentVisitor<void> {
78
78
  */
79
79
  private getSelectClauseColumns;
80
80
  private processCollectTableSchema;
81
+ private processCTETableSchema;
82
+ private getCTEColumns;
81
83
  }
@@ -154,21 +154,32 @@ export class SchemaCollector {
154
154
  return new TableSchema(name, Array.from(columns).sort()); // Sort columns alphabetically
155
155
  });
156
156
  }
157
- handleTableSource(source, queryColumns, includeUnnamed) {
158
- var _a;
157
+ handleSourceExpression(source, queryColumns, includeUnnamed) {
158
+ var _a, _b;
159
159
  if (source.datasource instanceof TableSource) {
160
160
  const tableName = source.datasource.getSourceName();
161
161
  const cte = this.commonTables.filter((table) => table.getSourceAliasName() === tableName);
162
162
  if (cte.length > 0) {
163
+ // Process the CTE query recursively
163
164
  cte[0].query.accept(this);
165
+ // Also collect schema information for the CTE itself
166
+ const cteAlias = (_a = source.getAliasName()) !== null && _a !== void 0 ? _a : tableName;
167
+ this.processCTETableSchema(cte[0], cteAlias, queryColumns, includeUnnamed);
164
168
  }
165
169
  else {
166
- const tableAlias = (_a = source.getAliasName()) !== null && _a !== void 0 ? _a : tableName;
170
+ const tableAlias = (_b = source.getAliasName()) !== null && _b !== void 0 ? _b : tableName;
167
171
  this.processCollectTableSchema(tableName, tableAlias, queryColumns, includeUnnamed);
168
172
  }
169
173
  }
174
+ else if (source.datasource instanceof SubQuerySource) {
175
+ // Process subqueries recursively
176
+ this.visitNode(source.datasource.query);
177
+ // For subqueries, we don't add schema information directly as they're derived
178
+ // The schema will be collected from the inner query
179
+ }
170
180
  else {
171
- throw new Error("Datasource is not an instance of TableSource");
181
+ // For other source types (FunctionSource, ParenSource), we skip schema collection
182
+ // as they don't represent table schemas in the traditional sense
172
183
  }
173
184
  }
174
185
  visitSimpleSelectQuery(query) {
@@ -251,7 +262,7 @@ export class SchemaCollector {
251
262
  }
252
263
  // Handle the main FROM clause table
253
264
  if (query.fromClause.source.datasource instanceof TableSource) {
254
- this.handleTableSource(query.fromClause.source, queryColumns, true);
265
+ this.handleSourceExpression(query.fromClause.source, queryColumns, true);
255
266
  }
256
267
  else if (query.fromClause.source.datasource instanceof SubQuerySource) {
257
268
  query.fromClause.source.datasource.query.accept(this);
@@ -260,7 +271,7 @@ export class SchemaCollector {
260
271
  if ((_a = query.fromClause) === null || _a === void 0 ? void 0 : _a.joins) {
261
272
  for (const join of query.fromClause.joins) {
262
273
  if (join.source.datasource instanceof TableSource) {
263
- this.handleTableSource(join.source, queryColumns, false);
274
+ this.handleSourceExpression(join.source, queryColumns, false);
264
275
  }
265
276
  else if (join.source.datasource instanceof SubQuerySource) {
266
277
  join.source.datasource.query.accept(this);
@@ -324,5 +335,129 @@ export class SchemaCollector {
324
335
  const tableSchema = new TableSchema(tableName, tableColumns);
325
336
  this.tableSchemas.push(tableSchema);
326
337
  }
338
+ processCTETableSchema(cte, cteAlias, queryColumns, includeUnnamed = false) {
339
+ const cteName = cte.getSourceAliasName();
340
+ // Get the columns that the CTE exposes by analyzing its SELECT clause
341
+ const cteColumns = this.getCTEColumns(cte);
342
+ // Filter query columns that reference this CTE
343
+ const cteReferencedColumns = queryColumns
344
+ .filter((columnRef) => columnRef.table === cteAlias || (includeUnnamed && columnRef.table === ""))
345
+ .map((columnRef) => columnRef.column);
346
+ // Handle wildcards for CTEs
347
+ if (cteReferencedColumns.includes("*")) {
348
+ if (this.tableColumnResolver !== null) {
349
+ // Try to resolve columns using the resolver first
350
+ const resolvedColumns = this.tableColumnResolver(cteName);
351
+ if (resolvedColumns.length > 0) {
352
+ const tableSchema = new TableSchema(cteName, resolvedColumns);
353
+ this.tableSchemas.push(tableSchema);
354
+ return;
355
+ }
356
+ }
357
+ // If we can determine CTE columns, use them for wildcard expansion
358
+ if (cteColumns.length > 0) {
359
+ const tableSchema = new TableSchema(cteName, cteColumns);
360
+ this.tableSchemas.push(tableSchema);
361
+ return;
362
+ }
363
+ else if (this.allowWildcardWithoutResolver) {
364
+ // Allow wildcards but with empty columns since we can't determine them
365
+ const tableSchema = new TableSchema(cteName, []);
366
+ this.tableSchemas.push(tableSchema);
367
+ return;
368
+ }
369
+ else {
370
+ // Handle wildcard error
371
+ const errorMessage = `Wildcard (*) is used. A TableColumnResolver is required to resolve wildcards. Target table: ${cteName}`;
372
+ if (this.isAnalyzeMode) {
373
+ this.analysisError = errorMessage;
374
+ this.unresolvedColumns.push(cteAlias ? `${cteAlias}.*` : "*");
375
+ }
376
+ else {
377
+ throw new Error(errorMessage);
378
+ }
379
+ return;
380
+ }
381
+ }
382
+ // Process specific column references
383
+ let tableColumns = cteReferencedColumns.filter((column) => column !== "*");
384
+ // Validate column references against CTE columns in analyze mode
385
+ if (this.isAnalyzeMode) {
386
+ let availableColumns = cteColumns;
387
+ // Try to get columns from resolver first if available
388
+ if (this.tableColumnResolver) {
389
+ const resolvedColumns = this.tableColumnResolver(cteName);
390
+ if (resolvedColumns.length > 0) {
391
+ availableColumns = resolvedColumns;
392
+ }
393
+ }
394
+ const invalidColumns = tableColumns.filter((column) => !availableColumns.includes(column));
395
+ if (invalidColumns.length > 0) {
396
+ this.unresolvedColumns.push(...invalidColumns);
397
+ if (!this.analysisError) {
398
+ this.analysisError = `Undefined column(s) found in CTE "${cteName}": ${invalidColumns.join(', ')}`;
399
+ }
400
+ }
401
+ }
402
+ // Add the CTE schema
403
+ const tableSchema = new TableSchema(cteName, tableColumns);
404
+ this.tableSchemas.push(tableSchema);
405
+ }
406
+ getCTEColumns(cte) {
407
+ var _a;
408
+ try {
409
+ // Try to get select items from the CTE query
410
+ if (cte.query instanceof SimpleSelectQuery && cte.query.selectClause) {
411
+ const selectItems = cte.query.selectClause.items;
412
+ const columns = [];
413
+ for (const item of selectItems) {
414
+ if (item.value instanceof ColumnReference) {
415
+ const columnName = ((_a = item.identifier) === null || _a === void 0 ? void 0 : _a.name) || item.value.column.name;
416
+ if (item.value.column.name === "*") {
417
+ // For wildcards in CTE definitions, we need special handling
418
+ const tableNamespace = item.value.getNamespace();
419
+ if (tableNamespace) {
420
+ // Try to find the referenced CTE or table
421
+ const referencedCTE = this.commonTables.find(cte => cte.getSourceAliasName() === tableNamespace);
422
+ if (referencedCTE) {
423
+ // Recursively get columns from the referenced CTE
424
+ const referencedColumns = this.getCTEColumns(referencedCTE);
425
+ if (referencedColumns.length > 0) {
426
+ columns.push(...referencedColumns);
427
+ continue;
428
+ }
429
+ }
430
+ }
431
+ // If we can't resolve the wildcard, we mark this CTE as having unknown columns
432
+ // This will be handled by the wildcard processing logic later
433
+ return [];
434
+ }
435
+ else {
436
+ columns.push(columnName);
437
+ }
438
+ }
439
+ else {
440
+ // For expressions, functions, etc., use the identifier if available
441
+ if (item.identifier) {
442
+ columns.push(item.identifier.name);
443
+ }
444
+ }
445
+ }
446
+ return columns.filter((name, index, array) => array.indexOf(name) === index); // Remove duplicates
447
+ }
448
+ // Fallback: try using SelectableColumnCollector
449
+ const columnCollector = new SelectableColumnCollector(null, true, DuplicateDetectionMode.FullName);
450
+ const columns = columnCollector.collect(cte.query);
451
+ return columns
452
+ .filter((column) => column.value instanceof ColumnReference)
453
+ .map(column => column.value)
454
+ .map(columnRef => columnRef.column.name)
455
+ .filter((name, index, array) => array.indexOf(name) === index); // Remove duplicates
456
+ }
457
+ catch (error) {
458
+ // If we can't determine the columns, return empty array
459
+ return [];
460
+ }
461
+ }
327
462
  }
328
463
  //# sourceMappingURL=SchemaCollector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaCollector.js","sourceRoot":"","sources":["../../../../src/transformers/SchemaCollector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SchemaCollector.js","sourceRoot":"","sources":["../../../../src/transformers/SchemaCollector.ts"],"names":[],"mappings":"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"}
@@ -345,7 +345,7 @@ export class TableSourceCollector {
345
345
  visitFetchClause(clause) {
346
346
  clause.expression.accept(this);
347
347
  }
348
- visitForClause(clause) {
348
+ visitForClause(_clause) {
349
349
  // FOR clause doesn't contain table sources
350
350
  }
351
351
  visitOrderByItem(item) {
@@ -422,7 +422,7 @@ export class TableSourceCollector {
422
422
  }
423
423
  }
424
424
  // Handle StringSpecifierExpression (PostgreSQL E-strings)
425
- visitStringSpecifierExpression(expr) {
425
+ visitStringSpecifierExpression(_expr) {
426
426
  // StringSpecifierExpression is just a literal string with an escape specifier
427
427
  // It doesn't contain table references, so we don't need to visit any children
428
428
  // This is a no-op method to prevent "No handler" errors