You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by "Venki Korukanti (JIRA)" <ji...@apache.org> on 2015/09/08 16:19:46 UTC
[jira] [Created] (DRILL-3746) Hive partition pruning fails if the
table contains external partitions
Venki Korukanti created DRILL-3746:
--------------------------------------
Summary: Hive partition pruning fails if the table contains external partitions
Key: DRILL-3746
URL: https://issues.apache.org/jira/browse/DRILL-3746
Project: Apache Drill
Issue Type: Bug
Reporter: Venki Korukanti
If Hive contains a table which has external partitions, Drill fails in partition pruning code, which causes the query to fail.
{code}
CREATE TABLE external_partition_test (boolean_field BOOLEAN) PARTITIONED BY (boolean_part BOOLEAN);
ALTER TABLE external_partition_test ADD PARTITION (boolean_part='true') LOCATION '/some/path';
ALTER TABLE external_partition_test ADD PARTITION (boolean_part='false') LOCATION '/some/path';
{code}
Exception:
{code}
java.lang.StringIndexOutOfBoundsException
String index out of range: -14
at java.lang.String.substring(String.java:1875) ~[na:1.7.0_45]
at org.apache.drill.exec.planner.sql.HivePartitionLocation.<init>(HivePartitionLocation.java:31) ~[classes/:na]
at org.apache.drill.exec.planner.sql.HivePartitionDescriptor.getPartitions(HivePartitionDescriptor.java:117) ~[classes/:na]
at org.apache.drill.exec.planner.logical.partition.PruneScanRule.doOnMatch(PruneScanRule.java:185) ~[classes/:na]
at org.apache.drill.exec.planner.sql.logical.HivePushPartitionFilterIntoScan$2.onMatch(HivePushPartitionFilterIntoScan.java:92) ~[classes/:na]
at org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:228) ~[calcite-core-1.4.0-drill-r0.jar:1.4.0-drill-r0]
{code}
Looking at the {{HivePartitionLocation}}, it looks like we are depending on the structure of the files on FileSystem to get the partition values. We should get these partition from MetaStore.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)