Package org.apache.calcite.sql.validate
Class ParameterScope
java.lang.Object
org.apache.calcite.sql.validate.ParameterScope
- All Implemented Interfaces:
SqlValidatorScope
A scope which contains nothing besides a few parameters. Like
EmptyScope (which is its base class), it has no parent scope.- See Also:
-
ParameterNamespace
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.calcite.sql.validate.SqlValidatorScope
SqlValidatorScope.EmptyPath, SqlValidatorScope.Path, SqlValidatorScope.Resolve, SqlValidatorScope.Resolved, SqlValidatorScope.ResolvedImpl, SqlValidatorScope.Step -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionParameterScope(SqlValidatorImpl validator, Map<String, RelDataType> nameToTypeMap) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddChild(SqlValidatorNamespace ns, String alias, boolean nullable) Registers a relation in this scope.voidfindAliases(Collection<SqlMoniker> result) Collects theSqlMonikers of all table aliases (uses of tables in query FROM clauses) available in this scope.voidfindAllColumnNames(List<SqlMoniker> result) Collects theSqlMonikers of all possible columns in this scope.voidfindAllTableNames(List<SqlMoniker> result) findQualifyingTableName(String columnName, SqlNode ctx) findQualifyingTableNames(String columnName, SqlNode ctx, SqlNameMatcher nameMatcher) Finds all table aliases which are implicitly qualifying an unqualified column name.fullyQualify(SqlIdentifier identifier) Converts an identifier into a fully-qualified identifier.getMonotonicity(SqlNode expr) Returns whether an expression is monotonic in this scope.getNode()Returns the root node of this scope.getOperandScope(SqlCall call) Returns the scope within which operands to a call are to be validated.@Nullable SqlNodeListReturns the expressions by which the rows in this scope are sorted.@Nullable SqlValidatorNamespacegetTableNamespace(List<String> names) Returns the validator which created this scope.@Nullable SqlWindowlookupWindow(String name) Finds a window with a given name.nullifyType(SqlNode node, RelDataType type) Converts the type of an expression to nullable, if the context warrants it.voidresolve(List<String> names, SqlNameMatcher nameMatcher, boolean deep, SqlValidatorScope.Resolved resolved) Looks up a node with a given name.@Nullable RelDataTyperesolveColumn(String name, SqlNode ctx) Resolves a single identifier to a column, and returns the datatype of that column.voidresolveTable(List<String> names, SqlNameMatcher nameMatcher, SqlValidatorScope.Path path, SqlValidatorScope.Resolved resolved) Looks up a table in this scope from its name.voidvalidateExpr(SqlNode expr) Performs any scope-specific validation of an expression.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.calcite.sql.validate.SqlValidatorScope
isMeasureRef, isWithin
-
Field Details
-
validator
-
-
Constructor Details
-
ParameterScope
-
-
Method Details
-
fullyQualify
Description copied from interface:SqlValidatorScopeConverts an identifier into a fully-qualified identifier. For example, the "empno" in "select empno from emp natural join dept" becomes "emp.empno".- Specified by:
fullyQualifyin interfaceSqlValidatorScope- Returns:
- A qualified identifier, never null
-
getOperandScope
Description copied from interface:SqlValidatorScopeReturns the scope within which operands to a call are to be validated. Usually it is this scope, but when the call is to an aggregate function and this is an aggregating scope, it will be a a different scope.- Specified by:
getOperandScopein interfaceSqlValidatorScope- Parameters:
call- Call- Returns:
- Scope within which to validate arguments to call.
-
resolveColumn
Description copied from interface:SqlValidatorScopeResolves a single identifier to a column, and returns the datatype of that column.If it cannot find the column, returns null. If the column is ambiguous, throws an error with context
ctx.- Specified by:
resolveColumnin interfaceSqlValidatorScope- Parameters:
name- Name of columnctx- Context for exception- Returns:
- Type of column, if found and unambiguous; null if not found
-
getValidator
Description copied from interface:SqlValidatorScopeReturns the validator which created this scope.- Specified by:
getValidatorin interfaceSqlValidatorScope
-
getNode
Description copied from interface:SqlValidatorScopeReturns the root node of this scope. Never null.- Specified by:
getNodein interfaceSqlValidatorScope
-
resolve
public void resolve(List<String> names, SqlNameMatcher nameMatcher, boolean deep, SqlValidatorScope.Resolved resolved) Description copied from interface:SqlValidatorScopeLooks up a node with a given name. Adds the match(es) to the resolved if found.- Specified by:
resolvein interfaceSqlValidatorScope- Parameters:
names- Name of node to find, maybe partially or fully qualifiednameMatcher- Name matcherdeep- Whether to look more than one level deepresolved- Callback wherein to write the match(es) we find
-
getTableNamespace
- Specified by:
getTableNamespacein interfaceSqlValidatorScope
-
resolveTable
public void resolveTable(List<String> names, SqlNameMatcher nameMatcher, SqlValidatorScope.Path path, SqlValidatorScope.Resolved resolved) Description copied from interface:SqlValidatorScopeLooks up a table in this scope from its name. If found, callsSqlValidatorScope.resolve(List, SqlNameMatcher, boolean, Resolved).TableNamespacethat wraps it. If the "table" is defined in aWITHclause it may be a query, not a table after all.The name matcher is not null, and one typically uses
SqlValidatorCatalogReader.nameMatcher().- Specified by:
resolveTablein interfaceSqlValidatorScope- Parameters:
names- Name of table, may be qualified or fully-qualifiednameMatcher- Name matcherpath- List of names that we have traversed through so far
-
nullifyType
Description copied from interface:SqlValidatorScopeConverts the type of an expression to nullable, if the context warrants it.- Specified by:
nullifyTypein interfaceSqlValidatorScope
-
findAllColumnNames
Description copied from interface:SqlValidatorScopeCollects theSqlMonikers of all possible columns in this scope.- Specified by:
findAllColumnNamesin interfaceSqlValidatorScope- Parameters:
result- an array list of strings to add the result to
-
findAllTableNames
-
findAliases
Description copied from interface:SqlValidatorScopeCollects theSqlMonikers of all table aliases (uses of tables in query FROM clauses) available in this scope.- Specified by:
findAliasesin interfaceSqlValidatorScope- Parameters:
result- a list of monikers to add the result to
-
validateExpr
Description copied from interface:SqlValidatorScopePerforms any scope-specific validation of an expression. For example, an aggregating scope requires that expressions are valid aggregations. The expression has already been validated.- Specified by:
validateExprin interfaceSqlValidatorScope
-
findQualifyingTableName
- Specified by:
findQualifyingTableNamein interfaceSqlValidatorScope
-
findQualifyingTableNames
public Map<String,org.apache.calcite.sql.validate.ScopeChild> findQualifyingTableNames(String columnName, SqlNode ctx, SqlNameMatcher nameMatcher) Description copied from interface:SqlValidatorScopeFinds all table aliases which are implicitly qualifying an unqualified column name.This method is only implemented in scopes (such as
SelectScope) which can be the context for name-resolution. In scopes such asIdentifierNamespace, it throwsUnsupportedOperationException.- Specified by:
findQualifyingTableNamesin interfaceSqlValidatorScope- Parameters:
columnName- Column namectx- Validation context, to appear in any error thrownnameMatcher- Name matcher- Returns:
- Map of applicable table alias and namespaces, never null, empty if no aliases found
-
addChild
Description copied from interface:SqlValidatorScopeRegisters a relation in this scope.- Specified by:
addChildin interfaceSqlValidatorScope- Parameters:
ns- Namespace representing the result-columns of the relationalias- Alias with which to reference the relation, must not be nullnullable- Whether this is a null-generating side of a join
-
lookupWindow
Description copied from interface:SqlValidatorScopeFinds a window with a given name. Returns null if not found.- Specified by:
lookupWindowin interfaceSqlValidatorScope
-
getMonotonicity
Description copied from interface:SqlValidatorScopeReturns whether an expression is monotonic in this scope. For example, if the scope has previously been sorted by columns X, Y, then X is monotonic in this scope, but Y is not.- Specified by:
getMonotonicityin interfaceSqlValidatorScope
-
getOrderList
Description copied from interface:SqlValidatorScopeReturns the expressions by which the rows in this scope are sorted. If the rows are unsorted, returns null.- Specified by:
getOrderListin interfaceSqlValidatorScope
-