JingsongLi opened a new pull request, #8999:
URL: https://github.com/apache/paimon/pull/8999

   ## Purpose
   
   Follow up on #8995 to prevent Parquet predicate pushdown from silently 
dropping rows when the file value is converted lossily before it is exposed as 
the declared table type.
   
   A physical `DOUBLE` may round to a matching declared `FLOAT`, and an 
out-of-range physical `INT64` wraps when read as `TINYINT` or `SMALLINT`. 
Comparing the predicate against the original physical value can therefore prune 
a row group that contains rows matching after conversion.
   
   ## Changes
   
   - Do not push declared `FLOAT` predicates to physical `DOUBLE` columns.
   - Do not push declared `TINYINT` or `SMALLINT` predicates to physical 
`INT64` columns.
   - Keep the lossless `INT64` to `INTEGER`, `INT32` to `BIGINT`, and `FLOAT` 
to `DOUBLE` paths unchanged.
   - Add end-to-end regression coverage for all three lossy narrowing cases.
   
   ## Tests
   
   ```shell
   mvn -pl paimon-format \
     -DwildcardSuites=none \
     
-Dtest=ParquetTypeWideningTest,ParquetFiltersTest,FileTypeNotMatchReadTypeTest \
     test
   ```
   
   53 tests passed; checkstyle, Spotless, and Maven enforcer checks also passed.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to