{
  "schema": 1,
  "sqlstate": "42P10",
  "condition_name": "invalid_column_reference",
  "sources": [
    {
      "id": "src.errcodes.42P10.18.6",
      "kind": "upstream_source",
      "source_role": "condition_definition",
      "tag": "REL_18_6",
      "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
      "path": "src/backend/utils/errcodes.txt",
      "location": "line 390",
      "sha256": "6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba",
      "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt#L390"
    },
    {
      "id": "src.call.42P10.2fe5eef548819ba1cf9ab7c2",
      "kind": "upstream_source",
      "source_role": "source_call",
      "tag": "REL_18_6",
      "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
      "path": "src/backend/catalog/heap.c",
      "location": "lines 3465-3468",
      "sha256": "e720ee58279590793edd0985b3c910970ef56e7361b8ef92e245370587e02a0e",
      "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/catalog/heap.c#L3465-L3468"
    },
    {
      "id": "src.call.42P10.4cc3c771f6b98871572af1b5",
      "kind": "upstream_source",
      "source_role": "source_call",
      "tag": "REL_18_6",
      "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
      "path": "src/backend/commands/copy.c",
      "location": "lines 1026-1030",
      "sha256": "f50ecc1531109fc172d841d461e209cef611f3d017ef4184034c39e128deabbe",
      "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/commands/copy.c#L1026-L1030"
    },
    {
      "id": "src.call.42P10.9fb7b007472c34d677de2888",
      "kind": "upstream_source",
      "source_role": "source_call",
      "tag": "REL_18_6",
      "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
      "path": "src/backend/optimizer/util/plancat.c",
      "location": "lines 958-960",
      "sha256": "b953af14cb2539fbb32e4d1e8eea30f3eaa1b6336091369c03531fb9dcd5a6ff",
      "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/optimizer/util/plancat.c#L958-L960"
    },
    {
      "id": "src.calls.REL_18_6.42P10",
      "kind": "local_artifact",
      "source_role": "source_call_scan",
      "sha256": "9ee8a0e81d8f0825c5c1ae45583439859a26e602bdd4ce2f2a62aa278867ccbf"
    }
  ],
  "claims": [
    {
      "id": "identity.class-and-condition",
      "statement": "42P10 is the invalid_column_reference condition in Class 42.",
      "method": "Read fixed REL_18_6 errcodes.txt and locked facts.",
      "limits": "Identity does not enumerate all source branches or client failures.",
      "sources": [
        "src.errcodes.42P10.18.6"
      ]
    },
    {
      "id": "mechanism.selected-source-path",
      "statement": "Selected 18.6 paths use 42P10 for different column-reference contracts: cookConstraint permits only the table owning a CHECK constraint, CopyGetAttnums rejects a generated column named in an explicit COPY list while the default list skips generated columns, and ON CONFLICT inference reports this code when no suitable arbiter index matches. The ON CONFLICT message is an inference failure, not a generic missing-column error.",
      "method": "Read selected resolved REL_18_6 report groups and message roles.",
      "limits": "Representative confirmed core paths only; ON CONFLICT action-specific arbiter rules and historical/extension coverage are not exhaustive.",
      "sources": [
        "src.call.42P10.2fe5eef548819ba1cf9ab7c2",
        "src.call.42P10.4cc3c771f6b98871572af1b5",
        "src.call.42P10.9fb7b007472c34d677de2888"
      ]
    },
    {
      "id": "versions.catalogue-boundary",
      "statement": "Locked catalogue snapshots show this condition by PostgreSQL 7.4; source behavior here is fixed at PostgreSQL 18.6.",
      "method": "Read locked catalogue facts and definition snapshot.",
      "limits": "First observed release is a lower bound, not precise behavioral introduction.",
      "sources": [
        "src.errcodes.42P10.18.6"
      ]
    }
  ],
  "messages": [
    {
      "id": "message.variant-1",
      "sqlstate": "42P10",
      "severity_source": "ERROR",
      "primary_template": "only table \"%s\" can be referenced in check constraint",
      "detail_templates": [],
      "hint_templates": [],
      "roles": [
        {
          "role": "errmsg",
          "template": "only table \"%s\" can be referenced in check constraint"
        }
      ],
      "sources": [
        "src.call.42P10.2fe5eef548819ba1cf9ab7c2"
      ],
      "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed."
    },
    {
      "id": "message.variant-2",
      "sqlstate": "42P10",
      "severity_source": "ERROR",
      "primary_template": "column \"%s\" is a generated column",
      "detail_templates": [
        "Generated columns cannot be used in COPY."
      ],
      "hint_templates": [],
      "roles": [
        {
          "role": "errmsg",
          "template": "column \"%s\" is a generated column"
        },
        {
          "role": "errdetail",
          "template": "Generated columns cannot be used in COPY."
        }
      ],
      "sources": [
        "src.call.42P10.4cc3c771f6b98871572af1b5"
      ],
      "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed."
    },
    {
      "id": "message.variant-3",
      "sqlstate": "42P10",
      "severity_source": "ERROR",
      "primary_template": "there is no unique or exclusion constraint matching the ON CONFLICT specification",
      "detail_templates": [],
      "hint_templates": [],
      "roles": [
        {
          "role": "errmsg",
          "template": "there is no unique or exclusion constraint matching the ON CONFLICT specification"
        }
      ],
      "sources": [
        "src.call.42P10.9fb7b007472c34d677de2888"
      ],
      "limits": "The primary is source-exact; DO UPDATE needs a matching unique arbiter, while an exclusion constraint is not a general substitute for that action. No concrete runtime value is claimed."
    }
  ],
  "usage_evidence": [
    {
      "scope": "SQLSTATE definition and release identity",
      "status": "definition_only",
      "evidence_ids": [
        "identity.class-and-condition",
        "src.errcodes.42P10.18.6"
      ]
    },
    {
      "scope": "Selected PostgreSQL 18.6 source emitters and message roles",
      "status": "source_path_confirmed",
      "evidence_ids": [
        "mechanism.selected-source-path"
      ]
    },
    {
      "scope": "Natural runtime execution for this batch",
      "status": "unknown",
      "evidence_ids": []
    }
  ],
  "runtime": []
}
