|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface SqlValidatorScope
Name-resolution scope. Represents any position in a parse tree than an expression can be, or anything in the parse tree which has columns.
When validating an expression, say "foo"."bar", you first use the resolve(java.lang.String, org.eigenbase.sql.validate.SqlValidatorScope[], int[])
method of the scope where the expression is defined to locate
"foo". If successful, this returns a namespace
describing the type of the resulting object.
Method Summary | |
---|---|
void |
addChild(SqlValidatorNamespace ns,
String alias)
Registers a relation in this scope. |
void |
findAliases(List<SqlMoniker> result)
Collects the SqlMoniker s of all table aliases (uses of tables in
query FROM clauses) available in this scope. |
void |
findAllColumnNames(List<SqlMoniker> result)
Collects the SqlMoniker s of all possible columns in this scope. |
String |
findQualifyingTableName(String columnName,
SqlNode ctx)
Finds the table alias which is implicitly qualifying an unqualified column name. |
SqlIdentifier |
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. |
SqlValidator |
getValidator()
Returns the validator which created this scope. |
SqlWindow |
lookupWindow(String name)
Finds a window with a given name. |
SqlValidatorNamespace |
resolve(String name,
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. |
Method Detail |
---|
SqlValidator getValidator()
SqlNode getNode()
SqlValidatorNamespace resolve(String name, SqlValidatorScope[] ancestorOut, int[] offsetOut)
name
- Name of node to findancestorOut
- If not null, writes the ancestor scope hereoffsetOut
- If not null, writes the offset within the ancestor hereString findQualifyingTableName(String columnName, SqlNode ctx)
This 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
.
columnName
- Column namectx
- Validation context, to appear in any error thrown
void findAllColumnNames(List<SqlMoniker> result)
SqlMoniker
s of all possible columns in this scope.
result
- an array list of strings to add the result tovoid findAliases(List<SqlMoniker> result)
SqlMoniker
s of all table aliases (uses of tables in
query FROM clauses) available in this scope.
result
- a list of monikers to add the result toSqlIdentifier fullyQualify(SqlIdentifier identifier)
void addChild(SqlValidatorNamespace ns, String alias)
ns
- Namespace representing the result-columns of the relationalias
- Alias with which to reference the relation, must not be nullSqlWindow lookupWindow(String name)
SqlMonotonicity getMonotonicity(SqlNode expr)
SqlNodeList getOrderList()
RelDataType resolveColumn(String name, SqlNode ctx)
If it cannot find the column, returns null. If the column is
ambiguous, throws an error with context ctx
.
name
- Name of columnctx
- Context for exception
SqlValidatorScope getOperandScope(SqlCall call)
call
- Call
void validateExpr(SqlNode expr)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |