feat: scaffolding work for expression#177
Conversation
wgtmac
commented
Aug 15, 2025
- Add interface for term, unbound, bound, reference, predicate, etc.
- Add factory to create expressions.
0bd5939 to
ca00452
Compare
c1c25e7 to
b86dda1
Compare
17bd1f8 to
5a49c08
Compare
|
This PR is ready for review. It looks pretty similar to the Java equivalent. Let me know what you think. @dongxiao1198 @lidavidm @mapleFU @yingcai-cy @zhjwpku |
|
@lidavidm Do you have any comment about this PR? |
| case Expression::Operation::kTrue: | ||
| case Expression::Operation::kFalse: | ||
| case Expression::Operation::kNot: |
There was a problem hiding this comment.
shouldn't there be negations for these?
There was a problem hiding this comment.
I'm following the Java impl: https://github.com/apache/iceberg/blob/main/api/src/main/java/org/apache/iceberg/expressions/Expression.java#L64-L97
|
@zeroshade Thanks for your review! I think I've addressed all your comments. Please check. |
src/iceberg/expression/expression.cc
Outdated
| case Expression::Operation::kAnd: | ||
| case Expression::Operation::kOr: |
There was a problem hiding this comment.
This is interesting, we can negate and and or through the Morgan's law
Fokko
left a comment
There was a problem hiding this comment.
This looks like a great start! Thanks for working on this @wgtmac, and thanks @zeroshade, @dongxiao1198, @zhjwpku, @mapleFU, @gty404 for the reviews 🙌
|
Thanks all! |