You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Yibing Shi (JIRA)" <ji...@apache.org> on 2016/08/29 00:19:20 UTC

[jira] [Created] (HIVE-14661) Hive should extract deterministic conditions from where clause and use them for partition pruning

Yibing Shi created HIVE-14661:
---------------------------------

             Summary: Hive should extract deterministic conditions from where clause and use them for partition pruning
                 Key: HIVE-14661
                 URL: https://issues.apache.org/jira/browse/HIVE-14661
             Project: Hive
          Issue Type: Improvement
            Reporter: Yibing Shi


Currently, if a non-deterministic function is used in where clause, partition pruning doesn't work. This can be reproduced as below:
{code:sql}
create table part1 (id int, content string) partitioned by (p int);
alter table part1 add partition(p=1);
alter table part1 add partition(p=2);
create table part2 (id int, another_content string);
set hive.mapred.mode=strict;
set hive.cbo.enable=false;
explain select p1.id, p1.content, p2.another_content from part1 p1 join part2 p2 on p1.id=p2.id where p1.p=1 and rand < 0.5;
{code}

The last query would fail with below error:
{noformat}
16/08/23 23:55:52 ERROR ql.Driver: [main]: FAILED: SemanticException [Error 10041]: No partition predicate found for Alias "p1" Table "part1"
org.apache.hadoop.hive.ql.parse.SemanticException: No partition predicate found for Alias "p1" Table "part1"
{noformat}



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