plusplusjiajia opened a new pull request, #3223:
URL: https://github.com/apache/iceberg-rust/pull/3223

   ## What changes are included in this PR?
   
   `expr_to_predicate` strips every non-date `Cast`, so `CAST(x AS REAL) = 1` 
on a `DOUBLE` column is pushed down as `x = 1`. The predicate runs as a Parquet 
row filter, so rows the SQL matches (`1.00000001` is `1.0` as `REAL`) are 
dropped before DataFusion's residual filter sees them; `CAST(x AS INT) = 1` 
errors with `Can't convert datum from int type to double type`.
   
   A cast over a column is now `NotTransformed`, like date casts already are 
(Iceberg Java does not push casts either). Casts over literals are unchanged.
   
   ## Are these changes tested?
   
   `test_predicate_conversion_with_column_cast`: three column-cast shapes stay 
with DataFusion; the timestamp-literal cast test still converts. Verified 
end-to-end on a REST catalog: 2 rows instead of 1.
   


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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to