public class ParameterScope extends Object
EmptyScope (which is its base class), it has no parent scope.ParameterNamespace| Modifier and Type | Field and Description |
|---|---|
protected SqlValidatorImpl |
validator |
| Constructor and Description |
|---|
ParameterScope(SqlValidatorImpl validator,
Map<String,RelDataType> nameToTypeMap) |
| Modifier and Type | Method and Description |
|---|---|
void |
addChild(SqlValidatorNamespace ns,
String alias)
Registers a relation in this scope.
|
void |
findAliases(Collection<SqlMoniker> result)
Collects the
SqlMonikers of all table aliases (uses of tables in
query FROM clauses) available in this scope. |
void |
findAllColumnNames(List<SqlMoniker> result)
Collects the
SqlMonikers of all possible columns in this scope. |
void |
findAllTableNames(List<SqlMoniker> result) |
Pair<String,SqlValidatorNamespace> |
findQualifyingTableName(String columnName,
SqlNode ctx)
Finds the table alias which is implicitly qualifying an unqualified
column name.
|
SqlQualified |
fullyQualify(SqlIdentifier identifier)
Converts an identifier into a fully-qualified identifier.
|
SqlMonotonicity |
getMonotonicity(SqlNode expr)
Returns whether an expression is monotonic in this scope.
|
SqlNode |
getNode()
Returns the root node of this scope.
|
SqlValidatorScope |
getOperandScope(SqlCall call)
Returns the scope within which operands to a call are to be validated.
|
SqlNodeList |
getOrderList()
Returns the expressions by which the rows in this scope are sorted.
|
SqlValidatorNamespace |
getTableNamespace(List<String> names)
Looks up a table in this scope from its name.
|
SqlValidator |
getValidator()
Returns the validator which created this scope.
|
SqlWindow |
lookupWindow(String name)
Finds a window with a given name.
|
RelDataType |
nullifyType(SqlNode node,
RelDataType type)
Converts the type of an expression to nullable, if the context
warrants it.
|
SqlValidatorNamespace |
resolve(List<String> names,
SqlValidatorScope[] ancestorOut,
int[] offsetOut)
Looks up a node with a given name.
|
RelDataType |
resolveColumn(String name,
SqlNode ctx)
Resolves a single identifier to a column, and returns the datatype of
that column.
|
void |
validateExpr(SqlNode expr)
Performs any scope-specific validation of an expression.
|
protected final SqlValidatorImpl validator
public ParameterScope(SqlValidatorImpl validator, Map<String,RelDataType> nameToTypeMap)
public SqlQualified fullyQualify(SqlIdentifier identifier)
SqlValidatorScopefullyQualify in interface SqlValidatorScopepublic SqlValidatorScope getOperandScope(SqlCall call)
SqlValidatorScopegetOperandScope in interface SqlValidatorScopecall - Callpublic SqlValidatorNamespace resolve(List<String> names, SqlValidatorScope[] ancestorOut, int[] offsetOut)
SqlValidatorScoperesolve in interface SqlValidatorScopenames - Name of node to findancestorOut - If not null, writes the ancestor scope hereoffsetOut - If not null, writes the offset within the ancestor herepublic SqlValidator getValidator()
SqlValidatorScopegetValidator in interface SqlValidatorScopepublic SqlNode getNode()
SqlValidatorScopegetNode in interface SqlValidatorScopepublic SqlValidatorNamespace getTableNamespace(List<String> names)
SqlValidatorScopeTableNamespace that wraps it. If the "table" is defined in a
WITH clause it may be a query, not a table after all.getTableNamespace in interface SqlValidatorScopenames - Name of table, may be qualified or fully-qualifiedpublic RelDataType nullifyType(SqlNode node, RelDataType type)
SqlValidatorScopenullifyType in interface SqlValidatorScopepublic void findAllColumnNames(List<SqlMoniker> result)
SqlValidatorScopeSqlMonikers of all possible columns in this scope.findAllColumnNames in interface SqlValidatorScoperesult - an array list of strings to add the result topublic void findAllTableNames(List<SqlMoniker> result)
public void findAliases(Collection<SqlMoniker> result)
SqlValidatorScopeSqlMonikers of all table aliases (uses of tables in
query FROM clauses) available in this scope.findAliases in interface SqlValidatorScoperesult - a list of monikers to add the result topublic RelDataType resolveColumn(String name, SqlNode ctx)
SqlValidatorScopeIf it cannot find the column, returns null. If the column is
ambiguous, throws an error with context ctx.
resolveColumn in interface SqlValidatorScopename - Name of columnctx - Context for exceptionpublic void validateExpr(SqlNode expr)
SqlValidatorScopevalidateExpr in interface SqlValidatorScopepublic Pair<String,SqlValidatorNamespace> findQualifyingTableName(String columnName, SqlNode ctx)
SqlValidatorScopeThis method is only implemented in scopes (such as
SelectScope) which can be the
context for name-resolution. In scopes such as
IdentifierNamespace, it throws
UnsupportedOperationException.
findQualifyingTableName in interface SqlValidatorScopecolumnName - Column namectx - Validation context, to appear in any error thrownpublic void addChild(SqlValidatorNamespace ns, String alias)
SqlValidatorScopeaddChild in interface SqlValidatorScopens - Namespace representing the result-columns of the relationalias - Alias with which to reference the relation, must not be nullpublic SqlWindow lookupWindow(String name)
SqlValidatorScopelookupWindow in interface SqlValidatorScopepublic SqlMonotonicity getMonotonicity(SqlNode expr)
SqlValidatorScopegetMonotonicity in interface SqlValidatorScopepublic SqlNodeList getOrderList()
SqlValidatorScopegetOrderList in interface SqlValidatorScopeCopyright © 2012–2015 The Apache Software Foundation. All rights reserved.