↑↓ select↵ open⌫ change scopeOpen full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

Wiki / SQLSTATE

55P03 — lock_not_available

55P03 reports that a requested lock could not be obtained under the operation's selected wait policy. Fixed paths cover row locks, relation locks, LOCK TABLE, lock_timeout, and maintenance commands that skip work.

English manual coverage begins with PostgreSQL 8.1. Source history and runtime observations have their own recorded version boundaries.

Reading PG 18·Select a recorded version

aliases
Unknown
class name
Object Not In Prerequisite State
condition name
lock_not_available
lang
en
sqlstate
55P03

Definition PG 18

55P03

At a glance {#at-a-glance}

55P03 reports that a requested lock could not be obtained under the operation's selected wait policy. Fixed paths cover row locks, relation locks, LOCK TABLE, lock_timeout, and maintenance commands that skip work.

Meaning {#meaning}

Row-lock callers use LockWaitError and ConditionalXactLockTableWait()/ConditionalMultiXactIdWait() to fail immediately with could not obtain lock on row in relation "%s". Relation and LOCK TABLE callers use ConditionalLockRelationOid() and report a relation variant. A lock_timeout interrupt is another ERROR path, canceling statement due to lock timeout; it means the wait exceeded the configured timeout, not that NOWAIT was requested.

VACUUM and ANALYZE use the same SQLSTATE when they cannot acquire their relation lock, but their ereport(elevel) is deliberately non-ERROR: ordinary maintenance reports a WARNING, and an autovacuum verbose path can use LOG. The command skips that object and continues, so a warning is not an aborted transaction.

Diagnosis {#diagnosis}

Keep the complete primary message, severity, relation or row name, lock mode, and statement. Inspect pg_stat_activity, pg_locks, blocker PIDs, transaction age, and whether the statement used NOWAIT, lock_timeout, or a maintenance command. Do not turn a skipped VACUUM/ANALYZE warning into a failed DML diagnosis.

The accepted row-lock case used a separate blocker and an autocommit contender. In an explicit transaction, a lock ERROR leaves the session INERROR until ROLLBACK or ROLLBACK TO SAVEPOINT; the accepted autocommit contender remained IDLE after its failed statement.

Response {#response}

Coordinate or release the blocker, or choose a deliberate wait/timeout/skip policy. For an ERROR in an explicit transaction, roll back the whole transaction or to an existing savepoint before issuing more SQL; verify which work was committed before replaying. In autocommit, change the blocking or timeout condition first, then retry the statement with an idempotency rule. For a maintenance WARNING/LOG, record the skipped relation and run maintenance later; do not issue ROLLBACK for a command that did not abort the transaction.

Observed diagnostics {#observed-diagnostics}

The selected registry created a blocker holding SELECT ... FOR UPDATE in an explicit transaction and an autocommit contender issuing FOR UPDATE NOWAIT. PostgreSQL 18.6 and 10.21 returned ERROR / 55P03 with could not obtain lock on row in relation "nowait_rows"; the contender stayed IDLE. After the blocker rolled back, the same contender updated marker to repaired and verified it.

Representative case {#case}

The SQL is a role-labelled registry excerpt. Setup is run once; blocker and contender must be separate sessions. It covers the row-lock NOWAIT branch only, not lock_timeout or the maintenance skip branches.

-- setup (one maintenance session)
CREATE TABLE nowait_rows(id integer PRIMARY KEY, marker text NOT NULL);
INSERT INTO nowait_rows VALUES (1, 'seed');

-- blocker session: keep this transaction open
BEGIN;
SELECT id FROM nowait_rows WHERE id = 1 FOR UPDATE;

-- contender session, autocommit on: this is the 55P03 operation
SELECT id FROM nowait_rows WHERE id = 1 FOR UPDATE NOWAIT;

-- blocker session
ROLLBACK;

-- contender session after the blocker is released
UPDATE nowait_rows SET marker = 'repaired' WHERE id = 1 RETURNING marker;
SELECT marker FROM nowait_rows WHERE id = 1;

The passed case confirms this row-lock mechanism, its ERROR/IDLE boundary, and its repair step only; it does not prove that every lock mode or maintenance command has the same severity.

Versions {#versions}

The locked catalogue records this condition from 8.0.0; fixed source coverage is PostgreSQL 18.6. The accepted runtime was observed on PostgreSQL 18.6 and 10.21.

Related {#related}

55P02, 40001, 57014

Sources {#sources}

src/backend/access/heap/heapam.c#L5178-5210

src/backend/catalog/namespace.c#L585-610

src/backend/tcop/postgres.c#L3420-3444

src/backend/commands/lockcmds.c#L130-145

src/backend/commands/vacuum.c#L835-880

The structured evidence record records fixed message roles, maintenance severity, and accepted runtime artifacts.

Compare versions

SQLSTATE evidence and recorded runtime versions

cases · nowait_row_lock
{
  "assertions": [
    "SQLSTATE is 55P03 with ERROR severity",
    "The diagnostic identifies a row lock that cannot be obtained immediately",
    "The blocker is INTRANS and the NOWAIT contender remains IDLE after its error",
    "After blocker rollback the same contender updates and reads the row"
  ],
  "case_id": "nowait_row_lock",
  "cleanup": "Close all runner connections and drop the case schema with an owner connection.",
  "has_snippet": true,
  "position": 0,
  "preconditions": [
    "Two runner-owned sessions target one row.",
    "The blocker acquires its lock before the NOWAIT statement is sent."
  ],
  "repair": "Use a bounded NOWAIT failure as a signal, release or resolve the blocker, then retry according to the application’s lock policy; this case does not treat sleeping as synchronization.",
  "trigger": "Hold a row lock in one explicit transaction, issue SELECT FOR UPDATE NOWAIT from a second session, then release and retry.",
  "versions": [
    "10",
    "18"
  ]
}
claims · identity
{
  "claim_id": "identity",
  "limits": "",
  "method": "Read fixed definition.",
  "position": 0,
  "runtime": [],
  "sources": [
    "src.errcodes.18.6"
  ],
  "statement": "55P03 is lock_not_available in SQLSTATE Class 55."
}
claims · resolved-paths
{
  "claim_id": "resolved-paths",
  "limits": "Source confirmation is not natural runtime.",
  "method": "Read complete fixed source contexts.",
  "position": 1,
  "runtime": [],
  "sources": [
    "src.path.0",
    "src.path.1",
    "src.path.2",
    "src.path.3",
    "src.path.4"
  ],
  "statement": "The fixed row-lock, relation-lock, LOCK TABLE, lock_timeout, and maintenance paths support the concrete mechanisms and messages described."
}
claims · maintenance-severity
{
  "claim_id": "maintenance-severity",
  "limits": "",
  "method": "Read the selected elevel branches.",
  "position": 2,
  "runtime": [],
  "sources": [
    "src.path.4",
    "src.path.2"
  ],
  "statement": "VACUUM/ANALYZE emits this SQLSTATE at WARNING for normal maintenance or LOG for verbose autovacuum, while lock and timeout paths use ERROR."
}
claims · history
{
  "claim_id": "history",
  "limits": "",
  "method": "Use catalogue boundary.",
  "position": 3,
  "runtime": [],
  "sources": [
    "src.errcodes.18.6"
  ],
  "statement": "The locked catalogue records 55P03 from 8.0.0; that boundary does not prove exact implementation introduction."
}
claims · runtime.representative-case
{
  "claim_id": "runtime.representative-case",
  "limits": "This is one bounded mechanism; it does not establish every source branch or business outcome.",
  "method": "Execute the shared registry and inspect the selected summaries.",
  "position": 4,
  "runtime": [
    "runtime.ops-55p03-latest-1.latest",
    "runtime.ops-55p03-pg10-1.pg10"
  ],
  "sources": [
    "runtime.ops-55p03-latest-1.latest",
    "runtime.ops-55p03-pg10-1.pg10",
    "manifest.55P03",
    "snippet-registry.55P03"
  ],
  "statement": "The nowait_row_lock case passed on PostgreSQL 18.6 and 10.21 with SQLSTATE, severity or disconnect outcome, recovery/repair, cleanup, and isolated-target stop assertions."
}
messages · message.0
{
  "limits": "",
  "message_id": "message.0",
  "path": "",
  "position": 0,
  "raw": {
    "id": "message.0",
    "primary_template": "could not obtain lock on row in relation \"%s\"",
    "severity_source": "ERROR",
    "sources": [
      "src.path.0"
    ],
    "sqlstate": "55P03"
  },
  "severity": "ERROR",
  "sources": [
    "src.path.0"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "could not obtain lock on row in relation \" \"",
      "position": 0,
      "role": "",
      "template": "could not obtain lock on row in relation \"%s\""
    }
  ]
}
messages · message.1
{
  "limits": "",
  "message_id": "message.1",
  "path": "",
  "position": 1,
  "raw": {
    "id": "message.1",
    "primary_template": "could not obtain lock on relation \"%s.%s\"",
    "severity_source": "ERROR or DEBUG1 for skip-locked relation lookup",
    "sources": [
      "src.path.1"
    ],
    "sqlstate": "55P03"
  },
  "severity": "ERROR or DEBUG1 for skip-locked relation lookup",
  "sources": [
    "src.path.1"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "could not obtain lock on relation \" . \"",
      "position": 0,
      "role": "",
      "template": "could not obtain lock on relation \"%s.%s\""
    }
  ]
}
messages · message.2
{
  "limits": "",
  "message_id": "message.2",
  "path": "",
  "position": 2,
  "raw": {
    "id": "message.2",
    "primary_template": "canceling statement due to lock timeout",
    "severity_source": "ERROR",
    "sources": [
      "src.path.2"
    ],
    "sqlstate": "55P03"
  },
  "severity": "ERROR",
  "sources": [
    "src.path.2"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "canceling statement due to lock timeout",
      "position": 0,
      "role": "",
      "template": "canceling statement due to lock timeout"
    }
  ]
}
messages · message.3
{
  "limits": "",
  "message_id": "message.3",
  "path": "",
  "position": 3,
  "raw": {
    "id": "message.3",
    "primary_template": "could not obtain lock on relation \"%s\"",
    "severity_source": "ERROR",
    "sources": [
      "src.path.3"
    ],
    "sqlstate": "55P03"
  },
  "severity": "ERROR",
  "sources": [
    "src.path.3"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "could not obtain lock on relation \" \"",
      "position": 0,
      "role": "",
      "template": "could not obtain lock on relation \"%s\""
    }
  ]
}
messages · message.4
{
  "limits": "",
  "message_id": "message.4",
  "path": "",
  "position": 4,
  "raw": {
    "id": "message.4",
    "primary_template": "skipping vacuum of \"%s\" --- lock not available",
    "severity_source": "WARNING for ordinary maintenance or LOG for verbose autovacuum",
    "sources": [
      "src.path.4"
    ],
    "sqlstate": "55P03"
  },
  "severity": "WARNING for ordinary maintenance or LOG for verbose autovacuum",
  "sources": [
    "src.path.4"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "skipping vacuum of \" \" --- lock not available",
      "position": 0,
      "role": "",
      "template": "skipping vacuum of \"%s\" --- lock not available"
    }
  ]
}
messages · message.5
{
  "limits": "",
  "message_id": "message.5",
  "path": "",
  "position": 5,
  "raw": {
    "id": "message.5",
    "primary_template": "skipping analyze of \"%s\" --- lock not available",
    "severity_source": "WARNING for ordinary maintenance or LOG for verbose autovacuum",
    "sources": [
      "src.path.4"
    ],
    "sqlstate": "55P03"
  },
  "severity": "WARNING for ordinary maintenance or LOG for verbose autovacuum",
  "sources": [
    "src.path.4"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "skipping analyze of \" \" --- lock not available",
      "position": 0,
      "role": "",
      "template": "skipping analyze of \"%s\" --- lock not available"
    }
  ]
}
runtimes · runtime.ops-55p03-latest-1.latest · 18.6 (Homebrew) · passed
{
  "cases": [
    "nowait_row_lock"
  ],
  "limits": "",
  "position": 0,
  "raw": {
    "assertions": [
      {
        "expected": "55P03",
        "name": "55P03 SQLSTATE",
        "observed": "55P03",
        "passed": true
      },
      {
        "expected": "ERROR",
        "name": "55P03 ERROR severity",
        "observed": "ERROR",
        "passed": true
      },
      {
        "expected": "could not obtain lock ... in relation nowait_rows",
        "name": "NOWAIT reports lock-not-available",
        "observed": "could not obtain lock on row in relation \"nowait_rows\"",
        "passed": true
      },
      {
        "expected": "INTRANS",
        "name": "blocker holds the explicit transaction",
        "observed": "INTRANS",
        "passed": true
      },
      {
        "expected": "IDLE",
        "name": "NOWAIT failure leaves contender usable",
        "observed": "IDLE",
        "passed": true
      },
      {
        "expected": "IDLE",
        "name": "rollback releases blocker",
        "observed": "IDLE",
        "passed": true
      },
      {
        "expected": {
          "marker": "repaired",
          "status": "IDLE"
        },
        "name": "same contender retries after release",
        "observed": {
          "status": "IDLE",
          "updated": "repaired",
          "verified": "repaired"
        },
        "passed": true
      }
    ],
    "case_manifest": {
      "id": "manifest.55P03",
      "kind": "local_artifact",
      "path": "verify/cases/55P03/cases.json",
      "source_role": "case_manifest"
    },
    "cases": [
      "nowait_row_lock"
    ],
    "cleanup": {
      "errors": [],
      "passed": true
    },
    "environment": {
      "connection_scope": "runner-owned localhost port",
      "current_user": "runner",
      "libpq_version": "18.6",
      "log_destination": "csvlog,jsonlog",
      "log_error_verbosity": "verbose",
      "psycopg_version": "3.3.5",
      "server_version": "18.6 (Homebrew)",
      "server_version_num": "180006",
      "target_kind": "latest"
    },
    "id": "runtime.ops-55p03-latest-1.latest",
    "observed": {
      "connections_autocommit": {
        "blocker": true,
        "contender": true
      },
      "diagnostic": {
        "column_name": null,
        "constraint_name": null,
        "context": null,
        "datatype_name": null,
        "exception_type": "LockNotAvailable",
        "internal_position": null,
        "internal_query": null,
        "message_detail": null,
        "message_hint": null,
        "message_primary": "could not obtain lock on row in relation \"nowait_rows\"",
        "schema_name": null,
        "severity": "ERROR",
        "severity_nonlocalized": "ERROR",
        "source_file": "heapam.c",
        "source_function": "heap_lock_tuple",
        "source_line": "5235",
        "sqlstate": "55P03",
        "statement_position": null,
        "table_name": null,
        "text": "could not obtain lock on row in relation \"nowait_rows\""
      },
      "repair_marker": "repaired",
      "statuses": {
        "blocker_after_lock": "INTRANS",
        "blocker_after_release": "IDLE",
        "contender_after_nowait": "IDLE",
        "contender_after_repair": "IDLE"
      },
      "synchronization": "The blocker acquired SELECT FOR UPDATE before the contender issued SELECT FOR UPDATE NOWAIT; no timing sleep is used.",
      "table": "\"c55p03_nowait_row_lock\".\"nowait_rows\""
    },
    "raw": "verify/results/ops-55p03-latest-1/latest/raw.jsonl",
    "raw_sha256": "a12c4e0f493890f79eb7640b62bf7529fd105106a999383d444992a091ddfb99",
    "run_id": "ops-55p03-latest-1",
    "server_version": "18.6 (Homebrew)",
    "server_version_num": 180006,
    "snippet_registry": {
      "id": "snippet-registry.55P03",
      "kind": "local_artifact",
      "path": "verify/cases/55P03/snippets.json",
      "sha256": "b38eb524cc6b4080a80b9ea231fe06bd87b27061c810b0b94992bbb18a172f91",
      "source_role": "snippet_registry"
    },
    "status": "passed",
    "summary": "verify/results/ops-55p03-latest-1/latest/summary.json",
    "summary_sha256": "576dcff7c4675c49e88c193bcf8c82e833c8c2003896aed9920ffe8b4fb539b2",
    "target": "latest"
  },
  "run_id": "ops-55p03-latest-1",
  "runtime_id": "runtime.ops-55p03-latest-1.latest",
  "server_version": "18.6 (Homebrew)",
  "status": "passed",
  "target": "latest"
}
runtimes · runtime.ops-55p03-pg10-1.pg10 · 10.21 (Debian 10.21-1.pgdg90+1) · passed
{
  "cases": [
    "nowait_row_lock"
  ],
  "limits": "",
  "position": 1,
  "raw": {
    "assertions": [
      {
        "expected": "55P03",
        "name": "55P03 SQLSTATE",
        "observed": "55P03",
        "passed": true
      },
      {
        "expected": "ERROR",
        "name": "55P03 ERROR severity",
        "observed": "ERROR",
        "passed": true
      },
      {
        "expected": "could not obtain lock ... in relation nowait_rows",
        "name": "NOWAIT reports lock-not-available",
        "observed": "could not obtain lock on row in relation \"nowait_rows\"",
        "passed": true
      },
      {
        "expected": "INTRANS",
        "name": "blocker holds the explicit transaction",
        "observed": "INTRANS",
        "passed": true
      },
      {
        "expected": "IDLE",
        "name": "NOWAIT failure leaves contender usable",
        "observed": "IDLE",
        "passed": true
      },
      {
        "expected": "IDLE",
        "name": "rollback releases blocker",
        "observed": "IDLE",
        "passed": true
      },
      {
        "expected": {
          "marker": "repaired",
          "status": "IDLE"
        },
        "name": "same contender retries after release",
        "observed": {
          "status": "IDLE",
          "updated": "repaired",
          "verified": "repaired"
        },
        "passed": true
      }
    ],
    "case_manifest": {
      "id": "manifest.55P03",
      "kind": "local_artifact",
      "path": "verify/cases/55P03/cases.json",
      "source_role": "case_manifest"
    },
    "cases": [
      "nowait_row_lock"
    ],
    "cleanup": {
      "errors": [],
      "passed": true
    },
    "environment": {
      "connection_scope": "runner-owned localhost port",
      "current_user": "postgres",
      "libpq_version": "18.6",
      "log_destination": "csvlog",
      "log_error_verbosity": "verbose",
      "psycopg_version": "3.3.5",
      "server_version": "10.21 (Debian 10.21-1.pgdg90+1)",
      "server_version_num": "100021",
      "target_kind": "pg10"
    },
    "id": "runtime.ops-55p03-pg10-1.pg10",
    "observed": {
      "connections_autocommit": {
        "blocker": true,
        "contender": true
      },
      "diagnostic": {
        "column_name": null,
        "constraint_name": null,
        "context": null,
        "datatype_name": null,
        "exception_type": "LockNotAvailable",
        "internal_position": null,
        "internal_query": null,
        "message_detail": null,
        "message_hint": null,
        "message_primary": "could not obtain lock on row in relation \"nowait_rows\"",
        "schema_name": null,
        "severity": "ERROR",
        "severity_nonlocalized": "ERROR",
        "source_file": "heapam.c",
        "source_function": "heap_lock_tuple",
        "source_line": "5074",
        "sqlstate": "55P03",
        "statement_position": null,
        "table_name": null,
        "text": "could not obtain lock on row in relation \"nowait_rows\""
      },
      "repair_marker": "repaired",
      "statuses": {
        "blocker_after_lock": "INTRANS",
        "blocker_after_release": "IDLE",
        "contender_after_nowait": "IDLE",
        "contender_after_repair": "IDLE"
      },
      "synchronization": "The blocker acquired SELECT FOR UPDATE before the contender issued SELECT FOR UPDATE NOWAIT; no timing sleep is used.",
      "table": "\"c55p03_nowait_row_lock\".\"nowait_rows\""
    },
    "raw": "verify/results/ops-55p03-pg10-1/pg10/raw.jsonl",
    "raw_sha256": "4e45d18e453e859fa01887db2097443e6cdc7bcc83830d14cd97db023ce2817e",
    "run_id": "ops-55p03-pg10-1",
    "server_version": "10.21 (Debian 10.21-1.pgdg90+1)",
    "server_version_num": 100021,
    "snippet_registry": {
      "id": "snippet-registry.55P03",
      "kind": "local_artifact",
      "path": "verify/cases/55P03/snippets.json",
      "sha256": "b38eb524cc6b4080a80b9ea231fe06bd87b27061c810b0b94992bbb18a172f91",
      "source_role": "snippet_registry"
    },
    "status": "passed",
    "summary": "verify/results/ops-55p03-pg10-1/pg10/summary.json",
    "summary_sha256": "1b9030d8f33edeff84d946df3d347805e7d41f54048d2eed7f1ebc01fe075d8b",
    "target": "pg10"
  },
  "run_id": "ops-55p03-pg10-1",
  "runtime_id": "runtime.ops-55p03-pg10-1.pg10",
  "server_version": "10.21 (Debian 10.21-1.pgdg90+1)",
  "status": "passed",
  "target": "pg10"
}
sources · src.errcodes.18.6
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "",
  "path": "src/backend/utils/errcodes.txt",
  "position": 0,
  "sha256": "6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba",
  "source_id": "src.errcodes.18.6",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt#L427"
}
sources · src.path.0
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "",
  "path": "src/backend/access/heap/heapam.c",
  "position": 1,
  "sha256": "57e3396476fc5d269bd2944b549a671f2699bf8ed43668e661090548ca206a16",
  "source_id": "src.path.0",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/access/heap/heapam.c#L5178"
}
sources · src.path.1
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "",
  "path": "src/backend/catalog/namespace.c",
  "position": 2,
  "sha256": "8c9e6a99e84fa2cec8a9b1de2ecbe3966a13f4ad68c6ccfbfb8134a754d73e56",
  "source_id": "src.path.1",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/catalog/namespace.c#L585"
}
sources · src.path.2
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "",
  "path": "src/backend/tcop/postgres.c",
  "position": 3,
  "sha256": "9fb62275b1badf94d01ab351337b60410cd9b3ab1fe63fa9f23d6d2185a21061",
  "source_id": "src.path.2",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/tcop/postgres.c#L3420"
}
sources · src.path.3
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "",
  "path": "src/backend/commands/lockcmds.c",
  "position": 4,
  "sha256": "60aba2c1ed1ee527fa1e3c065ee43cff40be3916c7252c95531fd7af5f8c713c",
  "source_id": "src.path.3",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/commands/lockcmds.c#L130"
}
sources · src.path.4
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "",
  "path": "src/backend/commands/vacuum.c",
  "position": 5,
  "sha256": "bb9071c3813d8dc92b67364a5886aa6139c9ac27e3dc5952e1cb3032b16a0106",
  "source_id": "src.path.4",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/commands/vacuum.c#L835"
}
sources · manifest.55P03
{
  "commit": "",
  "docs_url": "",
  "kind": "local_artifact",
  "location": "",
  "path": "verify/cases/55P03/cases.json",
  "position": 6,
  "sha256": "66dca33d6dad88ae709af19161d3d1bd6f7cd7f46fa4e549e40845dce7ca830f",
  "source_id": "manifest.55P03",
  "tag": "",
  "url": ""
}
sources · snippet-registry.55P03
{
  "commit": "",
  "docs_url": "",
  "kind": "local_artifact",
  "location": "",
  "path": "verify/cases/55P03/snippets.json",
  "position": 7,
  "sha256": "b38eb524cc6b4080a80b9ea231fe06bd87b27061c810b0b94992bbb18a172f91",
  "source_id": "snippet-registry.55P03",
  "tag": "",
  "url": ""
}
sources · runtime.ops-55p03-latest-1.latest
{
  "commit": "",
  "docs_url": "",
  "kind": "local_artifact",
  "location": "",
  "path": "verify/results/ops-55p03-latest-1/latest/summary.json",
  "position": 8,
  "sha256": "576dcff7c4675c49e88c193bcf8c82e833c8c2003896aed9920ffe8b4fb539b2",
  "source_id": "runtime.ops-55p03-latest-1.latest",
  "tag": "",
  "url": ""
}
sources · runtime-raw.ops-55p03-latest-1.latest
{
  "commit": "",
  "docs_url": "",
  "kind": "local_artifact",
  "location": "",
  "path": "verify/results/ops-55p03-latest-1/latest/raw.jsonl",
  "position": 9,
  "sha256": "a12c4e0f493890f79eb7640b62bf7529fd105106a999383d444992a091ddfb99",
  "source_id": "runtime-raw.ops-55p03-latest-1.latest",
  "tag": "",
  "url": ""
}
sources · runtime.ops-55p03-pg10-1.pg10
{
  "commit": "",
  "docs_url": "",
  "kind": "local_artifact",
  "location": "",
  "path": "verify/results/ops-55p03-pg10-1/pg10/summary.json",
  "position": 10,
  "sha256": "1b9030d8f33edeff84d946df3d347805e7d41f54048d2eed7f1ebc01fe075d8b",
  "source_id": "runtime.ops-55p03-pg10-1.pg10",
  "tag": "",
  "url": ""
}
sources · runtime-raw.ops-55p03-pg10-1.pg10
{
  "commit": "",
  "docs_url": "",
  "kind": "local_artifact",
  "location": "",
  "path": "verify/results/ops-55p03-pg10-1/pg10/raw.jsonl",
  "position": 11,
  "sha256": "4e45d18e453e859fa01887db2097443e6cdc7bcc83830d14cd97db023ce2817e",
  "source_id": "runtime-raw.ops-55p03-pg10-1.pg10",
  "tag": "",
  "url": ""
}

Source references

Full definition and evidence JSON

Definition sources

center · PostgreSQL 18 · english-manuals:01eed09030f3786ae297b48018ea8b3fc090b83f6a44be8ee69561ba286f38f5

Text language: en · english-manuals:01eed09030f3786ae297b48018ea8b3fc090b83f6a44be8ee69561ba286f38f5