Skip to content

Remove unused nullable flag from tree-walker context#14

Merged
johngrimes merged 1 commit into
mainfrom
feature/remove-nullable-context-flag
Jun 19, 2026
Merged

Remove unused nullable flag from tree-walker context#14
johngrimes merged 1 commit into
mainfrom
feature/remove-nullable-context-flag

Conversation

@johngrimes

Copy link
Copy Markdown
Member

Removes the Context.nullable flag from the tree-walker. It was written but never read, so it drove no behaviour - repeat hardcodes INNER JOIN and forEach picks its apply type from the node's own isOrNull. It read like a switch that should preserve forEachOrNull null rows, which is what prompted the PR #9 review suggestion to consume it; investigating that (#10) showed the current row-dropping behaviour is already conformant, so consuming the flag would have been a regression. Also drops the now-redundant isOrNull parameter and stale comments.

No generated SQL changes. The full conformance suite passes unchanged (144/144) and build, lint, and format:check are clean.

Refs #10

The Context.nullable flag was written in two places (the root context and
the forEach inner context) but never read. repeat hardcodes INNER JOIN and
forEach selects its apply type from the node's own isOrNull, so the flag
drove nothing. It read like a switch that should select outer joins, which
misled the PR #9 review into proposing a change that would have resurrected
rows the specification eliminates.

The current row-dropping behaviour is conformant: the reference
implementation collapses a forEachOrNull null row when a nested
row-generating operator yields nothing (row_product semantics). The full
conformance suite passes unchanged after the removal.

Refs #10
@johngrimes johngrimes marked this pull request as ready for review June 19, 2026 06:35
@johngrimes johngrimes merged commit 63f25e8 into main Jun 19, 2026
3 checks passed
@johngrimes johngrimes deleted the feature/remove-nullable-context-flag branch June 19, 2026 09:46
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