虽然 PostgreSQL 12 尚未发布,不过开发团队已公布其首个版本说明草案。据官方介绍,这是一个十分重要的版本,下面看看有哪些值得关注的变化。
对于从任意旧版本迁移到 PostgreSQL 12 的用户,需要使用 pg_dumpall 或 pg_upgrade 进行 dump/restore(备份和恢复) 操作。
PostgreSQL 12 还包含许多可能影响与旧版本之间的兼容性的变更:
-
删除系统列 OID 的某些特殊行为
旧版本中,在创建表时可以通过WITH OIDS 指定正常情况下不可见(normally-invisible)的 OID 列;在新版本中该特性已被删除,不过列仍可以被显式地指定为OID 类型。
-
删除数据类型abstime ,reltime 和tinterval
-
删除时间段扩展(timetravel extension)
-
将recovery.conf 设置移动至postgresql.conf
recovery.conf 将不再被使用,如果该文件仍存在,服务器将无法启动。
-
不再允许多种不同的recovery_target * 规范
旧版本中,可指定多个不同的 recovery_target *变量,现在只能指定一个。
-
导致需要恢复的情况将默认使用最新状态
具体来说,recovery_target_time现在的默认值为latest ,而旧版本的默认值为current
-
重构几何函数和运算符
会使得结果更准确,但和旧版本相比略有不同
-
重构几何类型以更加一致地处理 NaN、下溢、上溢和除零情况
-
改进社区报告的针对行数据类型的行为和错误
分区方面也有不少的改进:
此外还有索引、认证、监控和功能优化等诸多变化。由于内容十分多,建议直接查看原文。 |