public class StarColumnExpander extends Object
Star expansion is crucial for: - Understanding exactly which columns are selected - Data lineage tracking - Query refactoring - Schema evolution analysis
Supports multiple star expansion scenarios: 1. Simple star: SELECT * FROM t1 2. Qualified star: SELECT t1.* FROM t1 JOIN t2 3. Multiple stars: SELECT t1.*, t2.* FROM t1 JOIN t2 4. Mixed: SELECT t1.*, t2.id FROM t1 JOIN t2 5. Nested: SELECT * FROM (SELECT * FROM t1) sub
Example:
-- Input: SELECT * FROM employees -- Expanded (if metadata available): SELECT employees.id, employees.name, employees.salary FROM employees
| Constructor and Description |
|---|
StarColumnExpander() |
StarColumnExpander(boolean includeTableQualifier,
boolean expandSubqueries) |
| Modifier and Type | Method and Description |
|---|---|
ExpansionResult |
expandAllStars(List<TResultColumn> resultColumns,
List<INamespace> availableNamespaces)
Expand all stars in a result column list.
|
List<ExpandedColumn> |
expandQualifiedStar(TResultColumn starColumn,
INamespace namespace,
String tableAlias)
Expand qualified star (e.g., t1.*) to explicit column list.
|
List<ExpandedColumn> |
expandStar(TResultColumn starColumn,
INamespace namespace)
Expand a star column to explicit column list.
|
public StarColumnExpander()
public StarColumnExpander(boolean includeTableQualifier, boolean expandSubqueries)
public List<ExpandedColumn> expandStar(TResultColumn starColumn, INamespace namespace)
starColumn - the star column (SELECT *)namespace - the namespace to expand frompublic List<ExpandedColumn> expandQualifiedStar(TResultColumn starColumn, INamespace namespace, String tableAlias)
starColumn - the star column (SELECT t1.*)namespace - the namespace to expand fromtableAlias - the table qualifier (e.g., "t1")public ExpansionResult expandAllStars(List<TResultColumn> resultColumns, List<INamespace> availableNamespaces)
resultColumns - the result columnsavailableNamespaces - list of available namespaces to expand from