Skip to content

Small-tails sweep: NULL-value statics + schema-less qualifiers — corpus 505 -> 511 (TASK-55) - #42

Merged
claude-agent-ahrzb[bot] merged 3 commits into
masterfrom
task-55-sweep
Jul 27, 2026
Merged

Small-tails sweep: NULL-value statics + schema-less qualifiers — corpus 505 -> 511 (TASK-55)#42
claude-agent-ahrzb[bot] merged 3 commits into
masterfrom
task-55-sweep

Conversation

@claude-agent-ahrzb

Copy link
Copy Markdown

What

Two conservative rejects lifted, per the post-wave-B census:

NULL values in static join tables (the real one). Fitted-encoding tables have NULLs; the original static-map design rejected them at build. Now a declared-nullable value column flattens to a (validity i1, payload) pair in the map layout — zero IR changes, both backends. The probe already writes typed defaults on a miss (validity=false), so StaticCol just ANDs the validity into the null lane next to the LEFT-miss flag; INNER, LEFT, and residual-ON paths all produce NULL-correct lanes. NULL keys keep the drop rule (a NULL never equi-matches).

Schema qualifiers are registry-noise. s1.t1 (driving, joined, or comma-joined) resolves when the table part matches a registered bare name, and 3-part schema.table.col refs bind. This amends the wave-5 main.-only rule: DuckDB's schema-existence errors are unknowable to a schema-less registry, so the choice is documented in known-limitations.md §5 rather than half-mimicked. Ambiguous matches still error.

Contract discipline

known-limitations.md + test_known_limitations.py updated in the same commit: the NULL-value reject row flips to a served behavior (its test now asserts the oracle-checked NULL flow), and the qualifier choice joins the §5 contract-choices list. One stale reject-test in the interpreter suite rewritten as a positive oracle check.

Verification

  • Corpus: 511 match / 165 clean-unsupported / 2 known-divergent, zero FAILs (+6; 3 of the 9 NULL-static cases uncovered second blockers — dup keys / self-joins — counted honestly)
  • 155 Rust + 599 py green; interp backend identical minus the backend-identity guards
  • clippy clean on touched files

Note: this branch stacks on #41 (the fuzzer-classes doc fold) — merging #41 first keeps histories clean.

🤖 Generated with Claude Code

ahrzb and others added 3 commits July 28, 2026 00:04
… the limitations contract

The known-limitations doc gains the fuzzer-found regex row (backrefs
outside classes, the stacked-quantifier grammar, nested repetition
products, whitespace bounds, class set-op lookalikes, Perl-class range
endpoints, capturing {0}, anchor-only patterns) and a new 'how this
document stays honest' section naming the three gate mechanisms (corpus
replay, executable twin, standing fuzzer). The twin suite grows 9
assertions covering the new classes — 39 tests total.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…us 505 -> 511 (TASK-55)

NULL values in static join tables now serve: a declared-nullable value
column flattens to a (validity i1, payload) pair in the map layout —
zero IR changes; the probe writes typed defaults on a miss (validity
false), and StaticCol ANDs the validity into the null lane alongside the
LEFT-miss flag, so INNER/LEFT/residual paths all get NULL-correct lanes
on both backends. NULL keys keep the drop rule. The materializer converts
NULL -> (false, typed default); the declared-non-nullable NULL guard
stays as a safety net.

Schema qualifiers become registry-noise: s1.t1 (driving, joined, or
comma-joined) resolves when the table part matches a registered bare
name, and 3-part schema.table.col refs bind — amending the wave-5
main.-only rule (DuckDB's schema-existence errors are unknowable to a
schema-less registry; documented as a contract choice). Ambiguity still
errors.

known-limitations.md + the twin suite updated in the same commit (the
NULL-value reject row flips to served; the qualifier choice joins §5).
Corpus 511/165/2 zero FAILs — 3 of the 9 NULL-static cases uncovered
second blockers (dup keys / self-joins), counted honestly.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@claude-agent-ahrzb
claude-agent-ahrzb Bot merged commit b0ce75b into master Jul 27, 2026
1 check 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