rawsql-ts 0.11.19-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.
@@ -20,6 +20,7 @@ export * from './transformers/PostgresJsonQueryBuilder';
20
20
  export * from './transformers/QueryBuilder';
21
21
  export * from './transformers/SelectValueCollector';
22
22
  export * from './transformers/SelectableColumnCollector';
23
+ export { DuplicateDetectionMode } from './transformers/SelectableColumnCollector';
23
24
  export * from './transformers/TableColumnResolver';
24
25
  export * from './transformers/TableSourceCollector';
25
26
  export * from './transformers/JsonMappingConverter';
package/dist/src/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.unifyJsonMapping = exports.isLegacyFormat = exports.isUnifiedFormat = exports.isModelDrivenFormat = exports.processJsonMapping = exports.validateModelDrivenMapping = exports.convertModelDrivenMapping = void 0;
17
+ exports.unifyJsonMapping = exports.isLegacyFormat = exports.isUnifiedFormat = exports.isModelDrivenFormat = exports.processJsonMapping = exports.validateModelDrivenMapping = exports.convertModelDrivenMapping = exports.DuplicateDetectionMode = void 0;
18
18
  // Entry point for rawsql-ts package
19
19
  __exportStar(require("./parsers/SelectQueryParser"), exports);
20
20
  __exportStar(require("./parsers/InsertQueryParser"), exports);
@@ -38,6 +38,8 @@ __exportStar(require("./transformers/PostgresJsonQueryBuilder"), exports);
38
38
  __exportStar(require("./transformers/QueryBuilder"), exports); // old name:QueryConverter
39
39
  __exportStar(require("./transformers/SelectValueCollector"), exports);
40
40
  __exportStar(require("./transformers/SelectableColumnCollector"), exports);
41
+ var SelectableColumnCollector_1 = require("./transformers/SelectableColumnCollector");
42
+ Object.defineProperty(exports, "DuplicateDetectionMode", { enumerable: true, get: function () { return SelectableColumnCollector_1.DuplicateDetectionMode; } });
41
43
  __exportStar(require("./transformers/TableColumnResolver"), exports);
42
44
  __exportStar(require("./transformers/TableSourceCollector"), exports);
43
45
  __exportStar(require("./transformers/JsonMappingConverter"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,oCAAoC;AACpC,8DAA4C;AAC5C,8DAA4C;AAE5C,6DAA2C;AAC3C,uDAAqC;AACrC,0DAAwC;AACxC,uDAAqC;AACrC,oDAAkC;AAClC,kDAAgC;AAEhC,8DAA4C;AAC5C,+DAA6C;AAC7C,6DAA2C;AAC3C,uEAAqD;AACrD,oEAAkD;AAClD,6DAA2C;AAC3C,4DAA0C;AAC1C,0EAAwD;AACxD,2DAAyC;AACzC,8DAA4C;AAC5C,0EAAwD;AACxD,8DAA4C,CAAC,0BAA0B;AACvE,sEAAoD;AACpD,2EAAyD;AACzD,qEAAmD;AACnD,sEAAoD;AACpD,sEAAoD;AACpD,qEAAmD;AACnD,gFAQ+C;AAN3C,mIAAA,yBAAyB,OAAA;AACzB,oIAAA,0BAA0B,OAAA;AAM9B,wEAM2C;AALvC,6DAA6D;AAC7D,wHAAA,kBAAkB,OAAA;AAClB,yHAAA,mBAAmB,OAAA;AACnB,qHAAA,eAAe,OAAA;AACf,oHAAA,cAAc,OAAA;AAGlB,qEAAqE;AACrE,wEAAqE;AAA5D,sHAAA,gBAAgB,OAAA;AACzB,2EAAyD;AACzD,iFAA+D;AAE/D,iEAA+C;AAC/C,2EAAyD;AACzD,kEAAgD;AAChD,iEAA+C;AAC/C,uEAAqD;AACrD,qEAAmD;AAEnD,6DAA2C;AAC3C,8DAA4C;AAC5C,wDAAsC;AACtC,wDAAsC;AACtC,uDAAqC;AAGrC,oEAAoE"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,oCAAoC;AACpC,8DAA4C;AAC5C,8DAA4C;AAE5C,6DAA2C;AAC3C,uDAAqC;AACrC,0DAAwC;AACxC,uDAAqC;AACrC,oDAAkC;AAClC,kDAAgC;AAEhC,8DAA4C;AAC5C,+DAA6C;AAC7C,6DAA2C;AAC3C,uEAAqD;AACrD,oEAAkD;AAClD,6DAA2C;AAC3C,4DAA0C;AAC1C,0EAAwD;AACxD,2DAAyC;AACzC,8DAA4C;AAC5C,0EAAwD;AACxD,8DAA4C,CAAC,0BAA0B;AACvE,sEAAoD;AACpD,2EAAyD;AACzD,sFAAkF;AAAzE,mIAAA,sBAAsB,OAAA;AAC/B,qEAAmD;AACnD,sEAAoD;AACpD,sEAAoD;AACpD,qEAAmD;AACnD,gFAQ+C;AAN3C,mIAAA,yBAAyB,OAAA;AACzB,oIAAA,0BAA0B,OAAA;AAM9B,wEAM2C;AALvC,6DAA6D;AAC7D,wHAAA,kBAAkB,OAAA;AAClB,yHAAA,mBAAmB,OAAA;AACnB,qHAAA,eAAe,OAAA;AACf,oHAAA,cAAc,OAAA;AAGlB,qEAAqE;AACrE,wEAAqE;AAA5D,sHAAA,gBAAgB,OAAA;AACzB,2EAAyD;AACzD,iFAA+D;AAE/D,iEAA+C;AAC/C,2EAAyD;AACzD,kEAAgD;AAChD,iEAA+C;AAC/C,uEAAqD;AACrD,qEAAmD;AAEnD,6DAA2C;AAC3C,8DAA4C;AAC5C,wDAAsC;AACtC,wDAAsC;AACtC,uDAAqC;AAGrC,oEAAoE"}
@@ -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 SimpleSelectQuery structures.
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 does not scan Common Table Expressions (CTEs) or subqueries.
25
+ * It supports both regular column collection and upstream column collection for maximum
26
+ * search conditions in DynamicQuery scenarios.
26
27
  *
27
- * IMPORTANT: This collector only supports SimpleSelectQuery. BinarySelectQuery
28
- * (UNION/INTERSECT/EXCEPT) will throw an error and should be decomposed into
29
- * individual SimpleSelectQuery branches before using this collector.
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
- * - Only collects column references to tables defined in the root FROM/JOIN clauses
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 within individual SELECT branches
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
- * If duplicateDetection is 'columnNameOnly', only column name is checked.
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
  }
@@ -26,23 +26,52 @@ const ValueComponent_1 = require("../models/ValueComponent");
26
26
  const CTECollector_1 = require("./CTECollector");
27
27
  const SelectValueCollector_1 = require("./SelectValueCollector");
28
28
  /**
29
- * A visitor that collects all ColumnReference instances from SimpleSelectQuery structures.
29
+ * A visitor that collects all ColumnReference instances from SQL query structures.
30
30
  * This visitor scans through all clauses and collects all unique ColumnReference objects.
31
- * It does not scan Common Table Expressions (CTEs) or subqueries.
31
+ * It supports both regular column collection and upstream column collection for maximum
32
+ * search conditions in DynamicQuery scenarios.
32
33
  *
33
- * IMPORTANT: This collector only supports SimpleSelectQuery. BinarySelectQuery
34
- * (UNION/INTERSECT/EXCEPT) will throw an error and should be decomposed into
35
- * individual SimpleSelectQuery branches before using this collector.
34
+ * Supported query types:
35
+ * - SimpleSelectQuery: Basic SELECT queries with all standard clauses
36
+ * - BinarySelectQuery: UNION, INTERSECT, EXCEPT queries (collects from both sides)
37
+ * - Common Table Expressions (CTEs) within queries
38
+ * - Subqueries and nested queries
36
39
  *
37
40
  * Behavioral notes:
38
- * - Only collects column references to tables defined in the root FROM/JOIN clauses
41
+ * - Collects column references to tables defined in the root FROM/JOIN clauses
39
42
  * - For aliased columns (e.g., 'title as name'), collects both the original column
40
43
  * reference ('title') AND the alias ('name') to enable complete dependency tracking
44
+ * - When upstream option is enabled, collects all available columns from upstream sources
45
+ * (CTEs, subqueries, and tables) for maximum search conditions in DynamicQuery
46
+ * - Automatically removes duplicates based on the specified duplicate detection mode
41
47
  *
42
48
  * Use cases:
43
49
  * - Dependency analysis and schema migration tools
44
- * - Column usage tracking within individual SELECT branches
50
+ * - Column usage tracking across complex queries including unions and CTEs
45
51
  * - Security analysis for column-level access control
52
+ * - DynamicQuery maximum search condition column discovery
53
+ *
54
+ * @example
55
+ * ```typescript
56
+ * // Basic usage - collect only referenced columns
57
+ * const collector = new SelectableColumnCollector();
58
+ * const columns = collector.collect(query);
59
+ *
60
+ * // With upstream collection for DynamicQuery
61
+ * const upstreamCollector = new SelectableColumnCollector(
62
+ * null, false, DuplicateDetectionMode.ColumnNameOnly,
63
+ * { upstream: true }
64
+ * );
65
+ * const allColumns = upstreamCollector.collect(query);
66
+ *
67
+ * // Works with union queries and CTEs
68
+ * const unionQuery = SelectQueryParser.parse(`
69
+ * SELECT name, email FROM users
70
+ * UNION
71
+ * SELECT name, email FROM customers
72
+ * `);
73
+ * const unionColumns = collector.collect(unionQuery);
74
+ * ```
46
75
  */
47
76
  class SelectableColumnCollector {
48
77
  /**
@@ -53,24 +82,46 @@ class SelectableColumnCollector {
53
82
  * @param {DuplicateDetectionMode} [duplicateDetection=DuplicateDetectionMode.ColumnNameOnly] - Specifies the duplicate detection mode: 'columnNameOnly' (default, only column name is used), or 'fullName' (table name + column name).
54
83
  * @param {Object} [options={}] - Additional options for the collector.
55
84
  * @param {boolean} [options.ignoreCaseAndUnderscore=false] - If true, column names are compared without considering case and underscores.
85
+ * @param {boolean} [options.upstream=false] - If true, collect all columns available from upstream sources for maximum search conditions in DynamicQuery.
56
86
  */
57
87
  constructor(tableColumnResolver, includeWildCard = false, duplicateDetection = DuplicateDetectionMode.ColumnNameOnly, options) {
58
88
  this.selectValues = [];
59
89
  this.visitedNodes = new Set();
90
+ this.uniqueKeys = new Set();
60
91
  this.isRootVisit = true;
61
92
  this.tableColumnResolver = null;
62
93
  this.commonTables = [];
94
+ this.initializeProperties(tableColumnResolver, includeWildCard, duplicateDetection, options);
95
+ this.initializeHandlers();
96
+ }
97
+ /**
98
+ * Initialize instance properties.
99
+ */
100
+ initializeProperties(tableColumnResolver, includeWildCard, duplicateDetection, options) {
63
101
  this.tableColumnResolver = tableColumnResolver !== null && tableColumnResolver !== void 0 ? tableColumnResolver : null;
64
102
  this.includeWildCard = includeWildCard;
65
103
  this.commonTableCollector = new CTECollector_1.CTECollector();
66
104
  this.commonTables = [];
67
105
  this.duplicateDetection = duplicateDetection;
68
106
  this.options = options || {};
107
+ }
108
+ /**
109
+ * Initialize the handler map for different SQL component types.
110
+ */
111
+ initializeHandlers() {
69
112
  this.handlers = new Map();
70
- // Main entry point for SimpleSelectQuery only
113
+ // Main entry point handlers
71
114
  this.handlers.set(SelectQuery_1.SimpleSelectQuery.kind, (expr) => this.visitSimpleSelectQuery(expr));
72
- // NOTE: BinarySelectQuery is NOT supported - it should be decomposed before using this collector
73
- // Handlers for each clause type that might contain column references
115
+ this.handlers.set(SelectQuery_1.BinarySelectQuery.kind, (expr) => this.visitBinarySelectQuery(expr));
116
+ // Clause handlers
117
+ this.initializeClauseHandlers();
118
+ // Value component handlers
119
+ this.initializeValueComponentHandlers();
120
+ }
121
+ /**
122
+ * Initialize handlers for SQL clause types.
123
+ */
124
+ initializeClauseHandlers() {
74
125
  this.handlers.set(Clause_1.SelectClause.kind, (expr) => this.visitSelectClause(expr));
75
126
  this.handlers.set(Clause_1.FromClause.kind, (expr) => this.visitFromClause(expr));
76
127
  this.handlers.set(Clause_1.WhereClause.kind, (expr) => this.visitWhereClause(expr));
@@ -81,10 +132,14 @@ class SelectableColumnCollector {
81
132
  this.handlers.set(Clause_1.LimitClause.kind, (expr) => this.visitLimitClause(expr));
82
133
  this.handlers.set(Clause_1.OffsetClause.kind, (expr) => this.offsetClause(expr));
83
134
  this.handlers.set(Clause_1.FetchClause.kind, (expr) => this.visitFetchClause(expr));
84
- // Add handlers for JOIN conditions
135
+ // JOIN condition handlers
85
136
  this.handlers.set(Clause_1.JoinOnClause.kind, (expr) => this.visitJoinOnClause(expr));
86
137
  this.handlers.set(Clause_1.JoinUsingClause.kind, (expr) => this.visitJoinUsingClause(expr));
87
- // For value components that might contain column references
138
+ }
139
+ /**
140
+ * Initialize handlers for value component types.
141
+ */
142
+ initializeValueComponentHandlers() {
88
143
  this.handlers.set(ValueComponent_1.ColumnReference.kind, (expr) => this.visitColumnReference(expr));
89
144
  this.handlers.set(ValueComponent_1.BinaryExpression.kind, (expr) => this.visitBinaryExpression(expr));
90
145
  this.handlers.set(ValueComponent_1.UnaryExpression.kind, (expr) => this.visitUnaryExpression(expr));
@@ -96,7 +151,6 @@ class SelectableColumnCollector {
96
151
  this.handlers.set(ValueComponent_1.ArrayExpression.kind, (expr) => this.visitArrayExpression(expr));
97
152
  this.handlers.set(ValueComponent_1.ArrayQueryExpression.kind, (expr) => this.visitArrayQueryExpression(expr));
98
153
  this.handlers.set(ValueComponent_1.ValueList.kind, (expr) => this.visitValueList(expr));
99
- this.handlers.set(Clause_1.WindowFrameClause.kind, (expr) => this.visitWindowFrameClause(expr));
100
154
  this.handlers.set(ValueComponent_1.WindowFrameExpression.kind, (expr) => this.visitWindowFrameExpression(expr));
101
155
  this.handlers.set(Clause_1.PartitionByClause.kind, (expr) => this.visitPartitionByClause(expr));
102
156
  }
@@ -104,6 +158,10 @@ class SelectableColumnCollector {
104
158
  return this.selectValues;
105
159
  }
106
160
  collect(arg) {
161
+ // Input validation
162
+ if (!arg) {
163
+ throw new Error("Input argument cannot be null or undefined");
164
+ }
107
165
  // Visit the component and return the collected select items
108
166
  this.visit(arg);
109
167
  const items = this.getValues();
@@ -116,38 +174,51 @@ class SelectableColumnCollector {
116
174
  reset() {
117
175
  this.selectValues = [];
118
176
  this.visitedNodes.clear();
177
+ this.uniqueKeys.clear();
119
178
  this.commonTables = [];
120
179
  }
121
180
  /**
122
181
  * Add a select value as unique, according to the duplicate detection option.
123
- * If duplicateDetection is 'columnNameOnly', only column name is checked.
124
- * If duplicateDetection is 'fullName', both table and column name are checked.
182
+ * Uses efficient Set-based duplicate detection for better performance.
125
183
  */
126
184
  addSelectValueAsUnique(name, value) {
185
+ const key = this.generateUniqueKey(name, value);
186
+ if (!this.uniqueKeys.has(key)) {
187
+ this.uniqueKeys.add(key);
188
+ this.selectValues.push({ name, value });
189
+ }
190
+ }
191
+ /**
192
+ * Generate a unique key based on the duplicate detection mode.
193
+ */
194
+ generateUniqueKey(name, value) {
127
195
  if (this.duplicateDetection === DuplicateDetectionMode.ColumnNameOnly) {
128
- if (!this.selectValues.some(item => item.name === name)) {
129
- this.selectValues.push({ name, value });
130
- }
196
+ // Apply case and underscore normalization if specified
197
+ return this.normalizeColumnName(name);
131
198
  }
132
- else if (this.duplicateDetection === DuplicateDetectionMode.FullName) {
133
- // Try to get table name from ValueComponent if possible
199
+ else {
200
+ // FullName mode: include table name
134
201
  let tableName = '';
135
202
  if (value && typeof value.getNamespace === 'function') {
136
203
  tableName = value.getNamespace() || '';
137
204
  }
138
- const key = tableName ? tableName + '.' + name : name;
139
- if (!this.selectValues.some(item => {
140
- let itemTable = '';
141
- if (item.value && typeof item.value.getNamespace === 'function') {
142
- itemTable = item.value.getNamespace() || '';
143
- }
144
- const itemKey = itemTable ? itemTable + '.' + item.name : item.name;
145
- return itemKey === key;
146
- })) {
147
- this.selectValues.push({ name, value });
148
- }
205
+ const fullName = tableName ? tableName + '.' + name : name;
206
+ return this.normalizeColumnName(fullName);
149
207
  }
150
208
  }
209
+ /**
210
+ * Normalize column name based on options.
211
+ * Ensures safe string handling to prevent injection attacks.
212
+ */
213
+ normalizeColumnName(name) {
214
+ if (typeof name !== 'string') {
215
+ throw new Error("Column name must be a string");
216
+ }
217
+ if (this.options.ignoreCaseAndUnderscore) {
218
+ return name.toLowerCase().replace(/_/g, '');
219
+ }
220
+ return name;
221
+ }
151
222
  /**
152
223
  * Main entry point for the visitor pattern.
153
224
  * Implements the shallow visit pattern to distinguish between root and recursive visits.
@@ -158,8 +229,8 @@ class SelectableColumnCollector {
158
229
  this.visitNode(arg);
159
230
  return;
160
231
  }
161
- if (!(arg instanceof SelectQuery_1.SimpleSelectQuery)) {
162
- throw new Error("Root visit requires a SimpleSelectQuery. Decompose compound queries before collecting columns.");
232
+ if (!(arg instanceof SelectQuery_1.SimpleSelectQuery || arg instanceof SelectQuery_1.BinarySelectQuery)) {
233
+ throw new Error("Root visit requires a SimpleSelectQuery or BinarySelectQuery.");
163
234
  }
164
235
  // If this is a root visit, we need to reset the state
165
236
  this.reset();
@@ -184,12 +255,18 @@ class SelectableColumnCollector {
184
255
  }
185
256
  // Mark as visited
186
257
  this.visitedNodes.add(arg);
187
- const handler = this.handlers.get(arg.getKind());
188
- if (handler) {
189
- handler(arg);
190
- return;
258
+ try {
259
+ const handler = this.handlers.get(arg.getKind());
260
+ if (handler) {
261
+ handler(arg);
262
+ }
263
+ // For any other component types, we don't need to do anything
264
+ }
265
+ catch (error) {
266
+ // Re-throw with additional context
267
+ const errorMessage = error instanceof Error ? error.message : String(error);
268
+ throw new Error(`Error processing SQL component of type ${arg.getKind().toString()}: ${errorMessage}`);
191
269
  }
192
- // For any other component types, we don't need to do anything
193
270
  }
194
271
  /**
195
272
  * Process a SimpleSelectQuery to collect ColumnReferences from all its clauses
@@ -233,6 +310,25 @@ class SelectableColumnCollector {
233
310
  }
234
311
  // Explicitly NOT processing query.WithClause to avoid scanning CTEs
235
312
  }
313
+ /**
314
+ * Process a BinarySelectQuery (UNION, INTERSECT, EXCEPT) to collect ColumnReferences from both sides
315
+ */
316
+ visitBinarySelectQuery(query) {
317
+ // Collect from the left side
318
+ if (query.left instanceof SelectQuery_1.SimpleSelectQuery) {
319
+ this.visitSimpleSelectQuery(query.left);
320
+ }
321
+ else if (query.left instanceof SelectQuery_1.BinarySelectQuery) {
322
+ this.visitBinarySelectQuery(query.left);
323
+ }
324
+ // Collect from the right side
325
+ if (query.right instanceof SelectQuery_1.SimpleSelectQuery) {
326
+ this.visitSimpleSelectQuery(query.right);
327
+ }
328
+ else if (query.right instanceof SelectQuery_1.BinarySelectQuery) {
329
+ this.visitBinarySelectQuery(query.right);
330
+ }
331
+ }
236
332
  // Clause handlers
237
333
  visitSelectClause(clause) {
238
334
  for (const item of clause.items) {
@@ -250,6 +346,10 @@ class SelectableColumnCollector {
250
346
  // Add the select value as unique to avoid duplicates
251
347
  this.addSelectValueAsUnique(item.name, item.value);
252
348
  }
349
+ // If upstream option is enabled, collect all available columns from upstream sources
350
+ if (this.options.upstream) {
351
+ this.collectUpstreamColumns(clause);
352
+ }
253
353
  if (clause.joins) {
254
354
  for (const join of clause.joins) {
255
355
  if (join.condition) {
@@ -404,6 +504,93 @@ class SelectableColumnCollector {
404
504
  visitPartitionByClause(clause) {
405
505
  clause.value.accept(this);
406
506
  }
507
+ /**
508
+ * Collect all upstream columns available for DynamicQuery maximum search conditions.
509
+ * This includes columns from CTEs, subqueries, and tables that can be used for filtering.
510
+ */
511
+ collectUpstreamColumns(clause) {
512
+ // Collect columns from primary source
513
+ this.collectUpstreamColumnsFromSource(clause.source);
514
+ // Collect columns from JOIN sources
515
+ if (clause.joins) {
516
+ for (const join of clause.joins) {
517
+ this.collectUpstreamColumnsFromSource(join.source);
518
+ }
519
+ }
520
+ }
521
+ /**
522
+ * Collect upstream columns from a specific source (table, subquery, or CTE).
523
+ */
524
+ collectUpstreamColumnsFromSource(source) {
525
+ if (source.datasource instanceof Clause_1.TableSource) {
526
+ // Check if this is a CTE reference first
527
+ const cteTable = this.findCTEByName(source.datasource.table.name);
528
+ if (cteTable) {
529
+ this.collectUpstreamColumnsFromCTE(cteTable);
530
+ }
531
+ else {
532
+ // For regular table sources, use table column resolver if available
533
+ this.collectUpstreamColumnsFromTable(source.datasource);
534
+ }
535
+ }
536
+ else if (source.datasource instanceof Clause_1.SubQuerySource) {
537
+ // For subquery sources, collect columns from the subquery
538
+ this.collectUpstreamColumnsFromSubquery(source.datasource);
539
+ }
540
+ else if (source.datasource instanceof Clause_1.ParenSource) {
541
+ // For parenthesized sources, recursively collect
542
+ this.collectUpstreamColumnsFromSource(new Clause_1.SourceExpression(source.datasource.source, null));
543
+ }
544
+ }
545
+ /**
546
+ * Collect upstream columns from a table source using table column resolver.
547
+ */
548
+ collectUpstreamColumnsFromTable(tableSource) {
549
+ if (this.tableColumnResolver) {
550
+ const tableName = tableSource.table.name;
551
+ const columns = this.tableColumnResolver(tableName);
552
+ for (const columnName of columns) {
553
+ // Create a column reference for each available column
554
+ const columnRef = new ValueComponent_1.ColumnReference(tableSource.table.name, columnName);
555
+ this.addSelectValueAsUnique(columnName, columnRef);
556
+ }
557
+ }
558
+ }
559
+ /**
560
+ * Collect upstream columns from a subquery source.
561
+ */
562
+ collectUpstreamColumnsFromSubquery(subquerySource) {
563
+ if (subquerySource.query instanceof SelectQuery_1.SimpleSelectQuery) {
564
+ // Create a new collector for the subquery
565
+ const subqueryCollector = new SelectableColumnCollector(this.tableColumnResolver, this.includeWildCard, this.duplicateDetection, { ...this.options, upstream: true });
566
+ // Collect columns from the subquery
567
+ const subqueryColumns = subqueryCollector.collect(subquerySource.query);
568
+ // Add all columns from the subquery
569
+ for (const item of subqueryColumns) {
570
+ this.addSelectValueAsUnique(item.name, item.value);
571
+ }
572
+ }
573
+ }
574
+ /**
575
+ * Collect upstream columns from a CTE.
576
+ */
577
+ collectUpstreamColumnsFromCTE(cteTable) {
578
+ if (cteTable.query instanceof SelectQuery_1.SimpleSelectQuery) {
579
+ // Use SelectValueCollector to get the columns defined in the CTE's SELECT clause
580
+ const cteCollector = new SelectValueCollector_1.SelectValueCollector(this.tableColumnResolver, this.commonTables);
581
+ const cteColumns = cteCollector.collect(cteTable.query.selectClause);
582
+ // Add all columns from the CTE
583
+ for (const item of cteColumns) {
584
+ this.addSelectValueAsUnique(item.name, item.value);
585
+ }
586
+ }
587
+ }
588
+ /**
589
+ * Find a CTE by name in the common tables.
590
+ */
591
+ findCTEByName(name) {
592
+ return this.commonTables.find(cte => cte.getSourceAliasName() === name) || null;
593
+ }
407
594
  }
408
595
  exports.SelectableColumnCollector = SelectableColumnCollector;
409
596
  //# 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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"}