public class SqlAdvisorValidator extends SqlValidatorImpl
SqlAdvisorValidator is used by SqlAdvisor to traverse
the parse tree of a SQL statement, not for validation purpose but for setting
up the scopes and namespaces to facilitate retrieval of SQL statement
completion hints.SqlValidatorImpl.DmlNamespace, SqlValidatorImpl.FunctionParamInfo, SqlValidatorImpl.IdInfo, SqlValidatorImpl.StatusexpandColumnReferences, expandIdentifiers, functionCallStack, idPositions, namespaces, scopes, TRACER, typeFactory, unknownType, UPDATE_ANON_PREFIX, UPDATE_SRC_ALIAS, UPDATE_TGT_ALIASSTRICT| Constructor and Description |
|---|
SqlAdvisorValidator(SqlOperatorTable opTab,
SqlValidatorCatalogReader catalogReader,
RelDataTypeFactory typeFactory,
SqlConformance conformance)
Creates a SqlAdvisor validator.
|
| Modifier and Type | Method and Description |
|---|---|
RelDataType |
deriveType(SqlValidatorScope scope,
SqlNode operand)
Calls the parent class method and mask Farrago exception thrown.
|
SqlNode |
expand(SqlNode expr,
SqlValidatorScope scope)
Expands an expression.
|
SqlNode |
expandOrderExpr(SqlSelect select,
SqlNode orderExpr)
Expands an expression in the ORDER BY clause into an expression with the
same semantics as expressions in the SELECT clause.
|
protected boolean |
shouldAllowOverRelation() |
protected void |
validateFrom(SqlNode node,
RelDataType targetRowType,
SqlValidatorScope scope)
Validates the FROM clause of a query, or (recursively) a child node of
the FROM clause: AS, OVER, JOIN, VALUES, or subquery.
|
protected void |
validateHavingClause(SqlSelect select)
Calls the parent class method and masks Farrago exception thrown.
|
void |
validateIdentifier(SqlIdentifier id,
SqlValidatorScope scope)
Registers the identifier and its scope into a map keyed by ParserPostion.
|
boolean |
validateModality(SqlSelect select,
SqlModality modality,
boolean fail)
Validates that a query is capable of producing a return of given modality
(relational or streaming).
|
protected void |
validateNamespace(SqlValidatorNamespace namespace)
Validates a namespace.
|
protected void |
validateOver(SqlCall call,
SqlValidatorScope scope) |
protected void |
validateWhereClause(SqlSelect select)
Calls the parent class method and masks Farrago exception thrown.
|
addToSelectList, checkTypeAssignment, createSelectNamespace, createSetopNamespace, createSourceSelectForDelete, createSourceSelectForUpdate, createTargetRowType, declareCursor, deriveAlias, deriveConstructorType, expandStar, getAggregate, getCatalogReader, getColumnReferenceExpansion, getConformance, getCursorScope, getEmptyScope, getFieldOrigins, getFromScope, getGroupScope, getHavingScope, getJoinScope, getLogicalSourceRowType, getLogicalTargetRowType, getNamespace, getOperatorTable, getOrderScope, getOriginal, getOverScope, getParameterRowType, getParentCursor, getRawSelectScope, getSelectScope, getSelfJoinExprForUpdate, getTypeFactory, getUnknownType, getValidatedNodeType, getValidatedNodeTypeIfKnown, getWhereScope, getWindowByName, getWithScope, handleUnresolvedFunction, inferUnknownTypes, isAggregate, isAggregate, isSystemField, lookupHints, lookupNameCompletionHints, lookupQualifiedName, newValidationError, performUnconditionalRewrites, popFunctionCall, pushFunctionCall, registerNamespace, removeValidatedNodeType, resolveWindow, setCallRewrite, setColumnReferenceExpansion, setIdentifierExpansion, setOriginal, setValidatedNodeType, shouldAllowIntermediateOrderBy, shouldExpandIdentifiers, validate, validateAggregateParams, validateCall, validateColumnListParams, validateDataType, validateDelete, validateDynamicParam, validateFeature, validateGroupClause, validateInsert, validateIntervalQualifier, validateJoin, validateLiteral, validateMerge, validateOrderList, validateParameterizedExpression, validateQuery, validateSelect, validateSelectList, validateUpdate, validateValues, validateWhereOrOn, validateWindow, validateWindowClause, validateWith, validateWithItempublic SqlAdvisorValidator(SqlOperatorTable opTab, SqlValidatorCatalogReader catalogReader, RelDataTypeFactory typeFactory, SqlConformance conformance)
opTab - Operator tablecatalogReader - Catalog readertypeFactory - Type factoryconformance - Compatibility modepublic void validateIdentifier(SqlIdentifier id, SqlValidatorScope scope)
validateIdentifier in interface SqlValidatorvalidateIdentifier in class SqlValidatorImplid - Identifierscope - Naming scopepublic SqlNode expand(SqlNode expr, SqlValidatorScope scope)
SqlValidatorexpand in interface SqlValidatorexpand in class SqlValidatorImplexpr - Expressionscope - Scopepublic SqlNode expandOrderExpr(SqlSelect select, SqlNode orderExpr)
SqlValidatorThis is made necessary by a couple of dialect 'features':
expandOrderExpr in interface SqlValidatorexpandOrderExpr in class SqlValidatorImplselect - Select statement which contains ORDER BYorderExpr - Expression in the ORDER BY clause.public RelDataType deriveType(SqlValidatorScope scope, SqlNode operand)
deriveType in interface SqlValidatorderiveType in class SqlValidatorImplscope - Syntactic scopeoperand - Parse tree nodeNULLprotected void validateFrom(SqlNode node, RelDataType targetRowType, SqlValidatorScope scope)
SqlValidatorImplvalidateFrom in class SqlValidatorImplnode - Node in FROM clause, typically a table or derived
tabletargetRowType - Desired row type of this expression, or
SqlValidatorImpl.unknownType if not fussy. Must not be null.scope - Scopeprotected void validateWhereClause(SqlSelect select)
validateWhereClause in class SqlValidatorImplprotected void validateHavingClause(SqlSelect select)
validateHavingClause in class SqlValidatorImplprotected void validateOver(SqlCall call, SqlValidatorScope scope)
validateOver in class SqlValidatorImplprotected void validateNamespace(SqlValidatorNamespace namespace)
SqlValidatorImplvalidateNamespace in class SqlValidatorImplpublic boolean validateModality(SqlSelect select, SqlModality modality, boolean fail)
SqlValidatorvalidateModality in interface SqlValidatorvalidateModality in class SqlValidatorImplselect - Querymodality - Modality (streaming or relational)fail - Whether to throw a user error if does not support required
modalityprotected boolean shouldAllowOverRelation()
shouldAllowOverRelation in class SqlValidatorImplCopyright © 2012–2015 The Apache Software Foundation. All rights reserved.