FAILURE MAP
← Case archive

FA-45071 / Data systems / Open access

Constant vector treats zero as a null scalar · case 01

Constant vector treats zero as a null scalar.

Verified by executionVariant 1 · 7 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

constant-vector-materialize: Constant vector treats zero as a null scalar.

VERIFIED REPAIR

Preserve the stated physical representation and operation order: Materialize a constant vector over a requested logical length, combining scalar validity with row validity. A selection chooses logical rows and may repeat them. Return [row-index,value-or-null] for every selected row; scalar zero is a valid value.

Unsuccessful approach: Explicitly rejecting zero still loses a valid constant.

Case contract

Materialize a constant vector over a requested logical length, combining scalar validity with row validity. A selection chooses logical rows and may repeat them. Return [row-index,value-or-null] for every selected row; scalar zero is a valid value.

Why this case matters

A bounded deterministic data engine model makes representation and changelog faults reproducible.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(d):
    try:
        value,scalar_valid,row_valid,selection=d
        out=[]
        for row in selection:
            known=bool(value) and scalar_valid and row_valid[row]
            out.append([row,value if known else None])
        return out
    except (IndexError, KeyError, ValueError, StopIteration) as exc:
        return {"representation_error": type(exc).__name__}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
if N == 1:
    check('selected validity', solve([1, True, [True, False, True], [2, 1, 0]]), [[2, 1], [1, None], [0, 1]])
    check('scalar null', solve([1, False, [True, True], [0, 1]]), [[0, None], [1, None]])
    check('mixed row null', solve([1, True, [False, True], [1, 0]]), [[1, 1], [0, None]])
    check('zero constant', solve([0, True, [True], [0]]), [[0, 0]])
    check('repeat row', solve([1, True, [True, True], [1, 1]]), [[1, 1], [1, 1]])
    check('empty selection', solve([1, True, [True], []]), [])
    check('single row control', solve([1, True, [True], [0]]), [[0, 1]])
elif N == 2:
    check('selected validity', solve([2, True, [True, False, True], [2, 1, 0]]), [[2, 2], [1, None], [0, 2]])
    check('scalar null', solve([2, False, [True, True], [0, 1]]), [[0, None], [1, None]])
    check('mixed row null', solve([2, True, [False, True], [1, 0]]), [[1, 2], [0, None]])
    check('zero constant', solve([0, True, [True], [0]]), [[0, 0]])
    check('repeat row', solve([2, True, [True, True], [1, 1]]), [[1, 2], [1, 2]])
    check('empty selection', solve([2, True, [True], []]), [])
    check('single row control', solve([2, True, [True], [0]]), [[0, 2]])
elif N == 3:
    check('selected validity', solve([3, True, [True, False, True], [2, 1, 0]]), [[2, 3], [1, None], [0, 3]])
    check('scalar null', solve([3, False, [True, True], [0, 1]]), [[0, None], [1, None]])
    check('mixed row null', solve([3, True, [False, True], [1, 0]]), [[1, 3], [0, None]])
    check('zero constant', solve([0, True, [True], [0]]), [[0, 0]])
    check('repeat row', solve([3, True, [True, True], [1, 1]]), [[1, 3], [1, 3]])
    check('empty selection', solve([3, True, [True], []]), [])
    check('single row control', solve([3, True, [True], [0]]), [[0, 3]])
elif N == 4:
    check('selected validity', solve([4, True, [True, False, True], [2, 1, 0]]), [[2, 4], [1, None], [0, 4]])
    check('scalar null', solve([4, False, [True, True], [0, 1]]), [[0, None], [1, None]])
    check('mixed row null', solve([4, True, [False, True], [1, 0]]), [[1, 4], [0, None]])
    check('zero constant', solve([0, True, [True], [0]]), [[0, 0]])
    check('repeat row', solve([4, True, [True, True], [1, 1]]), [[1, 4], [1, 4]])
    check('empty selection', solve([4, True, [True], []]), [])
    check('single row control', solve([4, True, [True], [0]]), [[0, 4]])
elif N == 5:
    check('selected validity', solve([5, True, [True, False, True], [2, 1, 0]]), [[2, 5], [1, None], [0, 5]])
    check('scalar null', solve([5, False, [True, True], [0, 1]]), [[0, None], [1, None]])
    check('mixed row null', solve([5, True, [False, True], [1, 0]]), [[1, 5], [0, None]])
    check('zero constant', solve([0, True, [True], [0]]), [[0, 0]])
    check('repeat row', solve([5, True, [True, True], [1, 1]]), [[1, 5], [1, 5]])
    check('empty selection', solve([5, True, [True], []]), [])
    check('single row control', solve([5, True, [True], [0]]), [[0, 5]])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
selected validity[[2, 1], [1, None], [0, 1]][[2, 1], [1, None], [0, 1]]Passed
scalar null[[0, None], [1, None]][[0, None], [1, None]]Passed
mixed row null[[1, 1], [0, None]][[1, 1], [0, None]]Passed
zero constant[[0, None]][[0, 0]]Failed
repeat row[[1, 1], [1, 1]][[1, 1], [1, 1]]Passed
empty selection[][]Passed
single row control[[0, 1]][[0, 1]]Passed

SHA-256 / 243aad526cc77970ec138a4356f3e8081c69c92d017ff181918d3b2495a328ea

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(d):
    try:
        value,scalar_valid,row_valid,selection=d
        out=[]
        for row in selection:
            known=value is not None and value!=0 and row_valid[row]
            out.append([row,value if known else None])
        return out
    except (IndexError, KeyError, ValueError, StopIteration) as exc:
        return {"representation_error": type(exc).__name__}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
if N == 1:
    check('selected validity', solve([1, True, [True, False, True], [2, 1, 0]]), [[2, 1], [1, None], [0, 1]])
    check('scalar null', solve([1, False, [True, True], [0, 1]]), [[0, None], [1, None]])
    check('mixed row null', solve([1, True, [False, True], [1, 0]]), [[1, 1], [0, None]])
    check('zero constant', solve([0, True, [True], [0]]), [[0, 0]])
    check('repeat row', solve([1, True, [True, True], [1, 1]]), [[1, 1], [1, 1]])
    check('empty selection', solve([1, True, [True], []]), [])
    check('single row control', solve([1, True, [True], [0]]), [[0, 1]])
elif N == 2:
    check('selected validity', solve([2, True, [True, False, True], [2, 1, 0]]), [[2, 2], [1, None], [0, 2]])
    check('scalar null', solve([2, False, [True, True], [0, 1]]), [[0, None], [1, None]])
    check('mixed row null', solve([2, True, [False, True], [1, 0]]), [[1, 2], [0, None]])
    check('zero constant', solve([0, True, [True], [0]]), [[0, 0]])
    check('repeat row', solve([2, True, [True, True], [1, 1]]), [[1, 2], [1, 2]])
    check('empty selection', solve([2, True, [True], []]), [])
    check('single row control', solve([2, True, [True], [0]]), [[0, 2]])
elif N == 3:
    check('selected validity', solve([3, True, [True, False, True], [2, 1, 0]]), [[2, 3], [1, None], [0, 3]])
    check('scalar null', solve([3, False, [True, True], [0, 1]]), [[0, None], [1, None]])
    check('mixed row null', solve([3, True, [False, True], [1, 0]]), [[1, 3], [0, None]])
    check('zero constant', solve([0, True, [True], [0]]), [[0, 0]])
    check('repeat row', solve([3, True, [True, True], [1, 1]]), [[1, 3], [1, 3]])
    check('empty selection', solve([3, True, [True], []]), [])
    check('single row control', solve([3, True, [True], [0]]), [[0, 3]])
elif N == 4:
    check('selected validity', solve([4, True, [True, False, True], [2, 1, 0]]), [[2, 4], [1, None], [0, 4]])
    check('scalar null', solve([4, False, [True, True], [0, 1]]), [[0, None], [1, None]])
    check('mixed row null', solve([4, True, [False, True], [1, 0]]), [[1, 4], [0, None]])
    check('zero constant', solve([0, True, [True], [0]]), [[0, 0]])
    check('repeat row', solve([4, True, [True, True], [1, 1]]), [[1, 4], [1, 4]])
    check('empty selection', solve([4, True, [True], []]), [])
    check('single row control', solve([4, True, [True], [0]]), [[0, 4]])
elif N == 5:
    check('selected validity', solve([5, True, [True, False, True], [2, 1, 0]]), [[2, 5], [1, None], [0, 5]])
    check('scalar null', solve([5, False, [True, True], [0, 1]]), [[0, None], [1, None]])
    check('mixed row null', solve([5, True, [False, True], [1, 0]]), [[1, 5], [0, None]])
    check('zero constant', solve([0, True, [True], [0]]), [[0, 0]])
    check('repeat row', solve([5, True, [True, True], [1, 1]]), [[1, 5], [1, 5]])
    check('empty selection', solve([5, True, [True], []]), [])
    check('single row control', solve([5, True, [True], [0]]), [[0, 5]])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
selected validity[[2, 1], [1, None], [0, 1]][[2, 1], [1, None], [0, 1]]Passed
scalar null[[0, 1], [1, 1]][[0, None], [1, None]]Failed
mixed row null[[1, 1], [0, None]][[1, 1], [0, None]]Passed
zero constant[[0, None]][[0, 0]]Failed
repeat row[[1, 1], [1, 1]][[1, 1], [1, 1]]Passed
empty selection[][]Passed
single row control[[0, 1]][[0, 1]]Passed

SHA-256 / 3e806e5c383084a35387d44a7217aa815f842dd96e10f0d3efdb0c4402f582b6

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(d):
    try:
        value,scalar_valid,row_valid,selection=d
        out=[]
        for row in selection:
            known=scalar_valid and row_valid[row]
            out.append([row,value if known else None])
        return out
    except (IndexError, KeyError, ValueError, StopIteration) as exc:
        return {"representation_error": type(exc).__name__}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
if N == 1:
    check('selected validity', solve([1, True, [True, False, True], [2, 1, 0]]), [[2, 1], [1, None], [0, 1]])
    check('scalar null', solve([1, False, [True, True], [0, 1]]), [[0, None], [1, None]])
    check('mixed row null', solve([1, True, [False, True], [1, 0]]), [[1, 1], [0, None]])
    check('zero constant', solve([0, True, [True], [0]]), [[0, 0]])
    check('repeat row', solve([1, True, [True, True], [1, 1]]), [[1, 1], [1, 1]])
    check('empty selection', solve([1, True, [True], []]), [])
    check('single row control', solve([1, True, [True], [0]]), [[0, 1]])
elif N == 2:
    check('selected validity', solve([2, True, [True, False, True], [2, 1, 0]]), [[2, 2], [1, None], [0, 2]])
    check('scalar null', solve([2, False, [True, True], [0, 1]]), [[0, None], [1, None]])
    check('mixed row null', solve([2, True, [False, True], [1, 0]]), [[1, 2], [0, None]])
    check('zero constant', solve([0, True, [True], [0]]), [[0, 0]])
    check('repeat row', solve([2, True, [True, True], [1, 1]]), [[1, 2], [1, 2]])
    check('empty selection', solve([2, True, [True], []]), [])
    check('single row control', solve([2, True, [True], [0]]), [[0, 2]])
elif N == 3:
    check('selected validity', solve([3, True, [True, False, True], [2, 1, 0]]), [[2, 3], [1, None], [0, 3]])
    check('scalar null', solve([3, False, [True, True], [0, 1]]), [[0, None], [1, None]])
    check('mixed row null', solve([3, True, [False, True], [1, 0]]), [[1, 3], [0, None]])
    check('zero constant', solve([0, True, [True], [0]]), [[0, 0]])
    check('repeat row', solve([3, True, [True, True], [1, 1]]), [[1, 3], [1, 3]])
    check('empty selection', solve([3, True, [True], []]), [])
    check('single row control', solve([3, True, [True], [0]]), [[0, 3]])
elif N == 4:
    check('selected validity', solve([4, True, [True, False, True], [2, 1, 0]]), [[2, 4], [1, None], [0, 4]])
    check('scalar null', solve([4, False, [True, True], [0, 1]]), [[0, None], [1, None]])
    check('mixed row null', solve([4, True, [False, True], [1, 0]]), [[1, 4], [0, None]])
    check('zero constant', solve([0, True, [True], [0]]), [[0, 0]])
    check('repeat row', solve([4, True, [True, True], [1, 1]]), [[1, 4], [1, 4]])
    check('empty selection', solve([4, True, [True], []]), [])
    check('single row control', solve([4, True, [True], [0]]), [[0, 4]])
elif N == 5:
    check('selected validity', solve([5, True, [True, False, True], [2, 1, 0]]), [[2, 5], [1, None], [0, 5]])
    check('scalar null', solve([5, False, [True, True], [0, 1]]), [[0, None], [1, None]])
    check('mixed row null', solve([5, True, [False, True], [1, 0]]), [[1, 5], [0, None]])
    check('zero constant', solve([0, True, [True], [0]]), [[0, 0]])
    check('repeat row', solve([5, True, [True, True], [1, 1]]), [[1, 5], [1, 5]])
    check('empty selection', solve([5, True, [True], []]), [])
    check('single row control', solve([5, True, [True], [0]]), [[0, 5]])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
selected validity[[2, 1], [1, None], [0, 1]][[2, 1], [1, None], [0, 1]]Passed
scalar null[[0, None], [1, None]][[0, None], [1, None]]Passed
mixed row null[[1, 1], [0, None]][[1, 1], [0, None]]Passed
zero constant[[0, 0]][[0, 0]]Passed
repeat row[[1, 1], [1, 1]][[1, 1], [1, 1]]Passed
empty selection[][]Passed
single row control[[0, 1]][[0, 1]]Passed

SHA-256 / 5ad66d72139feb152de04d2b83d46b4062b87e55dbffb7d73c060c948e272225

Verification & scope

Offline stipulated semantics over valid small inputs; no performance, concurrency, or production-engine conformance claim. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

Observations recorded using Python 3.12.14 at 2026-09-29T14:44:18.495442+00:00.

Case digest / edbdd763c06c2fd6d25d37fb764b0299a6099507cc0914f56a164db74333c0d3