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

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

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

2202G invalid_tablesample_repeat

ERROR 源码确认 参考 未实测

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

版本覆盖

速览

TABLESAMPLE 的 REPEATABLE seed 为 NULL 时无效。固定执行器路径报告 TABLESAMPLE REPEATABLE parameter cannot be null

报文

执行器守卫使用以下首要文本:

守卫 首要文本
REPEATABLE 表达式为 NULL TABLESAMPLE REPEATABLE parameter cannot be null

报文模板

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

主消息 TABLESAMPLE REPEATABLE parameter cannot be null

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

含义

tablesample_init 中,PostgreSQL 先求值每个 TABLESAMPLE 方法参数;参数为 NULL 时报告 2202H。随后它单独求值可选的 REPEATABLE 表达式;结果为 NULL 时进入 2202G。非 NULL 的 REPEATABLE 值已由解析器转换为 float8,再用 hashfloat8 生成采样 seed。因此本码覆盖重复采样 seed 为 NULL 的约束,不覆盖负 seed 或方法百分比范围。

诊断

检查 REPEATABLE 表达式的实际求值结果,包括可能变成 SQL NULL 的参数或函数。区分 TABLESAMPLE 方法参数为 NULL 的 2202H,以及非 NULL 但百分比、数量或时间无效且由选定方法校验的情况。首要报文可以确认是重复 seed 分支。

处理

REPEATABLE 提供非 NULL 表达式;如果不需要确定性重复,也可以省略该子句。若方法参数触发 2202H,应单独修正该参数。如果 ERROR 发生在显式事务中,应先 ROLLBACK 或回滚到既有保存点再重试;自动提交可重试修正后的语句。

版本

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

来源

证据

断言

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

  • 2202G is invalid_tablesample_repeat in SQLSTATE Class 22.

    核实方式Read fixed definition.

    来源src/backend/utils/errcodes.txt

  • Fixed source supports the representative 2202G path described.

    核实方式Read the complete fixed source context.

    不覆盖Source confirmation is not natural runtime.

    来源src/backend/executor/nodeSamplescan.c

  • The locked catalogue records 2202G from 9.5.0 without proving exact implementation introduction.

    核实方式Use catalogue boundary.

    来源src/backend/utils/errcodes.txt

同类错误代码

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