Skip to content

proposal: A row outside every tuple is not guarded, and a rule match is a literal that says something - #73

Open
delchev wants to merge 1 commit into
mainfrom
proposal/posting-rule-match-literal
Open

proposal: A row outside every tuple is not guarded, and a rule match is a literal that says something#73
delchev wants to merge 1 commit into
mainfrom
proposal/posting-rule-match-literal

Conversation

@delchev

@delchev delchev commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Two lookups by value whose absent case the specification does not state. Filed as one proposal because they are one class of gap and one implementation issue (eclipse-dirigible/dirigible#7180).

A guard over an aggregate. aggregates is normative that a source row with any grouping key unset belongs to no tuple and MUST be ignored. checks: kind: guard recomputes the same total for the incoming row's key-tuple, and is normative about the recompute, but says nothing about a row that has no tuple - so such a record is weighed either against zero or against a pool of rows the aggregate itself ignores, two readings that disagree on whether a write is accepted. The proposal states the guard's half: a record belonging to no tuple is not guarded at all.

A posting's determination rule. rule.match's value is called a literal but is not required to be one that says anything. An empty one is a lookup for the empty value: it matches no rule row, so the posting takes its documented "no rule row" path for every source document, with the model well-formed, the generation successful and the deployment healthy. The proposal makes an absent or blank match value an authoring error.

No new keys in either case.

🤖 Generated with Claude Code

…is a literal that says something

Two lookups by value whose null case the specification does not state.

An aggregate is normative that a source row with any grouping key unset
belongs to no tuple and is ignored; the guard that recomputes the same total
says nothing about such a row, so it is weighed either against zero or against
a pool of rows the aggregate ignores - two readings that disagree on whether a
write is accepted.

A posting's rule match is called a literal, but not required to be one that
says something: an empty value looks up the empty rule row, matches nothing,
and skips every source document to the unposted worklist with the model, the
generation and the deployment all healthy.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant