rawsql-ts 0.11.32-beta → 0.11.33-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 +9 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +37 -29
- package/dist/esm/index.min.js.map +4 -4
- package/dist/esm/src/formatters/OriginalFormatRestorer.d.ts +40 -0
- package/dist/esm/src/formatters/OriginalFormatRestorer.js +135 -0
- package/dist/esm/src/formatters/OriginalFormatRestorer.js.map +1 -0
- package/dist/esm/src/index.d.ts +11 -0
- package/dist/esm/src/index.js +9 -0
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/models/FormattingLexeme.d.ts +66 -0
- package/dist/esm/src/models/FormattingLexeme.js +2 -0
- package/dist/esm/src/models/FormattingLexeme.js.map +1 -0
- package/dist/esm/src/models/ValueComponent.d.ts +3 -1
- package/dist/esm/src/models/ValueComponent.js +3 -1
- package/dist/esm/src/models/ValueComponent.js.map +1 -1
- package/dist/esm/src/parsers/FunctionExpressionParser.d.ts +12 -0
- package/dist/esm/src/parsers/FunctionExpressionParser.js +111 -7
- package/dist/esm/src/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/esm/src/parsers/KeywordParser.d.ts +1 -0
- package/dist/esm/src/parsers/KeywordParser.js +10 -4
- package/dist/esm/src/parsers/KeywordParser.js.map +1 -1
- package/dist/esm/src/parsers/SqlPrintTokenParser.js +8 -0
- package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/esm/src/parsers/SqlTokenizer.d.ts +42 -2
- package/dist/esm/src/parsers/SqlTokenizer.js +213 -12
- package/dist/esm/src/parsers/SqlTokenizer.js.map +1 -1
- package/dist/esm/src/tokenReaders/CommandTokenReader.d.ts +3 -0
- package/dist/esm/src/tokenReaders/CommandTokenReader.js +4 -1
- package/dist/esm/src/tokenReaders/CommandTokenReader.js.map +1 -1
- package/dist/esm/src/transformers/AliasRenamer.d.ts +199 -0
- package/dist/esm/src/transformers/AliasRenamer.js +595 -0
- package/dist/esm/src/transformers/AliasRenamer.js.map +1 -0
- package/dist/esm/src/transformers/CTERenamer.d.ts +53 -0
- package/dist/esm/src/transformers/CTERenamer.js +138 -0
- package/dist/esm/src/transformers/CTERenamer.js.map +1 -1
- package/dist/esm/src/transformers/DynamicQueryBuilder.d.ts +72 -0
- package/dist/esm/src/transformers/DynamicQueryBuilder.js +42 -0
- package/dist/esm/src/transformers/DynamicQueryBuilder.js.map +1 -1
- package/dist/esm/src/transformers/FilterableItemCollector.d.ts +80 -0
- package/dist/esm/src/transformers/FilterableItemCollector.js +254 -0
- package/dist/esm/src/transformers/FilterableItemCollector.js.map +1 -0
- package/dist/esm/src/transformers/SelectableColumnCollector.d.ts +3 -0
- package/dist/esm/src/transformers/SelectableColumnCollector.js +68 -7
- package/dist/esm/src/transformers/SelectableColumnCollector.js.map +1 -1
- package/dist/esm/src/transformers/SmartRenamer.d.ts +134 -0
- package/dist/esm/src/transformers/SmartRenamer.js +430 -0
- package/dist/esm/src/transformers/SmartRenamer.js.map +1 -0
- package/dist/esm/src/transformers/SqlIdentifierRenamer.d.ts +150 -0
- package/dist/esm/src/transformers/SqlIdentifierRenamer.js +493 -0
- package/dist/esm/src/transformers/SqlIdentifierRenamer.js.map +1 -0
- package/dist/esm/src/transformers/SqlParamInjector.d.ts +27 -0
- package/dist/esm/src/transformers/SqlParamInjector.js +304 -16
- package/dist/esm/src/transformers/SqlParamInjector.js.map +1 -1
- package/dist/esm/src/transformers/SqlSortInjector.js +6 -3
- package/dist/esm/src/transformers/SqlSortInjector.js.map +1 -1
- package/dist/esm/src/transformers/UpstreamSelectQueryFinder.js +5 -2
- package/dist/esm/src/transformers/UpstreamSelectQueryFinder.js.map +1 -1
- package/dist/esm/src/utils/LexemeCursor.d.ts +41 -0
- package/dist/esm/src/utils/LexemeCursor.js +93 -0
- package/dist/esm/src/utils/LexemeCursor.js.map +1 -1
- package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
- package/dist/index.min.js +37 -29
- package/dist/index.min.js.map +4 -4
- package/dist/src/formatters/OriginalFormatRestorer.d.ts +40 -0
- package/dist/src/formatters/OriginalFormatRestorer.js +139 -0
- package/dist/src/formatters/OriginalFormatRestorer.js.map +1 -0
- package/dist/src/index.d.ts +11 -0
- package/dist/src/index.js +11 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/models/FormattingLexeme.d.ts +66 -0
- package/dist/src/models/FormattingLexeme.js +3 -0
- package/dist/src/models/FormattingLexeme.js.map +1 -0
- package/dist/src/models/ValueComponent.d.ts +3 -1
- package/dist/src/models/ValueComponent.js +3 -1
- package/dist/src/models/ValueComponent.js.map +1 -1
- package/dist/src/parsers/FunctionExpressionParser.d.ts +12 -0
- package/dist/src/parsers/FunctionExpressionParser.js +110 -6
- package/dist/src/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/src/parsers/KeywordParser.d.ts +1 -0
- package/dist/src/parsers/KeywordParser.js +10 -4
- package/dist/src/parsers/KeywordParser.js.map +1 -1
- package/dist/src/parsers/SqlPrintTokenParser.js +8 -0
- package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/src/parsers/SqlTokenizer.d.ts +42 -2
- package/dist/src/parsers/SqlTokenizer.js +222 -12
- package/dist/src/parsers/SqlTokenizer.js.map +1 -1
- package/dist/src/tokenReaders/CommandTokenReader.d.ts +3 -0
- package/dist/src/tokenReaders/CommandTokenReader.js +5 -2
- package/dist/src/tokenReaders/CommandTokenReader.js.map +1 -1
- package/dist/src/transformers/AliasRenamer.d.ts +199 -0
- package/dist/src/transformers/AliasRenamer.js +599 -0
- package/dist/src/transformers/AliasRenamer.js.map +1 -0
- package/dist/src/transformers/CTERenamer.d.ts +53 -0
- package/dist/src/transformers/CTERenamer.js +138 -0
- package/dist/src/transformers/CTERenamer.js.map +1 -1
- package/dist/src/transformers/DynamicQueryBuilder.d.ts +72 -0
- package/dist/src/transformers/DynamicQueryBuilder.js +42 -0
- package/dist/src/transformers/DynamicQueryBuilder.js.map +1 -1
- package/dist/src/transformers/FilterableItemCollector.d.ts +80 -0
- package/dist/src/transformers/FilterableItemCollector.js +259 -0
- package/dist/src/transformers/FilterableItemCollector.js.map +1 -0
- package/dist/src/transformers/SelectableColumnCollector.d.ts +3 -0
- package/dist/src/transformers/SelectableColumnCollector.js +67 -6
- package/dist/src/transformers/SelectableColumnCollector.js.map +1 -1
- package/dist/src/transformers/SmartRenamer.d.ts +134 -0
- package/dist/src/transformers/SmartRenamer.js +442 -0
- package/dist/src/transformers/SmartRenamer.js.map +1 -0
- package/dist/src/transformers/SqlIdentifierRenamer.d.ts +150 -0
- package/dist/src/transformers/SqlIdentifierRenamer.js +497 -0
- package/dist/src/transformers/SqlIdentifierRenamer.js.map +1 -0
- package/dist/src/transformers/SqlParamInjector.d.ts +27 -0
- package/dist/src/transformers/SqlParamInjector.js +303 -15
- package/dist/src/transformers/SqlParamInjector.js.map +1 -1
- package/dist/src/transformers/SqlSortInjector.js +5 -2
- package/dist/src/transformers/SqlSortInjector.js.map +1 -1
- package/dist/src/transformers/UpstreamSelectQueryFinder.js +4 -1
- package/dist/src/transformers/UpstreamSelectQueryFinder.js.map +1 -1
- package/dist/src/utils/LexemeCursor.d.ts +41 -0
- package/dist/src/utils/LexemeCursor.js +93 -0
- package/dist/src/utils/LexemeCursor.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
@@ -0,0 +1,259 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.FilterableItemCollector = exports.FilterableItem = void 0;
|
4
|
+
const SimpleSelectQuery_1 = require("../models/SimpleSelectQuery");
|
5
|
+
const SchemaCollector_1 = require("./SchemaCollector");
|
6
|
+
const ParameterDetector_1 = require("../utils/ParameterDetector");
|
7
|
+
const SelectableColumnCollector_1 = require("./SelectableColumnCollector");
|
8
|
+
/**
|
9
|
+
* Represents a filterable item that can be used in DynamicQueryBuilder
|
10
|
+
* Can be either a table column or a SQL parameter
|
11
|
+
*/
|
12
|
+
class FilterableItem {
|
13
|
+
constructor(name, type, tableName) {
|
14
|
+
this.name = name;
|
15
|
+
this.type = type;
|
16
|
+
this.tableName = tableName;
|
17
|
+
}
|
18
|
+
}
|
19
|
+
exports.FilterableItem = FilterableItem;
|
20
|
+
/**
|
21
|
+
* Collects filterable items (columns and parameters) from SQL queries
|
22
|
+
* for use in DynamicQueryBuilder filtering functionality.
|
23
|
+
*
|
24
|
+
* This class combines:
|
25
|
+
* - Table columns (from SelectableColumnCollector with FullName duplicate detection)
|
26
|
+
* - SQL parameters (from ParameterDetector)
|
27
|
+
*
|
28
|
+
* Features:
|
29
|
+
* - FullName mode preserves columns with same names from different tables (u.id vs p.id)
|
30
|
+
* - Upstream collection (default) provides comprehensive column discovery for maximum filtering
|
31
|
+
* - Qualified mode option for table.column naming in complex JOINs
|
32
|
+
*
|
33
|
+
* This allows DynamicQueryBuilder to filter on both actual table columns
|
34
|
+
* and fixed parameters defined in the SQL with full JOIN table support.
|
35
|
+
*/
|
36
|
+
class FilterableItemCollector {
|
37
|
+
/**
|
38
|
+
* Creates a new FilterableItemCollector
|
39
|
+
* @param tableColumnResolver Optional resolver for wildcard column expansion
|
40
|
+
* @param options Optional configuration options
|
41
|
+
* - qualified: If true, return table.column names; if false, return column names only
|
42
|
+
* - upstream: If true (default), collect all available columns from upstream sources for maximum filtering capability
|
43
|
+
*/
|
44
|
+
constructor(tableColumnResolver, options) {
|
45
|
+
this.tableColumnResolver = tableColumnResolver;
|
46
|
+
this.options = { qualified: false, upstream: true, ...options };
|
47
|
+
}
|
48
|
+
/**
|
49
|
+
* Collects all filterable items (columns and parameters) from a SQL query
|
50
|
+
* @param query The parsed SQL query to analyze
|
51
|
+
* @returns Array of FilterableItem objects representing columns and parameters
|
52
|
+
*/
|
53
|
+
collect(query) {
|
54
|
+
const items = [];
|
55
|
+
// 1. Collect table columns using SchemaCollector
|
56
|
+
const columnItems = this.collectColumns(query);
|
57
|
+
items.push(...columnItems);
|
58
|
+
// 2. Collect SQL parameters using ParameterDetector
|
59
|
+
const parameterItems = this.collectParameters(query);
|
60
|
+
items.push(...parameterItems);
|
61
|
+
// 3. Remove duplicates (same name and type)
|
62
|
+
return this.removeDuplicates(items);
|
63
|
+
}
|
64
|
+
/**
|
65
|
+
* Collects table columns using both SelectableColumnCollector and SchemaCollector
|
66
|
+
*/
|
67
|
+
collectColumns(query) {
|
68
|
+
const items = [];
|
69
|
+
// First, collect columns using SelectableColumnCollector (includes WHERE clause columns)
|
70
|
+
try {
|
71
|
+
const columnCollector = new SelectableColumnCollector_1.SelectableColumnCollector(this.tableColumnResolver, false, // includeUsingColumns
|
72
|
+
SelectableColumnCollector_1.DuplicateDetectionMode.FullName, // Use full names to preserve duplicates
|
73
|
+
{ upstream: this.options.upstream } // Enable upstream collection based on options
|
74
|
+
);
|
75
|
+
const columns = columnCollector.collect(query);
|
76
|
+
// Convert column information to FilterableItem objects
|
77
|
+
for (const column of columns) {
|
78
|
+
let tableName = undefined;
|
79
|
+
let realTableName = undefined;
|
80
|
+
// Primary: Extract table name from column reference namespace using getNamespace()
|
81
|
+
if (column.value && typeof column.value.getNamespace === 'function') {
|
82
|
+
const namespace = column.value.getNamespace();
|
83
|
+
if (namespace && namespace.trim() !== '') {
|
84
|
+
tableName = namespace;
|
85
|
+
// Get real table name if using qualified mode
|
86
|
+
if (this.options.qualified) {
|
87
|
+
realTableName = this.getRealTableName(query, namespace);
|
88
|
+
}
|
89
|
+
}
|
90
|
+
}
|
91
|
+
// Fallback: Try to infer from query structure for simple queries
|
92
|
+
if (!tableName) {
|
93
|
+
tableName = this.inferTableNameFromQuery(query);
|
94
|
+
if (tableName && this.options.qualified) {
|
95
|
+
realTableName = tableName; // For simple queries, table name is already real
|
96
|
+
}
|
97
|
+
}
|
98
|
+
// Generate column name based on qualified option
|
99
|
+
let columnName = column.name;
|
100
|
+
if (this.options.qualified && (realTableName || tableName)) {
|
101
|
+
const nameToUse = realTableName || tableName;
|
102
|
+
columnName = `${nameToUse}.${column.name}`;
|
103
|
+
}
|
104
|
+
items.push(new FilterableItem(columnName, 'column', tableName));
|
105
|
+
}
|
106
|
+
}
|
107
|
+
catch (error) {
|
108
|
+
// If SelectableColumnCollector fails, fall back to SchemaCollector only
|
109
|
+
console.warn('Failed to collect columns with SelectableColumnCollector, using fallback:', error);
|
110
|
+
try {
|
111
|
+
const schemaCollector = new SchemaCollector_1.SchemaCollector(this.tableColumnResolver, true);
|
112
|
+
const schemas = schemaCollector.collect(query);
|
113
|
+
for (const schema of schemas) {
|
114
|
+
for (const columnName of schema.columns) {
|
115
|
+
// Generate column name based on qualified option
|
116
|
+
let finalColumnName = columnName;
|
117
|
+
if (this.options.qualified) {
|
118
|
+
// For SchemaCollector, schema.name should already be the real table name
|
119
|
+
finalColumnName = `${schema.name}.${columnName}`;
|
120
|
+
}
|
121
|
+
items.push(new FilterableItem(finalColumnName, 'column', schema.name));
|
122
|
+
}
|
123
|
+
}
|
124
|
+
}
|
125
|
+
catch (fallbackError) {
|
126
|
+
console.warn('Failed to collect columns with both approaches:', error, fallbackError);
|
127
|
+
}
|
128
|
+
}
|
129
|
+
return items;
|
130
|
+
}
|
131
|
+
/**
|
132
|
+
* Attempts to infer table name from query structure for simple cases
|
133
|
+
*/
|
134
|
+
inferTableNameFromQuery(query) {
|
135
|
+
// For simple queries with single table, try to extract table name
|
136
|
+
if (query instanceof SimpleSelectQuery_1.SimpleSelectQuery && query.fromClause && query.fromClause.source) {
|
137
|
+
const datasource = query.fromClause.source.datasource;
|
138
|
+
if (datasource && typeof datasource.table === 'object') {
|
139
|
+
const table = datasource.table;
|
140
|
+
if (table && typeof table.name === 'string') {
|
141
|
+
return table.name;
|
142
|
+
}
|
143
|
+
}
|
144
|
+
}
|
145
|
+
return undefined;
|
146
|
+
}
|
147
|
+
/**
|
148
|
+
* Attempts to resolve real table name from alias/namespace
|
149
|
+
*/
|
150
|
+
getRealTableName(query, aliasOrName) {
|
151
|
+
var _a, _b;
|
152
|
+
try {
|
153
|
+
// Handle CTEs by converting to simple query first
|
154
|
+
const simpleQuery = query.type === 'WITH' ? query.toSimpleQuery() : query;
|
155
|
+
if (simpleQuery instanceof SimpleSelectQuery_1.SimpleSelectQuery && simpleQuery.fromClause) {
|
156
|
+
// Check main datasource
|
157
|
+
if ((_a = simpleQuery.fromClause.source) === null || _a === void 0 ? void 0 : _a.datasource) {
|
158
|
+
const mainSource = simpleQuery.fromClause.source;
|
159
|
+
const realName = this.extractRealTableName(mainSource, aliasOrName);
|
160
|
+
if (realName)
|
161
|
+
return realName;
|
162
|
+
}
|
163
|
+
// Check JOIN clauses
|
164
|
+
const fromClause = simpleQuery.fromClause;
|
165
|
+
if (fromClause.joinClauses && Array.isArray(fromClause.joinClauses)) {
|
166
|
+
for (const joinClause of fromClause.joinClauses) {
|
167
|
+
if ((_b = joinClause.source) === null || _b === void 0 ? void 0 : _b.datasource) {
|
168
|
+
const realName = this.extractRealTableName(joinClause.source, aliasOrName);
|
169
|
+
if (realName)
|
170
|
+
return realName;
|
171
|
+
}
|
172
|
+
}
|
173
|
+
}
|
174
|
+
}
|
175
|
+
}
|
176
|
+
catch (error) {
|
177
|
+
console.warn('Error resolving real table name:', error);
|
178
|
+
}
|
179
|
+
// If we can't resolve, return the original name
|
180
|
+
return aliasOrName;
|
181
|
+
}
|
182
|
+
/**
|
183
|
+
* Extracts real table name from a datasource
|
184
|
+
*/
|
185
|
+
extractRealTableName(source, aliasOrName) {
|
186
|
+
var _a, _b, _c;
|
187
|
+
try {
|
188
|
+
const datasource = source.datasource;
|
189
|
+
if (!datasource)
|
190
|
+
return undefined;
|
191
|
+
// Get alias from multiple possible locations
|
192
|
+
const alias = source.alias || ((_b = (_a = source.aliasExpression) === null || _a === void 0 ? void 0 : _a.table) === null || _b === void 0 ? void 0 : _b.name);
|
193
|
+
const realTableName = (_c = datasource.table) === null || _c === void 0 ? void 0 : _c.name;
|
194
|
+
if (alias === aliasOrName && realTableName) {
|
195
|
+
return realTableName;
|
196
|
+
}
|
197
|
+
// If no alias but names match, it's a direct table reference
|
198
|
+
if (!alias && realTableName === aliasOrName) {
|
199
|
+
return realTableName;
|
200
|
+
}
|
201
|
+
}
|
202
|
+
catch (error) {
|
203
|
+
// Ignore errors in extraction
|
204
|
+
}
|
205
|
+
return undefined;
|
206
|
+
}
|
207
|
+
/**
|
208
|
+
* Collects SQL parameters from the query using ParameterDetector
|
209
|
+
*/
|
210
|
+
collectParameters(query) {
|
211
|
+
const items = [];
|
212
|
+
try {
|
213
|
+
// Use existing ParameterDetector to extract parameter names from AST
|
214
|
+
const parameterNames = ParameterDetector_1.ParameterDetector.extractParameterNames(query);
|
215
|
+
// Convert parameter names to FilterableItem objects
|
216
|
+
for (const paramName of parameterNames) {
|
217
|
+
items.push(new FilterableItem(paramName, 'parameter'));
|
218
|
+
}
|
219
|
+
}
|
220
|
+
catch (error) {
|
221
|
+
// If parameter extraction fails, continue with empty parameter list
|
222
|
+
console.warn('Failed to collect parameters:', error);
|
223
|
+
}
|
224
|
+
return items;
|
225
|
+
}
|
226
|
+
/**
|
227
|
+
* Removes duplicate items with the same name, type, and table name
|
228
|
+
* This preserves columns with the same name from different tables
|
229
|
+
*/
|
230
|
+
removeDuplicates(items) {
|
231
|
+
const seen = new Set();
|
232
|
+
const result = [];
|
233
|
+
for (const item of items) {
|
234
|
+
// Include table name in the key to preserve columns from different tables
|
235
|
+
const key = `${item.type}:${item.name}:${item.tableName || 'none'}`;
|
236
|
+
if (!seen.has(key)) {
|
237
|
+
seen.add(key);
|
238
|
+
result.push(item);
|
239
|
+
}
|
240
|
+
}
|
241
|
+
return result.sort((a, b) => {
|
242
|
+
// Sort by type first (columns before parameters), then by table name, then by name
|
243
|
+
if (a.type !== b.type) {
|
244
|
+
return a.type === 'column' ? -1 : 1;
|
245
|
+
}
|
246
|
+
// For columns, sort by table name first, then column name
|
247
|
+
if (a.type === 'column') {
|
248
|
+
const tableA = a.tableName || '';
|
249
|
+
const tableB = b.tableName || '';
|
250
|
+
if (tableA !== tableB) {
|
251
|
+
return tableA.localeCompare(tableB);
|
252
|
+
}
|
253
|
+
}
|
254
|
+
return a.name.localeCompare(b.name);
|
255
|
+
});
|
256
|
+
}
|
257
|
+
}
|
258
|
+
exports.FilterableItemCollector = FilterableItemCollector;
|
259
|
+
//# sourceMappingURL=FilterableItemCollector.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"FilterableItemCollector.js","sourceRoot":"","sources":["../../../src/transformers/FilterableItemCollector.ts"],"names":[],"mappings":"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"}
|
@@ -170,12 +170,15 @@ export declare class SelectableColumnCollector implements SqlComponentVisitor<vo
|
|
170
170
|
private visitBinaryExpression;
|
171
171
|
private visitUnaryExpression;
|
172
172
|
private visitFunctionCall;
|
173
|
+
private visitInlineQuery;
|
173
174
|
private visitParenExpression;
|
174
175
|
private visitCaseExpression;
|
175
176
|
private visitCastExpression;
|
176
177
|
private visitBetweenExpression;
|
177
178
|
private visitArrayExpression;
|
178
179
|
private visitArrayQueryExpression;
|
180
|
+
private visitArraySliceExpression;
|
181
|
+
private visitArrayIndexExpression;
|
179
182
|
private visitValueList;
|
180
183
|
private visitPartitionByClause;
|
181
184
|
/**
|
@@ -144,12 +144,15 @@ class SelectableColumnCollector {
|
|
144
144
|
this.handlers.set(ValueComponent_1.BinaryExpression.kind, (expr) => this.visitBinaryExpression(expr));
|
145
145
|
this.handlers.set(ValueComponent_1.UnaryExpression.kind, (expr) => this.visitUnaryExpression(expr));
|
146
146
|
this.handlers.set(ValueComponent_1.FunctionCall.kind, (expr) => this.visitFunctionCall(expr));
|
147
|
+
this.handlers.set(ValueComponent_1.InlineQuery.kind, (expr) => this.visitInlineQuery(expr));
|
147
148
|
this.handlers.set(ValueComponent_1.ParenExpression.kind, (expr) => this.visitParenExpression(expr));
|
148
149
|
this.handlers.set(ValueComponent_1.CaseExpression.kind, (expr) => this.visitCaseExpression(expr));
|
149
150
|
this.handlers.set(ValueComponent_1.CastExpression.kind, (expr) => this.visitCastExpression(expr));
|
150
151
|
this.handlers.set(ValueComponent_1.BetweenExpression.kind, (expr) => this.visitBetweenExpression(expr));
|
151
152
|
this.handlers.set(ValueComponent_1.ArrayExpression.kind, (expr) => this.visitArrayExpression(expr));
|
152
153
|
this.handlers.set(ValueComponent_1.ArrayQueryExpression.kind, (expr) => this.visitArrayQueryExpression(expr));
|
154
|
+
this.handlers.set(ValueComponent_1.ArraySliceExpression.kind, (expr) => this.visitArraySliceExpression(expr));
|
155
|
+
this.handlers.set(ValueComponent_1.ArrayIndexExpression.kind, (expr) => this.visitArrayIndexExpression(expr));
|
153
156
|
this.handlers.set(ValueComponent_1.ValueList.kind, (expr) => this.visitValueList(expr));
|
154
157
|
this.handlers.set(ValueComponent_1.WindowFrameExpression.kind, (expr) => this.visitWindowFrameExpression(expr));
|
155
158
|
this.handlers.set(Clause_1.PartitionByClause.kind, (expr) => this.visitPartitionByClause(expr));
|
@@ -333,9 +336,24 @@ class SelectableColumnCollector {
|
|
333
336
|
visitSelectClause(clause) {
|
334
337
|
for (const item of clause.items) {
|
335
338
|
if (item.identifier) {
|
339
|
+
// For aliased items, add the alias name
|
336
340
|
this.addSelectValueAsUnique(item.identifier.name, item.value);
|
337
341
|
}
|
338
|
-
item.value.
|
342
|
+
else if (item.value instanceof ValueComponent_1.ColumnReference) {
|
343
|
+
// For non-aliased column references, preserve namespace information
|
344
|
+
// This ensures u.id and p.id are treated as separate columns in FullName mode
|
345
|
+
const columnName = item.value.column.name;
|
346
|
+
if (columnName !== "*") {
|
347
|
+
this.addSelectValueAsUnique(columnName, item.value);
|
348
|
+
}
|
349
|
+
else if (this.includeWildCard) {
|
350
|
+
this.addSelectValueAsUnique(columnName, item.value);
|
351
|
+
}
|
352
|
+
}
|
353
|
+
else {
|
354
|
+
// For other value types (functions, expressions, etc.), process normally
|
355
|
+
item.value.accept(this);
|
356
|
+
}
|
339
357
|
}
|
340
358
|
}
|
341
359
|
visitFromClause(clause) {
|
@@ -450,12 +468,28 @@ class SelectableColumnCollector {
|
|
450
468
|
}
|
451
469
|
}
|
452
470
|
visitFunctionCall(func) {
|
471
|
+
// Visit function arguments - this handles both single arguments and ValueList arguments
|
453
472
|
if (func.argument) {
|
454
473
|
func.argument.accept(this);
|
455
474
|
}
|
475
|
+
// Visit OVER clause for window functions
|
456
476
|
if (func.over) {
|
457
477
|
func.over.accept(this);
|
458
478
|
}
|
479
|
+
// Visit WITHIN GROUP clause for ordered aggregate functions
|
480
|
+
if (func.withinGroup) {
|
481
|
+
func.withinGroup.accept(this);
|
482
|
+
}
|
483
|
+
// Visit internal ORDER BY clause (for array_agg, json_agg, etc.)
|
484
|
+
if (func.internalOrderBy) {
|
485
|
+
func.internalOrderBy.accept(this);
|
486
|
+
}
|
487
|
+
}
|
488
|
+
visitInlineQuery(inlineQuery) {
|
489
|
+
// Visit the nested SELECT query within the inline query expression
|
490
|
+
if (inlineQuery.selectQuery) {
|
491
|
+
this.visitNode(inlineQuery.selectQuery);
|
492
|
+
}
|
459
493
|
}
|
460
494
|
visitParenExpression(expr) {
|
461
495
|
if (expr.expression) {
|
@@ -494,10 +528,34 @@ class SelectableColumnCollector {
|
|
494
528
|
visitArrayQueryExpression(expr) {
|
495
529
|
expr.query.accept(this);
|
496
530
|
}
|
531
|
+
visitArraySliceExpression(expr) {
|
532
|
+
// Visit the array and slice indices for column references
|
533
|
+
if (expr.array) {
|
534
|
+
expr.array.accept(this);
|
535
|
+
}
|
536
|
+
if (expr.startIndex) {
|
537
|
+
expr.startIndex.accept(this);
|
538
|
+
}
|
539
|
+
if (expr.endIndex) {
|
540
|
+
expr.endIndex.accept(this);
|
541
|
+
}
|
542
|
+
}
|
543
|
+
visitArrayIndexExpression(expr) {
|
544
|
+
// Visit the array and index for column references
|
545
|
+
if (expr.array) {
|
546
|
+
expr.array.accept(this);
|
547
|
+
}
|
548
|
+
if (expr.index) {
|
549
|
+
expr.index.accept(this);
|
550
|
+
}
|
551
|
+
}
|
497
552
|
visitValueList(expr) {
|
498
|
-
|
553
|
+
// Visit all values in the list to collect column references from function arguments
|
554
|
+
if (expr.values && Array.isArray(expr.values)) {
|
499
555
|
for (const value of expr.values) {
|
500
|
-
value
|
556
|
+
if (value) {
|
557
|
+
value.accept(this);
|
558
|
+
}
|
501
559
|
}
|
502
560
|
}
|
503
561
|
}
|
@@ -580,9 +638,12 @@ class SelectableColumnCollector {
|
|
580
638
|
*/
|
581
639
|
collectUpstreamColumnsFromCTE(cteTable) {
|
582
640
|
if (cteTable.query instanceof SelectQuery_1.SimpleSelectQuery) {
|
583
|
-
//
|
584
|
-
|
585
|
-
|
641
|
+
// Create a recursive SelectableColumnCollector to collect ALL column references from the CTE
|
642
|
+
// This includes columns from SELECT, FROM, WHERE, JOIN, and other clauses within the CTE
|
643
|
+
// NOTE: Set upstream to false to prevent infinite recursion through collectAllAvailableCTEColumns
|
644
|
+
const cteCollector = new SelectableColumnCollector(this.tableColumnResolver, this.includeWildCard, this.duplicateDetection, { ...this.options, upstream: false });
|
645
|
+
// Collect all columns from the CTE query (including WHERE clause columns)
|
646
|
+
const cteColumns = cteCollector.collect(cteTable.query);
|
586
647
|
// Add all columns from the CTE, excluding wildcards
|
587
648
|
for (const item of cteColumns) {
|
588
649
|
// Skip wildcard columns as they are not valid selectable column names
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SelectableColumnCollector.js","sourceRoot":"","sources":["../../../src/transformers/SelectableColumnCollector.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"SelectableColumnCollector.js","sourceRoot":"","sources":["../../../src/transformers/SelectableColumnCollector.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,134 @@
|
|
1
|
+
import { LineColumn } from "../utils/LexemeCursor";
|
2
|
+
/**
|
3
|
+
* Result of smart rename operation
|
4
|
+
*/
|
5
|
+
export interface SmartRenameResult {
|
6
|
+
success: boolean;
|
7
|
+
originalSql: string;
|
8
|
+
newSql?: string;
|
9
|
+
renamerType: 'cte' | 'alias' | 'unknown';
|
10
|
+
originalName: string;
|
11
|
+
newName: string;
|
12
|
+
error?: string;
|
13
|
+
formattingPreserved?: boolean;
|
14
|
+
formattingMethod?: 'sql-identifier-renamer' | 'smart-renamer-only';
|
15
|
+
}
|
16
|
+
/**
|
17
|
+
* Smart renamer that automatically detects whether to use CTERenamer or AliasRenamer
|
18
|
+
* based on the cursor position in SQL text.
|
19
|
+
*
|
20
|
+
* This class provides unified GUI integration for SQL renaming operations:
|
21
|
+
* - If cursor is on a CTE name → uses CTERenamer
|
22
|
+
* - If cursor is on a table alias → uses AliasRenamer
|
23
|
+
* - Auto-detects the type and calls appropriate renamer
|
24
|
+
* - Supports optional formatting preservation via SqlIdentifierRenamer
|
25
|
+
*
|
26
|
+
* @example
|
27
|
+
* ```typescript
|
28
|
+
* const renamer = new SmartRenamer();
|
29
|
+
* const sql = `
|
30
|
+
* -- User analysis
|
31
|
+
* WITH user_data AS ( /* User CTE *\/
|
32
|
+
* SELECT * FROM users u
|
33
|
+
* WHERE u.active = true
|
34
|
+
* )
|
35
|
+
* SELECT * FROM user_data
|
36
|
+
* `;
|
37
|
+
*
|
38
|
+
* // Standard rename (no formatting preservation)
|
39
|
+
* const result1 = renamer.rename(sql, { line: 3, column: 8 }, 'customer_data');
|
40
|
+
*
|
41
|
+
* // Rename with formatting preservation
|
42
|
+
* const result2 = renamer.rename(sql, { line: 3, column: 8 }, 'customer_data',
|
43
|
+
* { preserveFormatting: true });
|
44
|
+
* // Preserves comments, indentation, line breaks
|
45
|
+
*
|
46
|
+
* // Batch rename with formatting preservation
|
47
|
+
* const result3 = renamer.batchRename(sql, {
|
48
|
+
* 'user_data': 'customers',
|
49
|
+
* 'u': 'users_tbl'
|
50
|
+
* }, { preserveFormatting: true });
|
51
|
+
*
|
52
|
+
* // Check if position is renameable (for GUI context menus)
|
53
|
+
* const isRenameable = renamer.isRenameable(sql, { line: 3, column: 8 });
|
54
|
+
* ```
|
55
|
+
*/
|
56
|
+
export declare class SmartRenamer {
|
57
|
+
private cteRenamer;
|
58
|
+
private aliasRenamer;
|
59
|
+
private identifierRenamer;
|
60
|
+
constructor();
|
61
|
+
/**
|
62
|
+
* Check if the token at the given position is renameable (CTE name or table alias).
|
63
|
+
* This is a lightweight check for GUI applications to determine if a rename context menu
|
64
|
+
* should be shown when right-clicking.
|
65
|
+
*
|
66
|
+
* @param sql - The complete SQL string
|
67
|
+
* @param position - Line and column position where user clicked (1-based)
|
68
|
+
* @returns Object indicating if renameable and what type of renamer would be used
|
69
|
+
*/
|
70
|
+
isRenameable(sql: string, position: LineColumn): {
|
71
|
+
renameable: boolean;
|
72
|
+
renamerType: 'cte' | 'alias' | 'none';
|
73
|
+
tokenName?: string;
|
74
|
+
reason?: string;
|
75
|
+
};
|
76
|
+
/**
|
77
|
+
* Automatically detect and rename CTE names or table aliases based on cursor position.
|
78
|
+
*
|
79
|
+
* @param sql - The complete SQL string
|
80
|
+
* @param position - Line and column position where user clicked (1-based)
|
81
|
+
* @param newName - The new name to assign
|
82
|
+
* @param options - Optional configuration { preserveFormatting?: boolean }
|
83
|
+
* @returns Result object with success status and details
|
84
|
+
*/
|
85
|
+
rename(sql: string, position: LineColumn, newName: string, options?: {
|
86
|
+
preserveFormatting?: boolean;
|
87
|
+
}): SmartRenameResult;
|
88
|
+
/**
|
89
|
+
* Detect whether an identifier is a CTE name or table alias.
|
90
|
+
* @private
|
91
|
+
*/
|
92
|
+
private detectRenamerType;
|
93
|
+
/**
|
94
|
+
* Check if identifier is a CTE name in the query.
|
95
|
+
* @private
|
96
|
+
*/
|
97
|
+
private isCTEName;
|
98
|
+
/**
|
99
|
+
* Attempts to perform rename using SqlIdentifierRenamer to preserve formatting.
|
100
|
+
* @private
|
101
|
+
*/
|
102
|
+
private attemptFormattingPreservationRename;
|
103
|
+
/**
|
104
|
+
* Perform standard rename without formatting preservation
|
105
|
+
* @private
|
106
|
+
*/
|
107
|
+
private performStandardRename;
|
108
|
+
/**
|
109
|
+
* Validates that the rename operation was successful
|
110
|
+
* @private
|
111
|
+
*/
|
112
|
+
private validateRenameResult;
|
113
|
+
/**
|
114
|
+
* Counts word boundary occurrences of a name in SQL
|
115
|
+
* @private
|
116
|
+
*/
|
117
|
+
private countWordOccurrences;
|
118
|
+
/**
|
119
|
+
* Create error result object.
|
120
|
+
* @private
|
121
|
+
*/
|
122
|
+
private createErrorResult;
|
123
|
+
/**
|
124
|
+
* Batch rename multiple identifiers with optional formatting preservation.
|
125
|
+
*
|
126
|
+
* @param sql - The complete SQL string
|
127
|
+
* @param renames - Map of old names to new names
|
128
|
+
* @param options - Optional configuration { preserveFormatting?: boolean }
|
129
|
+
* @returns Result with success status and details
|
130
|
+
*/
|
131
|
+
batchRename(sql: string, renames: Record<string, string>, options?: {
|
132
|
+
preserveFormatting?: boolean;
|
133
|
+
}): SmartRenameResult;
|
134
|
+
}
|