{
  "schema": 1,
  "sqlstate": "0L000",
  "condition_name": "invalid_grantor",
  "sources": [
    {
      "id": "src.errcodes.18.6",
      "kind": "upstream_source",
      "source_role": "condition_definition",
      "tag": "REL_18_6",
      "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
      "path": "src/backend/utils/errcodes.txt",
      "sha256": "6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba",
      "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt"
    },
    {
      "id": "src.calls.REL_18_6",
      "kind": "local_artifact",
      "source_role": "source_call_scan",
      "sha256": "9ee8a0e81d8f0825c5c1ae45583439859a26e602bdd4ce2f2a62aa278867ccbf",
      "tag": "REL_18_6"
    },
    {
      "id": "src.calls.REL_10_23",
      "kind": "local_artifact",
      "source_role": "source_call_scan",
      "sha256": "00d16d3eb01b71ccf1b245c8f3102f9d0ec9f36fb02777b8dd1b99fcb263040c",
      "tag": "REL_10_23"
    },
    {
      "id": "src.aclparse-grantor-fallback.18.6",
      "kind": "upstream_source",
      "source_role": "source_path",
      "tag": "REL_18_6",
      "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
      "path": "src/backend/utils/adt/acl.c",
      "sha256": "623f2dd01c1d393d3b224c7622dc2ec946faced444c1f5fd5e396e037903a5b0",
      "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/adt/acl.c#L408-L411"
    },
    {
      "id": "src.aclparse-grantor-fallback.10.23",
      "kind": "upstream_source",
      "source_role": "source_path",
      "tag": "REL_10_23",
      "commit": "02991e79f8f58bc208f05dcc8af0c62dbe0a6ea4",
      "path": "src/backend/utils/adt/acl.c",
      "sha256": "3cfe29c06d211130552d2aab88f61dcdd9a5287c9ab8c450d48562056b32829e",
      "url": "https://github.com/postgres/postgres/blob/02991e79f8f58bc208f05dcc8af0c62dbe0a6ea4/src/backend/utils/adt/acl.c#L350-L353"
    },
    {
      "id": "src.aclparse-slash-missing-name.10.23",
      "kind": "upstream_source",
      "source_role": "source_call",
      "tag": "REL_10_23",
      "commit": "02991e79f8f58bc208f05dcc8af0c62dbe0a6ea4",
      "path": "src/backend/utils/adt/acl.c",
      "sha256": "3cfe29c06d211130552d2aab88f61dcdd9a5287c9ab8c450d48562056b32829e",
      "url": "https://github.com/postgres/postgres/blob/02991e79f8f58bc208f05dcc8af0c62dbe0a6ea4/src/backend/utils/adt/acl.c#L338-L344"
    },
    {
      "id": "manifest.0L000",
      "kind": "local_artifact",
      "source_role": "case_manifest",
      "sha256": "1c88601f15fe25f7ae25c1da2379a28f1f4508e15e5124eb66c6a9291d05cfcb",
      "tag": "workspace"
    }
  ],
  "claims": [
    {
      "id": "identity.class-and-condition",
      "statement": "0L000 is the invalid_grantor condition in Class 0L.",
      "method": "Read the fixed errcodes.txt definition and the locked catalogue metadata.",
      "limits": "Directory identity does not identify every backend or client path.",
      "sources": [
        "src.errcodes.18.6"
      ]
    },
    {
      "id": "mechanism.source-boundary",
      "statement": "The fixed aclparse path accepts ACL item text without a /grantor suffix for backward compatibility, defaults the grantor to BOOTSTRAP_SUPERUSERID, and emits WARNING 0L000. If a slash is present but no name follows it, the parser instead emits 22P02; this is ACL text parsing rather than bootstrap or ACL initialization and is not an ordinary GRANT failure.",
      "method": "Read the complete fixed aclparse branch in REL_18_6 and REL_10_23, including the slash-without-name error branch and the omitted-grantor fallback.",
      "limits": "This is a bounded source claim; no natural SQLSTATE case was selected, and the warning's numeric user ID is dynamic.",
      "sources": [
        "src.aclparse-grantor-fallback.18.6",
        "src.aclparse-grantor-fallback.10.23",
        "src.aclparse-slash-missing-name.10.23"
      ]
    },
    {
      "id": "versions.catalogue-boundary",
      "statement": "The locked catalogue records 0L000 in the listed snapshots; this page compares only the fixed REL_18_6 and REL_10_23 aclparse source paths and has no selected natural runtime.",
      "method": "Read the generated facts block and fixed aclparse source records; no runtime result is used for this source-only page.",
      "limits": "Presence in a definition file is not an exact behavioral introduction, and the fixed source paths do not prove every intermediate release.",
      "sources": [
        "src.errcodes.18.6",
        "src.aclparse-grantor-fallback.18.6",
        "src.aclparse-grantor-fallback.10.23"
      ]
    }
  ],
  "messages": [
    {
      "id": "message.aclparse-grantor-fallback",
      "sqlstate": "0L000",
      "severity_source": "explicit WARNING",
      "sources": [
        "src.aclparse-grantor-fallback.18.6",
        "src.aclparse-grantor-fallback.10.23"
      ],
      "primary_template": "defaulting grantor to user ID %u",
      "limits": "The %u value is BOOTSTRAP_SUPERUSERID in the fixed fallback branch; this message is emitted for ACL text without a /grantor suffix."
    },
    {
      "id": "message.aclparse-slash-missing-name",
      "sqlstate": "22P02",
      "severity_source": "explicit ERROR",
      "sources": [
        "src.aclparse-slash-missing-name.10.23"
      ],
      "primary_template": "a name must follow the \"/\" sign"
    }
  ],
  "usage_evidence": [
    {
      "scope": "SQLSTATE directory identity",
      "status": "definition_only",
      "evidence_ids": [
        "identity.class-and-condition",
        "src.errcodes.18.6"
      ]
    },
    {
      "scope": "Fixed source or definition boundary",
      "status": "source_path_confirmed",
      "evidence_ids": [
        "mechanism.source-boundary",
        "src.aclparse-grantor-fallback.18.6",
        "src.aclparse-grantor-fallback.10.23",
        "src.aclparse-slash-missing-name.10.23"
      ]
    },
    {
      "scope": "Locked release presence and bounded version comparison",
      "status": "definition_only",
      "evidence_ids": [
        "versions.catalogue-boundary",
        "src.errcodes.18.6"
      ]
    }
  ],
  "runtime": []
}
