{"abstract":"MERGE treats matched rows as insert-if-absent.","category":"Data systems","checks":7,"contract":"Merge source [key,value] into a target unique-key table. Any repeated source key is CARDINALITY and leaves target unchanged; otherwise matched keys replace payloads and unmatched keys insert. Return status and sorted final rows. Source null keys are ordinary distinct keys in this stipulated integer-key model only (inputs here are integer keys).","contract_signature":"d","evaluation_group":"s3-data-systems-merge-statement-preflight","failed_approach":"Explicit insert-only logic still fails to update existing keys.","family":"s3-data-systems-merge-statement-preflight-matched-update","id":"FA-45406","implementations":{"attempt":{"sha256":"53c76bc10c648291eb1019d910f1ccac53fc4d81855ea1eadbebe96529d5e70b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    try:\n        target,source=d\n        state=dict(target)\n        keys=[k for k,v in source]\n        if len(set(keys))!=len(keys): return ['CARDINALITY',sorted(target)]\n        for key,value in source:\n            if key not in state: state[key]=value\n        return ['OK',sorted([[k,v] for k,v in state.items()])]\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('matched update', solve([[[10, 1]], [[10, 2]]]), ['OK', [[10, 2]]])\n    check('unmatched insert', solve([[[10, 1]], [[11, 2]]]), ['OK', [[10, 1], [11, 2]]])\n    check('new duplicate keys', solve([[], [[10, 1], [10, 2]]]), ['CARDINALITY', []])\n    check('existing duplicate keys', solve([[[10, 1]], [[10, 2], [10, 3]]]), ['CARDINALITY', [[10, 1]]])\n    check('duplicate payload not key', solve([[], [[10, 1], [11, 1]]]), ['OK', [[10, 1], [11, 1]]])\n    check('empty source', solve([[[10, 1]], []]), ['OK', [[10, 1]]])\n    check('empty target', solve([[], [[10, 1]]]), ['OK', [[10, 1]]])\nelif N == 2:\n    check('matched update', solve([[[10, 2]], [[10, 3]]]), ['OK', [[10, 3]]])\n    check('unmatched insert', solve([[[10, 2]], [[11, 3]]]), ['OK', [[10, 2], [11, 3]]])\n    check('new duplicate keys', solve([[], [[10, 2], [10, 3]]]), ['CARDINALITY', []])\n    check('existing duplicate keys', solve([[[10, 2]], [[10, 3], [10, 4]]]), ['CARDINALITY', [[10, 2]]])\n    check('duplicate payload not key', solve([[], [[10, 2], [11, 2]]]), ['OK', [[10, 2], [11, 2]]])\n    check('empty source', solve([[[10, 2]], []]), ['OK', [[10, 2]]])\n    check('empty target', solve([[], [[10, 2]]]), ['OK', [[10, 2]]])\nelif N == 3:\n    check('matched update', solve([[[10, 3]], [[10, 4]]]), ['OK', [[10, 4]]])\n    check('unmatched insert', solve([[[10, 3]], [[11, 4]]]), ['OK', [[10, 3], [11, 4]]])\n    check('new duplicate keys', solve([[], [[10, 3], [10, 4]]]), ['CARDINALITY', []])\n    check('existing duplicate keys', solve([[[10, 3]], [[10, 4], [10, 5]]]), ['CARDINALITY', [[10, 3]]])\n    check('duplicate payload not key', solve([[], [[10, 3], [11, 3]]]), ['OK', [[10, 3], [11, 3]]])\n    check('empty source', solve([[[10, 3]], []]), ['OK', [[10, 3]]])\n    check('empty target', solve([[], [[10, 3]]]), ['OK', [[10, 3]]])\nelif N == 4:\n    check('matched update', solve([[[10, 4]], [[10, 5]]]), ['OK', [[10, 5]]])\n    check('unmatched insert', solve([[[10, 4]], [[11, 5]]]), ['OK', [[10, 4], [11, 5]]])\n    check('new duplicate keys', solve([[], [[10, 4], [10, 5]]]), ['CARDINALITY', []])\n    check('existing duplicate keys', solve([[[10, 4]], [[10, 5], [10, 6]]]), ['CARDINALITY', [[10, 4]]])\n    check('duplicate payload not key', solve([[], [[10, 4], [11, 4]]]), ['OK', [[10, 4], [11, 4]]])\n    check('empty source', solve([[[10, 4]], []]), ['OK', [[10, 4]]])\n    check('empty target', solve([[], [[10, 4]]]), ['OK', [[10, 4]]])\nelif N == 5:\n    check('matched update', solve([[[10, 5]], [[10, 6]]]), ['OK', [[10, 6]]])\n    check('unmatched insert', solve([[[10, 5]], [[11, 6]]]), ['OK', [[10, 5], [11, 6]]])\n    check('new duplicate keys', solve([[], [[10, 5], [10, 6]]]), ['CARDINALITY', []])\n    check('existing duplicate keys', solve([[[10, 5]], [[10, 6], [10, 7]]]), ['CARDINALITY', [[10, 5]]])\n    check('duplicate payload not key', solve([[], [[10, 5], [11, 5]]]), ['OK', [[10, 5], [11, 5]]])\n    check('empty source', solve([[[10, 5]], []]), ['OK', [[10, 5]]])\n    check('empty target', solve([[], [[10, 5]]]), ['OK', [[10, 5]]])\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":"ed2e13189af8c6585760508ca80962cf2d4efb9c8cd71bb423c39d9bb065c101","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    try:\n        target,source=d\n        state=dict(target)\n        keys=[k for k,v in source]\n        if len(set(keys))!=len(keys): return ['CARDINALITY',sorted(target)]\n        for key,value in source:\n            state.setdefault(key,value)\n        return ['OK',sorted([[k,v] for k,v in state.items()])]\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('matched update', solve([[[10, 1]], [[10, 2]]]), ['OK', [[10, 2]]])\n    check('unmatched insert', solve([[[10, 1]], [[11, 2]]]), ['OK', [[10, 1], [11, 2]]])\n    check('new duplicate keys', solve([[], [[10, 1], [10, 2]]]), ['CARDINALITY', []])\n    check('existing duplicate keys', solve([[[10, 1]], [[10, 2], [10, 3]]]), ['CARDINALITY', [[10, 1]]])\n    check('duplicate payload not key', solve([[], [[10, 1], [11, 1]]]), ['OK', [[10, 1], [11, 1]]])\n    check('empty source', solve([[[10, 1]], []]), ['OK', [[10, 1]]])\n    check('empty target', solve([[], [[10, 1]]]), ['OK', [[10, 1]]])\nelif N == 2:\n    check('matched update', solve([[[10, 2]], [[10, 3]]]), ['OK', [[10, 3]]])\n    check('unmatched insert', solve([[[10, 2]], [[11, 3]]]), ['OK', [[10, 2], [11, 3]]])\n    check('new duplicate keys', solve([[], [[10, 2], [10, 3]]]), ['CARDINALITY', []])\n    check('existing duplicate keys', solve([[[10, 2]], [[10, 3], [10, 4]]]), ['CARDINALITY', [[10, 2]]])\n    check('duplicate payload not key', solve([[], [[10, 2], [11, 2]]]), ['OK', [[10, 2], [11, 2]]])\n    check('empty source', solve([[[10, 2]], []]), ['OK', [[10, 2]]])\n    check('empty target', solve([[], [[10, 2]]]), ['OK', [[10, 2]]])\nelif N == 3:\n    check('matched update', solve([[[10, 3]], [[10, 4]]]), ['OK', [[10, 4]]])\n    check('unmatched insert', solve([[[10, 3]], [[11, 4]]]), ['OK', [[10, 3], [11, 4]]])\n    check('new duplicate keys', solve([[], [[10, 3], [10, 4]]]), ['CARDINALITY', []])\n    check('existing duplicate keys', solve([[[10, 3]], [[10, 4], [10, 5]]]), ['CARDINALITY', [[10, 3]]])\n    check('duplicate payload not key', solve([[], [[10, 3], [11, 3]]]), ['OK', [[10, 3], [11, 3]]])\n    check('empty source', solve([[[10, 3]], []]), ['OK', [[10, 3]]])\n    check('empty target', solve([[], [[10, 3]]]), ['OK', [[10, 3]]])\nelif N == 4:\n    check('matched update', solve([[[10, 4]], [[10, 5]]]), ['OK', [[10, 5]]])\n    check('unmatched insert', solve([[[10, 4]], [[11, 5]]]), ['OK', [[10, 4], [11, 5]]])\n    check('new duplicate keys', solve([[], [[10, 4], [10, 5]]]), ['CARDINALITY', []])\n    check('existing duplicate keys', solve([[[10, 4]], [[10, 5], [10, 6]]]), ['CARDINALITY', [[10, 4]]])\n    check('duplicate payload not key', solve([[], [[10, 4], [11, 4]]]), ['OK', [[10, 4], [11, 4]]])\n    check('empty source', solve([[[10, 4]], []]), ['OK', [[10, 4]]])\n    check('empty target', solve([[], [[10, 4]]]), ['OK', [[10, 4]]])\nelif N == 5:\n    check('matched update', solve([[[10, 5]], [[10, 6]]]), ['OK', [[10, 6]]])\n    check('unmatched insert', solve([[[10, 5]], [[11, 6]]]), ['OK', [[10, 5], [11, 6]]])\n    check('new duplicate keys', solve([[], [[10, 5], [10, 6]]]), ['CARDINALITY', []])\n    check('existing duplicate keys', solve([[[10, 5]], [[10, 6], [10, 7]]]), ['CARDINALITY', [[10, 5]]])\n    check('duplicate payload not key', solve([[], [[10, 5], [11, 5]]]), ['OK', [[10, 5], [11, 5]]])\n    check('empty source', solve([[[10, 5]], []]), ['OK', [[10, 5]]])\n    check('empty target', solve([[], [[10, 5]]]), ['OK', [[10, 5]]])\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-merge-statement-preflight-matched-update","generated_at":"2026-09-29T14:44:21.988749+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.","root_cause":"merge-statement-preflight: MERGE treats matched rows as insert-if-absent.","sha256":"de2ed1dc5257bc12bab069cdfa9d6b312ea55d8f020a6b24a30210858004ee43","title":"MERGE treats matched rows as insert-if-absent · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":46.435,"exit_code":1,"observations":[{"actual":["OK",[[10,1]]],"check":"matched update","expected":["OK",[[10,2]]],"passed":false},{"actual":["OK",[[10,1],[11,2]]],"check":"unmatched insert","expected":["OK",[[10,1],[11,2]]],"passed":true},{"actual":["CARDINALITY",[]],"check":"new duplicate keys","expected":["CARDINALITY",[]],"passed":true},{"actual":["CARDINALITY",[[10,1]]],"check":"existing duplicate keys","expected":["CARDINALITY",[[10,1]]],"passed":true},{"actual":["OK",[[10,1],[11,1]]],"check":"duplicate payload not key","expected":["OK",[[10,1],[11,1]]],"passed":true},{"actual":["OK",[[10,1]]],"check":"empty source","expected":["OK",[[10,1]]],"passed":true},{"actual":["OK",[[10,1]]],"check":"empty target","expected":["OK",[[10,1]]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"matched update\", \"actual\": [\"OK\", [[10, 1]]], \"expected\": [\"OK\", [[10, 2]]], \"passed\": false}, {\"check\": \"unmatched insert\", \"actual\": [\"OK\", [[10, 1], [11, 2]]], \"expected\": [\"OK\", [[10, 1], [11, 2]]], \"passed\": true}, {\"check\": \"new duplicate keys\", \"actual\": [\"CARDINALITY\", []], \"expected\": [\"CARDINALITY\", []], \"passed\": true}, {\"check\": \"existing duplicate keys\", \"actual\": [\"CARDINALITY\", [[10, 1]]], \"expected\": [\"CARDINALITY\", [[10, 1]]], \"passed\": true}, {\"check\": \"duplicate payload not key\", \"actual\": [\"OK\", [[10, 1], [11, 1]]], \"expected\": [\"OK\", [[10, 1], [11, 1]]], \"passed\": true}, {\"check\": \"empty source\", \"actual\": [\"OK\", [[10, 1]]], \"expected\": [\"OK\", [[10, 1]]], \"passed\": true}, {\"check\": \"empty target\", \"actual\": [\"OK\", [[10, 1]]], \"expected\": [\"OK\", [[10, 1]]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":44.711,"exit_code":1,"observations":[{"actual":["OK",[[10,1]]],"check":"matched update","expected":["OK",[[10,2]]],"passed":false},{"actual":["OK",[[10,1],[11,2]]],"check":"unmatched insert","expected":["OK",[[10,1],[11,2]]],"passed":true},{"actual":["CARDINALITY",[]],"check":"new duplicate keys","expected":["CARDINALITY",[]],"passed":true},{"actual":["CARDINALITY",[[10,1]]],"check":"existing duplicate keys","expected":["CARDINALITY",[[10,1]]],"passed":true},{"actual":["OK",[[10,1],[11,1]]],"check":"duplicate payload not key","expected":["OK",[[10,1],[11,1]]],"passed":true},{"actual":["OK",[[10,1]]],"check":"empty source","expected":["OK",[[10,1]]],"passed":true},{"actual":["OK",[[10,1]]],"check":"empty target","expected":["OK",[[10,1]]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"matched update\", \"actual\": [\"OK\", [[10, 1]]], \"expected\": [\"OK\", [[10, 2]]], \"passed\": false}, {\"check\": \"unmatched insert\", \"actual\": [\"OK\", [[10, 1], [11, 2]]], \"expected\": [\"OK\", [[10, 1], [11, 2]]], \"passed\": true}, {\"check\": \"new duplicate keys\", \"actual\": [\"CARDINALITY\", []], \"expected\": [\"CARDINALITY\", []], \"passed\": true}, {\"check\": \"existing duplicate keys\", \"actual\": [\"CARDINALITY\", [[10, 1]]], \"expected\": [\"CARDINALITY\", [[10, 1]]], \"passed\": true}, {\"check\": \"duplicate payload not key\", \"actual\": [\"OK\", [[10, 1], [11, 1]]], \"expected\": [\"OK\", [[10, 1], [11, 1]]], \"passed\": true}, {\"check\": \"empty source\", \"actual\": [\"OK\", [[10, 1]]], \"expected\": [\"OK\", [[10, 1]]], \"passed\": true}, {\"check\": \"empty target\", \"actual\": [\"OK\", [[10, 1]]], \"expected\": [\"OK\", [[10, 1]]], \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}