[
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)