3D000 — 目录名称无效(invalid_catalog_name)
数据库名称无法解析,常见于连接不存在的库。
英文手册覆盖始于 PostgreSQL 8.1. 来源历史与运行验证各自保留独立版本边界。
当前阅读 PG 18·选择有来源记录的版本
- aliases
- 未知
- class name
- Invalid Catalog Name
- condition name
- invalid_catalog_name
- lang
- en
- sqlstate
- 3D000
版本定义 PG 18
3D000 — 目录名称无效
速览 {#at-a-glance}
SQLSTATE 3D000 是 Class 3D 中的 invalid_catalog_name。3D000 表示数据库/目录名称无效。请求的数据库不存在时,它可以在启动完成前出现;固定的 dbcommands.c 路径也会在 SQL 命令解析不存在的数据库或模板时发出它。选定启动案例报告 C=3D000、S=FATAL、database "<generated>" does not exist;这只是其中一个阶段,不代表整个类别。
含义 {#meaning}
此码覆盖不止一个阶段的数据库/目录解析。请求数据库不存在时,postinit.c 在启动阶段发出选定的 FATAL;dbcommands.c 则在 SQL 命令解析不存在的数据库或模板时使用同一条件。因此启动记录只是一个具体 producer,不是所有 3D000 的统一描述。
要把阶段作为诊断的一部分。缺失数据库的启动 DSN 产生服务器 FATAL,没有会话级事务;已建立的管理会话执行数据库/模板查找命令时可能产生 ERROR,此时适用普通回滚或保存点恢复。代码本身不能告诉你失败发生在哪个阶段。
阶段指引 {#scenarios}
| 阶段 | 固定 producer | 恢复边界 |
| --- | --- | --- |
| 启动选择数据库 | postinit.c 以 FATAL 报告 database "%s" does not exist。 | 从控制数据库修正 DSN 或创建/重命名数据库,再建立新连接;没有可回滚的会话。 |
| SQL 命令或模板查找 | dbcommands.c 在处理管理命令时使用 3D000。 | 检查命令和事务;显式事务中的 ERROR 需要先 ROLLBACK 或回到有意建立的保存点。 |
诊断 {#diagnosis}
检查数据库名、数据库是否被重命名或删除、发生错误的命令阶段,以及可用的控制数据库。选定的 collector 是原始服务器 ErrorResponse 记录,不是 csvlog/jsonlog;原始启动尝试与 psycopg 尝试彼此独立。选定运行使用相互独立的启动尝试:psycopg 的驱动 SQLSTATE 为 null 且没有事务,服务器原始 ErrorResponse 与新鲜的已知数据库探针共同确认服务器码和恢复路径。不要把数据库不存在与 3F000 的 schema 解析混淆。
对于启动失败,检查客户端默认值、URL 解码和环境变量展开后的准确数据库参数,再查看原始服务器 C、S、M 字段。对于已建立会话中的 SQL 命令,另行记录命令文本和事务状态。成功的控制数据库探针只证明可以建立新会话,不证明缺失数据库的原始尝试拥有事务。
处理 {#response}
使用现有控制数据库检查或创建目标数据库,或修正 DSN/命令目标后重新建立连接。会话启动前没有 ROLLBACK 可执行;SQL 命令路径应在所属管理事务中修复,并重新核对目标目录。
如果数据库是有意删除的,应修正应用目标或迁移,而不是重复同一启动请求。如果管理命令是在已有会话中失败,先恢复该事务,再执行目录修改。重复其他连接发送的工作前先对账;启动失败本身没有在缺失数据库中执行 SQL。
实测诊断 {#messages}
选定的启动分支以 FATAL 发出主报文 database "%s" does not exist,数据库名是动态值。固定的 SQL 命令路径使用同一 SQLSTATE,但外围操作和事务边界可能不同。只有客户端启动异常而没有服务器 ErrorResponse,证据不足。
选定名称 c3d000_missing_cff0e8d38be4 是本次运行生成的值。服务器 ErrorResponse 为 C=3D000、S=FATAL;psycopg 启动的 sqlstate=null 与已知数据库探针属于独立尝试,不是同一会话的其他视图。
代表案例 {#case}
注册表包含服务器启动 ErrorResponse 后执行的探针。触发点是在新启动连接上使用随机数据库名,失败发生在会话建立前,不能用 SQL 语句重现。
SELECT 1;
18.6 服务器 ErrorResponse 为 C=3D000、S=FATAL、database "c3d000_missing_cff0e8d38be4" does not exist。驱动启动诊断的 SQLSTATE 为 null,失败连接没有事务;已知可用连接探针返回 1,状态 IDLE。
可下载的案例与证据投影分别是 3D000 案例 JSON 和 作者证据。运行器清单为 verify/cases/3D000/cases.json;发布前会将页面 SQL 与共享注册表比对。
版本 {#versions}
上面的生成事实表记录锁定的目录快照和最早观察到的定义。本页自然运行范围是 PostgreSQL 18.6 与 10.21,不能据此推断所有中间版本的行为。
相关 {#related}
来源 {#sources}
src.postinit-missing-db.18.6—src/backend/utils/init/postinit.catREL_18_6commit724edf9bde9d356724ad384a2e196edc3c9f80f7; fixed blob SHA-256abcf80637b153d3aa6f0d2b600943af0a2b4d9a393d05a844db91f8b6b66d0d7(source).src.postinit-missing-db.10.23—src/backend/utils/init/postinit.catREL_10_23commit02991e79f8f58bc208f05dcc8af0c62dbe0a6ea4; fixed blob SHA-256be912628b29f34afc7b7fbc9d2f480c5ac9cb6ce013a1d992fc7415a311a95ed(source).src.dbcommands-missing-database.18.6—src/backend/commands/dbcommands.catREL_18_6commit724edf9bde9d356724ad384a2e196edc3c9f80f7; fixed blob SHA-25664b77d2197dce16eb1ad19d8168382459d621a03df0b00be157f7db39ca22acf(source).src.dbcommands-missing-database.10.23—src/backend/commands/dbcommands.catREL_10_23commit02991e79f8f58bc208f05dcc8af0c62dbe0a6ea4; fixed blob SHA-256cf9e069415deb7d50ef931048616ae7f9a459d6db64e3d54a0062e8334970ce6(source).src.calls.REL_18_6/src.calls.REL_10_23— fixed local call scans, SHA-2569ee8a0e81d8f0825c5c1ae45583439859a26e602bdd4ce2f2a62aa278867ccbf/00d16d3eb01b71ccf1b245c8f3102f9d0ec9f36fb02777b8dd1b99fcb263040c; these scans preserve the resolved call context used by the claims.
比较版本
SQLSTATE 证据与已记录的运行版本
cases · invalid_database
{
"assertions": [
"The selected server diagnostic has the expected SQLSTATE",
"The selected recovery/probe assertions pass",
"Runner-owned resources are cleaned up"
],
"case_id": "invalid_database",
"cleanup": "Drop the case schema with an owner connection.",
"has_snippet": true,
"position": 0,
"preconditions": [
"A runner-owned disposable target is provisioned."
],
"repair": "Follow the case-specific repair statements and verify the resulting state.",
"trigger": "Attempt startup against a generated database name that does not exist.",
"versions": [
"10",
"18"
]
}claims · identity.class-and-condition
{
"claim_id": "identity.class-and-condition",
"limits": "Directory identity does not identify every backend or client path.",
"method": "Read the fixed errcodes.txt definition and the locked catalogue metadata.",
"position": 0,
"runtime": [],
"sources": [
"src.errcodes.18.6"
],
"statement": "3D000 is the invalid_catalog_name condition in Class 3D."
}claims · mechanism.backend-path
{
"claim_id": "mechanism.backend-path",
"limits": "Other calls can retain the same SQLSTATE with different context or text.",
"method": "Trace the resolved source call records at the fixed release commits and compare their dynamic message fields.",
"position": 1,
"runtime": [],
"sources": [
"src.postinit-missing-db.18.6",
"src.postinit-missing-db.10.23",
"src.dbcommands-missing-database.18.6",
"src.dbcommands-missing-database.10.23"
],
"statement": "The fixed source paths associated with 3D000 report the condition in the mechanism selected for this page."
}claims · runtime.representative-case
{
"claim_id": "runtime.representative-case",
"limits": "This covers the selected case and versions only; it does not generalize to every driver, proxy, or intermediate release.",
"method": "Run the shared registry case on isolated runner-owned latest and PG10 targets; inspect the final summaries and raw results.",
"position": 2,
"runtime": [
"runtime.3D000-conn-contract-latest.latest",
"runtime.3D000-conn-contract-pg10.pg10"
],
"sources": [
"snippet-registry.3D000",
"manifest.3D000"
],
"statement": "The selected invalid_database case passed with the expected structured diagnostics, recovery assertions, and cleanup on PostgreSQL 18.6 and 10.21."
}claims · phase-boundary
{
"claim_id": "phase-boundary",
"limits": "The selected runtime covers the startup missing-database path; the SQL-command phase is source-confirmed and has no selected natural runtime in this batch.",
"method": "Compare the fixed startup and SQL-command source paths with the official transaction recovery contract and the selected startup runtime.",
"position": 3,
"runtime": [],
"sources": [
"src.postinit-missing-db.18.6",
"src.dbcommands-missing-database.18.6",
"doc.transactions.18"
],
"statement": "The selected postinit.c startup path emits 3D000 as FATAL before a session transaction exists, while fixed dbcommands.c paths use the same code in an already-connected SQL command where normal ERROR rollback or savepoint recovery applies."
}claims · versions.catalogue-boundary
{
"claim_id": "versions.catalogue-boundary",
"limits": "Presence in a definition file is not an exact behavioral introduction; the two runtime targets do not prove all middle versions.",
"method": "Read the generated facts block and locked manifest, then compare the selected target summaries.",
"position": 4,
"runtime": [],
"sources": [
"src.errcodes.18.6",
"src.calls.REL_18_6",
"src.calls.REL_10_23"
],
"statement": "The locked catalogue records 3D000 in the listed snapshots; the runtime comparison here is limited to PostgreSQL 18.6 and 10.21."
}messages · message.missing-database
{
"limits": "",
"message_id": "message.missing-database",
"path": "",
"position": 0,
"raw": {
"id": "message.missing-database",
"primary_template": "database \"%s\" does not exist",
"severity_source": "explicit FATAL",
"sources": [
"src.postinit-missing-db.18.6",
"src.postinit-missing-db.10.23"
],
"sqlstate": "3D000"
},
"severity": "explicit FATAL",
"sources": [
"src.postinit-missing-db.18.6",
"src.postinit-missing-db.10.23"
],
"templates": [
{
"kind": "primary",
"literal": "database \" \" does not exist",
"position": 0,
"role": "",
"template": "database \"%s\" does not exist"
}
]
}runtimes · runtime.3D000-conn-contract-latest.latest · 18.6 (Homebrew) · passed
{
"cases": [
"invalid_database"
],
"limits": "Disposable runner-owned target only; this is a bounded mechanism case, not a guarantee for every client or network path.",
"position": 0,
"raw": {
"assertions": [
{
"expected": "3D000",
"name": "server database SQLSTATE",
"observed": "3D000",
"passed": true
},
{
"expected": "FATAL",
"name": "server database failure is FATAL",
"observed": "FATAL",
"passed": true
},
{
"expected": "database \"c3d000_missing_cff0e8d38be4\" does not exist",
"name": "server missing-database diagnostic",
"observed": "database \"c3d000_missing_cff0e8d38be4\" does not exist",
"passed": true
},
{
"expected": "null (startup exception)",
"name": "driver startup SQLSTATE boundary",
"observed": null,
"passed": true
},
{
"expected": "SELECT 1 and IDLE",
"name": "known database remains usable",
"observed": {
"probe": 1,
"status": "IDLE"
},
"passed": true
}
],
"case_manifest": "verify/cases/3D000/cases.json",
"case_manifest_sha256": "4ba3384ea04c9e8da120871cc8ab82ab3f19f7b7c2134a78aed63b6f2872cc19",
"cases": [
"invalid_database"
],
"cleanup": {
"case": {
"errors": [],
"passed": true
},
"target_stop": {
"argv": [
"/opt/homebrew/Cellar/postgresql@18/18.6/bin/pg_ctl",
"-D",
"/Users/vonng/pgcenter/err-code/.cache/runtime/3D000-conn-contract-latest/latest/data",
"-m",
"fast",
"-w",
"stop"
],
"elapsed_seconds": 0.109,
"returncode": 0,
"stderr": "",
"stdout": "waiting for server to shut down.... done\nserver stopped\n"
}
},
"environment": {
"lc_messages": "C",
"libpq_version": "18.6",
"locale": "en_US.UTF-8",
"log_destination": "csvlog,jsonlog",
"machine": "arm64",
"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_version": "18.6 (Homebrew)",
"server_version_num": "180006",
"target_kind": "latest"
},
"id": "runtime.3D000-conn-contract-latest.latest",
"kind": "runtime_observation",
"limits": "Disposable runner-owned target only; this is a bounded mechanism case, not a guarantee for every client or network path.",
"observed": {
"collector": {
"primary": "database \"c3d000_missing_cff0e8d38be4\" does not exist",
"severity": "FATAL",
"sqlstate": "3D000"
},
"diagnostic": {
"column_name": null,
"constraint_name": null,
"context": null,
"datatype_name": null,
"exception_type": "OperationalError",
"internal_position": null,
"internal_query": null,
"message_detail": null,
"message_hint": null,
"message_primary": null,
"schema_name": null,
"severity": null,
"severity_nonlocalized": null,
"source_file": null,
"source_function": null,
"source_line": null,
"sqlstate": null,
"statement_position": null,
"table_name": null,
"text": "connection failed: connection to server at \"127.0.0.1\", port 60025 failed: FATAL: database \"c3d000_missing_cff0e8d38be4\" does not exist"
},
"failed_connection_has_no_transaction": true,
"missing_database": "c3d000_missing_cff0e8d38be4",
"probe": 1,
"probe_status": "IDLE",
"server_error": {
"C": "3D000",
"F": "postinit.c",
"L": "1016",
"M": "database \"c3d000_missing_cff0e8d38be4\" does not exist",
"R": "InitPostgres",
"S": "FATAL",
"V": "FATAL"
}
},
"raw": "verify/results/3D000-conn-contract-latest/latest/raw.jsonl",
"raw_sha256": "358e4f85f7d99903037b4c73dbf5d6bed1221055f6e7d18b499cc3e52a5a1a4e",
"run_id": "3D000-conn-contract-latest",
"server_version": "18.6 (Homebrew)",
"server_version_num": 180006,
"snippet_registry": {
"path": "verify/cases/3D000/snippets.json",
"sha256": "30f24743d2311ceef0e542957f159bb7398d81672068f068b29fb35278fe718b"
},
"status": "passed",
"summary": "verify/results/3D000-conn-contract-latest/latest/summary.json",
"summary_sha256": "ab82d13112fb06fe92ba4a844d508b73fbab3837958d63cc12b2a2050847c412",
"target": "latest"
},
"run_id": "3D000-conn-contract-latest",
"runtime_id": "runtime.3D000-conn-contract-latest.latest",
"server_version": "18.6 (Homebrew)",
"status": "passed",
"target": "latest"
}runtimes · runtime.3D000-conn-contract-pg10.pg10 · 10.21 (Debian 10.21-1.pgdg90+1) · passed
{
"cases": [
"invalid_database"
],
"limits": "Disposable runner-owned target only; this is a bounded mechanism case, not a guarantee for every client or network path.",
"position": 1,
"raw": {
"assertions": [
{
"expected": "3D000",
"name": "server database SQLSTATE",
"observed": "3D000",
"passed": true
},
{
"expected": "FATAL",
"name": "server database failure is FATAL",
"observed": "FATAL",
"passed": true
},
{
"expected": "database \"c3d000_missing_9d55329d2676\" does not exist",
"name": "server missing-database diagnostic",
"observed": "database \"c3d000_missing_9d55329d2676\" does not exist",
"passed": true
},
{
"expected": "null (startup exception)",
"name": "driver startup SQLSTATE boundary",
"observed": null,
"passed": true
},
{
"expected": "SELECT 1 and IDLE",
"name": "known database remains usable",
"observed": {
"probe": 1,
"status": "IDLE"
},
"passed": true
}
],
"case_manifest": "verify/cases/3D000/cases.json",
"case_manifest_sha256": "4ba3384ea04c9e8da120871cc8ab82ab3f19f7b7c2134a78aed63b6f2872cc19",
"cases": [
"invalid_database"
],
"cleanup": {
"case": {
"errors": [],
"passed": true
},
"target_stop": {
"cleanup": {
"argv": [
"/usr/local/bin/docker",
"rm",
"-f",
"-v",
"sqlstate3d000_3D000conncontractpg10_pg10"
],
"elapsed_seconds": 0.279,
"returncode": 0,
"stderr": "",
"stdout": "sqlstate3d000_3D000conncontractpg10_pg10\n"
},
"inspect": {
"argv": [
"/usr/local/bin/docker",
"inspect",
"sqlstate3d000_3D000conncontractpg10_pg10"
],
"elapsed_seconds": 0.016,
"returncode": 0,
"stderr": "",
"stdout": "[\n {\n \"Id\": \"cd81e584ea493a6a7753c8a40809b7a22f3b218d5385e84aaa12c1a15a9cb513\",\n \"Created\": \"2026-09-09T15:18:38.056196637Z\",\n \"Path\": \"docker-entrypoint.sh\",\n \"Args\": [\n \"postgres\",\n \"-c\",\n \"listen_addresses=*\",\n \"-c\",\n \"log_destination=csvlog\",\n \"-c\",\n \"logging_collector=on\",\n \"-c\",\n \"log_directory=log\",\n \"-c\",\n \"log_filename=postgresql-%Y%m%d%H%M%S.log\",\n \"-c\",\n \"log_min_messages=error\",\n \"-c\",\n \"log_min_error_statement=error\",\n \"-c\",\n \"log_error_verbosity=verbose\",\n \"-c\",\n \"wal_level=logical\",\n \"-c\",\n \"max_wal_senders=10\",\n \"-c\",\n \"max_replication_slots=10\"\n ],\n \"State\": {\n \"Status\": \"running\",\n \"Running\": true,\n \"Paused\": false,\n \"Restarting\": false,\n \"OOMKilled\": false,\n \"Dead\": false,\n \"Pid\": 55713,\n \"ExitCode\": 0,\n \"Error\": \"\",\n \"StartedAt\": \"2026-09-09T15:18:38.137853887Z\",\n \"FinishedAt\": \"0001-01-01T00:00:00Z\"\n },\n \"Image\": \"sha256:b2baf8998630663d21370da06387c950e587071bdd307ee34e661cdcc7442bcc\",\n \"ResolvConfPath\": \"/var/lib/docker/containers/cd81e584ea493a6a7753c8a40809b7a22f3b218d5385e84aaa12c1a15a9cb513/resolv.conf\",\n \"HostnamePath\": \"/var/lib/docker/containers/cd81e584ea493a6a7753c8a40809b7a22f3b218d5385e84aaa12c1a15a9cb513/hostname\",\n \"HostsPath\": \"/var/lib/docker/containers/cd81e584ea493a6a7753c8a40809b7a22f3b218d5385e84aaa12c1a15a9cb513/hosts\",\n \"LogPath\": \"/var/lib/docker/containers/cd81e584ea493a6a7753c8a40809b7a22f3b218d5385e84aaa12c1a15a9cb513/cd81e584ea493a6a7753c8a40809b7a22f3b218d5385e84aaa12c1a15a9cb513-json.log\",\n \"Name\": \"/sqlstate3d000_3D000conncontractpg10_pg10\",\n \"RestartCount\": 0,\n \"Driver\": \"overlayfs\",\n \"Platform\": \"linux\",\n \"MountLabel\": \"\",\n \"ProcessLabel\": \"\",\n \"AppArmorProfile\": \"\",\n \"ExecIDs\": null,\n \"HostConfig\": {\n \"Binds\": null,\n \"ContainerIDFile\": \"\",\n \"LogConfig\": {\n \"Type\": \"json-file\",\n \"Config\": {}\n },\n \"NetworkMode\": \"bridge\",\n \"PortBindings\": {\n \"5432/tcp\": [\n {\n \"HostIp\": \"127.0.0.1\",\n \"HostPort\": \"\"\n }\n ]\n },\n \"RestartPolicy\": {\n \"Name\": \"no\",\n \"MaximumRetryCount\": 0\n },\n \"AutoRemove\": false,\n \"VolumeDriver\": \"\",\n \"VolumesFrom\": null,\n \"ConsoleSize\": [\n 0,\n 0\n ],\n \"CapAdd\": null,\n \"CapDrop\": null,\n \"CgroupnsMode\": \"private\",\n \"Dns\": null,\n \"DnsOptions\": [],\n \"DnsSearch\": [],\n \"ExtraHosts\": null,\n \"GroupAdd\": null,\n \"IpcMode\": \"private\",\n \"Cgroup\": \"\",\n \"Links\": null,\n \"OomScoreAdj\": 0,\n \"PidMode\": \"\",\n \"Privileged\": false,\n \"PublishAllPorts\": false,\n \"ReadonlyRootfs\": false,\n \"SecurityOpt\": null,\n \"UTSMode\": \"\",\n \"UsernsMode\": \"\",\n \"ShmSize\": 67108864,\n \"Runtime\": \"runc\",\n \"Isolation\": \"\",\n \"CpuShares\": 0,\n \"Memory\": 0,\n \"NanoCpus\": 0,\n \"CgroupParent\": \"\",\n \"BlkioWeight\": 0,\n \"BlkioWeightDevice\": [],\n \"BlkioDeviceReadBps\": [],\n \"BlkioDeviceWriteBps\": [],\n \"BlkioDeviceReadIOps\": [],\n \"BlkioDeviceWriteIOps\": [],\n \"CpuPeriod\": 0,\n \"CpuQuota\": 0,\n \"CpuRealtimePeriod\": 0,\n \"CpuRealtimeRuntime\": 0,\n \"CpusetCpus\": \"\",\n \"CpusetMems\": \"\",\n \"Devices\": [],\n \"DeviceCgroupRules\": null,\n \"DeviceRequests\": null,\n \"MemoryReservation\": 0,\n \"MemorySwap\": 0,\n \"MemorySwappiness\": null,\n \"OomKillDisable\": null,\n \"PidsLimit\": null,\n \"Ulimits\": [],\n \"CpuCount\": 0,\n \"CpuPercent\": 0,\n \"IOMaximumIOps\": 0,\n \"IOMaximumBandwidth\": 0,\n \"MaskedPaths\": [\n \"/proc/acpi\",\n \"/proc/asound\",\n \"/proc/interrupts\",\n \"/proc/kcore\",\n \"/proc/keys\",\n \"/proc/latency_stats\",\n \"/proc/sched_debug\",\n \"/proc/scsi\",\n \"/proc/timer_list\",\n \"/proc/timer_stats\",\n \"/sys/devices/virtual/powercap\",\n \"/sys/firmware\"\n ],\n \"ReadonlyPaths\": [\n \"/proc/bus\",\n \"/proc/fs\",\n \"/proc/irq\",\n \"/proc/sys\",\n \"/proc/sysrq-trigger\"\n ]\n },\n \"Storage\": {\n \"RootFS\": {\n \"Snapshot\": {\n \"Name\": \"overlayfs\"\n }\n }\n },\n \"Mounts\": [\n {\n \"Type\": \"volume\",\n \"Name\": \"18c59f68fec02f77148a04c983dfce7c943c9a425241770906e90536b63b81c5\",\n \"Source\": \"/var/lib/docker/volumes/18c59f68fec02f77148a04c983dfce7c943c9a425241770906e90536b63b81c5/_data\",\n \"Destination\": \"/var/lib/postgresql/data\",\n \"Driver\": \"local\",\n \"Mode\": \"\",\n \"RW\": true,\n \"Propagation\": \"\"\n }\n ],\n \"Config\": {\n \"Hostname\": \"cd81e584ea49\",\n \"Domainname\": \"\",\n \"User\": \"\",\n \"AttachStdin\": false,\n \"AttachStdout\": false,\n \"AttachStderr\": false,\n \"ExposedPorts\": {\n \"5432/tcp\": {}\n },\n \"Tty\": false,\n \"OpenStdin\": false,\n \"StdinOnce\": false,\n \"Env\": [\n \"POSTGRES_HOST_AUTH_METHOD=trust\",\n \"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/postgresql/10/bin\",\n \"GOSU_VERSION=1.14\",\n \"LANG=en_US.utf8\",\n \"PG_MAJOR=10\",\n \"PG_VERSION=10.21-1.pgdg90+1\",\n \"PGDATA=/var/lib/postgresql/data\"\n ],\n \"Cmd\": [\n \"postgres\",\n \"-c\",\n \"listen_addresses=*\",\n \"-c\",\n \"log_destination=csvlog\",\n \"-c\",\n \"logging_collector=on\",\n \"-c\",\n \"log_directory=log\",\n \"-c\",\n \"log_filename=postgresql-%Y%m%d%H%M%S.log\",\n \"-c\",\n \"log_min_messages=error\",\n \"-c\",\n \"log_min_error_statement=error\",\n \"-c\",\n \"log_error_verbosity=verbose\",\n \"-c\",\n \"wal_level=logical\",\n \"-c\",\n \"max_wal_senders=10\",\n \"-c\",\n \"max_replication_slots=10\"\n ],\n \"Image\": \"postgres@sha256:b2baf8998630663d21370da06387c950e587071bdd307ee34e661cdcc7442bcc\",\n \"Volumes\": {\n \"/var/lib/postgresql/data\": {}\n },\n \"WorkingDir\": \"\",\n \"Entrypoint\": [\n \"docker-entrypoint.sh\"\n ],\n \"Labels\": {},\n \"StopSignal\": \"SIGINT\",\n \"StopTimeout\": 1\n },\n \"NetworkSettings\": {\n \"SandboxID\": \"131e0612a04bf103c420e6b49b7f5efb3736a6a8d9fce40da6c12e43966cac6d\",\n \"SandboxKey\": \"/var/run/docker/netns/131e0612a04b\",\n \"Ports\": {\n \"5432/tcp\": [\n {\n \"HostIp\": \"127.0.0.1\",\n \"HostPort\": \"60027\"\n }\n ]\n },\n \"Networks\": {\n \"bridge\": {\n \"IPAMConfig\": null,\n \"Links\": null,\n \"Aliases\": null,\n \"DriverOpts\": null,\n \"GwPriority\": 0,\n \"NetworkID\": \"aed51554f8cd8bac69ecd4f073e41e147fda7b458e9d95be2af472651f2e825c\",\n \"EndpointID\": \"480c2329e0e08ac65e95d8a36f45394a255d42fde3a4b6064a77d8a984b0caaa\",\n \"Gateway\": \"172.17.0.1\",\n \"IPAddress\": \"172.17.0.53\",\n \"MacAddress\": \"ca:28:7e:df:63:04\",\n \"IPPrefixLen\": 16,\n \"IPv6Gateway\": \"\",\n \"GlobalIPv6Address\": \"\",\n \"GlobalIPv6PrefixLen\": 0,\n \"DNSNames\": null\n }\n }\n },\n \"ImageManifestDescriptor\": {\n \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n \"digest\": \"sha256:52aada7978f1eef3b6b52a51afb7a3defd69254d00c946cb90d2ceb32b8ffce7\",\n \"size\": 3246,\n \"platform\": {\n \"architecture\": \"arm64\",\n \"os\": \"linux\",\n \"variant\": \"v8\"\n }\n }\n }\n]\n"
}
}
},
"environment": {
"lc_messages": "en_US.utf8",
"libpq_version": "18.6",
"locale": "en_US.UTF-8",
"log_destination": "csvlog",
"machine": "arm64",
"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_version": "10.21 (Debian 10.21-1.pgdg90+1)",
"server_version_num": "100021",
"target_kind": "pg10"
},
"id": "runtime.3D000-conn-contract-pg10.pg10",
"image": "postgres:10",
"kind": "runtime_observation",
"limits": "Disposable runner-owned target only; this is a bounded mechanism case, not a guarantee for every client or network path.",
"observed": {
"collector": {
"primary": "database \"c3d000_missing_9d55329d2676\" does not exist",
"severity": "FATAL",
"sqlstate": "3D000"
},
"diagnostic": {
"column_name": null,
"constraint_name": null,
"context": null,
"datatype_name": null,
"exception_type": "OperationalError",
"internal_position": null,
"internal_query": null,
"message_detail": null,
"message_hint": null,
"message_primary": null,
"schema_name": null,
"severity": null,
"severity_nonlocalized": null,
"source_file": null,
"source_function": null,
"source_line": null,
"sqlstate": null,
"statement_position": null,
"table_name": null,
"text": "connection failed: connection to server at \"127.0.0.1\", port 60027 failed: FATAL: database \"c3d000_missing_9d55329d2676\" does not exist"
},
"failed_connection_has_no_transaction": true,
"missing_database": "c3d000_missing_9d55329d2676",
"probe": 1,
"probe_status": "IDLE",
"server_error": {
"C": "3D000",
"F": "postinit.c",
"L": "848",
"M": "database \"c3d000_missing_9d55329d2676\" does not exist",
"R": "InitPostgres",
"S": "FATAL",
"V": "FATAL"
}
},
"raw": "verify/results/3D000-conn-contract-pg10/pg10/raw.jsonl",
"raw_sha256": "80042acbc3e919a79dc5d841dc2a20db68569114af6b97a23a2e7f09f0213f4d",
"run_id": "3D000-conn-contract-pg10",
"server_version": "10.21 (Debian 10.21-1.pgdg90+1)",
"server_version_num": 100021,
"snippet_registry": {
"path": "verify/cases/3D000/snippets.json",
"sha256": "30f24743d2311ceef0e542957f159bb7398d81672068f068b29fb35278fe718b"
},
"status": "passed",
"summary": "verify/results/3D000-conn-contract-pg10/pg10/summary.json",
"summary_sha256": "8b23ff808e37fff48a8617be25efbbb7a7074f06292ee06dcdf553fb26c34ccd",
"target": "pg10"
},
"run_id": "3D000-conn-contract-pg10",
"runtime_id": "runtime.3D000-conn-contract-pg10.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"
}sources · src.calls.REL_18_6
{
"commit": "",
"docs_url": "",
"kind": "local_artifact",
"location": "",
"path": "raw/calls/REL_18_6.jsonl",
"position": 1,
"sha256": "9ee8a0e81d8f0825c5c1ae45583439859a26e602bdd4ce2f2a62aa278867ccbf",
"source_id": "src.calls.REL_18_6",
"tag": "REL_18_6",
"url": ""
}sources · src.calls.REL_10_23
{
"commit": "",
"docs_url": "",
"kind": "local_artifact",
"location": "",
"path": "raw/calls/REL_10_23.jsonl",
"position": 2,
"sha256": "00d16d3eb01b71ccf1b245c8f3102f9d0ec9f36fb02777b8dd1b99fcb263040c",
"source_id": "src.calls.REL_10_23",
"tag": "REL_10_23",
"url": ""
}sources · src.postinit-missing-db.18.6
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "upstream_source",
"location": "",
"path": "src/backend/utils/init/postinit.c",
"position": 3,
"sha256": "abcf80637b153d3aa6f0d2b600943af0a2b4d9a393d05a844db91f8b6b66d0d7",
"source_id": "src.postinit-missing-db.18.6",
"tag": "REL_18_6",
"url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/init/postinit.c#L1014-L1017"
}sources · src.postinit-missing-db.10.23
{
"commit": "02991e79f8f58bc208f05dcc8af0c62dbe0a6ea4",
"docs_url": "",
"kind": "upstream_source",
"location": "",
"path": "src/backend/utils/init/postinit.c",
"position": 4,
"sha256": "be912628b29f34afc7b7fbc9d2f480c5ac9cb6ce013a1d992fc7415a311a95ed",
"source_id": "src.postinit-missing-db.10.23",
"tag": "REL_10_23",
"url": "https://github.com/postgres/postgres/blob/02991e79f8f58bc208f05dcc8af0c62dbe0a6ea4/src/backend/utils/init/postinit.c#L846-L848"
}sources · src.dbcommands-missing-database.18.6
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "upstream_source",
"location": "",
"path": "src/backend/commands/dbcommands.c",
"position": 5,
"sha256": "64b77d2197dce16eb1ad19d8168382459d621a03df0b00be157f7db39ca22acf",
"source_id": "src.dbcommands-missing-database.18.6",
"tag": "REL_18_6",
"url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/commands/dbcommands.c#L1702-L1704"
}sources · src.dbcommands-missing-database.10.23
{
"commit": "02991e79f8f58bc208f05dcc8af0c62dbe0a6ea4",
"docs_url": "",
"kind": "upstream_source",
"location": "",
"path": "src/backend/commands/dbcommands.c",
"position": 6,
"sha256": "cf9e069415deb7d50ef931048616ae7f9a459d6db64e3d54a0062e8334970ce6",
"source_id": "src.dbcommands-missing-database.10.23",
"tag": "REL_10_23",
"url": "https://github.com/postgres/postgres/blob/02991e79f8f58bc208f05dcc8af0c62dbe0a6ea4/src/backend/commands/dbcommands.c#L806-L808"
}sources · doc.transactions.18
{
"commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
"docs_url": "",
"kind": "upstream_source",
"location": "",
"path": "doc/src/sgml/xact.sgml",
"position": 7,
"sha256": "b48fbe8bd02ce3d1181a350c88c8baa6e11c73edc90a936e77b180daef328c5c",
"source_id": "doc.transactions.18",
"tag": "PG18-docs",
"url": "https://www.postgresql.org/docs/18/tutorial-transactions.html"
}sources · manifest.3D000
{
"commit": "",
"docs_url": "",
"kind": "local_artifact",
"location": "",
"path": "verify/cases/3D000/cases.json",
"position": 8,
"sha256": "4ba3384ea04c9e8da120871cc8ab82ab3f19f7b7c2134a78aed63b6f2872cc19",
"source_id": "manifest.3D000",
"tag": "workspace",
"url": "verify/cases/3D000/cases.json"
}sources · snippet-registry.3D000
{
"commit": "",
"docs_url": "",
"kind": "local_artifact",
"location": "",
"path": "verify/cases/3D000/snippets.json",
"position": 9,
"sha256": "30f24743d2311ceef0e542957f159bb7398d81672068f068b29fb35278fe718b",
"source_id": "snippet-registry.3D000",
"tag": "workspace",
"url": "verify/cases/3D000/snippets.json"
}来源引用
定义来源
center · PostgreSQL 18 · english-manuals:bd112535d9f6d44d6baa5073cb936aa6abf7c0347180ab54899b6390c5c1c742
正文语言: zh-Hans · english-manuals:bd112535d9f6d44d6baa5073cb936aa6abf7c0347180ab54899b6390c5c1c742