[
https://issues.apache.org/jira/browse/HIVE-25792?focusedWorklogId=695671&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-695671
]
ASF GitHub Bot logged work on HIVE-25792:
-----------------------------------------
Author: ASF GitHub Bot
Created on: 14/Dec/21 12:04
Start Date: 14/Dec/21 12:04
Worklog Time Spent: 10m
Work Description: pvary commented on a change in pull request #2865:
URL: https://github.com/apache/hive/pull/2865#discussion_r768597811
##########
File path: ql/src/java/org/apache/hadoop/hive/ql/reexec/ReExecDriver.java
##########
@@ -190,52 +229,21 @@ public CommandProcessorResponse run() throws
CommandProcessorException {
}
PlanMapper newPlanMapper = coreDriver.getPlanMapper();
- if (!explainReOptimization &&
!shouldReExecuteAfterCompile(oldPlanMapper, newPlanMapper)) {
+ if (!explainReOptimization &&
+ !plugins.stream().anyMatch(p -> p.shouldReExecute(executionIndex,
oldPlanMapper, newPlanMapper))) {
LOG.info("re-running the query would probably not yield better
results; returning with last error");
// FIXME: retain old error; or create a new one?
return cpr;
}
}
}
- private void afterExecute(PlanMapper planMapper, boolean success) {
- for (IReExecutionPlugin p : plugins) {
- p.afterExecute(planMapper, success);
- }
- }
-
- private boolean shouldReExecuteAfterCompile(PlanMapper oldPlanMapper,
PlanMapper newPlanMapper) {
- boolean ret = false;
- for (IReExecutionPlugin p : plugins) {
- boolean shouldReExecute = p.shouldReExecute(executionIndex,
oldPlanMapper, newPlanMapper);
- LOG.debug("{}.shouldReExecuteAfterCompile = {}", p, shouldReExecute);
Review comment:
TBH, I am unsure here. We can keep:
- `shouldReExecuteAfterCompile`
- `shouldReExecute`
- `shouldReCompile`
Or, we can replace with a stream version:
```
plugins.stream()
.peek(p -> LOG.debug("{}.shouldReCompile = {}", p))
.anyMatch(p -> p.shouldReCompile(currentIndex))
```
Or we can omit the logs, and use only:
```
plugins.stream().anyMatch(p -> p.shouldReCompile(currentIndex))
```
Your thoughts?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 695671)
Time Spent: 2.5h (was: 2h 20m)
> Multi Insert query fails on CBO path
> -------------------------------------
>
> Key: HIVE-25792
> URL: https://issues.apache.org/jira/browse/HIVE-25792
> Project: Hive
> Issue Type: Bug
> Reporter: Zoltan Haindrich
> Assignee: Peter Vary
> Priority: Major
> Labels: pull-request-available
> Time Spent: 2.5h
> Remaining Estimate: 0h
>
> {code}
> set hive.cbo.enable=true;
> drop table if exists aa1;
> drop table if exists bb1;
> drop table if exists cc1;
> drop table if exists dd1;
> drop table if exists ee1;
> drop table if exists ff1;
> create table aa1 ( stf_id string);
> create table bb1 ( stf_id string);
> create table cc1 ( stf_id string);
> create table ff1 ( x string);
> explain
> from ff1 as a join cc1 as b
> insert overwrite table aa1 select stf_id GROUP BY b.stf_id
> insert overwrite table bb1 select b.stf_id GROUP BY b.stf_id
> ;
> {code}
--
This message was sent by Atlassian Jira
(v8.20.1#820001)