Expected NULL-test facts are assertions only.
Honest by construction
Expected NULL-test facts are assertions only.
compiler is source of truth \text{compiler is source of truth} compiler is source of truth
Render checked rows
The guarded NULL test renders 2 TRUE output rows after recomputation.
checked rows = 2 \text{checked rows}=2 checked rows = 2
NULL-test examples are tiny finite-table transforms for IS NULL and IS NOT NULL; SQL dialect completeness, optimizer behavior, indexing, and product claims are out of scope.
Honest by construction: base rows id name city score 1 Ann Austin 10 2 Bo NULL 20 3 Cy Boston NULL 4 Di NULL 30 5 Eli Denver 40
NULL test result per row source testedValue isNull truth outputRole 0 Austin no FALSE dropped 1 NULL yes TRUE kept 2 Boston no FALSE dropped 3 NULL yes TRUE kept 4 Denver no FALSE dropped
WHERE-style TRUE-only output rows id name city score 2 Bo NULL 20 4 Di NULL 30
NULL-test facts fact value inputRowCount 5 nullCount 2 presentCount 3 trueCount 2 falseCount 3 unknownCount 0 outputRowCount 2 droppedRowCount 3 negated no whereKeeps TRUE_only_source_order
Try to tamper
Wrong expected facts, derived sidecars, missing columns, unsupported predicates, bools, and floats fail closed.
tamper rejected \text{tamper rejected} tamper rejected
Summary
The book shows exact finite IS NULL and IS NOT NULL behavior only; product SQL behavior is outside the model.
scoped NULL test model \text{scoped NULL test model} scoped NULL test model