跳转到主要内容

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
内部或预设值,用户不可修改
单位 ,
原始单位
范围 , 190000190000
最后在档版本的原始上下限
枚举值 ,
非枚举类型记为 —
分类 , 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

参考资料