public class SplitMergeSemanticAnalyzer extends MergeSemanticAnalyzer
MergeSemanticAnalyzer that just handles
merge statements. This version of rewrite adds two insert branches for the update clause one for
inserting new values of updated records and one for inserting the deleted delta records of updated records.RewriteSemanticAnalyzer.ColumnAppender, RewriteSemanticAnalyzer.NativeAcidColumnAppender, RewriteSemanticAnalyzer.NonNativeAcidColumnAppender, RewriteSemanticAnalyzer.ReparseResultCalcitePlanner.ASTSearcher, CalcitePlanner.CalcitePlannerAction, CalcitePlanner.InputContext, CalcitePlanner.PreCboCtxSemanticAnalyzer.GenericUDAFInfo, SemanticAnalyzer.MaterializationRebuildModeBaseSemanticAnalyzer.AnalyzeRewriteContext, BaseSemanticAnalyzer.TableSpecDELETE_PREFIX, INDENT, LOG, SUB_QUERY_ALIAS, useSuperaliasToCTEs, analyzeRewrite, ast, autogenColAliasPrfxLbl, createVwDesc, defaultJoinMerge, disableJoinMerge, DUMMY_DATABASE, DUMMY_TABLE, forViewCreation, mvRebuildDbName, mvRebuildMode, mvRebuildName, opParseCtx, originalResultSchema, prunedPartitions, resultSchema, SUBQUERY_TAG_1, SUBQUERY_TAG_2, topOps, topOpsCopy, unparseTranslator, VALUES_TMP_TABLE_NAME_PREFIX, viewSelectacidFileSinks, cacheUsage, cContext, columnAccessInfo, conf, console, ctx, db, fetchTask, idToTableNameMap, inputs, linfo, outputs, prepareQuery, queryProperties, queryState, rootTasks, STATIC_LOG, tableAccessInfo, transactionalInQuery, txnManager, updateColumnAccessInfo| Modifier and Type | Method and Description |
|---|---|
protected int |
addDestNamePrefixOfUpdate(int insClauseIdx,
Context rewrittenCtx)
This sets the destination name prefix for update clause.
|
protected boolean |
allowOutputMultipleTimes() |
void |
analyze(ASTNode tree,
Table targetTable,
ASTNode tableNameNode) |
protected String |
handleDelete(ASTNode whenMatchedDeleteClause,
StringBuilder rewrittenQueryStr,
String onClauseAsString,
String updateExtraPredicate,
String hintStr,
RewriteSemanticAnalyzer.ColumnAppender columnAppender) |
protected String |
handleUpdate(ASTNode whenMatchedUpdateClause,
StringBuilder rewrittenQueryStr,
String onClauseAsString,
String deleteExtraPredicate,
String hintStr,
RewriteSemanticAnalyzer.ColumnAppender columnAppender,
String targetName,
List<String> values) |
addWhereClauseOfUpdate, analyzeMerge, enableColumnStatsCollecting, getTargetTableNode, getWhenClauseOperationaddColsToSelect, addColsToSelect, addColsToSelect, addPartitionColsAsValues, analyzeInternal, analyzeRewrittenTree, appendInsertBranch, appendSortBy, appendTarget, checkValidSetClauseTarget, collectSetColumnsAndExpressions, createRewrittenQueryStrBuilder, findLHSofAssignment, getColumnAppender, getMatchedText, getSimpleTableName, getTable, isAliased, markReadEntityForUpdate, parseRewrittenQuery, patchProjectionForUpdate, setUpAccessControlInfoForUpdate, updateOutputs, validateTargetTablecreatePlanner, createPlannerAction, fixUpAfterCbo, genLogicalPlan, getOptimizedSql, getTableObjectByName, resetCalciteConfiguration, warmupaddPartitionColsToInsert, addPartitionColsToInsert, analyzeCreateView, compilePlan, executeUnparseTranlations, forViewCreation, generateErrorMessage, genExprNodeDesc, genFileSinkPlan, getAcidAnalyzeTable, getAliasId, getAllInputs, getAllOutputs, getAllRootTasks, getColNameToDefaultValueMap, getColumnInternalName, getDefaultConstraints, getDummyTable, getFullTableNameForSQL, getGenericUDAFEvaluator, getGenericUDAFEvaluator2, getGenericUDAFInfo, getGenericUDAFInfo2, getInvalidAutomaticRewritingMaterializationReason, getInvalidResultCacheReason, getLoadFileWork, getLoadTableWork, getOpContext, getOriginalResultSchema, getParseContext, getQB, getResultSchema, getSinkOp, getTableObjectByName, getTargetTable, getTopOps, getViewAliasToInput, groupByDescModeToUDAFMode, hasGroupBySibling, init, isConstantParameterInAggregationParameters, isInsertInto, isSelectDistinct, isValidAutomaticRewritingMaterialization, isValidQueryCaching, parseSelect, processNoScanCommand, processTableColumnNames, reset, rewriteGroupingFunctionAST, saveViewDefinition, setAST, setBit, setInvalidAutomaticRewritingMaterializationReason, setInvalidResultCacheReason, setLoadFileWork, setLoadTableWork, startAnalysis, translateFieldDesc, updating, validateaddPropertyReadEntry, 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, validateUnsupportedPartitionClauseprotected int addDestNamePrefixOfUpdate(int insClauseIdx,
Context rewrittenCtx)
MergeSemanticAnalyzeraddDestNamePrefixOfUpdate in class MergeSemanticAnalyzerinsClauseIdx - index of insert clause in the rewritten multi-insert represents the merge update clause.rewrittenCtx - the Context stores the prefixespublic void analyze(ASTNode tree, Table targetTable, ASTNode tableNameNode) throws SemanticException
analyze in class MergeSemanticAnalyzerSemanticExceptionprotected String handleUpdate(ASTNode whenMatchedUpdateClause, StringBuilder rewrittenQueryStr, String onClauseAsString, String deleteExtraPredicate, String hintStr, RewriteSemanticAnalyzer.ColumnAppender columnAppender, String targetName, List<String> values)
handleUpdate in class MergeSemanticAnalyzerprotected String handleDelete(ASTNode whenMatchedDeleteClause, StringBuilder rewrittenQueryStr, String onClauseAsString, String updateExtraPredicate, String hintStr, RewriteSemanticAnalyzer.ColumnAppender columnAppender)
handleDelete in class MergeSemanticAnalyzeronClauseAsString - - because there is no clone() and we need to use in multiple placesupdateExtraPredicate - - see notes at callerprotected boolean allowOutputMultipleTimes()
allowOutputMultipleTimes in class MergeSemanticAnalyzerCopyright © 2022 The Apache Software Foundation. All rights reserved.