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