[ 
https://issues.apache.org/jira/browse/HIVE-18873?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16392041#comment-16392041
 ] 

Josh Elser commented on HIVE-18873:
-----------------------------------

{quote}The original issue in HIVE-15680 is when there are 2 table aliases we 
push only one filter to job conf which results in incorrect result. How does 
phoenix or accumulo deal with multiple aliases?
{quote}
Honestly, I'm not sure. The distinction between the engine is a bit obtuse down 
in StorageHandler API, iirc. I know Ankit and Sergey are looking into this.
{quote} IIRC, storage handlers use hive.optimize.ppd.storage to push filters 
down to storage handlers. Maybe we can restrict this only when 
hive.optimize.index.filters is used so that storage handlers don't get impacted 
by HIVE-15680.
{quote}
I think that would make sense. At least my take, the PPD not happening for 
storage handlers removes what was a pretty nice feature of  storage handlers 
outright. Us all being outsiders to the problems you're trying to solve in Hive 
make it hard for us to give good suggestions :)

The quick response was appreciated (even though I then let it sit for two days).

> Skipping predicate pushdown for MR silently at HiveInputFormat can cause 
> storage handlers to produce erroneous result
> ---------------------------------------------------------------------------------------------------------------------
>
>                 Key: HIVE-18873
>                 URL: https://issues.apache.org/jira/browse/HIVE-18873
>             Project: Hive
>          Issue Type: Bug
>    Affects Versions: 3.0.0
>            Reporter: Ankit Singhal
>            Assignee: Ankit Singhal
>            Priority: Major
>             Fix For: 3.0.0
>
>
> {code:java}
> // disable filter pushdown for mapreduce when there are more than one table 
> aliases,
>     // since we don't clone jobConf per alias
>     if (mrwork != null && mrwork.getAliases() != null && 
> mrwork.getAliases().size() > 1 &&
>       jobConf.get(ConfVars.HIVE_EXECUTION_ENGINE.varname).equals("mr")) {
>       return;
>     }
> {code}
> I believe this needs to be handled at OpProcFactory so that hive doesn't 
> believe that predicate is handled by storage handler.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to