Uploaded image for project: 'Parquet'
  1. Parquet
  2. PARQUET-1217

Incorrect handling of missing values in Statistics

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.5.0, 1.6.0, 1.7.0, 1.8.0, 1.9.0, 1.10.0
    • Fix Version/s: 1.10.0, 1.8.3
    • Component/s: None
    • Labels:
      None

      Description

      As per the parquet-format specs the min/max values in statistics are optional. Therefore, it is possible to have numNulls in Statistics while we don't have min/max values. In StatisticsFilter we rely on the method StatisticsFilter.isAllNulls(ColumnChunkMetaData) to handle the case of null min/max values which is not correct due to the described scenario.
      We shall check Statistics.hasNonNullValue() any time before using the actual min/max values.

      In addition we don't check if the null_count is set or not when reading from the parquet file. We simply use the value which is 0 in case of unset. In the parquet-mr side the Statistics object uses the value 0 to sign that the num_nulls is unset. It is incorrect if we are searching for null values and we falsely drop a column chunk thinking there are no null values but the field in the statistics was simply unset.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                gszadovszky Gabor Szadovszky
                Reporter:
                gszadovszky Gabor Szadovszky
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: