Github user daveoshinsky commented on a diff in the pull request:

    https://github.com/apache/drill/pull/372#discussion_r55417098
  
    --- Diff: 
exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/columnreaders/NullableVarLengthValuesColumn.java
 ---
    @@ -69,11 +73,16 @@ protected boolean readAndStoreValueSizeInformation() 
throws IOException {
         if ( currDefLevel == -1 ) {
           currDefLevel = pageReader.definitionLevels.readInteger();
         }
    -    if ( columnDescriptor.getMaxDefinitionLevel() > currDefLevel) {
    +
    +    if (columnDescriptor.getMaxDefinitionLevel() > currDefLevel) {
           nullsRead++;
    -      // set length of zero, each index in the vector defaults to null so 
no need to set the nullability
    -      variableWidthVector.getMutator().setValueLengthSafe(
    -          valuesReadInCurrentPass + pageReader.valuesReadyToRead, 0);
    +      // set length of zero, each index in the vector defaults to null so 
no
    +      // need to set the nullability
    +      if (variableWidthVector == null) {
    --- End diff --
    
    Regarding the two variables variableWidthVector and fixedWidthVector that I 
added, here is my reasoning.  Either variableWidthVector is set if we have a 
VariableWidthVector, or fixedWidthVector is set if we have a FixedWidthVector 
(i.e., decimal).  Hence, variableWidthVector is non-null if and only if we are 
to invoke the pre-existing logic, that assumed a variable width vector.  When 
variableWidthVector is null (fixedWidthVector is non-null, but not currently 
used), we invoke the new logic to save the length information in 
decimalLengths.  If this is no good, please tell me why, and suggest an 
alternative.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to