rdblue commented on a change in pull request #2062:
URL: https://github.com/apache/iceberg/pull/2062#discussion_r567172999



##########
File path: api/src/main/java/org/apache/iceberg/transforms/Truncate.java
##########
@@ -303,11 +303,15 @@ public boolean satisfiesOrderOf(Transform<?, ?> other) {
         return Expressions.predicate(predicate.op(), name);
       } else if (predicate instanceof BoundLiteralPredicate) {
         BoundLiteralPredicate<CharSequence> pred = 
predicate.asLiteralPredicate();
-        if (pred.op() == Expression.Operation.STARTS_WITH) {

Review comment:
       The inclusive projection needs similar handling to my comment about 
strict projection. If the width of the truncate transform is greater than the 
width of the `startsWith` or `notStartsWith` prefix, then the original 
predicate can be returned directly. If the width is the same as the prefix, 
then `startsWith` should be converted to `equals` and `notStartsWith` should be 
converted to `notEquals`. If the width is greater, then 
`ProjectionUtil.truncateArray` can be used to truncate the prefix for 
`startsWith`, but not the negated version.




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

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to