You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by me...@apache.org on 2015/11/12 08:29:45 UTC
drill git commit: DRILL-4071: Detect nested holistic expressions
while traversing filter tree for partition pruning
Repository: drill
Updated Branches:
refs/heads/master a0be3ae0a -> 9b88d5914
DRILL-4071: Detect nested holistic expressions while traversing filter tree for partition pruning
Project: http://git-wip-us.apache.org/repos/asf/drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/drill/commit/9b88d591
Tree: http://git-wip-us.apache.org/repos/asf/drill/tree/9b88d591
Diff: http://git-wip-us.apache.org/repos/asf/drill/diff/9b88d591
Branch: refs/heads/master
Commit: 9b88d591450110b4a238d228138097c0f664a73e
Parents: a0be3ae
Author: Mehant Baid <me...@gmail.com>
Authored: Tue Nov 10 23:31:16 2015 -0800
Committer: Mehant Baid <me...@gmail.com>
Committed: Wed Nov 11 22:15:12 2015 -0800
----------------------------------------------------------------------
.../logical/partition/FindPartitionConditions.java | 7 +++++++
.../java/org/apache/drill/TestPartitionFilter.java | 14 ++++++++++++++
2 files changed, 21 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/drill/blob/9b88d591/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/partition/FindPartitionConditions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/partition/FindPartitionConditions.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/partition/FindPartitionConditions.java
index 5f14e3b..382d686 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/partition/FindPartitionConditions.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/partition/FindPartitionConditions.java
@@ -204,6 +204,13 @@ public class FindPartitionConditions extends RexVisitorImpl<Void> {
}
private boolean isHolisticExpression(RexCall call) {
+ /* If we are already processing a holistic expression then all
+ * nested expressions should be treated holistically as well
+ */
+ if (holisticExpression > 0) {
+ return true;
+ }
+
if (call.getOperator().getSyntax() == SqlSyntax.SPECIAL ||
call.getOperator().getSyntax() == SqlSyntax.FUNCTION) {
return true;
http://git-wip-us.apache.org/repos/asf/drill/blob/9b88d591/exec/java-exec/src/test/java/org/apache/drill/TestPartitionFilter.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/TestPartitionFilter.java b/exec/java-exec/src/test/java/org/apache/drill/TestPartitionFilter.java
index d99a346..1057044 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/TestPartitionFilter.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/TestPartitionFilter.java
@@ -295,5 +295,19 @@ public class TestPartitionFilter extends PlanTestBase {
testExcludeFilter(query, 1, "Filter", 1);
}
+ // Coalesce filter is on the non directory column. DRILL-4071
+ @Test
+ public void testPartitionWithCoalesceFilter_1() throws Exception {
+ String query = String.format("select 1 from dfs_test.`%s/multilevel/parquet` where dir0=1994 and dir1='Q1' and coalesce(o_custkey, 0) = 890", TEST_RES_PATH);
+ testIncludeFilter(query, 1, "Filter", 1);
+ }
+
+ // Coalesce filter is on the directory column
+ @Test
+ public void testPartitionWithCoalesceFilter_2() throws Exception {
+ String query = String.format("select 1 from dfs_test.`%s/multilevel/parquet` where dir0=1994 and o_custkey = 890 and coalesce(dir1, 'NA') = 'Q1'", TEST_RES_PATH);
+ testIncludeFilter(query, 1, "Filter", 1);
+ }
+
}
\ No newline at end of file