JakeMcPherson25 commented on issue #6853:
URL: https://github.com/apache/iceberg/issues/6853#issuecomment-1589308633
I am seeing a similar issue with decimal partitions with trailing zero's
using an `IN` predicate. They seem to get filtered out through the
ResidualEvaluator. For example
the table data structure:
```
s3a://warehouse/iceberg_test1/data/varchar1=test1/int1=1383779907/decimal1=1.1000
s3a://warehouse/iceberg_test1/data/varchar1=test1/int1=1383779907/decimal1=1.2000
s3a://warehouse/iceberg_test1/data/varchar1=test1/int1=1383779907/decimal1=1.2001
s3a://warehouse/iceberg_test1/data/varchar1=test1/int1=1383779907/decimal1=1.2002
s3a://warehouse/iceberg_test1/data/varchar1=test1/int1=1383779907/decimal1=1.4000
```
when running the predicate:`SELECT * FROM iceberg_test1 where decimal1
IN(1.4000,1.1000)`
it returns the results
```
real1 varchar1 int1
decimal1
------------------------ ---------------------------------------------
----------------------- ---------------------------
0 record(s) selected.
```
furthermore this works when the `IN` predicate only contains 1 value (in
this situation iceberg converts the the `IN` to an `==` here:
https://github.com/apache/iceberg/blob/c256604b34233885f6565902719bbfcf55e4cacf/api/src/main/java/org/apache/iceberg/expressions/UnboundPredicate.java#L223-L234
and this predicate produces the correct results.
Eliminating the decimal column from the partition expression during the
create table statement resolves this issue as well. I understand that this is
most likely a separate issue but both problems seem extremely similar
--
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]