Repository navigation
fix(r13): HAVING and IIF onto the one truth rule; dead join builders removed (R13 slice 6b) - #102
Merged
Merged
Conversation
…R13 slice 6) HAVING's `is_truthy` and IIF's own table were the last two of P62's five "is this value true?" copies. Both now go through `Trilean::from_value`: boolean text converts, other text and dates are errors, NaN is TRUE (non-zero), and only TRUE keeps a group / takes IIF's second argument. Exactly the 15 pinned matrix entries went FIXED (7 HAVING, 8 IIF). Parity moved by exactly the two HAVING cases: having_text_flag_as_condition DIFFER -> AGREE, having_text_not_a_boolean OURS_ONLY -> BOTH_ERR. 190 -> 191 AGREE / 229. FORMAL examples unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ers (R13 slice 6) `nested_loop_join_inner`, `nested_loop_join_left` and `qualify_column_name` had no callers - every nested-loop join goes through the `*_multi` builders - and rustc has been saying so in a warning nobody read. Removed before P52 changes the nested loop's comparator, so the fix only has live paths to reach. 264 lines; parity report byte-identical. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… workstream R13: slice 6b done, dead join builders gone; 6c (P52) and 6d remain. P62: all five truth-table copies now Trilean::from_value; 191 AGREE / 229. R5: reopened at the user's request - rustc already names ~30 dead items, inventoried by area; four slices (rustc's list, coverage pass for pub code, pub(crate), lints in CI). R14 notes its third parser reader is dead. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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.
Summary
R13 slice 6, second part.
IIFread a value's truth withTrilean::from_value(D4). These were the last two of P62's five copies; all five are now one function. Boolean text converts, other text and dates are errors (as in WHERE), NaN is TRUE, and only TRUE keeps a group / takesIIF's second argument.IIF).having_text_flag_as_conditionDIFFER → AGREE,having_text_not_a_booleanOURS_ONLY → BOTH_ERR.nested_loop_join_inner,nested_loop_join_left,qualify_column_name(264 lines, no callers — rustc had been warning). Done before 6c changes the nested-loop comparator. Parity report byte-identical.pubcode →pub(crate)→ lints in CI.Behaviour change
IIF('abc', …),IIF(<date>, …)andHAVING <non-boolean text>now raise an error instead of silently picking a branch / keeping the group.IIF('f', …)now takes the false branch.Checks
cargo testintegration (508) and lib (842) green.expander_rewriters(fails on main) andboe_spot_rates(network timeout).Next
6c P52 NULL join keys (hash + nested loop) → 6d retire
RecursiveWhereEvaluator.🤖 Generated with Claude Code