Proposal 0022: re-keying repairs both groups, whatever wrote the key - #43
Open
delchev wants to merge 1 commit into
Open
Proposal 0022: re-keying repairs both groups, whatever wrote the key#43delchev wants to merge 1 commit into
delchev wants to merge 1 commit into
Conversation
1.5 requires an aggregate to repair both tuples when a grouping key moves, but leaves two gaps next to that sentence: rollups are not held to the same rule, and the observation of the previous key is naturally attached to the ONE writer that carries a whole record - so a targeted writer (a process step's field setter, a lookup, a task form) moves the same column with neither side repaired. Proposal 0022 states the repair as a property of the write: whenever a grouping column changes - an aggregate key or a roll-up's `via` FK - both the group the record left and the group it joined are recomputed, however the column was written, and without re-raising the record's ordinary change event.
This was referenced Aug 19, 2026
docs(spec): re-keying repairs both groups, whatever wrote the key
IntentFile/intentfile.github.io#34
Open
Merged
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.
Adds
proposals/0022-rekey-repairs-both-groups.md.1.5 is already normative for
aggregates: both tuples are repaired when a grouping key moves, and "the previous keys cannot be recovered after the write, so a conforming generator observes them before it". Two gaps sit next to that sentence:rollupsare not held to it. Their section says nothing about re-parenting, and proposal 0021 leaves the vacated parent a MAY. Asumroll-up over a re-parented line is therefore specified to correct the parent that received it and to go on counting it in the parent it left. Nothing about the construct justifies the difference — a roll-up is an aggregate over one key.The proposal adds no syntax. It states the repair as a property of the write: when a grouping column changes, both the group the record left and the group it joined are recomputed, however the column was written — and the repair must reach the derived-total handlers without turning into a second change event for the record.
Found while fixing the same two gaps in a conforming generator: eclipse-dirigible/dirigible#6819