public class SemanticAnalyzer extends BaseSemanticAnalyzer
Modifier and Type | Class and Description |
---|---|
static class |
SemanticAnalyzer.GenericUDAFInfo
Class to store GenericUDAF related information.
|
protected static class |
SemanticAnalyzer.MaterializationRebuildMode |
BaseSemanticAnalyzer.AnalyzeRewriteContext, BaseSemanticAnalyzer.TableSpec
acidFileSinks, cacheUsage, cContext, columnAccessInfo, conf, console, ctx, db, fetchTask, idToTableNameMap, inputs, linfo, LOG, outputs, prepareQuery, queryProperties, queryState, rootTasks, STATIC_LOG, tableAccessInfo, transactionalInQuery, txnManager, updateColumnAccessInfo
Constructor and Description |
---|
SemanticAnalyzer(QueryState queryState) |
Modifier and Type | Method and Description |
---|---|
protected void |
addPartitionColsToInsert(List<FieldSchema> partCols,
Map<String,String> partSpec,
StringBuilder rewrittenQueryStr)
Append list of partition columns to Insert statement.
|
protected void |
addPartitionColsToInsert(List<FieldSchema> partCols,
StringBuilder rewrittenQueryStr)
Append list of partition columns to Insert statement, i.e.
|
protected boolean |
allowOutputMultipleTimes() |
protected ASTNode |
analyzeCreateView(ASTNode ast,
QB qb,
org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.PlannerContext plannerCtx) |
void |
analyzeInternal(ASTNode ast) |
protected void |
compilePlan(ParseContext pCtx) |
protected boolean |
enableColumnStatsCollecting() |
void |
executeUnparseTranlations()
Unparses the analyzed statement
|
void |
forViewCreation(String fqViewName) |
static String |
generateErrorMessage(ASTNode ast,
String message) |
ExprNodeDesc |
genExprNodeDesc(ASTNode expr,
RowResolver input)
Generates an expression node descriptor for the expression with TypeCheckCtx.
|
protected Operator |
genFileSinkPlan(String dest,
QB qb,
Operator input) |
WriteEntity |
getAcidAnalyzeTable() |
protected String |
getAliasId(String alias,
QB qb) |
Set<ReadEntity> |
getAllInputs() |
Set<WriteEntity> |
getAllOutputs() |
List<Task<?>> |
getAllRootTasks() |
protected Map<String,String> |
getColNameToDefaultValueMap(Table tbl) |
static String |
getColumnInternalName(int pos) |
protected List<String> |
getDefaultConstraints(Table tbl,
List<String> targetSchema)
This method creates a list of default constraints which corresponds to
given schema (targetSchema) or target table's column schema (if targetSchema is null)
|
Table |
getDummyTable() |
protected String |
getFullTableNameForSQL(ASTNode n) |
static GenericUDAFEvaluator |
getGenericUDAFEvaluator(String aggName,
List<ExprNodeDesc> aggParameters,
ASTNode aggTree,
boolean isDistinct,
boolean isAllColumns)
Returns the GenericUDAFEvaluator for the aggregation.
|
static GenericUDAFEvaluator |
getGenericUDAFEvaluator2(String aggName,
List<ObjectInspector> aggParameterOIs,
ASTNode aggTree,
boolean isDistinct,
boolean isAllColumns) |
static SemanticAnalyzer.GenericUDAFInfo |
getGenericUDAFInfo(GenericUDAFEvaluator evaluator,
GenericUDAFEvaluator.Mode emode,
List<ExprNodeDesc> aggParameters)
Returns the GenericUDAFInfo struct for the aggregation.
|
static SemanticAnalyzer.GenericUDAFInfo |
getGenericUDAFInfo2(GenericUDAFEvaluator evaluator,
GenericUDAFEvaluator.Mode emode,
List<ObjectInspector> aggOIs) |
String |
getInvalidAutomaticRewritingMaterializationReason() |
String |
getInvalidResultCacheReason() |
List<LoadFileDesc> |
getLoadFileWork() |
List<LoadTableDesc> |
getLoadTableWork() |
CompilationOpContext |
getOpContext() |
List<FieldSchema> |
getOriginalResultSchema() |
ParseContext |
getParseContext() |
QB |
getQB() |
List<FieldSchema> |
getResultSchema() |
Operator |
getSinkOp() |
Table |
getTableObjectByName(String tableName) |
protected Table |
getTableObjectByName(String tableName,
boolean throwException) |
protected Table |
getTargetTable(QB qb,
String dest) |
Map<String,TableScanOperator> |
getTopOps() |
Map<String,ReadEntity> |
getViewAliasToInput() |
static GenericUDAFEvaluator.Mode |
groupByDescModeToUDAFMode(GroupByDesc.Mode mode,
boolean isDistinct) |
protected boolean |
hasGroupBySibling(ASTNode selectExpr) |
void |
init(boolean clearPartsCache) |
static ExprNodeDesc |
isConstantParameterInAggregationParameters(String internalName,
List<ExprNodeDesc> reduceValues)
Check if the given internalName represents a constant parameter in aggregation parameters
of an aggregation tree.
|
protected boolean |
isInsertInto(QBParseInfo qbp,
String dest)
This method figures out if current AST is for INSERT INTO
|
protected boolean |
isSelectDistinct(ASTNode expr) |
boolean |
isValidAutomaticRewritingMaterialization() |
boolean |
isValidQueryCaching() |
static List<WindowingSpec.WindowExpressionSpec> |
parseSelect(String selectExprStr) |
protected void |
processNoScanCommand(ASTNode tree)
process analyze ...
|
protected List<String> |
processTableColumnNames(ASTNode tabColName,
String tableName) |
protected void |
reset(boolean clearCache) |
protected ASTNode |
rewriteGroupingFunctionAST(List<ASTNode> grpByAstExprs,
ASTNode targetNode,
boolean noneSet) |
protected void |
saveViewDefinition() |
protected void |
setAST(ASTNode newAST) |
static long |
setBit(long bitmap,
int bitIdx) |
void |
setInvalidAutomaticRewritingMaterializationReason(String invalidAutomaticRewritingMaterializationReason) |
void |
setInvalidResultCacheReason(String invalidQueryMaterializationReason) |
void |
setLoadFileWork(List<LoadFileDesc> loadFileWork) |
void |
setLoadTableWork(List<LoadTableDesc> tblWork) |
void |
startAnalysis()
Called when we start analysis of a query.
|
protected Map<ASTNode,String> |
translateFieldDesc(ASTNode node) |
protected boolean |
updating(String destination) |
void |
validate() |
addPropertyReadEntry, analyze, analyzeStoredAdDirs, charSetString, checkColumnName, constructListBucketingCtx, createFetchTask, createHiveDB, endAnalysis, escapeSQLString, findTabRefIdxs, getAcidDdlDesc, getAcidFileSinks, getAutoCommitValue, getCacheUsage, getCboInfo, getColumnAccessInfo, getColumnNames, getColumnNamesOrder, getColumns, getColumns, getColumns, getCtx, getDatabase, getDatabase, getDataConnector, getDataConnector, getDb, getDbTableNamePair, getFetchTask, getIdToTableNameMap, getInputs, getLineageInfo, getOutputs, getPartitionSpecs, getPartSpec, getProps, getQualifiedTableName, getQualifiedTableName, getQueryProperties, getQueryState, getRootTasks, getSimpleTableNameBase, getTable, getTable, getTable, getTable, getTable, getTable, getTableAccessInfo, getTableAlias, getTxnMgr, getTypeStringFromAST, getUnescapedName, getUnescapedName, getUnescapedUnqualifiedTableName, getUpdateColumnAccessInfo, getValidatedPartSpec, hasTransactionalInQuery, initCtx, isPrepareQuery, isValidPrefixSpec, raiseWrongType, readProps, setAutoCommitValue, setCacheUsage, setColumnAccessInfo, setFetchTask, setLineageInfo, setTableAccessInfo, setUpdateColumnAccessInfo, skipAuthorization, stripQuotes, toReadEntity, toReadEntity, toReadEntity, toWriteEntity, toWriteEntity, toWriteEntity, tryQualifyPath, unescapeIdentifier, unescapeSQLString, validatePartColumnType, validatePartSpec, validateUnsupportedPartitionClause
public static final String DUMMY_DATABASE
public static final String DUMMY_TABLE
public static final String SUBQUERY_TAG_1
public static final String SUBQUERY_TAG_2
public static final String VALUES_TMP_TABLE_NAME_PREFIX
protected Map<String,TableScanOperator> topOps
protected Map<Operator<? extends OperatorDesc>,OpParseContext> opParseCtx
protected ASTNode ast
protected Map<String,PrunedPartitionList> prunedPartitions
protected List<FieldSchema> resultSchema
protected List<FieldSchema> originalResultSchema
protected CreateMaterializedViewDesc createVwDesc
protected ASTNode viewSelect
protected final UnparseTranslator unparseTranslator
protected final String autogenColAliasPrfxLbl
protected boolean forViewCreation
protected SemanticAnalyzer.MaterializationRebuildMode mvRebuildMode
protected String mvRebuildDbName
protected String mvRebuildName
protected volatile boolean disableJoinMerge
protected final boolean defaultJoinMerge
protected Map<String,TableScanOperator> topOpsCopy
protected final Map<String,org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.CTEClause> aliasToCTEs
protected BaseSemanticAnalyzer.AnalyzeRewriteContext analyzeRewrite
public SemanticAnalyzer(QueryState queryState) throws SemanticException
SemanticException
protected void reset(boolean clearCache)
reset
in class BaseSemanticAnalyzer
public ParseContext getParseContext()
getParseContext
in class BaseSemanticAnalyzer
public CompilationOpContext getOpContext()
protected boolean isInsertInto(QBParseInfo qbp, String dest)
qbp
- qbParseInfodest
- destination clauseprotected List<String> getDefaultConstraints(Table tbl, List<String> targetSchema) throws SemanticException
tbl
- targetSchema
- SemanticException
protected Map<String,String> getColNameToDefaultValueMap(Table tbl) throws SemanticException
SemanticException
protected void setAST(ASTNode newAST)
public List<Task<?>> getAllRootTasks()
getAllRootTasks
in class BaseSemanticAnalyzer
public Set<ReadEntity> getAllInputs()
getAllInputs
in class BaseSemanticAnalyzer
public Set<WriteEntity> getAllOutputs()
getAllOutputs
in class BaseSemanticAnalyzer
protected List<String> processTableColumnNames(ASTNode tabColName, String tableName) throws SemanticException
SemanticException
protected ASTNode rewriteGroupingFunctionAST(List<ASTNode> grpByAstExprs, ASTNode targetNode, boolean noneSet)
public static String getColumnInternalName(int pos)
public static long setBit(long bitmap, int bitIdx)
protected boolean hasGroupBySibling(ASTNode selectExpr)
protected boolean isSelectDistinct(ASTNode expr)
public static GenericUDAFEvaluator getGenericUDAFEvaluator(String aggName, List<ExprNodeDesc> aggParameters, ASTNode aggTree, boolean isDistinct, boolean isAllColumns) throws SemanticException
SemanticException
public static GenericUDAFEvaluator getGenericUDAFEvaluator2(String aggName, List<ObjectInspector> aggParameterOIs, ASTNode aggTree, boolean isDistinct, boolean isAllColumns) throws SemanticException
SemanticException
public static SemanticAnalyzer.GenericUDAFInfo getGenericUDAFInfo(GenericUDAFEvaluator evaluator, GenericUDAFEvaluator.Mode emode, List<ExprNodeDesc> aggParameters) throws SemanticException
evaluator
- emode
- aggParameters
- The exprNodeDesc of the original parametersSemanticException
- when the UDAF is not found or has problems.public static SemanticAnalyzer.GenericUDAFInfo getGenericUDAFInfo2(GenericUDAFEvaluator evaluator, GenericUDAFEvaluator.Mode emode, List<ObjectInspector> aggOIs) throws SemanticException
SemanticException
public static GenericUDAFEvaluator.Mode groupByDescModeToUDAFMode(GroupByDesc.Mode mode, boolean isDistinct)
public static ExprNodeDesc isConstantParameterInAggregationParameters(String internalName, List<ExprNodeDesc> reduceValues)
reduceValues
- value columns of the corresponding ReduceSinkOperatorinternalName
- the internal name of this parameterprotected Table getTargetTable(QB qb, String dest) throws SemanticException
SemanticException
protected Operator genFileSinkPlan(String dest, QB qb, Operator input) throws SemanticException
SemanticException
protected boolean enableColumnStatsCollecting()
protected boolean allowOutputMultipleTimes()
public Table getDummyTable() throws SemanticException
SemanticException
public void init(boolean clearPartsCache)
init
in class BaseSemanticAnalyzer
public void analyzeInternal(ASTNode ast) throws SemanticException
analyzeInternal
in class BaseSemanticAnalyzer
SemanticException
protected Table getTableObjectByName(String tableName, boolean throwException) throws HiveException
HiveException
public Table getTableObjectByName(String tableName) throws HiveException
HiveException
protected void compilePlan(ParseContext pCtx) throws SemanticException
SemanticException
public List<FieldSchema> getResultSchema()
getResultSchema
in class BaseSemanticAnalyzer
public List<FieldSchema> getOriginalResultSchema()
protected void saveViewDefinition() throws SemanticException
SemanticException
public ExprNodeDesc genExprNodeDesc(ASTNode expr, RowResolver input) throws SemanticException
SemanticException
public void validate() throws SemanticException
validate
in class BaseSemanticAnalyzer
SemanticException
protected ASTNode analyzeCreateView(ASTNode ast, QB qb, org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.PlannerContext plannerCtx) throws SemanticException
SemanticException
protected void processNoScanCommand(ASTNode tree) throws SemanticException
tree
- SemanticException
public QB getQB()
public static List<WindowingSpec.WindowExpressionSpec> parseSelect(String selectExprStr) throws SemanticException
SemanticException
protected boolean updating(String destination)
public List<LoadFileDesc> getLoadFileWork()
public List<LoadTableDesc> getLoadTableWork()
public void setLoadFileWork(List<LoadFileDesc> loadFileWork)
public void setLoadTableWork(List<LoadTableDesc> tblWork)
public String getInvalidAutomaticRewritingMaterializationReason()
public void setInvalidAutomaticRewritingMaterializationReason(String invalidAutomaticRewritingMaterializationReason)
public boolean isValidAutomaticRewritingMaterialization()
public String getInvalidResultCacheReason()
public void setInvalidResultCacheReason(String invalidQueryMaterializationReason)
public boolean isValidQueryCaching()
public void forViewCreation(String fqViewName)
public Map<String,TableScanOperator> getTopOps()
public Map<String,ReadEntity> getViewAliasToInput()
public Operator getSinkOp()
protected String getFullTableNameForSQL(ASTNode n) throws SemanticException
SemanticException
protected void addPartitionColsToInsert(List<FieldSchema> partCols, StringBuilder rewrittenQueryStr)
protected void addPartitionColsToInsert(List<FieldSchema> partCols, Map<String,String> partSpec, StringBuilder rewrittenQueryStr)
public WriteEntity getAcidAnalyzeTable()
getAcidAnalyzeTable
in class BaseSemanticAnalyzer
public void executeUnparseTranlations()
BaseSemanticAnalyzer
executeUnparseTranlations
in class BaseSemanticAnalyzer
public void startAnalysis()
BaseSemanticAnalyzer
startAnalysis
in class BaseSemanticAnalyzer
Copyright © 2022 The Apache Software Foundation. All rights reserved.