发布日期: 2016-10-27
此版本包含来自9.1.23的各种修补程序。 关于9.1主版本中的新特性信息,请查看 第 E.107 节。
这预计是9.1.X系列中的最后一个PostgreSQL版本。 建议用户尽快更新到较新的版本分支。
修复涉及CTE扫描的EvalPlanQual重新检查 (Tom Lane)
重新检查总是会将CTE视为不返回行,通常会导致无法更新最近更新的行。
修复子查询中散列聚合的先前结果的不正确重复 (Andrew Gierth)
测试以查看我们是否可以重用先前计算的聚合状态值的散列表, 忽略了外部查询引用出现在聚合参数表达式中的可能性。 这种引用的值的改变应该导致重新计算散列表,但是没有。
修复VACUUM
等待独占表锁定时的超时长度,以便它可以截断表
(Simon Riggs)
超时时间应该是50毫秒,但实际上它只有50微秒,导致VACUUM
比预期更容易放弃截断。将其设置为预期值。
删除对numeric_in()
和numeric_recv()
接受的值的人为限制
(Tom Lane)
我们允许数值达到存储格式的限制(超过1e100000
),
所以看起来毫无意义的是numeric_in()
拒绝了高于1000的科学记数法指数。
同样,很愚蠢的是numeric_recv()
在输入值中拒绝超过1000位。
避免由于在不保留缓冲区锁定的情况下测试元组可见性而造成非常低概率的数据损坏 (Thomas Munro, Peter Geoghegan, Tom Lane)
修复截断大于1GB的临时关系时的文件描述符泄漏 (Andres Freund)
在开启了standby_mode
时,不允许启动一个独立的后端
(Michael Paquier)
这不能做任何有用的事情,因为没有WAL接收器过程来获取更多的WAL数据; 这可能会导致代码中的错误行为,而这些代码在设计时并未考虑到这种情况。
不要尝试在libpq中的多个连接之间共享SSL上下文 (Heikki Linnakangas)
这导致了各种各样的极端情况错误,尤其是在尝试为不同的连接使用不同的SSL参数时。
避免libpq中极端情况内存泄露 (Tom Lane)
所报告的问题涉及在PQreset()
期间泄漏错误报告,但可能存在相关情况。
让ecpg的--help
和--version
选项与我们的其他可执行文件保持一致 (Haribabu Kommi)
修复contrib/intarray/bench/bench.pl
以打印
EXPLAIN
在给出-e
选项时的结果
(Daniel Gustafsson)
防止过时的动态时区缩写失效 (Tom Lane)
如果动态时区缩写与参考时区中的任何条目都不匹配,请将其视为等同于时区名称。
这避免了IANA从他们的时区数据库中删除缩写时的意外失败,就像他们在
tzdata release 2016f中所做的一样,并且似乎未来可能再次发生。
后果不限于不承认个人缩写;任何不匹配都会导致pg_timezone_abbrevs
视图完全失败。
将时区数据文件更新为tzdata release 2016h, 用于巴勒斯坦和土耳其的DST法律变更,以及对土耳其和俄罗斯一些地区的历史更正。 切换到南极洲、前苏联和斯里兰卡的一些时区的数字缩写。
IANA时区数据库以前为所有时区提供了文本缩写,
有时会提供当地人口中流通很少或没有流通的缩写。他们正在推翻该政策,
赞成在没有现实世界中使用英文缩写的地区使用数字UTC偏移量。至少目前来说,
PostgreSQL将继续接受此类删除的时间戳输入缩写。
但它们不会显示在pg_timezone_names
视图中,也不会用于输出。
在此更新中,AMT
不再显示为用于表示亚美尼亚时间。因此,
我们已将Default
缩写集更改为将其解释为Amazon Time,
因此是UTC-4而不是UTC+4。