Skip to content

Commit b0ce75b

Browse files
ahrzbclaude
authored andcommitted
chore(backlog): TASK-55 all ACs checked + Done
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent f58d942 commit b0ce75b

1 file changed

Lines changed: 12 additions & 5 deletions

File tree

backlog/tasks/task-55 - Specializer-small-tails-sweep-—-NULL-value-statics-schema-qualified-relations.md

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@ id: TASK-55
33
title: >-
44
Specializer small-tails sweep — NULL-value statics + schema-qualified
55
relations
6-
status: In Progress
6+
status: Done
77
assignee: []
88
created_date: '2026-07-27 22:10'
9+
updated_date: '2026-07-27 22:23'
910
labels: []
1011
milestone: m-7
1112
dependencies:
@@ -29,8 +30,14 @@ Deferred with named rejects: COLUMNS(* REPLACE ...) and fn(COLUMNS(*)) expressio
2930

3031
## Acceptance Criteria
3132
<!-- AC:BEGIN -->
32-
- [ ] #1 Static tables with NULL VALUE columns serve: NULL flows through join lanes (INNER and LEFT, incl. residuals); NULL keys keep dropping; both backends
33-
- [ ] #2 Schema-qualified driving/joined/comma-joined relations + 3-part column refs bind by suffix match; known-limitations.md §5 + twin suite updated in the same commit
34-
- [ ] #3 Corpus replay: zero FAILs, match count reported (expect ~+12 to ~517)
35-
- [ ] #4 Gate green both backends, clippy clean
33+
- [x] #1 Static tables with NULL VALUE columns serve: NULL flows through join lanes (INNER and LEFT, incl. residuals); NULL keys keep dropping; both backends
34+
- [x] #2 Schema-qualified driving/joined/comma-joined relations + 3-part column refs bind by suffix match; known-limitations.md §5 + twin suite updated in the same commit
35+
- [x] #3 Corpus replay: zero FAILs, match count reported (expect ~+12 to ~517)
36+
- [x] #4 Gate green both backends, clippy clean
3637
<!-- AC:END -->
38+
39+
## Final Summary
40+
41+
<!-- SECTION:FINAL_SUMMARY:BEGIN -->
42+
Small-tails sweep shipped: corpus 505 -> 511 of 678, zero FAILs. (1) NULL values in static join tables serve — declared-nullable value columns flatten to (validity i1, payload) pairs in the map layout with zero IR changes; the probe's typed miss-defaults make validity=false free on LEFT misses, and StaticCol ANDs validity into the null lane on both backends (INNER/LEFT/residual all oracle-checked); NULL keys keep the drop rule; the materializer maps NULL -> (false, typed default) with the non-nullable guard kept as a safety net. (2) Schema qualifiers are registry-noise: s1.t1 resolves by table-part suffix match for driving/joined/comma-joined relations, 3-part schema.table.col refs bind; amends the wave-5 main.-only rule, documented as a §5 contract choice (DuckDB's schema-existence errors are unknowable to a schema-less registry); ambiguity still errors. known-limitations.md + twin suite updated in the same commit (NULL-value reject row flipped to served). 3 of the 9 NULL-static corpus cases uncovered second blockers (dup keys / self-joins — stage-B constituency grows again). Gates: 155 Rust + 599 py green, interp identical minus backend-identity guards, clippy clean on touched files. PR #42 (stacked on #41).
43+
<!-- SECTION:FINAL_SUMMARY:END -->

0 commit comments

Comments
 (0)