Ala Luszczak created PARQUET-2161:
-------------------------------------

             Summary: Row positions are computed incorrectly when range or 
offset metadata filter is used
                 Key: PARQUET-2161
                 URL: https://issues.apache.org/jira/browse/PARQUET-2161
             Project: Parquet
          Issue Type: Bug
          Components: parquet-mr
    Affects Versions: 1.12.3
            Reporter: Ala Luszczak


The row indexes introduced in PARQUET-2117 are not computed correctly when
(1) range or offset metadata filter is applied, and
(2) the first row group was eliminated by the filter

For example, if a file has two row groups with 10 rows each, and we attempt to 
only read the 2nd row group, we are going to produce row indexes 0, 1, 2, ..., 
9 instead of expected 10, 11, ..., 19.

This happens because functions `filterFileMetaDataByStart` (used here: 
https://github.com/apache/parquet-mr/blob/e06384455567c56d5906fc3a152ab00fd8dfdf33/parquet-hadoop/src/main/java/org/apache/parquet/format/converter/ParquetMetadataConverter.java#L1453)
 and `filterFileMetaDataByMidpoint` (used here: 
https://github.com/apache/parquet-mr/blob/e06384455567c56d5906fc3a152ab00fd8dfdf33/parquet-hadoop/src/main/java/org/apache/parquet/format/converter/ParquetMetadataConverter.java#L1460)
 modify their input `FileMetaData`. To address the issue we need to 
`generateRowGroupOffsets` before these filters are applied.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to