fix: add missing RelCommon field to UpdateRel - #1168
Open
nielspardon wants to merge 1 commit into
Open
Conversation
UpdateRel is the last relation in the `Rel` oneof without a `RelCommon common` field. Every other relation carries one, including the closely related WriteRel (field 7) and DdlRel (field 8), which had theirs added for the same reason in substrait-io#591. Without it, an UpdateRel cannot carry an emit, hints, or a rel_anchor, so consumers have no way to apply the common per-relation functionality they support everywhere else. UpdateRel does produce output (the modified records), so emit is meaningful here. Add `RelCommon common = 6;`, mirroring the placement WriteRel and DdlRel use: after the last data field and before the nested type declarations. Field 6 was previously unused, so this is purely additive and plans that do not set the field are unaffected. As documented on RelCommon, an absent RelCommon means Direct output, which preserves today's behavior. Closes substrait-io#821
nielspardon
requested review from
EpsilonPrime,
benbellick,
cpcloud,
jacques-n,
vbarua,
westonpace and
yongchul
as code owners
August 7, 2026 18:46
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
UpdateRelis the last relation in theReloneof without aRelCommon commonfield. Every other relation carries one, including the closely relatedWriteRel(field 7) andDdlRel(field 8), which had theirs added for the same reason in #591.Without it, an
UpdateRelcannot carry an emit, hints, or arel_anchor, so consumers have no way to apply the common per-relation functionality they support everywhere else.UpdateReldoes produce output — the modified records, per the Update Operator docs — so emit is meaningful here.This adds
RelCommon common = 6;, mirroring the placementWriteRelandDdlReluse: after the last data field and before the nested type declarations. Field 6 was previously unused, so the change is purely additive and plans that do not set the field are unaffected. As documented onRelCommon, an absentRelCommonmeansDirectoutput, which preserves today's behavior. This is not a breaking change.ReferenceRelis the only other message ending inRelwithout aRelCommon, and is deliberately left alone here: it is a pointer to another subtree rather than an operator with its own output, so the common fields do not carry the same meaning.Closes #821
🤖 Generated with AI
This change is