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]
