[
https://issues.apache.org/jira/browse/HIVE-21160?focusedWorklogId=777513&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-777513
]
ASF GitHub Bot logged work on HIVE-21160:
-----------------------------------------
Author: ASF GitHub Bot
Created on: 02/Jun/22 13:19
Start Date: 02/Jun/22 13:19
Worklog Time Spent: 10m
Work Description: kasakrisz commented on code in PR #2855:
URL: https://github.com/apache/hive/pull/2855#discussion_r887943205
##########
ql/src/java/org/apache/hadoop/hive/ql/parse/UpdateDeleteSemanticAnalyzer.java:
##########
@@ -48,28 +52,43 @@ public class UpdateDeleteSemanticAnalyzer extends
RewriteSemanticAnalyzer {
super(queryState);
}
- protected void analyze(ASTNode tree) throws SemanticException {
+ @Override
+ protected ASTNode getTargetTableNode(ASTNode tree) {
+ // The first child should be the table we are updating / deleting from
+ ASTNode tabName = (ASTNode)tree.getChild(0);
+ assert tabName.getToken().getType() == HiveParser.TOK_TABNAME :
+ "Expected tablename as first child of " + operation + " but found
" + tabName.getName();
+ return tabName;
+ }
+
+ protected void analyze(ASTNode tree, Table table, ASTNode tabNameNode)
throws SemanticException {
switch (tree.getToken().getType()) {
case HiveParser.TOK_DELETE_FROM:
- analyzeDelete(tree);
+ analyzeDelete(tree, tabNameNode, table);
break;
case HiveParser.TOK_UPDATE_TABLE:
- analyzeUpdate(tree);
+ analyzeUpdate(tree, tabNameNode, table);
break;
default:
throw new RuntimeException("Asked to parse token " + tree.getName() + "
in " +
"UpdateDeleteSemanticAnalyzer");
}
}
- private void analyzeUpdate(ASTNode tree) throws SemanticException {
+ private void analyzeUpdate(ASTNode tree, ASTNode tabNameNode, Table mTable)
throws SemanticException {
operation = Context.Operation.UPDATE;
- reparseAndSuperAnalyze(tree);
+ boolean nonNativeAcid = AcidUtils.isNonNativeAcidTable(mTable);
+
+ if (HiveConf.getBoolVar(queryState.getConf(),
HiveConf.ConfVars.SPLIT_UPDATE) && !nonNativeAcid) {
+ analyzeSplitUpdate(tree, mTable, tabNameNode);
+ } else {
+ reparseAndSuperAnalyze(tree, tabNameNode, mTable);
Review Comment:
Altered the order to use everywhere `tree,mTable, tableNameNode`
Issue Time Tracking
-------------------
Worklog Id: (was: 777513)
Time Spent: 4h 10m (was: 4h)
> Rewrite Update statement as Multi-insert and do Update split early
> ------------------------------------------------------------------
>
> Key: HIVE-21160
> URL: https://issues.apache.org/jira/browse/HIVE-21160
> Project: Hive
> Issue Type: Sub-task
> Components: Transactions
> Affects Versions: 3.0.0
> Reporter: Eugene Koifman
> Assignee: Krisztian Kasa
> Priority: Major
> Labels: pull-request-available
> Time Spent: 4h 10m
> Remaining Estimate: 0h
>
--
This message was sent by Atlassian Jira
(v8.20.7#820007)