22009 — invalid_time_zone_displacement_value
PostgreSQL SQLSTATE 22009 的源码与诊断参考。
22009
速览
固定 timetz_recv 二进制输入路径报告 time zone displacement out of range,表示 GMT 位移超过支持范围。
| 字段 | 值 |
|---|---|
| SQLSTATE | 22009 |
| 条件名 | invalid_time_zone_displacement_value |
| 状态 | 有效 |
| 已知存在于 | 7.4 |
| 锁定快照 | 9.0.23, 9.1.24, 9.2.24, 9.3.25, 9.4.26, 9.5.25, 9.6.24, 10.23, 11.22, 12.22, 13.23, 14.24, 15.19, 16.15, 17.11, 18.6, 19beta3 |
| 宏 | ERRCODE_INVALID_TIME_ZONE_DISPLACEMENT_VALUE |
| 别名 | — |
含义
已确认的 timetz_recv guard 会把收到的 GMT 位移与 PostgreSQL 支持的上限比较;这是二进制输入契约错误,不是一般 session TimeZone 设置错误。
报文
已确认的 guard 以 ERROR 严重性报告 primary:time zone displacement out of range。该源码路径没有固定 DETAIL 或 HINT。本页只有源码证据,没有自然运行观察。
诊断
保留实际收到的 offset 数值,检查提供该值的二进制 timetz 接收器或协议解码器,区分位移越界、一般 datetime 字段越界和 session TimeZone 设置问题。
处置
在提供该值的客户端或二进制输入边界校验并替换位移;只有输入契约支持时才改用具有预期语义的命名时区。这是 ERROR:显式事务中要回滚整个事务,或回滚到失败转换前建立的保存点后再继续。本页没有运行案例。
版本
锁定目录从 7.4 记录该条件,并在列出的正式快照及 19beta3 中出现;固定源码覆盖为 PostgreSQL 18.6。
相关条件
来源
详见结构化的证据记录,其中列出固定源码链接与范围限制。