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

Ashutosh Chauhan commented on HIVE-8907:
----------------------------------------

It runs into this if-block of {{PcrExprProcFactory}}
{code}
 if (result == null) {
            // if the result is not boolean and not all partition agree on the
            // result, we don't remove the condition. Potentially, it can miss
            // the case like "where ds % 3 == 1 or ds % 3 == 2"
            // TODO: handle this case by making result vector to handle all
            // constant values.
            return new NodeInfoWrapper(WalkState.UNKNOWN, null, getOutExpr(fd, 
nodeOutputs));
{code}

> Partition Condition Remover doesn't remove conditions involving cast on 
> partition column
> ----------------------------------------------------------------------------------------
>
>                 Key: HIVE-8907
>                 URL: https://issues.apache.org/jira/browse/HIVE-8907
>             Project: Hive
>          Issue Type: Improvement
>          Components: Logical Optimizer
>            Reporter: Ashutosh Chauhan
>             Fix For: 0.14.0
>
>
> e.g,
> {code}
> create table partition_test_partitioned(key string, value string) partitioned 
> by (dt string)
>  explain select * from partition_test_partitioned where cast(dt as double) 
> >=100.0 and cast(dt as double) <= 102.0
> {code}
> For queries like above, although {{PartitionPruner}} is able to prune 
> partitions correctly, filter is still not optimized away by PCR, where it 
> could.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to