选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / 错误代码 / Class 22 数据异常

2201X invalid_row_count_in_result_offset_clause

ERROR 源码确认 参考 未实测

类别
Class 22 数据异常
严重等级
ERROR
条件名
invalid_row_count_in_result_offset_clause
宏名称
ERRCODE_INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE
启用版本
8.4
状态
活跃

版本覆盖

速览

OFFSET 表达式求值后为负数。固定执行器路径报告 OFFSET must not be negative

含义

LIMIT 节点重算时,NULL OFFSET 被解释为零(无偏移),零值合法,只有求得负值才进入 2201X。这是 2201W 的 OFFSET 专属姊妹码;LIMIT 或 FETCH 行数错误应按自己的 SQLSTATE 诊断。

报文模板

源码里的格式串,不是某一次运行的输出。%s 之类是占位符,实际报文会填入对象名与取值。适用范围一栏是核验时留下的原始英文记录,未经翻译。

主消息 OFFSET must not be negative

来源:src/backend/executor/nodeLimit.c @ REL_18_6

诊断

在参数替换和类型解析后检查 OFFSET 的实际值。区分 NULL/无偏移、零值和负值,不要把 LIMIT 或 FETCH 行数失败改称 2201X。

处理

提供非负 OFFSET;若目标是无偏移,也可使用 NULL。如果 ERROR 发生在显式事务中,应先 ROLLBACK 或回滚到既有保存点再重试;自动提交可重试修正后的语句。

版本

锁定目录从 8.4.0 起记录该条件;本页固定源码路径为 PostgreSQL 18.6。未声称本页有自然运行观察。

来源

证据

断言

每条断言都写明了是怎么核实的,以及它不覆盖什么。这一层是核验时留下的原始英文记录,照原样呈现,未经翻译。

  • 2201X is invalid_row_count_in_result_offset_clause in SQLSTATE Class 22

    核实方式Read the fixed errcodes row and macro.

    来源src/backend/utils/errcodes.txt

  • Fixed PostgreSQL 18.6 executor recomputation maps NULL OFFSET to zero and emits 2201X only for a negative evaluated offset.

    核实方式Read complete source contexts for the representative guards.

    不覆盖Source confirmation is not a natural runtime observation.

    来源src/backend/executor/nodeLimit.c

  • The locked catalogue records 2201X from 8.4.0 without proving an exact implementation introduction date.

    核实方式Use catalogue presence and history boundaries.

    来源src/backend/utils/errcodes.txt

同类错误代码

Class 22 数据异常 下的其他成员。