public class UnnestNamespace extends AbstractNamespace
columnSources, columnSourcesWithRefs, guessColumnStrategy, nameMatcher, node, referenceTraceabilityEnabled, validated| Constructor and Description |
|---|
UnnestNamespace(TTable unnestTable,
String alias) |
UnnestNamespace(TTable unnestTable,
String alias,
INameMatcher nameMatcher) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
addInferredColumn(String columnName,
double confidence,
String evidence)
Add an inferred column to this namespace.
|
protected void |
doValidate()
Subclasses override this to perform actual validation logic.
|
List<TTable> |
getAllFinalTables()
Get all final physical tables this namespace depends on.
|
TExpression |
getArrayExpression()
Get the array expression being unnested.
|
String |
getDisplayName()
Get a display name for this namespace (for debugging/error messages)
|
TTable |
getFinalTable()
Get the final physical table this namespace represents.
|
String |
getImplicitColumnName()
Get the implicit column name for the unnested elements.
|
Set<String> |
getInferredColumns()
Get all columns that were inferred (not from SELECT list directly).
|
String |
getOffsetColumnName()
Get the offset column name if WITH OFFSET is present.
|
TTable |
getSourceTable()
Get the TTable that this namespace is associated with.
|
TTable |
getUnnestTable() |
ColumnLevel |
hasColumn(String columnName)
Check if a column exists in this namespace.
|
boolean |
hasStarColumn()
Check if this namespace contains a star column (SELECT *).
|
ColumnSource |
resolveColumn(String columnName)
Resolve a column name to its source.
|
ColumnSource |
resolveQualifiedStructField(String columnName)
Resolve a qualified struct field reference (e.g., "alias.field").
|
boolean |
supportsDynamicInference()
Check if this namespace supports dynamic column inference.
|
String |
toString() |
addColumnSource, addColumnSource, enableReferenceTraceability, ensureValidated, getAllColumnSources, getAllUniqueColumns, getColumnReferences, getColumnSourceWithReferences, getGuessColumnStrategy, getNameMatcher, getNode, isReferenceTraceabilityEnabled, isValidated, setGuessColumnStrategy, validateclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetSelectStatement, getStarColumn, resolveColumnPathpublic UnnestNamespace(TTable unnestTable, String alias, INameMatcher nameMatcher)
public UnnestNamespace(TTable unnestTable, String alias)
public String getDisplayName()
INamespacepublic TTable getFinalTable()
INamespacepublic List<TTable> getAllFinalTables()
INamespacegetAllFinalTables in interface INamespacegetAllFinalTables in class AbstractNamespaceprotected void doValidate()
AbstractNamespacedoValidate in class AbstractNamespacepublic boolean hasStarColumn()
INamespacepublic boolean supportsDynamicInference()
INamespacepublic boolean addInferredColumn(String columnName, double confidence, String evidence)
INamespacecolumnName - the column name to addconfidence - the confidence score (0.0 to 1.0)evidence - description of why this column was inferredpublic Set<String> getInferredColumns()
INamespacepublic ColumnLevel hasColumn(String columnName)
INamespacehasColumn in interface INamespacehasColumn in class AbstractNamespacecolumnName - Column name to checkpublic ColumnSource resolveColumn(String columnName)
INamespaceresolveColumn in interface INamespaceresolveColumn in class AbstractNamespacecolumnName - Column name to resolvepublic ColumnSource resolveQualifiedStructField(String columnName)
Use this method when resolving qualified column references like "x.field" where "x" is the UNNEST alias. This is appropriate for UNNEST of STRUCT arrays where the struct fields are accessed via the alias.
For unqualified column references, use resolveColumn(String) which
does NOT infer columns and returns null for unknown columns.
columnName - the column/field name (without the table qualifier)public TExpression getArrayExpression()
public String getImplicitColumnName()
public String getOffsetColumnName()
public TTable getUnnestTable()
public TTable getSourceTable()
public String toString()
toString in class AbstractNamespace