rawsql-ts 0.11.18-beta → 0.11.20-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/README.md +62 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +25 -25
- package/dist/esm/index.min.js.map +4 -4
- package/dist/esm/src/index.d.ts +3 -0
- package/dist/esm/src/index.js +3 -0
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/transformers/CTERenamer.d.ts +144 -0
- package/dist/esm/src/transformers/CTERenamer.js +342 -0
- package/dist/esm/src/transformers/CTERenamer.js.map +1 -0
- package/dist/esm/src/transformers/ColumnReferenceCollector.d.ts +162 -0
- package/dist/esm/src/transformers/ColumnReferenceCollector.js +464 -0
- package/dist/esm/src/transformers/ColumnReferenceCollector.js.map +1 -0
- package/dist/esm/src/transformers/SelectableColumnCollector.d.ts +94 -9
- package/dist/esm/src/transformers/SelectableColumnCollector.js +227 -40
- package/dist/esm/src/transformers/SelectableColumnCollector.js.map +1 -1
- package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
- package/dist/index.min.js +25 -25
- package/dist/index.min.js.map +4 -4
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.js +5 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/transformers/CTERenamer.d.ts +144 -0
- package/dist/src/transformers/CTERenamer.js +346 -0
- package/dist/src/transformers/CTERenamer.js.map +1 -0
- package/dist/src/transformers/ColumnReferenceCollector.d.ts +162 -0
- package/dist/src/transformers/ColumnReferenceCollector.js +468 -0
- package/dist/src/transformers/ColumnReferenceCollector.js.map +1 -0
- package/dist/src/transformers/SelectableColumnCollector.d.ts +94 -9
- package/dist/src/transformers/SelectableColumnCollector.js +225 -38
- package/dist/src/transformers/SelectableColumnCollector.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -20,28 +20,58 @@ import { SqlComponent, SqlComponentVisitor } from "../models/SqlComponent";
|
|
|
20
20
|
import { ValueComponent } from "../models/ValueComponent";
|
|
21
21
|
import { TableColumnResolver } from "./TableColumnResolver";
|
|
22
22
|
/**
|
|
23
|
-
* A visitor that collects all ColumnReference instances from
|
|
23
|
+
* A visitor that collects all ColumnReference instances from SQL query structures.
|
|
24
24
|
* This visitor scans through all clauses and collects all unique ColumnReference objects.
|
|
25
|
-
* It
|
|
25
|
+
* It supports both regular column collection and upstream column collection for maximum
|
|
26
|
+
* search conditions in DynamicQuery scenarios.
|
|
26
27
|
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
28
|
+
* Supported query types:
|
|
29
|
+
* - SimpleSelectQuery: Basic SELECT queries with all standard clauses
|
|
30
|
+
* - BinarySelectQuery: UNION, INTERSECT, EXCEPT queries (collects from both sides)
|
|
31
|
+
* - Common Table Expressions (CTEs) within queries
|
|
32
|
+
* - Subqueries and nested queries
|
|
30
33
|
*
|
|
31
34
|
* Behavioral notes:
|
|
32
|
-
* -
|
|
35
|
+
* - Collects column references to tables defined in the root FROM/JOIN clauses
|
|
33
36
|
* - For aliased columns (e.g., 'title as name'), collects both the original column
|
|
34
37
|
* reference ('title') AND the alias ('name') to enable complete dependency tracking
|
|
38
|
+
* - When upstream option is enabled, collects all available columns from upstream sources
|
|
39
|
+
* (CTEs, subqueries, and tables) for maximum search conditions in DynamicQuery
|
|
40
|
+
* - Automatically removes duplicates based on the specified duplicate detection mode
|
|
35
41
|
*
|
|
36
42
|
* Use cases:
|
|
37
43
|
* - Dependency analysis and schema migration tools
|
|
38
|
-
* - Column usage tracking
|
|
44
|
+
* - Column usage tracking across complex queries including unions and CTEs
|
|
39
45
|
* - Security analysis for column-level access control
|
|
46
|
+
* - DynamicQuery maximum search condition column discovery
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* // Basic usage - collect only referenced columns
|
|
51
|
+
* const collector = new SelectableColumnCollector();
|
|
52
|
+
* const columns = collector.collect(query);
|
|
53
|
+
*
|
|
54
|
+
* // With upstream collection for DynamicQuery
|
|
55
|
+
* const upstreamCollector = new SelectableColumnCollector(
|
|
56
|
+
* null, false, DuplicateDetectionMode.ColumnNameOnly,
|
|
57
|
+
* { upstream: true }
|
|
58
|
+
* );
|
|
59
|
+
* const allColumns = upstreamCollector.collect(query);
|
|
60
|
+
*
|
|
61
|
+
* // Works with union queries and CTEs
|
|
62
|
+
* const unionQuery = SelectQueryParser.parse(`
|
|
63
|
+
* SELECT name, email FROM users
|
|
64
|
+
* UNION
|
|
65
|
+
* SELECT name, email FROM customers
|
|
66
|
+
* `);
|
|
67
|
+
* const unionColumns = collector.collect(unionQuery);
|
|
68
|
+
* ```
|
|
40
69
|
*/
|
|
41
70
|
export declare class SelectableColumnCollector implements SqlComponentVisitor<void> {
|
|
42
71
|
private handlers;
|
|
43
72
|
private selectValues;
|
|
44
73
|
private visitedNodes;
|
|
74
|
+
private uniqueKeys;
|
|
45
75
|
private isRootVisit;
|
|
46
76
|
private tableColumnResolver;
|
|
47
77
|
private commonTableCollector;
|
|
@@ -57,10 +87,28 @@ export declare class SelectableColumnCollector implements SqlComponentVisitor<vo
|
|
|
57
87
|
* @param {DuplicateDetectionMode} [duplicateDetection=DuplicateDetectionMode.ColumnNameOnly] - Specifies the duplicate detection mode: 'columnNameOnly' (default, only column name is used), or 'fullName' (table name + column name).
|
|
58
88
|
* @param {Object} [options={}] - Additional options for the collector.
|
|
59
89
|
* @param {boolean} [options.ignoreCaseAndUnderscore=false] - If true, column names are compared without considering case and underscores.
|
|
90
|
+
* @param {boolean} [options.upstream=false] - If true, collect all columns available from upstream sources for maximum search conditions in DynamicQuery.
|
|
60
91
|
*/
|
|
61
92
|
constructor(tableColumnResolver?: TableColumnResolver | null, includeWildCard?: boolean, duplicateDetection?: DuplicateDetectionMode, options?: {
|
|
62
93
|
ignoreCaseAndUnderscore?: boolean;
|
|
94
|
+
upstream?: boolean;
|
|
63
95
|
});
|
|
96
|
+
/**
|
|
97
|
+
* Initialize instance properties.
|
|
98
|
+
*/
|
|
99
|
+
private initializeProperties;
|
|
100
|
+
/**
|
|
101
|
+
* Initialize the handler map for different SQL component types.
|
|
102
|
+
*/
|
|
103
|
+
private initializeHandlers;
|
|
104
|
+
/**
|
|
105
|
+
* Initialize handlers for SQL clause types.
|
|
106
|
+
*/
|
|
107
|
+
private initializeClauseHandlers;
|
|
108
|
+
/**
|
|
109
|
+
* Initialize handlers for value component types.
|
|
110
|
+
*/
|
|
111
|
+
private initializeValueComponentHandlers;
|
|
64
112
|
getValues(): {
|
|
65
113
|
name: string;
|
|
66
114
|
value: ValueComponent;
|
|
@@ -75,10 +123,18 @@ export declare class SelectableColumnCollector implements SqlComponentVisitor<vo
|
|
|
75
123
|
private reset;
|
|
76
124
|
/**
|
|
77
125
|
* Add a select value as unique, according to the duplicate detection option.
|
|
78
|
-
*
|
|
79
|
-
* If duplicateDetection is 'fullName', both table and column name are checked.
|
|
126
|
+
* Uses efficient Set-based duplicate detection for better performance.
|
|
80
127
|
*/
|
|
81
128
|
private addSelectValueAsUnique;
|
|
129
|
+
/**
|
|
130
|
+
* Generate a unique key based on the duplicate detection mode.
|
|
131
|
+
*/
|
|
132
|
+
private generateUniqueKey;
|
|
133
|
+
/**
|
|
134
|
+
* Normalize column name based on options.
|
|
135
|
+
* Ensures safe string handling to prevent injection attacks.
|
|
136
|
+
*/
|
|
137
|
+
private normalizeColumnName;
|
|
82
138
|
/**
|
|
83
139
|
* Main entry point for the visitor pattern.
|
|
84
140
|
* Implements the shallow visit pattern to distinguish between root and recursive visits.
|
|
@@ -93,6 +149,10 @@ export declare class SelectableColumnCollector implements SqlComponentVisitor<vo
|
|
|
93
149
|
* Process a SimpleSelectQuery to collect ColumnReferences from all its clauses
|
|
94
150
|
*/
|
|
95
151
|
private visitSimpleSelectQuery;
|
|
152
|
+
/**
|
|
153
|
+
* Process a BinarySelectQuery (UNION, INTERSECT, EXCEPT) to collect ColumnReferences from both sides
|
|
154
|
+
*/
|
|
155
|
+
private visitBinarySelectQuery;
|
|
96
156
|
private visitSelectClause;
|
|
97
157
|
private visitFromClause;
|
|
98
158
|
private visitWhereClause;
|
|
@@ -118,4 +178,29 @@ export declare class SelectableColumnCollector implements SqlComponentVisitor<vo
|
|
|
118
178
|
private visitArrayQueryExpression;
|
|
119
179
|
private visitValueList;
|
|
120
180
|
private visitPartitionByClause;
|
|
181
|
+
/**
|
|
182
|
+
* Collect all upstream columns available for DynamicQuery maximum search conditions.
|
|
183
|
+
* This includes columns from CTEs, subqueries, and tables that can be used for filtering.
|
|
184
|
+
*/
|
|
185
|
+
private collectUpstreamColumns;
|
|
186
|
+
/**
|
|
187
|
+
* Collect upstream columns from a specific source (table, subquery, or CTE).
|
|
188
|
+
*/
|
|
189
|
+
private collectUpstreamColumnsFromSource;
|
|
190
|
+
/**
|
|
191
|
+
* Collect upstream columns from a table source using table column resolver.
|
|
192
|
+
*/
|
|
193
|
+
private collectUpstreamColumnsFromTable;
|
|
194
|
+
/**
|
|
195
|
+
* Collect upstream columns from a subquery source.
|
|
196
|
+
*/
|
|
197
|
+
private collectUpstreamColumnsFromSubquery;
|
|
198
|
+
/**
|
|
199
|
+
* Collect upstream columns from a CTE.
|
|
200
|
+
*/
|
|
201
|
+
private collectUpstreamColumnsFromCTE;
|
|
202
|
+
/**
|
|
203
|
+
* Find a CTE by name in the common tables.
|
|
204
|
+
*/
|
|
205
|
+
private findCTEByName;
|
|
121
206
|
}
|
|
@@ -17,29 +17,58 @@ export var DuplicateDetectionMode;
|
|
|
17
17
|
*/
|
|
18
18
|
DuplicateDetectionMode["FullName"] = "fullName";
|
|
19
19
|
})(DuplicateDetectionMode || (DuplicateDetectionMode = {}));
|
|
20
|
-
import { FromClause, GroupByClause, HavingClause, LimitClause, OrderByClause, SelectClause, WhereClause, WindowFrameClause, JoinOnClause, JoinUsingClause, PartitionByClause, FetchClause, OffsetClause } from "../models/Clause";
|
|
21
|
-
import { SimpleSelectQuery } from "../models/SelectQuery";
|
|
20
|
+
import { FromClause, GroupByClause, HavingClause, LimitClause, OrderByClause, SelectClause, WhereClause, WindowFrameClause, JoinOnClause, JoinUsingClause, TableSource, SubQuerySource, SourceExpression, PartitionByClause, FetchClause, OffsetClause, ParenSource } from "../models/Clause";
|
|
21
|
+
import { SimpleSelectQuery, BinarySelectQuery } from "../models/SelectQuery";
|
|
22
22
|
import { ArrayExpression, ArrayQueryExpression, BetweenExpression, BinaryExpression, CaseExpression, CastExpression, ColumnReference, FunctionCall, ParenExpression, UnaryExpression, ValueList, WindowFrameExpression } from "../models/ValueComponent";
|
|
23
23
|
import { CTECollector } from "./CTECollector";
|
|
24
24
|
import { SelectValueCollector } from "./SelectValueCollector";
|
|
25
25
|
/**
|
|
26
|
-
* A visitor that collects all ColumnReference instances from
|
|
26
|
+
* A visitor that collects all ColumnReference instances from SQL query structures.
|
|
27
27
|
* This visitor scans through all clauses and collects all unique ColumnReference objects.
|
|
28
|
-
* It
|
|
28
|
+
* It supports both regular column collection and upstream column collection for maximum
|
|
29
|
+
* search conditions in DynamicQuery scenarios.
|
|
29
30
|
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
31
|
+
* Supported query types:
|
|
32
|
+
* - SimpleSelectQuery: Basic SELECT queries with all standard clauses
|
|
33
|
+
* - BinarySelectQuery: UNION, INTERSECT, EXCEPT queries (collects from both sides)
|
|
34
|
+
* - Common Table Expressions (CTEs) within queries
|
|
35
|
+
* - Subqueries and nested queries
|
|
33
36
|
*
|
|
34
37
|
* Behavioral notes:
|
|
35
|
-
* -
|
|
38
|
+
* - Collects column references to tables defined in the root FROM/JOIN clauses
|
|
36
39
|
* - For aliased columns (e.g., 'title as name'), collects both the original column
|
|
37
40
|
* reference ('title') AND the alias ('name') to enable complete dependency tracking
|
|
41
|
+
* - When upstream option is enabled, collects all available columns from upstream sources
|
|
42
|
+
* (CTEs, subqueries, and tables) for maximum search conditions in DynamicQuery
|
|
43
|
+
* - Automatically removes duplicates based on the specified duplicate detection mode
|
|
38
44
|
*
|
|
39
45
|
* Use cases:
|
|
40
46
|
* - Dependency analysis and schema migration tools
|
|
41
|
-
* - Column usage tracking
|
|
47
|
+
* - Column usage tracking across complex queries including unions and CTEs
|
|
42
48
|
* - Security analysis for column-level access control
|
|
49
|
+
* - DynamicQuery maximum search condition column discovery
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* // Basic usage - collect only referenced columns
|
|
54
|
+
* const collector = new SelectableColumnCollector();
|
|
55
|
+
* const columns = collector.collect(query);
|
|
56
|
+
*
|
|
57
|
+
* // With upstream collection for DynamicQuery
|
|
58
|
+
* const upstreamCollector = new SelectableColumnCollector(
|
|
59
|
+
* null, false, DuplicateDetectionMode.ColumnNameOnly,
|
|
60
|
+
* { upstream: true }
|
|
61
|
+
* );
|
|
62
|
+
* const allColumns = upstreamCollector.collect(query);
|
|
63
|
+
*
|
|
64
|
+
* // Works with union queries and CTEs
|
|
65
|
+
* const unionQuery = SelectQueryParser.parse(`
|
|
66
|
+
* SELECT name, email FROM users
|
|
67
|
+
* UNION
|
|
68
|
+
* SELECT name, email FROM customers
|
|
69
|
+
* `);
|
|
70
|
+
* const unionColumns = collector.collect(unionQuery);
|
|
71
|
+
* ```
|
|
43
72
|
*/
|
|
44
73
|
export class SelectableColumnCollector {
|
|
45
74
|
/**
|
|
@@ -50,24 +79,46 @@ export class SelectableColumnCollector {
|
|
|
50
79
|
* @param {DuplicateDetectionMode} [duplicateDetection=DuplicateDetectionMode.ColumnNameOnly] - Specifies the duplicate detection mode: 'columnNameOnly' (default, only column name is used), or 'fullName' (table name + column name).
|
|
51
80
|
* @param {Object} [options={}] - Additional options for the collector.
|
|
52
81
|
* @param {boolean} [options.ignoreCaseAndUnderscore=false] - If true, column names are compared without considering case and underscores.
|
|
82
|
+
* @param {boolean} [options.upstream=false] - If true, collect all columns available from upstream sources for maximum search conditions in DynamicQuery.
|
|
53
83
|
*/
|
|
54
84
|
constructor(tableColumnResolver, includeWildCard = false, duplicateDetection = DuplicateDetectionMode.ColumnNameOnly, options) {
|
|
55
85
|
this.selectValues = [];
|
|
56
86
|
this.visitedNodes = new Set();
|
|
87
|
+
this.uniqueKeys = new Set();
|
|
57
88
|
this.isRootVisit = true;
|
|
58
89
|
this.tableColumnResolver = null;
|
|
59
90
|
this.commonTables = [];
|
|
91
|
+
this.initializeProperties(tableColumnResolver, includeWildCard, duplicateDetection, options);
|
|
92
|
+
this.initializeHandlers();
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Initialize instance properties.
|
|
96
|
+
*/
|
|
97
|
+
initializeProperties(tableColumnResolver, includeWildCard, duplicateDetection, options) {
|
|
60
98
|
this.tableColumnResolver = tableColumnResolver !== null && tableColumnResolver !== void 0 ? tableColumnResolver : null;
|
|
61
99
|
this.includeWildCard = includeWildCard;
|
|
62
100
|
this.commonTableCollector = new CTECollector();
|
|
63
101
|
this.commonTables = [];
|
|
64
102
|
this.duplicateDetection = duplicateDetection;
|
|
65
103
|
this.options = options || {};
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Initialize the handler map for different SQL component types.
|
|
107
|
+
*/
|
|
108
|
+
initializeHandlers() {
|
|
66
109
|
this.handlers = new Map();
|
|
67
|
-
// Main entry point
|
|
110
|
+
// Main entry point handlers
|
|
68
111
|
this.handlers.set(SimpleSelectQuery.kind, (expr) => this.visitSimpleSelectQuery(expr));
|
|
69
|
-
|
|
70
|
-
//
|
|
112
|
+
this.handlers.set(BinarySelectQuery.kind, (expr) => this.visitBinarySelectQuery(expr));
|
|
113
|
+
// Clause handlers
|
|
114
|
+
this.initializeClauseHandlers();
|
|
115
|
+
// Value component handlers
|
|
116
|
+
this.initializeValueComponentHandlers();
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Initialize handlers for SQL clause types.
|
|
120
|
+
*/
|
|
121
|
+
initializeClauseHandlers() {
|
|
71
122
|
this.handlers.set(SelectClause.kind, (expr) => this.visitSelectClause(expr));
|
|
72
123
|
this.handlers.set(FromClause.kind, (expr) => this.visitFromClause(expr));
|
|
73
124
|
this.handlers.set(WhereClause.kind, (expr) => this.visitWhereClause(expr));
|
|
@@ -78,10 +129,14 @@ export class SelectableColumnCollector {
|
|
|
78
129
|
this.handlers.set(LimitClause.kind, (expr) => this.visitLimitClause(expr));
|
|
79
130
|
this.handlers.set(OffsetClause.kind, (expr) => this.offsetClause(expr));
|
|
80
131
|
this.handlers.set(FetchClause.kind, (expr) => this.visitFetchClause(expr));
|
|
81
|
-
//
|
|
132
|
+
// JOIN condition handlers
|
|
82
133
|
this.handlers.set(JoinOnClause.kind, (expr) => this.visitJoinOnClause(expr));
|
|
83
134
|
this.handlers.set(JoinUsingClause.kind, (expr) => this.visitJoinUsingClause(expr));
|
|
84
|
-
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Initialize handlers for value component types.
|
|
138
|
+
*/
|
|
139
|
+
initializeValueComponentHandlers() {
|
|
85
140
|
this.handlers.set(ColumnReference.kind, (expr) => this.visitColumnReference(expr));
|
|
86
141
|
this.handlers.set(BinaryExpression.kind, (expr) => this.visitBinaryExpression(expr));
|
|
87
142
|
this.handlers.set(UnaryExpression.kind, (expr) => this.visitUnaryExpression(expr));
|
|
@@ -93,7 +148,6 @@ export class SelectableColumnCollector {
|
|
|
93
148
|
this.handlers.set(ArrayExpression.kind, (expr) => this.visitArrayExpression(expr));
|
|
94
149
|
this.handlers.set(ArrayQueryExpression.kind, (expr) => this.visitArrayQueryExpression(expr));
|
|
95
150
|
this.handlers.set(ValueList.kind, (expr) => this.visitValueList(expr));
|
|
96
|
-
this.handlers.set(WindowFrameClause.kind, (expr) => this.visitWindowFrameClause(expr));
|
|
97
151
|
this.handlers.set(WindowFrameExpression.kind, (expr) => this.visitWindowFrameExpression(expr));
|
|
98
152
|
this.handlers.set(PartitionByClause.kind, (expr) => this.visitPartitionByClause(expr));
|
|
99
153
|
}
|
|
@@ -101,6 +155,10 @@ export class SelectableColumnCollector {
|
|
|
101
155
|
return this.selectValues;
|
|
102
156
|
}
|
|
103
157
|
collect(arg) {
|
|
158
|
+
// Input validation
|
|
159
|
+
if (!arg) {
|
|
160
|
+
throw new Error("Input argument cannot be null or undefined");
|
|
161
|
+
}
|
|
104
162
|
// Visit the component and return the collected select items
|
|
105
163
|
this.visit(arg);
|
|
106
164
|
const items = this.getValues();
|
|
@@ -113,38 +171,51 @@ export class SelectableColumnCollector {
|
|
|
113
171
|
reset() {
|
|
114
172
|
this.selectValues = [];
|
|
115
173
|
this.visitedNodes.clear();
|
|
174
|
+
this.uniqueKeys.clear();
|
|
116
175
|
this.commonTables = [];
|
|
117
176
|
}
|
|
118
177
|
/**
|
|
119
178
|
* Add a select value as unique, according to the duplicate detection option.
|
|
120
|
-
*
|
|
121
|
-
* If duplicateDetection is 'fullName', both table and column name are checked.
|
|
179
|
+
* Uses efficient Set-based duplicate detection for better performance.
|
|
122
180
|
*/
|
|
123
181
|
addSelectValueAsUnique(name, value) {
|
|
182
|
+
const key = this.generateUniqueKey(name, value);
|
|
183
|
+
if (!this.uniqueKeys.has(key)) {
|
|
184
|
+
this.uniqueKeys.add(key);
|
|
185
|
+
this.selectValues.push({ name, value });
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Generate a unique key based on the duplicate detection mode.
|
|
190
|
+
*/
|
|
191
|
+
generateUniqueKey(name, value) {
|
|
124
192
|
if (this.duplicateDetection === DuplicateDetectionMode.ColumnNameOnly) {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
}
|
|
193
|
+
// Apply case and underscore normalization if specified
|
|
194
|
+
return this.normalizeColumnName(name);
|
|
128
195
|
}
|
|
129
|
-
else
|
|
130
|
-
//
|
|
196
|
+
else {
|
|
197
|
+
// FullName mode: include table name
|
|
131
198
|
let tableName = '';
|
|
132
199
|
if (value && typeof value.getNamespace === 'function') {
|
|
133
200
|
tableName = value.getNamespace() || '';
|
|
134
201
|
}
|
|
135
|
-
const
|
|
136
|
-
|
|
137
|
-
let itemTable = '';
|
|
138
|
-
if (item.value && typeof item.value.getNamespace === 'function') {
|
|
139
|
-
itemTable = item.value.getNamespace() || '';
|
|
140
|
-
}
|
|
141
|
-
const itemKey = itemTable ? itemTable + '.' + item.name : item.name;
|
|
142
|
-
return itemKey === key;
|
|
143
|
-
})) {
|
|
144
|
-
this.selectValues.push({ name, value });
|
|
145
|
-
}
|
|
202
|
+
const fullName = tableName ? tableName + '.' + name : name;
|
|
203
|
+
return this.normalizeColumnName(fullName);
|
|
146
204
|
}
|
|
147
205
|
}
|
|
206
|
+
/**
|
|
207
|
+
* Normalize column name based on options.
|
|
208
|
+
* Ensures safe string handling to prevent injection attacks.
|
|
209
|
+
*/
|
|
210
|
+
normalizeColumnName(name) {
|
|
211
|
+
if (typeof name !== 'string') {
|
|
212
|
+
throw new Error("Column name must be a string");
|
|
213
|
+
}
|
|
214
|
+
if (this.options.ignoreCaseAndUnderscore) {
|
|
215
|
+
return name.toLowerCase().replace(/_/g, '');
|
|
216
|
+
}
|
|
217
|
+
return name;
|
|
218
|
+
}
|
|
148
219
|
/**
|
|
149
220
|
* Main entry point for the visitor pattern.
|
|
150
221
|
* Implements the shallow visit pattern to distinguish between root and recursive visits.
|
|
@@ -155,8 +226,8 @@ export class SelectableColumnCollector {
|
|
|
155
226
|
this.visitNode(arg);
|
|
156
227
|
return;
|
|
157
228
|
}
|
|
158
|
-
if (!(arg instanceof SimpleSelectQuery)) {
|
|
159
|
-
throw new Error("Root visit requires a SimpleSelectQuery
|
|
229
|
+
if (!(arg instanceof SimpleSelectQuery || arg instanceof BinarySelectQuery)) {
|
|
230
|
+
throw new Error("Root visit requires a SimpleSelectQuery or BinarySelectQuery.");
|
|
160
231
|
}
|
|
161
232
|
// If this is a root visit, we need to reset the state
|
|
162
233
|
this.reset();
|
|
@@ -181,12 +252,18 @@ export class SelectableColumnCollector {
|
|
|
181
252
|
}
|
|
182
253
|
// Mark as visited
|
|
183
254
|
this.visitedNodes.add(arg);
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
handler
|
|
187
|
-
|
|
255
|
+
try {
|
|
256
|
+
const handler = this.handlers.get(arg.getKind());
|
|
257
|
+
if (handler) {
|
|
258
|
+
handler(arg);
|
|
259
|
+
}
|
|
260
|
+
// For any other component types, we don't need to do anything
|
|
261
|
+
}
|
|
262
|
+
catch (error) {
|
|
263
|
+
// Re-throw with additional context
|
|
264
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
265
|
+
throw new Error(`Error processing SQL component of type ${arg.getKind().toString()}: ${errorMessage}`);
|
|
188
266
|
}
|
|
189
|
-
// For any other component types, we don't need to do anything
|
|
190
267
|
}
|
|
191
268
|
/**
|
|
192
269
|
* Process a SimpleSelectQuery to collect ColumnReferences from all its clauses
|
|
@@ -230,6 +307,25 @@ export class SelectableColumnCollector {
|
|
|
230
307
|
}
|
|
231
308
|
// Explicitly NOT processing query.WithClause to avoid scanning CTEs
|
|
232
309
|
}
|
|
310
|
+
/**
|
|
311
|
+
* Process a BinarySelectQuery (UNION, INTERSECT, EXCEPT) to collect ColumnReferences from both sides
|
|
312
|
+
*/
|
|
313
|
+
visitBinarySelectQuery(query) {
|
|
314
|
+
// Collect from the left side
|
|
315
|
+
if (query.left instanceof SimpleSelectQuery) {
|
|
316
|
+
this.visitSimpleSelectQuery(query.left);
|
|
317
|
+
}
|
|
318
|
+
else if (query.left instanceof BinarySelectQuery) {
|
|
319
|
+
this.visitBinarySelectQuery(query.left);
|
|
320
|
+
}
|
|
321
|
+
// Collect from the right side
|
|
322
|
+
if (query.right instanceof SimpleSelectQuery) {
|
|
323
|
+
this.visitSimpleSelectQuery(query.right);
|
|
324
|
+
}
|
|
325
|
+
else if (query.right instanceof BinarySelectQuery) {
|
|
326
|
+
this.visitBinarySelectQuery(query.right);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
233
329
|
// Clause handlers
|
|
234
330
|
visitSelectClause(clause) {
|
|
235
331
|
for (const item of clause.items) {
|
|
@@ -247,6 +343,10 @@ export class SelectableColumnCollector {
|
|
|
247
343
|
// Add the select value as unique to avoid duplicates
|
|
248
344
|
this.addSelectValueAsUnique(item.name, item.value);
|
|
249
345
|
}
|
|
346
|
+
// If upstream option is enabled, collect all available columns from upstream sources
|
|
347
|
+
if (this.options.upstream) {
|
|
348
|
+
this.collectUpstreamColumns(clause);
|
|
349
|
+
}
|
|
250
350
|
if (clause.joins) {
|
|
251
351
|
for (const join of clause.joins) {
|
|
252
352
|
if (join.condition) {
|
|
@@ -401,5 +501,92 @@ export class SelectableColumnCollector {
|
|
|
401
501
|
visitPartitionByClause(clause) {
|
|
402
502
|
clause.value.accept(this);
|
|
403
503
|
}
|
|
504
|
+
/**
|
|
505
|
+
* Collect all upstream columns available for DynamicQuery maximum search conditions.
|
|
506
|
+
* This includes columns from CTEs, subqueries, and tables that can be used for filtering.
|
|
507
|
+
*/
|
|
508
|
+
collectUpstreamColumns(clause) {
|
|
509
|
+
// Collect columns from primary source
|
|
510
|
+
this.collectUpstreamColumnsFromSource(clause.source);
|
|
511
|
+
// Collect columns from JOIN sources
|
|
512
|
+
if (clause.joins) {
|
|
513
|
+
for (const join of clause.joins) {
|
|
514
|
+
this.collectUpstreamColumnsFromSource(join.source);
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
/**
|
|
519
|
+
* Collect upstream columns from a specific source (table, subquery, or CTE).
|
|
520
|
+
*/
|
|
521
|
+
collectUpstreamColumnsFromSource(source) {
|
|
522
|
+
if (source.datasource instanceof TableSource) {
|
|
523
|
+
// Check if this is a CTE reference first
|
|
524
|
+
const cteTable = this.findCTEByName(source.datasource.table.name);
|
|
525
|
+
if (cteTable) {
|
|
526
|
+
this.collectUpstreamColumnsFromCTE(cteTable);
|
|
527
|
+
}
|
|
528
|
+
else {
|
|
529
|
+
// For regular table sources, use table column resolver if available
|
|
530
|
+
this.collectUpstreamColumnsFromTable(source.datasource);
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
else if (source.datasource instanceof SubQuerySource) {
|
|
534
|
+
// For subquery sources, collect columns from the subquery
|
|
535
|
+
this.collectUpstreamColumnsFromSubquery(source.datasource);
|
|
536
|
+
}
|
|
537
|
+
else if (source.datasource instanceof ParenSource) {
|
|
538
|
+
// For parenthesized sources, recursively collect
|
|
539
|
+
this.collectUpstreamColumnsFromSource(new SourceExpression(source.datasource.source, null));
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
/**
|
|
543
|
+
* Collect upstream columns from a table source using table column resolver.
|
|
544
|
+
*/
|
|
545
|
+
collectUpstreamColumnsFromTable(tableSource) {
|
|
546
|
+
if (this.tableColumnResolver) {
|
|
547
|
+
const tableName = tableSource.table.name;
|
|
548
|
+
const columns = this.tableColumnResolver(tableName);
|
|
549
|
+
for (const columnName of columns) {
|
|
550
|
+
// Create a column reference for each available column
|
|
551
|
+
const columnRef = new ColumnReference(tableSource.table.name, columnName);
|
|
552
|
+
this.addSelectValueAsUnique(columnName, columnRef);
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
/**
|
|
557
|
+
* Collect upstream columns from a subquery source.
|
|
558
|
+
*/
|
|
559
|
+
collectUpstreamColumnsFromSubquery(subquerySource) {
|
|
560
|
+
if (subquerySource.query instanceof SimpleSelectQuery) {
|
|
561
|
+
// Create a new collector for the subquery
|
|
562
|
+
const subqueryCollector = new SelectableColumnCollector(this.tableColumnResolver, this.includeWildCard, this.duplicateDetection, Object.assign(Object.assign({}, this.options), { upstream: true }));
|
|
563
|
+
// Collect columns from the subquery
|
|
564
|
+
const subqueryColumns = subqueryCollector.collect(subquerySource.query);
|
|
565
|
+
// Add all columns from the subquery
|
|
566
|
+
for (const item of subqueryColumns) {
|
|
567
|
+
this.addSelectValueAsUnique(item.name, item.value);
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
/**
|
|
572
|
+
* Collect upstream columns from a CTE.
|
|
573
|
+
*/
|
|
574
|
+
collectUpstreamColumnsFromCTE(cteTable) {
|
|
575
|
+
if (cteTable.query instanceof SimpleSelectQuery) {
|
|
576
|
+
// Use SelectValueCollector to get the columns defined in the CTE's SELECT clause
|
|
577
|
+
const cteCollector = new SelectValueCollector(this.tableColumnResolver, this.commonTables);
|
|
578
|
+
const cteColumns = cteCollector.collect(cteTable.query.selectClause);
|
|
579
|
+
// Add all columns from the CTE
|
|
580
|
+
for (const item of cteColumns) {
|
|
581
|
+
this.addSelectValueAsUnique(item.name, item.value);
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
/**
|
|
586
|
+
* Find a CTE by name in the common tables.
|
|
587
|
+
*/
|
|
588
|
+
findCTEByName(name) {
|
|
589
|
+
return this.commonTables.find(cte => cte.getSourceAliasName() === name) || null;
|
|
590
|
+
}
|
|
404
591
|
}
|
|
405
592
|
//# sourceMappingURL=SelectableColumnCollector.js.map
|
|
@@ -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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"}
|