Skip to content

test(r13): pin HAVING / IIF truth values and P52 on every join path (R13 slice 6a) - #101

Merged
TimelordUK merged 1 commit into
mainfrom
refactor/r13-slice6-pin
Oct 3, 2026
Merged

TimelordUK merged 1 commit into
mainfrom
refactor/r13-slice6-pin

Conversation

@TimelordUK

Copy link
Copy Markdown
Owner

Summary

R13 slice 6, first part: the pin. No engine change.

  • HAVING and IIF as truth-value sites (the last two P62 copies). The evaluator matrix gains a Having column (each row grouped on its own through QueryEngine) and IIF(v, true, false) rows through both evaluators; expectations from DuckDB (if(), as DuckDB has no IIF). 15 divergences recorded: the two copies disagree with D4 and with each other (empty text, dates), and both read NaN as FALSE.
  • P52 on every live join path: hash INNER / LEFT / RIGHT, nested-loop INNER / LEFT / RIGHT (*_multi), and the expression form — seven expect = "DIFFER" cases. Probing found only equality wrong; three inequality cases already AGREE and go in as guards for 6c.
  • HAVING corpus cases over predicate_text.csv: having_text_flag_as_condition (DIFFER), having_text_not_a_boolean (OURS_ONLY → BOTH_ERR after 6b), guard having_not_text_flag.
  • Docs: P52, P62, R13 slice 6 split into 6a–6d, log row.

Parity

217 → 229 cases; 186 → 190 AGREE (the four guards), 15 → 22 DIFFER, 1 → 2 OURS_ONLY. Report otherwise unchanged vs main; contract holds.

Next

6b HAVING / IIF onto Trilean::from_value → 6c P52 joins → 6d retire RecursiveWhereEvaluator.

🤖 Generated with Claude Code

…R13 slice 6)

No engine change. The last two P62 copies - HAVING's is_truthy and IIF's own
table - get a matrix column each (HAVING via QueryEngine, one group per row;
IIF through both evaluators, expectations from DuckDB's if()): 15 recorded
divergences. They disagree with D4 and with each other, and both read NaN
as FALSE.

P52 gets a corpus case on each live join path (hash INNER/LEFT/RIGHT,
nested-loop INNER/LEFT/RIGHT, expression form). Only equality is wrong;
three inequality guards already AGREE.

Parity 217 -> 229 cases, 186 -> 190 AGREE (the four guards); report
otherwise unchanged.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@TimelordUK
TimelordUK merged commit ce77683 into main Oct 3, 2026
8 checks passed
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