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

   ### Purpose
   
   `SparkFilterConverter` already converts `EqualTo(col, NaN)` into an `IsNaN` 
predicate (#8060). An `Equal` predicate with a NaN literal can prune data files 
whose min/max statistics exclude NaN, and the matching rows are then silently 
dropped. The `EqualNullSafe` branch did not get the same handling, so a filter 
such as `col <=> CAST('NaN' AS DOUBLE)` still became `Equal(col, NaN)`. This 
converter is still used where Spark pushes down V1 filters, for example scan 
filters on Spark 3.2 and runtime filtering on Spark 3.2 and 3.3.
   
   This change maps `EqualNullSafe(col, NaN)` to `IsNaN(col)` for float and 
double values, the same as the `EqualTo` branch and `SparkV2FilterConverter`. 
Null and non-NaN values keep their current conversion.
   
   ### Tests
   
   Added `SparkFilterConverterTest#testEqualNullSafeNaN`, which covers 
`EqualNullSafe` with a NaN literal on float and double columns converting to 
`IsNaN`.


-- 
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