[ https://issues.apache.org/jira/browse/DRILL-4139?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15947003#comment-15947003 ]
Volodymyr Vysotskyi commented on DRILL-4139: -------------------------------------------- When querying parquet table partitioned by optional VARCHAR column that has few NULL values, partition pruning does not happens. {code:sql} explain plan for select * from vrchr_partition where col_vrchr = 'John Mcginity'; {code} {noformat} 00-00 Screen 00-01 Project(*=[$0]) 00-02 Project(T2¦¦*=[$0]) 00-03 SelectionVectorRemover 00-04 Filter(condition=[=($1, 'John Mcginity')]) 00-05 Project(T2¦¦*=[$0], col_vrchr=[$1]) 00-06 Scan(groupscan=[ParquetGroupScan [entries=[ReadEntryWithPath [path=file:/tmp/vrchr_partition]], selectionRoot=file:/tmp/vrchr_partition, numFiles=1, usedMetadataFile=false, columns=[`*`]]]) {noformat} In sqlline.log there are no any errors or warnings. When partition field does not contains nulls, but still optional, partition pruning occurs. For all other types except INTERVAL, partition pruning works when partition column has few NULL values. > Exception while trying to prune partition. > java.lang.UnsupportedOperationException: Unsupported type: BIT & Interval > -------------------------------------------------------------------------------------------------------------------- > > Key: DRILL-4139 > URL: https://issues.apache.org/jira/browse/DRILL-4139 > Project: Apache Drill > Issue Type: Bug > Components: Storage - Parquet > Affects Versions: 1.3.0 > Environment: 4 node cluster on CentOS > Reporter: Khurram Faraaz > Assignee: Volodymyr Vysotskyi > > Exception while trying to prune partition. > java.lang.UnsupportedOperationException: Unsupported type: BIT > is seen in drillbit.log after Functional run on 4 node cluster. > Drill 1.3.0 sys.version => d61bb83a8 > {code} > 2015-11-27 03:12:19,809 [29a835ec-3c02-0fb6-d3c1-bae276ef7385:foreman] INFO > o.a.d.e.p.l.partition.PruneScanRule - Beginning partition pruning, pruning > class: org.apache.drill.exec.planner.logical.partition.ParquetPruneScanRule$2 > 2015-11-27 03:12:19,809 [29a835ec-3c02-0fb6-d3c1-bae276ef7385:foreman] INFO > o.a.d.e.p.l.partition.PruneScanRule - Total elapsed time to build and analyze > filter tree: 0 ms > 2015-11-27 03:12:19,810 [29a835ec-3c02-0fb6-d3c1-bae276ef7385:foreman] WARN > o.a.d.e.p.l.partition.PruneScanRule - Exception while trying to prune > partition. > java.lang.UnsupportedOperationException: Unsupported type: BIT > at > org.apache.drill.exec.store.parquet.ParquetGroupScan.populatePruningVector(ParquetGroupScan.java:479) > ~[drill-java-exec-1.3.0.jar:1.3.0] > at > org.apache.drill.exec.planner.ParquetPartitionDescriptor.populatePartitionVectors(ParquetPartitionDescriptor.java:96) > ~[drill-java-exec-1.3.0.jar:1.3.0] > at > org.apache.drill.exec.planner.logical.partition.PruneScanRule.doOnMatch(PruneScanRule.java:235) > ~[drill-java-exec-1.3.0.jar:1.3.0] > at > org.apache.drill.exec.planner.logical.partition.ParquetPruneScanRule$2.onMatch(ParquetPruneScanRule.java:87) > [drill-java-exec-1.3.0.jar:1.3.0] > at > org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:228) > [calcite-core-1.4.0-drill-r8.jar:1.4.0-drill-r8] > at > org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.java:808) > [calcite-core-1.4.0-drill-r8.jar:1.4.0-drill-r8] > at > org.apache.calcite.tools.Programs$RuleSetProgram.run(Programs.java:303) > [calcite-core-1.4.0-drill-r8.jar:1.4.0-drill-r8] > at > org.apache.calcite.prepare.PlannerImpl.transform(PlannerImpl.java:303) > [calcite-core-1.4.0-drill-r8.jar:1.4.0-drill-r8] > at > org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.logicalPlanningVolcanoAndLopt(DefaultSqlHandler.java:545) > [drill-java-exec-1.3.0.jar:1.3.0] > at > org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToDrel(DefaultSqlHandler.java:213) > [drill-java-exec-1.3.0.jar:1.3.0] > at > org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToDrel(DefaultSqlHandler.java:248) > [drill-java-exec-1.3.0.jar:1.3.0] > at > org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:164) > [drill-java-exec-1.3.0.jar:1.3.0] > at > org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:184) > [drill-java-exec-1.3.0.jar:1.3.0] > at > org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:905) > [drill-java-exec-1.3.0.jar:1.3.0] > at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:244) > [drill-java-exec-1.3.0.jar:1.3.0] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > [na:1.7.0_45] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > [na:1.7.0_45] > at java.lang.Thread.run(Thread.java:744) [na:1.7.0_45] > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)