operator_precedence_warning
operator_precedence_warning:对自 PostgreSQL 9.4 起含义发生变化的表达式发出警告。实测在档范围为 PG9.5–13;最后在档的 PG13 启动默认值为 off,context 为 user。它在 PG14 被移除。
说明
Fact — 官方简述译文:对自 PostgreSQL 9.4 起含义发生变化的表达式发出警告。
身份
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG9.5 |
| 在档版本 | PG9.5–13 |
| 移除版本 | PG14 |
| 引入提交 | c6b3c939b7e0 — Make operator precedence follow the SQL standard more closely. |
| 提交日期 | 2015-03-11 |
| Discussion | — |
默认值变迁
| 版本 | 原始 boot_val |
单位 | 人类可读值 |
|---|---|---|---|
| PG9.5–13 | off |
— | off |
机制详解
对自 PostgreSQL 9.4 起含义发生变化的表达式发出警告。该参数在 PG13 仍存在,并从 PG14 起不再被识别。PostgreSQL 14 移除了这一迁移警告;应给有歧义的表达式显式加括号,并在目标版本上测试。
它曾为 PostgreSQL 9.5 改变结合规则的表达式发出迁移警告,并不会恢复旧优先级。参数移除后,可靠方案是显式括号与回归测试。
升级前应联合检查 default_with_oids、lo_compat_privileges、synchronize_seqscans,从配置、ALTER SYSTEM、角色/数据库设置和自动化模板中删除旧名,并先验证替代机制再启动 PG14+。
调优建议
提示
Advice。 以下建议是工作负载起点,必须用真实测量验证。
| 场景 | 建议 |
|---|---|
| OLTP | 不要在 PG14+ 调优或继续下发 operator_precedence_warning。PostgreSQL 14 移除了这一迁移警告;应给有歧义的表达式显式加括号,并在目标版本上测试。升级前扫描所有配置层并做业务回归。 |
| OLAP | 迁移方案与 OLTP 相同;另外在长批处理、备库或大对象/扩展工作流中验证新机制,不要假定删除旧开关会保留旧行为。 |
| 小规格 | 直接删除旧配置并采用受支持替代项;若没有真实兼容需求,不要用脚本伪造旧行为。 |
Pigsty 取值
以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG13 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。
| 模板 | 有效值 | 与上游 boot 比较 | 源表达式 |
|---|---|---|---|
| OLTP | 未修改 | — | — |
| OLAP | 未修改 | — | — |
| CRIT | 未修改 | — | — |
| TINY | 未修改 | — | — |
注意
Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG9.5–13 未修改;OLAP: PG9.5–13 未修改;CRIT: PG9.5–13 未修改;TINY: PG9.5–13 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。
常见坑
- 在 PG14+ 配置中继续下发未知参数 operator_precedence_warning。
- 只删除参数名,却未迁移依赖它的应用行为。
- 把历史默认值当作新版本替代机制的默认值。
- 遗漏 ALTER SYSTEM、角色/数据库设置或自动化模板中的旧条目。
关联参数
default_with_oids · lo_compat_privileges · synchronize_seqscans · standard_conforming_strings · array_nulls · backslash_quote