E.4. 版本 9.4.23 #
发布日期:. 2019-06-20
本发行版包含对 9.4.22 的多项修复。有关 9.4 主版本中新功能的信息,请参见第 E.27 节。
PostgreSQL社区将于 2020 年 2 月停止发布 9.4.X 系列的更新。建议用户尽快更新到较新的版本分支。
E.4.2. 变更
修复表带有部分排他约束时
ALTER TABLE ... ALTER COLUMN TYPE的失败(Tom Lane)修复带重复连接名的查询的错误打印(Philip Dubé)
这一疏漏导致包含此类查询的视图在转储/恢复时失败。
修复正则表达式中
{1,1}量词的错误优化(Tom Lane)此类量词被当作无操作而被优化掉;但文档规定它们会给所附加的子表达式施加贪婪性,或者对于非贪婪变体
{1,1}?施加非贪婪性,而这没有发生。只有当子表达式包含捕获圆括号或反向引用时才会出现错误行为。修复检查冲突 postmaster 是否仍在使用既有共享内存段的竞态条件(Tom Lane)
避免在未连接到特定数据库的进程中尝试为参数检查做数据库访问(Vignesh C、Andres Freund)
这个错误可能导致诸如 “cannot read pg_class without having selected a database” 之类的失败。
改进 initdb 对系统时区多个等价名称的处理(Tom Lane、Andrew Gierth)
让 initdb 检查
/etc/localtime符号链接(如果存在),以在系统时区的等价名称之间打破平局。这使 initdb 在存在多个相同时区时更可能选择用户期望的时区名。如果/etc/localtime不是指向时区数据文件的符号链接,或者时区是由TZ环境变量确定的,则不会改变行为。另外,当
TZ和/etc/localtime都未提供提示时,优先选择UTC而不是该时区的其他拼法。这修复了 tzdata 2019a 把UCT和UTC时区名变为等价而引入的烦恼:initdb 随后偏爱UCT,而几乎没人想要它。修复 reindexdb 的误导性错误报告(Julien Rouhaud)
在
contrib/postgres_fdw中,考虑本地BEFORE ROW UPDATE触发器可能做的数据修改(Shohei Mochizuki)如果触发器修改了
UPDATE本不会更改的列,新值不会被传输到远程服务器。在 Windows 上,避免数据库编码设为 SQL_ASCII 而我们尝试记录非 ASCII 字符串时的失败(Noah Misch)
代码此前假定这种字符串必须是 UTF-8,如果它们看起来不是有效编码就会抛出错误。现在,只是把未翻译的字节传给日志。
使 PL/pgSQL 的头文件对 C++ 安全(George Tarasov)