跳转到主要内容

server_version_num

server_version_num:以整数形式显示服务器版本。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 190000,context 为 internal。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
说明

Fact — 官方简述译文:以整数形式显示服务器版本。

身份

类型 , 值integer
上游 pg_settings 类型
Context , 值internal
内部或预设值,用户不可修改
单位 , 值—
原始单位
范围 , 值190000 – 190000
最后在档版本的原始上下限
枚举值 , 值—
非枚举类型记为 —
分类 , 值Preset Options
上游分类
最后 boot 值 , 值190000
190000

生命周期

Fact 值
首次观测 PG9.0(研究下界)
在档版本 PG9.0–19 Beta 3
移除版本 否
引入提交 不作断言:早于 PG9.0 研究边界
提交日期 —
Discussion —

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG9.0 90023 — 90023
PG9.1 90124 — 90124
PG9.2 90223 — 90223
PG9.3 90325 — 90325
PG9.4 90426 — 90426
PG9.5 90525 — 90525
PG9.6 90624 — 90624
PG10 100023 — 100023
PG11 110022 — 110022
PG12 120022 — 120022
PG13 130023 — 130023
PG14 140024 — 140024
PG15 150019 — 150019
PG16 160015 — 160015
PG17 170011 — 170011
PG18 180006 — 180006
PG19 Beta 3 190000 — 190000

机制详解

以整数报告当前服务器二进制版本。它是 internal/只读值,由二进制决定,与 initdb 或建库无关。

在本项目实测的 PG9.0–19 Beta 3 中,该整数编码大版本与小版本更新,软件可据此做数值比较,无需解析 server_version 的发行商文字。

只有无法直接探测服务端能力时才用它做兼容 gating。扩展与客户端仍需考虑不改变上游版本号的发行商 backport。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 不可调。升级后记录每个服务器的值,并在部署检查中做数值比较;改变它意味着运行不同 PostgreSQL 二进制。
OLAP 启用版本专属 SQL 或优化器功能前,核对协调节点、worker、副本与扩展构建对应的真实服务器版本。
小规格 可用该值做简单兼容检查,但优先直接探测所需能力;不要尝试通过配置或 initdb 修改。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG19 Beta 3 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改 — —
OLAP 未修改 — —
CRIT 未修改 — —
TINY 未修改 — —
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG9.0–19 Beta 3 未修改;OLAP: PG9.0–19 Beta 3 未修改;CRIT: PG9.0–19 Beta 3 未修改;TINY: PG9.0–19 Beta 3 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 把整数当字符串比较。
  • 尝试通过配置或重建数据库修改。
  • 误以为该数值包含发行商 backport 与下游补丁信息。
  • 用客户端库版本替代所连接服务器版本。

server_version · server_encoding · integer_datetimes · ssl_library · max_identifier_length · block_size

参考资料