DRILL-553: simple query fails sometimes Initialize lastSet variable in NullableVarLength vectors to -1. Also reset when reallocating.
Project: http://git-wip-us.apache.org/repos/asf/incubator-drill/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-drill/commit/7b6c7a12 Tree: http://git-wip-us.apache.org/repos/asf/incubator-drill/tree/7b6c7a12 Diff: http://git-wip-us.apache.org/repos/asf/incubator-drill/diff/7b6c7a12 Branch: refs/heads/master Commit: 7b6c7a12576546266bcf5ea109eb71adb0f30cc5 Parents: 43615c8 Author: Steven Phillips <[email protected]> Authored: Mon Apr 21 20:15:39 2014 -0700 Committer: Jacques Nadeau <[email protected]> Committed: Tue Apr 22 19:29:17 2014 -0700 ---------------------------------------------------------------------- .../main/codegen/templates/NullableValueVectors.java | 3 ++- .../java/org/apache/drill/TestExampleQueries.java | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/7b6c7a12/exec/java-exec/src/main/codegen/templates/NullableValueVectors.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/codegen/templates/NullableValueVectors.java b/exec/java-exec/src/main/codegen/templates/NullableValueVectors.java index bb692dc..d2209c1 100644 --- a/exec/java-exec/src/main/codegen/templates/NullableValueVectors.java +++ b/exec/java-exec/src/main/codegen/templates/NullableValueVectors.java @@ -302,7 +302,7 @@ public final class ${className} extends BaseValueVector implements <#if type.maj public final class Mutator implements ValueVector.Mutator, NullableVectorDefinitionSetter{ private int setCount; - <#if type.major = "VarLen"> private int lastSet;</#if> + <#if type.major = "VarLen"> private int lastSet = -1;</#if> private Mutator(){ } @@ -433,6 +433,7 @@ public final class ${className} extends BaseValueVector implements <#if type.maj public void reset(){ setCount = 0; + <#if type.major = "VarLen">lastSet = -1;</#if> } } http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/7b6c7a12/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 cbf19ac..191115b 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 @@ -22,6 +22,21 @@ import org.junit.Test; public class TestExampleQueries extends BaseTestQuery{ static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestExampleQueries.class); + @Test // see DRILL-553 + public void testQueryWithNullValues() throws Exception { + test("select count(*) from cp.`customer.json` limit 1"); + test("select count(*) from cp.`customer.json` limit 1"); + test("select count(*) from cp.`customer.json` limit 1"); + test("select count(*) from cp.`customer.json` limit 1"); + test("select count(*) from cp.`customer.json` limit 1"); + test("select count(*) from cp.`customer.json` limit 1"); + test("select count(*) from cp.`customer.json` limit 1"); + test("select count(*) from cp.`customer.json` limit 1"); + test("select count(*) from cp.`customer.json` limit 1"); + test("select count(*) from cp.`customer.json` limit 1"); + test("select count(*) from cp.`customer.json` limit 1"); + } + @Test public void testSelectWithLimit() throws Exception{ test("select employee_id, first_name, last_name from cp.`employee.json` order by employee_id limit 5 offset 10");
