fix: Set Expression serialization to use 'values' #2782
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related to #2775
Rationale for this change
Update the Set Expression serialization to align with the REST spec. Today, the set expression literals are serialized under items, instead of values.
For instance:
{ "term": "foo", "type": "not-in", "items": [ 1, 2, 3 ] }When it should be:
{ "term": "foo", "type": "not-in", "values": [ 1, 2, 3 ] }Rest ref: https://github.com/apache/iceberg/blob/47d5f5009eafbbb526e6e2c9cbeac3105bf34670/open-api/rest-catalog-open-api.yaml#L2353
Expression ref: https://github.com/apache/iceberg/blob/d19e3ff07653167d902865281601a5da4e2f2def/core/src/main/java/org/apache/iceberg/expressions/ExpressionParser.java#L189-L192
Are these changes tested?
Yes
Are there any user-facing changes?
only serialization, and initialization stays the same.