{
  "schema": 1,
  "sqlstate": "01000",
  "condition_name": "warning",
  "sources": [
    {
      "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
      "id": "src.errcodes.18.6",
      "location": "lines 81-84",
      "path": "src/backend/utils/errcodes.txt",
      "sha256": "6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba",
      "tag": "REL_18_6",
      "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt"
    },
    {
      "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
      "id": "src.elog.18.6",
      "location": "lines 442-454",
      "path": "src/backend/utils/error/elog.c",
      "sha256": "766d30a426ba1d9597657bd46fb890da3e37e4ae53a83d1245bf082ed9433c33",
      "tag": "REL_18_6",
      "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/error/elog.c#L442-L454"
    },
    {
      "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
      "id": "src.async.18.6",
      "location": "lines 1518-1559",
      "path": "src/backend/commands/async.c",
      "sha256": "61818f28cd0364a7ada65d4efa94db0ef1a441064621b26314bb7a13816c24e1",
      "tag": "REL_18_6",
      "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/commands/async.c#L1518-L1559"
    },
    {
      "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
      "id": "src.varsup.18.6",
      "location": "lines 168-179",
      "path": "src/backend/access/transam/varsup.c",
      "sha256": "63525c51e70b9daa5a3544fae19537aa3065a62f8b5506a78cd646648d228a02",
      "tag": "REL_18_6",
      "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/access/transam/varsup.c#L168-L179"
    },
    {
      "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
      "id": "src.multixact.18.6",
      "location": "lines 1287-1300",
      "path": "src/backend/access/transam/multixact.c",
      "sha256": "cf6634f5dc84f2938623bc0e8f8c19c1a37331160810815c169a5b3b5e22cd5f",
      "tag": "REL_18_6",
      "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/access/transam/multixact.c#L1287-L1300"
    },
    {
      "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
      "id": "src.spi.18.6",
      "location": "lines 467-472",
      "path": "src/backend/executor/spi.c",
      "sha256": "7244b45f632583c72530832df901b788fe403c8857425dd13edb49d9f84b0c78",
      "tag": "REL_18_6",
      "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/executor/spi.c#L467-L472"
    },
    {
      "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
      "id": "doc.protocol.18",
      "location": "lines 6254-6290, ErrorResponse/NoticeResponse severity fields",
      "path": "doc/src/sgml/protocol.sgml",
      "sha256": "745339e07ebbc2bb67d98b258e25772ada644ef26011e3cd6b3fcbb435235f89",
      "tag": "PG18-docs",
      "url": "https://www.postgresql.org/docs/18/protocol-error-fields.html"
    },
    {
      "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
      "id": "doc.logging.18",
      "location": "lines 7142-7190 and 9721-9760, message logging thresholds",
      "path": "doc/src/sgml/config.sgml",
      "sha256": "ffca322c15315ba670733d6b320f23cbba7374db0d18937298ffc07b58799ef6",
      "tag": "PG18-docs",
      "url": "https://www.postgresql.org/docs/18/runtime-config-logging.html"
    },
    {
      "commit": "313a720f95a3f41b59f853786b184f38f82172d9",
      "id": "doc.errcodes.8.1.4",
      "kind": "upstream_source",
      "location": "REL8_1_4 table rows 93-95; the older table renders 01000 as 1000",
      "path": "doc/src/sgml/errcodes.sgml",
      "release": "8.1.4",
      "sha256": "fdd6f5470b19970d3b60219a44e66b33193647975d346adfe2a98178f706b776",
      "url": "https://github.com/postgres/postgres/blob/313a720f95a3f41b59f853786b184f38f82172d9/doc/src/sgml/errcodes.sgml#L93-L95"
    },
    {
      "id": "manifest.01000",
      "kind": "local_artifact",
      "location": "snapshots and definition_blobs entries for the 01000 definition",
      "sha256": "1727a275f336988ff96b4f9990a4ca253080f73fc5d316e7def165c8cf3708a8"
    },
    {
      "id": "case-manifest.01000",
      "kind": "local_artifact",
      "location": "generic_warning_boundary",
      "sha256": "4d3c6cf00c5ec99a0ecee396fbc66aee86c0fd9297f05a143bb0e0eb0c6c87ef"
    },
    {
      "id": "snippet-registry.01000.final",
      "kind": "local_artifact",
      "location": "generic_warning_boundary ordered probe and followup",
      "sha256": "4c8a6418ae49f45ade9dd68c04d13ef1c300f472b2816c9ff57455776153ac58"
    }
  ],
  "claims": [
    {
      "id": "identity.class-and-condition",
      "limits": "Directory identity does not identify the emitting subsystem or prove a runtime occurrence.",
      "method": "Read the Class 01 section and the 01000 row in the frozen errcodes.txt snapshot.",
      "sources": [
        "src.errcodes.18.6"
      ],
      "statement": "01000 is the generic warning condition in Class 01, and the directory comment says not to use Class 01 for failure conditions."
    },
    {
      "id": "dispatch.default-severity-map",
      "limits": "An explicit errcode in the ereport construction can replace this initial value; the mapping does not classify every notice by message text.",
      "method": "Read the default sqlerrcode selection in errstart() in the fixed 18.6 source.",
      "sources": [
        "src.elog.18.6"
      ],
      "statement": "Without a later explicit errcode, PostgreSQL initializes ERROR and higher levels as XX000, WARNING as 01000, and lower levels as 00000."
    },
    {
      "id": "mechanism.notify-queue",
      "limits": "The warning is rate-limited and conditional on queue usage and an identifiable old listener; the source path is not a promise that every installation will observe it.",
      "method": "Read asyncQueueFillWarning() and its ereport(WARNING) construction.",
      "sources": [
        "src.async.18.6"
      ],
      "statement": "The asynchronous notification queue emits a WARNING with SQLSTATE 01000 by default when its usage reaches the warning path, with conditional PID detail and a hint to end the oldest transaction."
    },
    {
      "id": "mechanism.wraparound-warnings",
      "limits": "These are source-confirmed paths; their conditions and remaining-count values depend on live transaction state.",
      "method": "Read the ereport(WARNING) branches and their VACUUM, prepared-transaction, and replication-slot hints.",
      "sources": [
        "src.varsup.18.6",
        "src.multixact.18.6"
      ],
      "statement": "Transaction ID and MultiXact horizon checks emit warning messages and maintenance hints for a database approaching its configured horizon."
    },
    {
      "id": "mechanism.spi-explicit-code",
      "limits": "This warning requires an SPI lifecycle defect; it is not a generic SQL warning trigger.",
      "method": "Read the commit cleanup branch at lines 467-472 in the fixed source.",
      "sources": [
        "src.spi.18.6"
      ],
      "statement": "The SPI cleanup path explicitly supplies ERRCODE_WARNING for a non-empty SPI stack and reports a missing SPI_finish hint."
    },
    {
      "id": "protocol.severity-fields",
      "limits": "The fields describe the wire message; they do not change the SQLSTATE directory row.",
      "method": "Read the official Error and Notice Message Fields table in the PostgreSQL 18 documentation.",
      "sources": [
        "doc.protocol.18"
      ],
      "statement": "The protocol carries localized S and nonlocalized V severity fields; error messages use ERROR/FATAL/PANIC while notice messages can use WARNING, NOTICE, DEBUG, INFO, or LOG."
    },
    {
      "id": "delivery.logging-thresholds",
      "limits": "Thresholds affect visibility, not the underlying emitting condition, and configuration can differ between sessions and servers.",
      "method": "Read the PostgreSQL 18 runtime logging configuration entries.",
      "sources": [
        "doc.logging.18"
      ],
      "statement": "client_min_messages and log_min_messages control which messages are delivered to clients or written to the server log."
    },
    {
      "id": "versions.catalogue-boundary",
      "limits": "The pre-9.0 source set is locked through 8.4.22 but candidate source gaps remain for 7.0–7.3; observed presence is not an asserted introduction version.",
      "method": "Read the manifest snapshots and the same-tag REL8_1_4 errcodes.sgml row for the 01000 definition; the per-code history file is a derived view of these locked records.",
      "sources": [
        "manifest.01000",
        "doc.errcodes.8.1.4"
      ],
      "statement": "The catalogue records 01000 in the locked 7.4–8.4.22 pre-9.0 formal sources and every listed formal snapshot from 9.0.23 through 18.6 and 19beta3. The same-tag REL8_1_4 errcodes.sgml row already lists the older 1000 spelling with condition name warning, confirming that condition-name observation by 8.1.4. Candidate source gaps remain for 7.0–7.3, so 7.4 is a presence boundary rather than an exact introduction version."
    },
    {
      "id": "runtime.representative-warning",
      "limits": "This runtime result covers the PL/pgSQL RAISE WARNING dispatch probe only; it is not runtime evidence for the separate NOTIFY queue, hstore, XID, or MultiXact paths.",
      "method": "Read the stable case and ordered snippet registry, then compare the warning notice, SQLSTATE, severity, followup, and IDLE status in both final run summaries and raw records.",
      "sources": [
        "case-manifest.01000",
        "snippet-registry.01000.final",
        "runtime.01000-warning-dispatch-final-20260909.latest",
        "runtime.01000-warning-dispatch-final-20260909.pg10"
      ],
      "statement": "The generic_warning_boundary case delivered an observed WARNING with SQLSTATE 01000 and the calibration warning message on PostgreSQL 18.6 and 10.21; the autocommit connection remained IDLE and accepted SELECT 1."
    }
  ],
  "messages": [
    {
      "detail_template": "The server process with PID %d is among those with the oldest transactions.",
      "hint_template": "The NOTIFY queue cannot be emptied until that process ends its current transaction.",
      "id": "message.notify-queue",
      "limits": "DETAIL and HINT are conditional on finding an oldest listener process.",
      "primary_template": "NOTIFY queue is %.0f%% full",
      "severity_source": "default_by_severity WARNING",
      "sources": [
        "src.async.18.6"
      ],
      "sqlstate": "01000"
    },
    {
      "hint_template": "To avoid transaction ID assignment failures, execute a database-wide VACUUM in that database.\nYou might also need to commit or roll back old prepared transactions, or drop stale replication slots.",
      "id": "message.xid-wraparound",
      "limits": "The remaining count and optional follow-up text are calculated from live transaction state.",
      "primary_template": "database \"%s\" must be vacuumed within %u transactions",
      "severity_source": "default_by_severity WARNING",
      "sources": [
        "src.varsup.18.6"
      ],
      "sqlstate": "01000",
      "template_type": "singular"
    },
    {
      "hint_template": "Execute a database-wide VACUUM in that database.\nYou might also need to commit or roll back old prepared transactions.",
      "id": "message.multixact-wraparound",
      "limits": "The singular/plural selection and remaining count depend on live MultiXact state.",
      "primary_template_plural": "database \"%s\" must be vacuumed before %u more MultiXactIds are used",
      "primary_template_singular": "database \"%s\" must be vacuumed before %u more MultiXactId is used",
      "severity_source": "default_by_severity WARNING",
      "sources": [
        "src.multixact.18.6"
      ],
      "sqlstate": "01000",
      "template_type": "plural"
    },
    {
      "hint_template": "Check for missing \"SPI_finish\" calls.",
      "id": "message.spi-stack",
      "limits": "This template belongs to SPI cleanup and does not describe every 01000 path.",
      "primary_template": "transaction left non-empty SPI stack",
      "severity_source": "explicit ERRCODE_WARNING at WARNING",
      "sources": [
        "src.spi.18.6"
      ],
      "sqlstate": "01000"
    },
    {
      "id": "message.runtime-warning",
      "limits": "This message is supplied by the representative probe and is not a built-in template for the NOTIFY, hstore, XID, or MultiXact paths.",
      "primary_template": "calibration warning",
      "severity_source": "observed WARNING notice",
      "sources": [
        "runtime.01000-warning-dispatch-final-20260909.latest",
        "runtime.01000-warning-dispatch-final-20260909.pg10"
      ],
      "sqlstate": "01000"
    }
  ],
  "usage_evidence": [
    {
      "evidence_ids": [
        "versions.catalogue-boundary",
        "manifest.01000",
        "doc.errcodes.8.1.4"
      ],
      "scope": "version_presence",
      "status": "definition_only"
    },
    {
      "evidence_ids": [
        "identity.class-and-condition",
        "src.errcodes.18.6"
      ],
      "scope": "directory_definition",
      "status": "definition_only"
    },
    {
      "evidence_ids": [
        "dispatch.default-severity-map",
        "src.elog.18.6"
      ],
      "scope": "default_warning_dispatch",
      "status": "source_path_confirmed"
    },
    {
      "evidence_ids": [
        "mechanism.notify-queue",
        "src.async.18.6",
        "message.notify-queue"
      ],
      "scope": "notification_queue_warning",
      "status": "source_path_confirmed"
    },
    {
      "evidence_ids": [
        "mechanism.wraparound-warnings",
        "src.varsup.18.6",
        "src.multixact.18.6"
      ],
      "scope": "transaction_horizon_warnings",
      "status": "source_path_confirmed"
    },
    {
      "evidence_ids": [
        "runtime.representative-warning",
        "message.runtime-warning",
        "snippet-registry.01000.final",
        "runtime.01000-warning-dispatch-final-20260909.latest",
        "runtime.01000-warning-dispatch-final-20260909.pg10"
      ],
      "notes": "Both targets observed the PL/pgSQL RAISE WARNING probe; the result does not cover the separate subsystem paths.",
      "scope": "representative_runtime",
      "status": "observed_runtime"
    }
  ],
  "runtime": [
    {
      "cases": [
        "generic_warning_boundary"
      ],
      "id": "runtime.01000-warning-dispatch-final-20260909.latest",
      "limits": "The run verifies default RAISE WARNING dispatch, not the separate NOTIFY queue, hstore, XID, or MultiXact warning paths.",
      "observed": {
        "followup": 1,
        "message_primary": "calibration warning",
        "scope": "PL/pgSQL RAISE WARNING dispatch probe; does not represent the hstore_compat.c warning path",
        "severity": "WARNING",
        "sqlstate": "01000",
        "status_after_probe": "IDLE"
      },
      "raw_sha256": "754dfce792e831725220e08cd071d0b86642003c774794979d211eb5b5882a84",
      "run_id": "01000-warning-dispatch-final-20260909",
      "server_version": "18.6 (Homebrew)",
      "server_version_num": 180006,
      "snippet_registry": {
        "sha256": "4c8a6418ae49f45ade9dd68c04d13ef1c300f472b2816c9ff57455776153ac58"
      },
      "status": "passed",
      "summary_sha256": "aa77c0684de9e5f8e257416ba32f10550ebb2362bf8ce083ff6c4fd4242b2565",
      "target": "latest"
    },
    {
      "cases": [
        "generic_warning_boundary"
      ],
      "id": "runtime.01000-warning-dispatch-final-20260909.pg10",
      "image": "postgres@sha256:b2baf8998630663d21370da06387c950e587071bdd307ee34e661cdcc7442bcc",
      "limits": "The run verifies default RAISE WARNING dispatch, not the separate NOTIFY queue, hstore, XID, or MultiXact warning paths.",
      "observed": {
        "followup": 1,
        "message_primary": "calibration warning",
        "scope": "PL/pgSQL RAISE WARNING dispatch probe; does not represent the hstore_compat.c warning path",
        "severity": "WARNING",
        "sqlstate": "01000",
        "status_after_probe": "IDLE"
      },
      "raw_sha256": "471efe14b8234036ed5d978f816b08b2f577eab6c79b56b1259ade338983251d",
      "run_id": "01000-warning-dispatch-final-20260909",
      "server_version": "10.21 (Debian 10.21-1.pgdg90+1)",
      "server_version_num": 100021,
      "snippet_registry": {
        "sha256": "4c8a6418ae49f45ade9dd68c04d13ef1c300f472b2816c9ff57455776153ac58"
      },
      "status": "passed",
      "summary_sha256": "ee813797dd39ee66307ce1016bc7840730fa1e919afdbc9a44d8cb75f38129af",
      "target": "pg10"
    }
  ]
}
