{
  "schema": 1,
  "sqlstate": "55000",
  "condition_name": "object_not_in_prerequisite_state",
  "runner": "scripts/verify_cases.py",
  "targets": {
    "latest": {
      "binary": "Homebrew PostgreSQL 18.6",
      "required": true
    },
    "pg10": {
      "image": "postgres:10",
      "required": true
    }
  },
  "cases": [
    {
      "id": "currval_before_nextval",
      "versions": [
        "10",
        "18"
      ],
      "preconditions": [
        "A runner-owned sequence exists.",
        "The trigger and repair use one backend session."
      ],
      "trigger": "Call currval for a sequence before this backend has called nextval, then initialize and read it.",
      "assertions": [
        "SQLSTATE is 55000 with ERROR severity",
        "The diagnostic says currval is not yet defined in this session",
        "The failed autocommit session remains IDLE",
        "nextval initializes currval on the same backend and both values are 10"
      ],
      "repair": "Use nextval in the same session before currval, or pass an explicitly known value; creating the sequence in another session does not initialize this session’s currval state.",
      "cleanup": "Close all runner connections and drop the case schema with an owner connection."
    }
  ],
  "evidence_status": "authored",
  "snippets": [
    {
      "id": "currval_before_nextval",
      "case_id": "currval_before_nextval",
      "language": "sql",
      "statements": {
        "create": "CREATE SEQUENCE sequence_identifier START WITH 10",
        "trigger": "SELECT currval('sequence_regclass')",
        "nextval": "SELECT nextval('sequence_regclass')",
        "repair": "SELECT currval('sequence_regclass')"
      }
    }
  ],
  "runtime": [
    {
      "id": "runtime.ops-55000-latest-1.latest",
      "run_id": "ops-55000-latest-1",
      "target": "latest",
      "status": "passed",
      "server_version": "18.6 (Homebrew)",
      "server_version_num": 180006,
      "summary_sha256": "74a401cf3c5923c127ffdabd8310679fee09d18da3b7df93a696faca7884df5f",
      "raw_sha256": "9bf2c7a30cef4b96d2203f81b22b9a06f6745120d0ba545168ae0038dce10ae3",
      "case_manifest": {
        "id": "manifest.55000",
        "kind": "local_artifact",
        "source_role": "case_manifest",
        "sha256": "25edfc0a289a49187779b25fba339dead0ffad950c1cbaba6eccb517dc7000a9"
      },
      "snippet_registry": {
        "id": "snippet-registry.55000",
        "kind": "local_artifact",
        "source_role": "snippet_registry",
        "sha256": "bef69304c57466de39bcdbc198b0a0042095b77f1d3c45bef45b829084b32ccb"
      },
      "environment": {
        "TimeZone": "Asia/Shanghai",
        "backend_pid": 43655,
        "binary": {
          "bindir": "/opt/homebrew/Cellar/postgresql@18/18.6/bin",
          "pg_config": "/opt/homebrew/bin/pg_config",
          "pg_config_version": "PostgreSQL 18.6 (Homebrew)",
          "postgres": "/opt/homebrew/Cellar/postgresql@18/18.6/bin/postgres"
        },
        "connection_scope": "runner-owned localhost port",
        "current_user": "runner",
        "docker": {},
        "lc_messages": "C",
        "libpq_version": "18.6",
        "locale": "C.UTF-8",
        "log_destination": "csvlog,jsonlog",
        "log_error_verbosity": "verbose",
        "log_min_error_statement": "error",
        "log_min_messages": "error",
        "logging_collector": "on",
        "machine": "arm64",
        "max_connections": "100",
        "platform": "macOS-26.6.2-arm64-arm-64bit-Mach-O",
        "psycopg_version": "3.3.5",
        "python_version": "3.14.6 (main, Jun 10 2026, 10:03:53) [Clang 21.0.0 (clang-2100.0.123.102)]",
        "server_encoding": "UTF8",
        "server_version": "18.6 (Homebrew)",
        "server_version_num": "180006",
        "target_kind": "latest",
        "wal_level": "logical"
      },
      "cases": [
        "currval_before_nextval"
      ],
      "observed": {
        "connection_autocommit": true,
        "currval_after_nextval": 10,
        "diagnostic": {
          "column_name": null,
          "constraint_name": null,
          "context": null,
          "datatype_name": null,
          "exception_type": "ObjectNotInPrerequisiteState",
          "internal_position": null,
          "internal_query": null,
          "message_detail": null,
          "message_hint": null,
          "message_primary": "currval of sequence \"currval_sequence\" is not yet defined in this session",
          "schema_name": null,
          "severity": "ERROR",
          "severity_nonlocalized": "ERROR",
          "source_file": "sequence.c",
          "source_function": "currval_oid",
          "source_line": "887",
          "sqlstate": "55000",
          "statement_position": null,
          "table_name": null,
          "text": "currval of sequence \"currval_sequence\" is not yet defined in this session"
        },
        "failed_status": "IDLE",
        "nextval": 10,
        "repair_status": "IDLE",
        "sequence": "\"c55000_currval_before_nextval\".\"currval_sequence\"",
        "session_scope": "CREATE SEQUENCE, the failing currval, nextval, and repaired currval all ran on one autocommit backend session."
      },
      "assertions": [
        {
          "expected": "55000",
          "name": "55000 SQLSTATE",
          "observed": "55000",
          "passed": true
        },
        {
          "expected": "ERROR",
          "name": "55000 ERROR severity",
          "observed": "ERROR",
          "passed": true
        },
        {
          "expected": "currval of sequence ... is not yet defined in this session",
          "name": "currval diagnostic identifies missing session sequence state",
          "observed": "currval of sequence \"currval_sequence\" is not yet defined in this session",
          "passed": true
        },
        {
          "expected": "IDLE",
          "name": "currval prerequisite error leaves session usable",
          "observed": "IDLE",
          "passed": true
        },
        {
          "expected": {
            "currval": 10,
            "nextval": 10,
            "status": "IDLE"
          },
          "name": "nextval initializes currval in the same session",
          "observed": {
            "currval": 10,
            "nextval": 10,
            "status": "IDLE"
          },
          "passed": true
        }
      ],
      "cleanup": {
        "errors": [],
        "passed": true
      },
      "result": {
        "status": "passed",
        "environment": {
          "TimeZone": "Asia/Shanghai",
          "backend_pid": 43655,
          "binary": {
            "bindir": "/opt/homebrew/Cellar/postgresql@18/18.6/bin",
            "pg_config": "/opt/homebrew/bin/pg_config",
            "pg_config_version": "PostgreSQL 18.6 (Homebrew)",
            "postgres": "/opt/homebrew/Cellar/postgresql@18/18.6/bin/postgres"
          },
          "connection_scope": "runner-owned localhost port",
          "current_user": "runner",
          "docker": {},
          "lc_messages": "C",
          "libpq_version": "18.6",
          "locale": "C.UTF-8",
          "log_destination": "csvlog,jsonlog",
          "log_error_verbosity": "verbose",
          "log_min_error_statement": "error",
          "log_min_messages": "error",
          "logging_collector": "on",
          "machine": "arm64",
          "max_connections": "100",
          "platform": "macOS-26.6.2-arm64-arm-64bit-Mach-O",
          "psycopg_version": "3.3.5",
          "python_version": "3.14.6 (main, Jun 10 2026, 10:03:53) [Clang 21.0.0 (clang-2100.0.123.102)]",
          "server_encoding": "UTF8",
          "server_version": "18.6 (Homebrew)",
          "server_version_num": "180006",
          "target_kind": "latest",
          "wal_level": "logical"
        },
        "cases": [
          {
            "assertions": [
              {
                "expected": "55000",
                "name": "55000 SQLSTATE",
                "observed": "55000",
                "passed": true
              },
              {
                "expected": "ERROR",
                "name": "55000 ERROR severity",
                "observed": "ERROR",
                "passed": true
              },
              {
                "expected": "currval of sequence ... is not yet defined in this session",
                "name": "currval diagnostic identifies missing session sequence state",
                "observed": "currval of sequence \"currval_sequence\" is not yet defined in this session",
                "passed": true
              },
              {
                "expected": "IDLE",
                "name": "currval prerequisite error leaves session usable",
                "observed": "IDLE",
                "passed": true
              },
              {
                "expected": {
                  "currval": 10,
                  "nextval": 10,
                  "status": "IDLE"
                },
                "name": "nextval initializes currval in the same session",
                "observed": {
                  "currval": 10,
                  "nextval": 10,
                  "status": "IDLE"
                },
                "passed": true
              }
            ],
            "case_id": "currval_before_nextval",
            "cleanup": {
              "errors": [],
              "passed": true
            },
            "elapsed_seconds": 0.008,
            "observed": {
              "connection_autocommit": true,
              "currval_after_nextval": 10,
              "diagnostic": {
                "column_name": null,
                "constraint_name": null,
                "context": null,
                "datatype_name": null,
                "exception_type": "ObjectNotInPrerequisiteState",
                "internal_position": null,
                "internal_query": null,
                "message_detail": null,
                "message_hint": null,
                "message_primary": "currval of sequence \"currval_sequence\" is not yet defined in this session",
                "schema_name": null,
                "severity": "ERROR",
                "severity_nonlocalized": "ERROR",
                "source_file": "sequence.c",
                "source_function": "currval_oid",
                "source_line": "887",
                "sqlstate": "55000",
                "statement_position": null,
                "table_name": null,
                "text": "currval of sequence \"currval_sequence\" is not yet defined in this session"
              },
              "failed_status": "IDLE",
              "nextval": 10,
              "repair_status": "IDLE",
              "sequence": "\"c55000_currval_before_nextval\".\"currval_sequence\"",
              "session_scope": "The failing currval, nextval, and repaired currval all ran on one backend session."
            },
            "schema": "c55000_currval_before_nextval",
            "status": "passed"
          }
        ]
      }
    },
    {
      "id": "runtime.ops-55000-pg10-1.pg10",
      "run_id": "ops-55000-pg10-1",
      "target": "pg10",
      "status": "passed",
      "server_version": "10.21 (Debian 10.21-1.pgdg90+1)",
      "server_version_num": 100021,
      "summary_sha256": "12c1a769e979b44f214ef9741fe2774c401d5e8871112cbc350ec501dd2f282f",
      "raw_sha256": "5d6d1b4d1ee72b5088e9d1d83383b071c0883ddea65477e35807a80553131458",
      "case_manifest": {
        "id": "manifest.55000",
        "kind": "local_artifact",
        "source_role": "case_manifest",
        "sha256": "25edfc0a289a49187779b25fba339dead0ffad950c1cbaba6eccb517dc7000a9"
      },
      "snippet_registry": {
        "id": "snippet-registry.55000",
        "kind": "local_artifact",
        "source_role": "snippet_registry",
        "sha256": "bef69304c57466de39bcdbc198b0a0042095b77f1d3c45bef45b829084b32ccb"
      },
      "environment": {
        "TimeZone": "Etc/UTC",
        "backend_pid": 79,
        "binary": {},
        "connection_scope": "runner-owned localhost port",
        "current_user": "postgres",
        "docker": {
          "architecture": "arm64",
          "command": "/usr/local/bin/docker",
          "digest": "sha256:b2baf8998630663d21370da06387c950e587071bdd307ee34e661cdcc7442bcc",
          "id": "sha256:b2baf8998630663d21370da06387c950e587071bdd307ee34e661cdcc7442bcc",
          "image": "postgres:10",
          "image_created": "2022-06-23T09:11:18.374607054Z",
          "image_ref": "postgres@sha256:b2baf8998630663d21370da06387c950e587071bdd307ee34e661cdcc7442bcc",
          "log_destination": "csvlog",
          "os": "linux",
          "repo_digests": [
            "postgres@sha256:b2baf8998630663d21370da06387c950e587071bdd307ee34e661cdcc7442bcc"
          ]
        },
        "lc_messages": "en_US.utf8",
        "libpq_version": "18.6",
        "locale": "C.UTF-8",
        "log_destination": "csvlog",
        "log_error_verbosity": "verbose",
        "log_min_error_statement": "error",
        "log_min_messages": "error",
        "logging_collector": "on",
        "machine": "arm64",
        "max_connections": "100",
        "platform": "macOS-26.6.2-arm64-arm-64bit-Mach-O",
        "psycopg_version": "3.3.5",
        "python_version": "3.14.6 (main, Jun 10 2026, 10:03:53) [Clang 21.0.0 (clang-2100.0.123.102)]",
        "server_encoding": "UTF8",
        "server_version": "10.21 (Debian 10.21-1.pgdg90+1)",
        "server_version_num": "100021",
        "target_kind": "pg10",
        "wal_level": "logical"
      },
      "cases": [
        "currval_before_nextval"
      ],
      "observed": {
        "connection_autocommit": true,
        "currval_after_nextval": 10,
        "diagnostic": {
          "column_name": null,
          "constraint_name": null,
          "context": null,
          "datatype_name": null,
          "exception_type": "ObjectNotInPrerequisiteState",
          "internal_position": null,
          "internal_query": null,
          "message_detail": null,
          "message_hint": null,
          "message_primary": "currval of sequence \"currval_sequence\" is not yet defined in this session",
          "schema_name": null,
          "severity": "ERROR",
          "severity_nonlocalized": "ERROR",
          "source_file": "sequence.c",
          "source_function": "currval_oid",
          "source_line": "840",
          "sqlstate": "55000",
          "statement_position": null,
          "table_name": null,
          "text": "currval of sequence \"currval_sequence\" is not yet defined in this session"
        },
        "failed_status": "IDLE",
        "nextval": 10,
        "repair_status": "IDLE",
        "sequence": "\"c55000_currval_before_nextval\".\"currval_sequence\"",
        "session_scope": "CREATE SEQUENCE, the failing currval, nextval, and repaired currval all ran on one autocommit backend session."
      },
      "assertions": [
        {
          "expected": "55000",
          "name": "55000 SQLSTATE",
          "observed": "55000",
          "passed": true
        },
        {
          "expected": "ERROR",
          "name": "55000 ERROR severity",
          "observed": "ERROR",
          "passed": true
        },
        {
          "expected": "currval of sequence ... is not yet defined in this session",
          "name": "currval diagnostic identifies missing session sequence state",
          "observed": "currval of sequence \"currval_sequence\" is not yet defined in this session",
          "passed": true
        },
        {
          "expected": "IDLE",
          "name": "currval prerequisite error leaves session usable",
          "observed": "IDLE",
          "passed": true
        },
        {
          "expected": {
            "currval": 10,
            "nextval": 10,
            "status": "IDLE"
          },
          "name": "nextval initializes currval in the same session",
          "observed": {
            "currval": 10,
            "nextval": 10,
            "status": "IDLE"
          },
          "passed": true
        }
      ],
      "cleanup": {
        "errors": [],
        "passed": true
      },
      "result": {
        "status": "passed",
        "environment": {
          "TimeZone": "Etc/UTC",
          "backend_pid": 79,
          "binary": {},
          "connection_scope": "runner-owned localhost port",
          "current_user": "postgres",
          "docker": {
            "architecture": "arm64",
            "command": "/usr/local/bin/docker",
            "digest": "sha256:b2baf8998630663d21370da06387c950e587071bdd307ee34e661cdcc7442bcc",
            "id": "sha256:b2baf8998630663d21370da06387c950e587071bdd307ee34e661cdcc7442bcc",
            "image": "postgres:10",
            "image_created": "2022-06-23T09:11:18.374607054Z",
            "image_ref": "postgres@sha256:b2baf8998630663d21370da06387c950e587071bdd307ee34e661cdcc7442bcc",
            "log_destination": "csvlog",
            "os": "linux",
            "repo_digests": [
              "postgres@sha256:b2baf8998630663d21370da06387c950e587071bdd307ee34e661cdcc7442bcc"
            ]
          },
          "lc_messages": "en_US.utf8",
          "libpq_version": "18.6",
          "locale": "C.UTF-8",
          "log_destination": "csvlog",
          "log_error_verbosity": "verbose",
          "log_min_error_statement": "error",
          "log_min_messages": "error",
          "logging_collector": "on",
          "machine": "arm64",
          "max_connections": "100",
          "platform": "macOS-26.6.2-arm64-arm-64bit-Mach-O",
          "psycopg_version": "3.3.5",
          "python_version": "3.14.6 (main, Jun 10 2026, 10:03:53) [Clang 21.0.0 (clang-2100.0.123.102)]",
          "server_encoding": "UTF8",
          "server_version": "10.21 (Debian 10.21-1.pgdg90+1)",
          "server_version_num": "100021",
          "target_kind": "pg10",
          "wal_level": "logical"
        },
        "cases": [
          {
            "assertions": [
              {
                "expected": "55000",
                "name": "55000 SQLSTATE",
                "observed": "55000",
                "passed": true
              },
              {
                "expected": "ERROR",
                "name": "55000 ERROR severity",
                "observed": "ERROR",
                "passed": true
              },
              {
                "expected": "currval of sequence ... is not yet defined in this session",
                "name": "currval diagnostic identifies missing session sequence state",
                "observed": "currval of sequence \"currval_sequence\" is not yet defined in this session",
                "passed": true
              },
              {
                "expected": "IDLE",
                "name": "currval prerequisite error leaves session usable",
                "observed": "IDLE",
                "passed": true
              },
              {
                "expected": {
                  "currval": 10,
                  "nextval": 10,
                  "status": "IDLE"
                },
                "name": "nextval initializes currval in the same session",
                "observed": {
                  "currval": 10,
                  "nextval": 10,
                  "status": "IDLE"
                },
                "passed": true
              }
            ],
            "case_id": "currval_before_nextval",
            "cleanup": {
              "errors": [],
              "passed": true
            },
            "elapsed_seconds": 0.017,
            "observed": {
              "connection_autocommit": true,
              "currval_after_nextval": 10,
              "diagnostic": {
                "column_name": null,
                "constraint_name": null,
                "context": null,
                "datatype_name": null,
                "exception_type": "ObjectNotInPrerequisiteState",
                "internal_position": null,
                "internal_query": null,
                "message_detail": null,
                "message_hint": null,
                "message_primary": "currval of sequence \"currval_sequence\" is not yet defined in this session",
                "schema_name": null,
                "severity": "ERROR",
                "severity_nonlocalized": "ERROR",
                "source_file": "sequence.c",
                "source_function": "currval_oid",
                "source_line": "840",
                "sqlstate": "55000",
                "statement_position": null,
                "table_name": null,
                "text": "currval of sequence \"currval_sequence\" is not yet defined in this session"
              },
              "failed_status": "IDLE",
              "nextval": 10,
              "repair_status": "IDLE",
              "sequence": "\"c55000_currval_before_nextval\".\"currval_sequence\"",
              "session_scope": "The failing currval, nextval, and repaired currval all ran on one backend session."
            },
            "schema": "c55000_currval_before_nextval",
            "status": "passed"
          }
        ]
      }
    }
  ]
}
