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.StatusSqlValidator.ConfigcallToOperandTypesMap, functionCallStack, idPositions, namespaces, scopes, TRACER, typeFactory, unknownType, UPDATE_ANON_PREFIX, UPDATE_SRC_ALIAS, UPDATE_TGT_ALIAS| Constructor and Description |
|---|
SqlAdvisorValidator(SqlOperatorTable opTab,
SqlValidatorCatalogReader catalogReader,
RelDataTypeFactory typeFactory,
SqlValidator.Config config)
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.
|
SqlNode |
expandSelectExpr(SqlNode expr,
SelectScope scope,
SqlSelect select) |
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 sub-query.
|
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 ParserPosition.
|
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,
RelDataType targetRowType)
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, config, createMatchRecognizeNameSpace, createPivotNameSpace, createSelectNamespace, createSetopNamespace, createSourceSelectForDelete, createSourceSelectForUpdate, createTargetRowType, createUnpivotNameSpace, declareCursor, deriveAlias, deriveConstructorType, expandGroupByOrHavingExpr, expandStar, getAggregate, getCatalogReader, getConformance, getCursorScope, getEmptyScope, getFieldOrigins, getFromScope, getGroupScope, getHavingScope, getJoinScope, getLogicalSourceRowType, getLogicalTargetRowType, getMatchRecognizeScope, getNamespace, getOperatorTable, getOrderScope, getOriginal, getOverScope, getParameterRowType, getParentCursor, getRawSelectScope, getSelectScope, getSelfJoinExprForUpdate, getTypeCoercion, getTypeFactory, getUnknownType, getValidatedNodeType, getValidatedNodeTypeIfKnown, getValidatedOperandTypes, getValidationErrorFunction, getWhereScope, getWindowByName, getWithScope, handleUnresolvedFunction, inferUnknownTypes, isAggregate, isAggregate, isNestedAggregateWindow, isOverAggregateWindow, isSystemField, lookupHints, lookupNameCompletionHints, lookupQualifiedName, makeNullaryCall, newValidationError, performUnconditionalRewrites, popFunctionCall, pushFunctionCall, registerNamespace, removeValidatedNodeType, resolveWindow, setOriginal, setValidatedNodeType, shouldAllowIntermediateOrderBy, transform, usingNames, validate, validateAggregateParams, validateCall, validateColumnListParams, validateDataType, validateDelete, validateDynamicParam, validateFeature, validateGroupClause, validateInsert, validateIntervalQualifier, validateJoin, validateLiteral, validateMatchRecognize, validateMerge, validateOrderList, validateParameterizedExpression, validatePivot, validateQuery, validateSelect, validateSelectList, validateSequenceValue, validateTableFunction, validateUnnest, validateUnpivot, validateUpdate, validateValues, validateWhereOrOn, validateWindow, validateWindowClause, validateWith, validateWithItemclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitresolveWindowpublic SqlAdvisorValidator(SqlOperatorTable opTab, SqlValidatorCatalogReader catalogReader, RelDataTypeFactory typeFactory, SqlValidator.Config config)
opTab - Operator tablecatalogReader - Catalog readertypeFactory - Type factoryconfig - Configpublic 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 expandSelectExpr(SqlNode expr, SelectScope scope, SqlSelect select)
expandSelectExpr in class SqlValidatorImplpublic 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, RelDataType targetRowType)
SqlValidatorImplvalidateNamespace in class SqlValidatorImplnamespace - NamespacetargetRowType - Desired row type, must not be null, may be the data
type 'unknown'.public 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-2022 Apache Software Foundation. All Rights Reserved.