# 2201W — invalid_row_count_in_limit_clause

> PostgreSQL SQLSTATE 2201W 的来源与诊断参考。
---

# 2201W

## 速览 {#at-a-glance}
LIMIT 或 FETCH 行数触发了特定形式的守卫。固定路径报告 `LIMIT must not be negative`；解析器另行拒绝 `FETCH FIRST ... WITH TIES` 中字面 NULL 行数。

<!-- BEGIN SQLSTATE FACTS: generated by scripts/generate.py; do not edit -->

| 字段 | 值 |
| --- | --- |
| SQLSTATE | `2201W` |
| 条件名 | `invalid_row_count_in_limit_clause` |
| 状态 | `有效` |
| 已知存在于 | `8.4.0` |
| 锁定快照 | `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_ROW_COUNT_IN_LIMIT_CLAUSE` |
| 别名 | `—` |

<!-- source facts: data/errcodes/2201W.json -->
<!-- END SQLSTATE FACTS -->

## 代表性报文 {#messages}
代表性守卫使用以下首要文本：

| 路径 | 首要文本 |
| --- | --- |
| 普通 LIMIT 的负 count | `LIMIT must not be negative` |
| `FETCH FIRST ... WITH TIES` 中的字面 NULL | `row count cannot be null in FETCH FIRST ... WITH TIES clause` |

## 含义 {#meaning}
执行器计算普通 LIMIT count 时，NULL 被解释为没有 count（`LIMIT ALL`），零值合法并返回零行，负值才报告 2201W。解析器另有 `FETCH FIRST ... WITH TIES` 裸 NULL 常量守卫；这不是所有可为空 LIMIT 表达式都采用的统一规则。OFFSET 由 2201X 处理。

## 诊断 {#diagnosis}
先确认报文来自普通 LIMIT 求值还是 WITH TIES 解析规则，再检查表达式实际值和类型。区分无 ties 时的 NULL、with ties 的字面 NULL、零值和负值。源码的 `A_Const` 检查范围很窄，隐藏在表达式中的 NULL 可能通过解析器，因此应依据实际语句和报文分类。

## 处理 {#response}
普通 LIMIT 若要不限行可使用 NULL，否则提供非负 count；WITH TIES 应提供该语法接受的非 NULL 行数。如果负 count 或解析器 ERROR 发生在显式事务中，应先 ROLLBACK 或回滚到既有保存点再重试；自动提交可重试修正后的语句。

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

## 相关 {#related}
[`2201X`](../2201x/)、[`22012`](../22012/)

## 来源 {#sources}
执行器对 NULL/零值/负值的处理在 [`src/backend/executor/nodeLimit.c#L347-405`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/executor/nodeLimit.c#L347)；字面 WITH TIES NULL 守卫在 [`src/backend/parser/parse_clause.c#L1890-1907`](https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/parser/parse_clause.c#L1890)。结构化[证据记录](../../data/evidence/2201w.json)保留两种首要角色；本页未运行自然案例。
