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{