DRILL-1293: Fix assertion when selecting star column from view that also has 
star column.


Project: http://git-wip-us.apache.org/repos/asf/incubator-drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-drill/commit/bc06b4cc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-drill/tree/bc06b4cc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-drill/diff/bc06b4cc

Branch: refs/heads/master
Commit: bc06b4cca703f9b3bbcbf39faf803c06ce31a6b4
Parents: 1994fd4
Author: Aman Sinha <asi...@maprtech.com>
Authored: Mon Aug 4 09:59:50 2014 -0700
Committer: Jacques Nadeau <jacq...@apache.org>
Committed: Mon Aug 18 09:23:49 2014 -0700

----------------------------------------------------------------------
 .../drill/exec/physical/impl/project/ProjectRecordBatch.java  | 5 +++--
 .../src/test/java/org/apache/drill/TestExampleQueries.java    | 7 +++++++
 2 files changed, 10 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/bc06b4cc/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/project/ProjectRecordBatch.java
----------------------------------------------------------------------
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/project/ProjectRecordBatch.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/project/ProjectRecordBatch.java
index fcc216f..4fdb71d 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/project/ProjectRecordBatch.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/project/ProjectRecordBatch.java
@@ -453,6 +453,7 @@ public class ProjectRecordBatch extends 
AbstractSingleRecordBatch<Project>{
     boolean refHasPrefix = 
ref.getPath().contains(StarColumnHelper.PREFIX_DELIMITER);
     boolean exprIsStar = expr.getPath().equals(StarColumnHelper.STAR_COLUMN);
     boolean refIsStar = ref.getPath().equals(StarColumnHelper.STAR_COLUMN);
+    boolean refContainsStar = 
ref.getPath().contains(StarColumnHelper.STAR_COLUMN);
     boolean exprContainsStar = 
expr.getPath().contains(StarColumnHelper.STAR_COLUMN);
     boolean refEndsWithStar = 
ref.getPath().endsWith(StarColumnHelper.STAR_COLUMN);
 
@@ -533,11 +534,11 @@ public class ProjectRecordBatch extends 
AbstractSingleRecordBatch<Project>{
         }
       } else {
         result.outputNames = Lists.newArrayList();
-        if (exprIsStar) {
+        if (exprContainsStar) {
           for (VectorWrapper<?> wrapper : incoming) {
             ValueVector vvIn = wrapper.getValueVector();
             String incomingName = 
vvIn.getField().getPath().getRootSegment().getPath();
-            if (refIsStar) {
+            if (refContainsStar) {
               addToResultMaps(incomingName, result, true); // allow dups since 
this is likely top-level project
             } else {
               addToResultMaps(incomingName, result, false);

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/bc06b4cc/exec/java-exec/src/test/java/org/apache/drill/TestExampleQueries.java
----------------------------------------------------------------------
diff --git 
a/exec/java-exec/src/test/java/org/apache/drill/TestExampleQueries.java 
b/exec/java-exec/src/test/java/org/apache/drill/TestExampleQueries.java
index 11075f6..fcc10c0 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/TestExampleQueries.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/TestExampleQueries.java
@@ -96,6 +96,13 @@ public class TestExampleQueries extends BaseTestQuery{
     test("select * from cp.`tpch/nation.parquet` n1, cp.`tpch/nation.parquet` 
n2 where n1.n_nationkey = n2.n_nationkey;");
   }
 
+  @Test // DRILL-1293
+  public void testStarView1() throws Exception { 
+    test("use dfs.tmp");  
+    test("create view vt1 as select * from cp.`tpch/region.parquet` r, 
cp.`tpch/nation.parquet` n where r.r_regionkey = n.n_regionkey");
+    test("select * from vt1");
+    test("drop view vt1");
+  }
 
   @Test
   public void testJoinExpOn() throws Exception{

Reply via email to