You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by ja...@apache.org on 2014/06/16 23:31:37 UTC

[28/32] git commit: DRILL-958: Fix Parquet bug with fixed width nullable column.

DRILL-958: Fix Parquet bug with fixed width nullable 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/c022b403
Tree: http://git-wip-us.apache.org/repos/asf/incubator-drill/tree/c022b403
Diff: http://git-wip-us.apache.org/repos/asf/incubator-drill/diff/c022b403

Branch: refs/heads/master
Commit: c022b403e8fef15797f0ad6b9290a304f6de0c5c
Parents: 9e7b14a
Author: Jason Altekruse <al...@gmail.com>
Authored: Sat Jun 14 22:30:16 2014 -0500
Committer: Jacques Nadeau <ja...@apache.org>
Committed: Mon Jun 16 12:44:32 2014 -0700

----------------------------------------------------------------------
 .../drill/exec/store/parquet/NullableColumnReader.java   |  3 ++-
 .../exec/store/parquet/ParquetRecordReaderTest.java      | 11 +++++++++++
 2 files changed, 13 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/c022b403/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/NullableColumnReader.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/NullableColumnReader.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/NullableColumnReader.java
index eeb0344..585fd66 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/NullableColumnReader.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/NullableColumnReader.java
@@ -63,7 +63,7 @@ abstract class NullableColumnReader<V extends ValueVector> extends ColumnReader<
       // are located and copied together, rather than copying individual values
 
       long runStart = pageReadStatus.readPosInBytes;
-      int runLength = 0;
+      int runLength;
       int currentDefinitionLevel = 0;
       int currentValueIndexInVector = (int) recordsReadInThisIteration;
       boolean lastValueWasNull = true;
@@ -73,6 +73,7 @@ abstract class NullableColumnReader<V extends ValueVector> extends ColumnReader<
         definitionLevelsRead = 0;
         lastValueWasNull = true;
         nullsFound = 0;
+        runLength = 0;
         if (currentValueIndexInVector == recordsToReadInThisPass
             || currentValueIndexInVector >= valueVec.getValueCapacity()) {
           break;

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/c022b403/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/ParquetRecordReaderTest.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/ParquetRecordReaderTest.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/ParquetRecordReaderTest.java
index ad63dc9..fbe037b 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/ParquetRecordReaderTest.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/parquet/ParquetRecordReaderTest.java
@@ -392,6 +392,17 @@ public class ParquetRecordReaderTest extends BaseTestQuery{
         "unused, no file is generated", 1, props, true);
   }
 
+  @Ignore
+  @Test
+  public void drill_958bugTest() throws Exception {
+    HashMap<String, FieldInfo> fields = new HashMap<>();
+    ParquetTestProperties props = new ParquetTestProperties(5, 300000, DEFAULT_BYTES_PER_PAGE, fields);
+    TestFileGenerator.populatePigTPCHCustomerFields(props);
+    String readEntries = "\"/tmp/store_sales\"";
+    testParquetFullEngineEventBased(false, false, "/parquet/parquet_scan_screen_read_entry_replace.json", readEntries,
+        "unused, no file is generated", 1, props, true);
+  }
+
   @Test
   public void testMultipleRowGroupsEvent() throws Exception {
     HashMap<String, FieldInfo> fields = new HashMap<>();