{"abstract":"An empty nested path returns null rather than the source row.","category":"Data systems","checks":7,"contract":"Resolve an explicit sequence of field path segments against each row dictionary. Dots inside a segment are literal characters; empty path returns the whole row. A missing segment, non-dictionary intermediate, or null intermediate yields None; falsy leaf values remain present.","evaluation_group":"s3-data-systems-nested-field-path","failed_approach":"An empty object loses the identity projection of the entire row.","family":"s3-data-systems-nested-field-path-empty-path","id":"FA-45236","implementations":{"attempt":{"sha256":"0cd2eb4c49643ebb588c96ce20691cbef889223db5771df110f8175aa349c2df","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    try:\n        rows,path=d\n        out=[]\n        for row in rows:\n            value=row if path else {}\n            for segment in path:\n                if not isinstance(value,dict): value=None; break\n                if segment not in value: value=None; break\n                value=value[segment]\n            out.append(value)\n        return out\n    except (IndexError, KeyError, ValueError, StopIteration) as exc:\n        return {\"representation_error\": type(exc).__name__}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('literal dotted field', solve([[{'a.b': 1, 'a': {'b': 2}}], ['a.b']]), [1])\n    check('nested homonym', solve([[{'a': {'b': 1}, 'b': 2}], ['a', 'b']]), [1])\n    check('missing segment', solve([[{'a': {'b': 1}}], ['a', 'z']]), [None])\n    check('scalar intermediate', solve([[{'a': 1}], ['a', 'b']]), [None])\n    check('zero leaf', solve([[{'a': 0}], ['a']]), [0])\n    check('empty path', solve([[{'a': 1}], []]), [{'a': 1}])\n    check('multiple rows', solve([[{'a': 1}, {'a': 2}], ['a']]), [1, 2])\nelif N == 2:\n    check('literal dotted field', solve([[{'a.b': 2, 'a': {'b': 3}}], ['a.b']]), [2])\n    check('nested homonym', solve([[{'a': {'b': 2}, 'b': 3}], ['a', 'b']]), [2])\n    check('missing segment', solve([[{'a': {'b': 2}}], ['a', 'z']]), [None])\n    check('scalar intermediate', solve([[{'a': 2}], ['a', 'b']]), [None])\n    check('zero leaf', solve([[{'a': 0}], ['a']]), [0])\n    check('empty path', solve([[{'a': 2}], []]), [{'a': 2}])\n    check('multiple rows', solve([[{'a': 2}, {'a': 3}], ['a']]), [2, 3])\nelif N == 3:\n    check('literal dotted field', solve([[{'a.b': 3, 'a': {'b': 4}}], ['a.b']]), [3])\n    check('nested homonym', solve([[{'a': {'b': 3}, 'b': 4}], ['a', 'b']]), [3])\n    check('missing segment', solve([[{'a': {'b': 3}}], ['a', 'z']]), [None])\n    check('scalar intermediate', solve([[{'a': 3}], ['a', 'b']]), [None])\n    check('zero leaf', solve([[{'a': 0}], ['a']]), [0])\n    check('empty path', solve([[{'a': 3}], []]), [{'a': 3}])\n    check('multiple rows', solve([[{'a': 3}, {'a': 4}], ['a']]), [3, 4])\nelif N == 4:\n    check('literal dotted field', solve([[{'a.b': 4, 'a': {'b': 5}}], ['a.b']]), [4])\n    check('nested homonym', solve([[{'a': {'b': 4}, 'b': 5}], ['a', 'b']]), [4])\n    check('missing segment', solve([[{'a': {'b': 4}}], ['a', 'z']]), [None])\n    check('scalar intermediate', solve([[{'a': 4}], ['a', 'b']]), [None])\n    check('zero leaf', solve([[{'a': 0}], ['a']]), [0])\n    check('empty path', solve([[{'a': 4}], []]), [{'a': 4}])\n    check('multiple rows', solve([[{'a': 4}, {'a': 5}], ['a']]), [4, 5])\nelif N == 5:\n    check('literal dotted field', solve([[{'a.b': 5, 'a': {'b': 6}}], ['a.b']]), [5])\n    check('nested homonym', solve([[{'a': {'b': 5}, 'b': 6}], ['a', 'b']]), [5])\n    check('missing segment', solve([[{'a': {'b': 5}}], ['a', 'z']]), [None])\n    check('scalar intermediate', solve([[{'a': 5}], ['a', 'b']]), [None])\n    check('zero leaf', solve([[{'a': 0}], ['a']]), [0])\n    check('empty path', solve([[{'a': 5}], []]), [{'a': 5}])\n    check('multiple rows', solve([[{'a': 5}, {'a': 6}], ['a']]), [5, 6])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"fee7bea571ab92713bc00f9d59c06468c41895323d2315bde5f6b3052c16ebb9","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    try:\n        rows,path=d\n        out=[]\n        for row in rows:\n            value=row if path else None\n            for segment in path:\n                if not isinstance(value,dict): value=None; break\n                if segment not in value: value=None; break\n                value=value[segment]\n            out.append(value)\n        return out\n    except (IndexError, KeyError, ValueError, StopIteration) as exc:\n        return {\"representation_error\": type(exc).__name__}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('literal dotted field', solve([[{'a.b': 1, 'a': {'b': 2}}], ['a.b']]), [1])\n    check('nested homonym', solve([[{'a': {'b': 1}, 'b': 2}], ['a', 'b']]), [1])\n    check('missing segment', solve([[{'a': {'b': 1}}], ['a', 'z']]), [None])\n    check('scalar intermediate', solve([[{'a': 1}], ['a', 'b']]), [None])\n    check('zero leaf', solve([[{'a': 0}], ['a']]), [0])\n    check('empty path', solve([[{'a': 1}], []]), [{'a': 1}])\n    check('multiple rows', solve([[{'a': 1}, {'a': 2}], ['a']]), [1, 2])\nelif N == 2:\n    check('literal dotted field', solve([[{'a.b': 2, 'a': {'b': 3}}], ['a.b']]), [2])\n    check('nested homonym', solve([[{'a': {'b': 2}, 'b': 3}], ['a', 'b']]), [2])\n    check('missing segment', solve([[{'a': {'b': 2}}], ['a', 'z']]), [None])\n    check('scalar intermediate', solve([[{'a': 2}], ['a', 'b']]), [None])\n    check('zero leaf', solve([[{'a': 0}], ['a']]), [0])\n    check('empty path', solve([[{'a': 2}], []]), [{'a': 2}])\n    check('multiple rows', solve([[{'a': 2}, {'a': 3}], ['a']]), [2, 3])\nelif N == 3:\n    check('literal dotted field', solve([[{'a.b': 3, 'a': {'b': 4}}], ['a.b']]), [3])\n    check('nested homonym', solve([[{'a': {'b': 3}, 'b': 4}], ['a', 'b']]), [3])\n    check('missing segment', solve([[{'a': {'b': 3}}], ['a', 'z']]), [None])\n    check('scalar intermediate', solve([[{'a': 3}], ['a', 'b']]), [None])\n    check('zero leaf', solve([[{'a': 0}], ['a']]), [0])\n    check('empty path', solve([[{'a': 3}], []]), [{'a': 3}])\n    check('multiple rows', solve([[{'a': 3}, {'a': 4}], ['a']]), [3, 4])\nelif N == 4:\n    check('literal dotted field', solve([[{'a.b': 4, 'a': {'b': 5}}], ['a.b']]), [4])\n    check('nested homonym', solve([[{'a': {'b': 4}, 'b': 5}], ['a', 'b']]), [4])\n    check('missing segment', solve([[{'a': {'b': 4}}], ['a', 'z']]), [None])\n    check('scalar intermediate', solve([[{'a': 4}], ['a', 'b']]), [None])\n    check('zero leaf', solve([[{'a': 0}], ['a']]), [0])\n    check('empty path', solve([[{'a': 4}], []]), [{'a': 4}])\n    check('multiple rows', solve([[{'a': 4}, {'a': 5}], ['a']]), [4, 5])\nelif N == 5:\n    check('literal dotted field', solve([[{'a.b': 5, 'a': {'b': 6}}], ['a.b']]), [5])\n    check('nested homonym', solve([[{'a': {'b': 5}, 'b': 6}], ['a', 'b']]), [5])\n    check('missing segment', solve([[{'a': {'b': 5}}], ['a', 'z']]), [None])\n    check('scalar intermediate', solve([[{'a': 5}], ['a', 'b']]), [None])\n    check('zero leaf', solve([[{'a': 0}], ['a']]), [0])\n    check('empty path', solve([[{'a': 5}], []]), [{'a': 5}])\n    check('multiple rows', solve([[{'a': 5}, {'a': 6}], ['a']]), [5, 6])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"93f4416078dd2398fc2349473a16b48a5e0137916852d1ca2931260d0a31e0c6","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    try:\n        rows,path=d\n        out=[]\n        for row in rows:\n            value=row\n            for segment in path:\n                if not isinstance(value,dict): value=None; break\n                if segment not in value: value=None; break\n                value=value[segment]\n            out.append(value)\n        return out\n    except (IndexError, KeyError, ValueError, StopIteration) as exc:\n        return {\"representation_error\": type(exc).__name__}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('literal dotted field', solve([[{'a.b': 1, 'a': {'b': 2}}], ['a.b']]), [1])\n    check('nested homonym', solve([[{'a': {'b': 1}, 'b': 2}], ['a', 'b']]), [1])\n    check('missing segment', solve([[{'a': {'b': 1}}], ['a', 'z']]), [None])\n    check('scalar intermediate', solve([[{'a': 1}], ['a', 'b']]), [None])\n    check('zero leaf', solve([[{'a': 0}], ['a']]), [0])\n    check('empty path', solve([[{'a': 1}], []]), [{'a': 1}])\n    check('multiple rows', solve([[{'a': 1}, {'a': 2}], ['a']]), [1, 2])\nelif N == 2:\n    check('literal dotted field', solve([[{'a.b': 2, 'a': {'b': 3}}], ['a.b']]), [2])\n    check('nested homonym', solve([[{'a': {'b': 2}, 'b': 3}], ['a', 'b']]), [2])\n    check('missing segment', solve([[{'a': {'b': 2}}], ['a', 'z']]), [None])\n    check('scalar intermediate', solve([[{'a': 2}], ['a', 'b']]), [None])\n    check('zero leaf', solve([[{'a': 0}], ['a']]), [0])\n    check('empty path', solve([[{'a': 2}], []]), [{'a': 2}])\n    check('multiple rows', solve([[{'a': 2}, {'a': 3}], ['a']]), [2, 3])\nelif N == 3:\n    check('literal dotted field', solve([[{'a.b': 3, 'a': {'b': 4}}], ['a.b']]), [3])\n    check('nested homonym', solve([[{'a': {'b': 3}, 'b': 4}], ['a', 'b']]), [3])\n    check('missing segment', solve([[{'a': {'b': 3}}], ['a', 'z']]), [None])\n    check('scalar intermediate', solve([[{'a': 3}], ['a', 'b']]), [None])\n    check('zero leaf', solve([[{'a': 0}], ['a']]), [0])\n    check('empty path', solve([[{'a': 3}], []]), [{'a': 3}])\n    check('multiple rows', solve([[{'a': 3}, {'a': 4}], ['a']]), [3, 4])\nelif N == 4:\n    check('literal dotted field', solve([[{'a.b': 4, 'a': {'b': 5}}], ['a.b']]), [4])\n    check('nested homonym', solve([[{'a': {'b': 4}, 'b': 5}], ['a', 'b']]), [4])\n    check('missing segment', solve([[{'a': {'b': 4}}], ['a', 'z']]), [None])\n    check('scalar intermediate', solve([[{'a': 4}], ['a', 'b']]), [None])\n    check('zero leaf', solve([[{'a': 0}], ['a']]), [0])\n    check('empty path', solve([[{'a': 4}], []]), [{'a': 4}])\n    check('multiple rows', solve([[{'a': 4}, {'a': 5}], ['a']]), [4, 5])\nelif N == 5:\n    check('literal dotted field', solve([[{'a.b': 5, 'a': {'b': 6}}], ['a.b']]), [5])\n    check('nested homonym', solve([[{'a': {'b': 5}, 'b': 6}], ['a', 'b']]), [5])\n    check('missing segment', solve([[{'a': {'b': 5}}], ['a', 'z']]), [None])\n    check('scalar intermediate', solve([[{'a': 5}], ['a', 'b']]), [None])\n    check('zero leaf', solve([[{'a': 0}], ['a']]), [0])\n    check('empty path', solve([[{'a': 5}], []]), [{'a': 5}])\n    check('multiple rows', solve([[{'a': 5}, {'a': 6}], ['a']]), [5, 6])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"s3-data-systems-nested-field-path-empty-path","generated_at":"2026-09-29T14:44:20.133078+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A bounded deterministic data engine model makes representation and changelog faults reproducible.","repair":"Preserve the stated physical representation and operation order: Resolve an explicit sequence of field path segments against each row dictionary. Dots inside a segment are literal characters; empty path returns the whole row. A missing segment, non-dictionary intermediate, or null intermediate yields None; falsy leaf values remain present.","root_cause":"nested-field-path: An empty nested path returns null rather than the source row.","sha256":"e3b8f7968e0278f80ec8675cbfedd1d584832bab221f4c91d37c3470361cd145","title":"An empty nested path returns null rather than the source row · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":45.054,"exit_code":1,"observations":[{"actual":[1],"check":"literal dotted field","expected":[1],"passed":true},{"actual":[1],"check":"nested homonym","expected":[1],"passed":true},{"actual":[null],"check":"missing segment","expected":[null],"passed":true},{"actual":[null],"check":"scalar intermediate","expected":[null],"passed":true},{"actual":[0],"check":"zero leaf","expected":[0],"passed":true},{"actual":[{}],"check":"empty path","expected":[{"a":1}],"passed":false},{"actual":[1,2],"check":"multiple rows","expected":[1,2],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"literal dotted field\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"nested homonym\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"missing segment\", \"actual\": [null], \"expected\": [null], \"passed\": true}, {\"check\": \"scalar intermediate\", \"actual\": [null], \"expected\": [null], \"passed\": true}, {\"check\": \"zero leaf\", \"actual\": [0], \"expected\": [0], \"passed\": true}, {\"check\": \"empty path\", \"actual\": [{}], \"expected\": [{\"a\": 1}], \"passed\": false}, {\"check\": \"multiple rows\", \"actual\": [1, 2], \"expected\": [1, 2], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":44.838,"exit_code":1,"observations":[{"actual":[1],"check":"literal dotted field","expected":[1],"passed":true},{"actual":[1],"check":"nested homonym","expected":[1],"passed":true},{"actual":[null],"check":"missing segment","expected":[null],"passed":true},{"actual":[null],"check":"scalar intermediate","expected":[null],"passed":true},{"actual":[0],"check":"zero leaf","expected":[0],"passed":true},{"actual":[null],"check":"empty path","expected":[{"a":1}],"passed":false},{"actual":[1,2],"check":"multiple rows","expected":[1,2],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"literal dotted field\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"nested homonym\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"missing segment\", \"actual\": [null], \"expected\": [null], \"passed\": true}, {\"check\": \"scalar intermediate\", \"actual\": [null], \"expected\": [null], \"passed\": true}, {\"check\": \"zero leaf\", \"actual\": [0], \"expected\": [0], \"passed\": true}, {\"check\": \"empty path\", \"actual\": [null], \"expected\": [{\"a\": 1}], \"passed\": false}, {\"check\": \"multiple rows\", \"actual\": [1, 2], \"expected\": [1, 2], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":45.697,"exit_code":0,"observations":[{"actual":[1],"check":"literal dotted field","expected":[1],"passed":true},{"actual":[1],"check":"nested homonym","expected":[1],"passed":true},{"actual":[null],"check":"missing segment","expected":[null],"passed":true},{"actual":[null],"check":"scalar intermediate","expected":[null],"passed":true},{"actual":[0],"check":"zero leaf","expected":[0],"passed":true},{"actual":[{"a":1}],"check":"empty path","expected":[{"a":1}],"passed":true},{"actual":[1,2],"check":"multiple rows","expected":[1,2],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"literal dotted field\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"nested homonym\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"missing segment\", \"actual\": [null], \"expected\": [null], \"passed\": true}, {\"check\": \"scalar intermediate\", \"actual\": [null], \"expected\": [null], \"passed\": true}, {\"check\": \"zero leaf\", \"actual\": [0], \"expected\": [0], \"passed\": true}, {\"check\": \"empty path\", \"actual\": [{\"a\": 1}], \"expected\": [{\"a\": 1}], \"passed\": true}, {\"check\": \"multiple rows\", \"actual\": [1, 2], \"expected\": [1, 2], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}