附录 E. 发布说明
目录
- E.1. 版本 9.0.23
- E.2. 版本 9.0.22
- E.3. 版本 9.0.21
- E.4. 版本 9.0.20
- E.5. 版本 9.0.19
- E.6. 版本 9.0.18
- E.7. 版本 9.0.17
- E.8. 版本 9.0.16
- E.9. 版本 9.0.15
- E.10. 版本 9.0.14
- E.11. 版本 9.0.13
- E.12. 版本 9.0.12
- E.13. 版本 9.0.11
- E.14. 版本 9.0.10
- E.15. 版本 9.0.9
- E.16. 版本 9.0.8
- E.17. 版本 9.0.7
- E.18. 版本 9.0.6
- E.19. 版本 9.0.5
- E.20. 版本 9.0.4
- E.21. 版本 9.0.3
- E.22. 版本 9.0.2
- E.23. 版本 9.0.1
- E.24. 版本 9.0
- E.25. 版本 8.4.22
- E.26. 版本 8.4.21
- E.27. 版本 8.4.20
- E.28. 版本 8.4.19
- E.29. 版本 8.4.18
- E.30. 版本 8.4.17
- E.31. 版本 8.4.16
- E.32. 版本 8.4.15
- E.33. 版本 8.4.14
- E.34. 版本 8.4.13
- E.35. 版本 8.4.12
- E.36. 版本 8.4.11
- E.37. 版本 8.4.10
- E.38. 版本 8.4.9
- E.39. 版本 8.4.8
- E.40. 版本 8.4.7
- E.41. 版本 8.4.6
- E.42. 版本 8.4.5
- E.43. 版本 8.4.4
- E.44. 版本 8.4.3
- E.45. 版本 8.4.2
- E.46. 版本 8.4.1
- E.47. 版本 8.4
- E.48. 版本 8.3.23
- E.49. 版本 8.3.22
- E.50. 版本 8.3.21
- E.51. 版本 8.3.20
- E.52. 版本 8.3.19
- E.53. 版本 8.3.18
- E.54. 版本 8.3.17
- E.55. 版本 8.3.16
- E.56. 版本 8.3.15
- E.57. 版本 8.3.14
- E.58. 版本 8.3.13
- E.59. 版本 8.3.12
- E.60. 版本 8.3.11
- E.61. 版本 8.3.10
- E.62. 版本 8.3.9
- E.63. 版本 8.3.8
- E.64. 版本 8.3.7
- E.65. 版本 8.3.6
- E.66. 版本 8.3.5
- E.67. 版本 8.3.4
- E.68. 版本 8.3.3
- E.69. 版本 8.3.2
- E.70. 版本 8.3.1
- E.71. 版本 8.3
- E.72. 版本 8.2.23
- E.73. 版本 8.2.22
- E.74. 版本 8.2.21
- E.75. 版本 8.2.20
- E.76. 版本 8.2.19
- E.77. 版本 8.2.18
- E.78. 版本 8.2.17
- E.79. 版本 8.2.16
- E.80. 版本 8.2.15
- E.81. 版本 8.2.14
- E.82. 版本 8.2.13
- E.83. 版本 8.2.12
- E.84. 版本 8.2.11
- E.85. 版本 8.2.10
- E.86. 版本 8.2.9
- E.87. 版本 8.2.8
- E.88. 版本 8.2.7
- E.89. 版本 8.2.6
- E.90. 版本 8.2.5
- E.91. 版本 8.2.4
- E.92. 版本 8.2.3
- E.93. 版本 8.2.2
- E.94. 版本 8.2.1
- E.95. 版本 8.2
- E.96. 版本 8.1.23
- E.97. 版本 8.1.22
- E.98. 版本 8.1.21
- E.99. 版本 8.1.20
- E.100. 版本 8.1.19
- E.101. 版本 8.1.18
- E.102. 版本 8.1.17
- E.103. 版本 8.1.16
- E.104. 版本 8.1.15
- E.105. 版本 8.1.14
- E.106. 版本 8.1.13
- E.107. 版本 8.1.12
- E.108. 版本 8.1.11
- E.109. 版本 8.1.10
- E.110. 版本 8.1.9
- E.111. 版本 8.1.8
- E.112. 版本 8.1.7
- E.113. 版本 8.1.6
- E.114. 版本 8.1.5
- E.115. 版本 8.1.4
- E.116. 版本 8.1.3
- E.117. 版本 8.1.2
- E.118. 版本 8.1.1
- E.119. 版本 8.1
- E.120. 版本 8.0.26
- E.121. 版本 8.0.25
- E.122. 版本 8.0.24
- E.123. 版本 8.0.23
- E.124. 版本 8.0.22
- E.125. 版本 8.0.21
- E.126. 版本 8.0.20
- E.127. 版本 8.0.19
- E.128. 版本 8.0.18
- E.129. 版本 8.0.17
- E.130. 版本 8.0.16
- E.131. 版本 8.0.15
- E.132. 版本 8.0.14
- E.133. 版本 8.0.13
- E.134. 版本 8.0.12
- E.135. 版本 8.0.11
- E.136. 版本 8.0.10
- E.137. 版本 8.0.9
- E.138. 版本 8.0.8
- E.139. 版本 8.0.7
- E.140. 版本 8.0.6
- E.141. 版本 8.0.5
- E.142. 版本 8.0.4
- E.143. 版本 8.0.3
- E.144. 版本 8.0.2
- E.145. 版本 8.0.1
- E.146. 版本 8.0
- E.147. 版本 7.4.30
- E.148. 版本 7.4.29
- E.149. 版本 7.4.28
- E.150. 版本 7.4.27
- E.151. 版本 7.4.26
- E.152. 版本 7.4.25
- E.153. 版本 7.4.24
- E.154. 版本 7.4.23
- E.155. 版本 7.4.22
- E.156. 版本 7.4.21
- E.157. 版本 7.4.20
- E.158. 版本 7.4.19
- E.159. 版本 7.4.18
- E.160. 版本 7.4.17
- E.161. 版本 7.4.16
- E.162. 版本 7.4.15
- E.163. 版本 7.4.14
- E.164. 版本 7.4.13
- E.165. 版本 7.4.12
- E.166. 版本 7.4.11
- E.167. 版本 7.4.10
- E.168. 版本 7.4.9
- E.169. 版本 7.4.8
- E.170. 版本 7.4.7
- E.171. 版本 7.4.6
- E.172. 版本 7.4.5
- E.173. 版本 7.4.4
- E.174. 版本 7.4.3
- E.175. 版本 7.4.2
- E.176. 版本 7.4.1
- E.177. 版本 7.4
- E.178. 版本 7.3.21
- E.179. 版本 7.3.20
- E.180. 版本 7.3.19
- E.181. 版本 7.3.18
- E.182. 版本 7.3.17
- E.183. 版本 7.3.16
- E.184. 版本 7.3.15
- E.185. 版本 7.3.14
- E.186. 版本 7.3.13
- E.187. 版本 7.3.12
- E.188. 版本 7.3.11
- E.189. 版本 7.3.10
- E.190. 版本 7.3.9
- E.191. 版本 7.3.8
- E.192. 版本 7.3.7
- E.193. 版本 7.3.6
- E.194. 版本 7.3.5
- E.195. 版本 7.3.4
- E.196. 版本 7.3.3
- E.197. 版本 7.3.2
- E.198. 版本 7.3.1
- E.199. 版本 7.3
- E.200. 版本 7.2.8
- E.201. 版本 7.2.7
- E.202. 版本 7.2.6
- E.203. 版本 7.2.5
- E.204. 版本 7.2.4
- E.205. 版本 7.2.3
- E.206. 版本 7.2.2
- E.207. 版本 7.2.1
- E.208. 版本 7.2
- E.209. 版本 7.1.3
- E.210. 版本 7.1.2
- E.211. 版本 7.1.1
- E.212. 版本 7.1
- E.213. 版本 7.0.3
- E.214. 版本 7.0.2
- E.215. 版本 7.0.1
- E.216. 版本 7.0
- E.217. 版本 6.5.3
- E.218. 版本 6.5.2
- E.219. 版本 6.5.1
- E.220. 版本 6.5
- E.221. 版本 6.4.2
- E.222. 版本 6.4.1
- E.223. 版本 6.4
- E.224. 版本 6.3.2
- E.225. 版本 6.3.1
- E.226. 版本 6.3
- E.227. 版本 6.2.1
- E.228. 版本 6.2
- E.229. 版本 6.1.1
- E.230. 版本 6.1
- E.231. 版本 6.0
- E.232. 版本 1.09
- E.233. 版本 1.02
- E.234. 版本 1.01
- E.235. 版本 1.0
- E.236. Postgres95 Release 0.03
- E.237. Postgres95 Release 0.02
- E.238. Postgres95 Release 0.01
发布说明包含每个PostgreSQL发布中的重要变更,并将主要特性和迁移问题列在最前面。发布说明不包含只影响少数用户的变更,也不包含仅限内部实现、因而对用户不可见的变更。例如,优化器几乎在每次发布中都会得到改进,但用户通常只会把这些改进感知为查询速度更快。
每个版本的一份完整变更列表可以通过查看该版本的
Git 日志获得。pgsql-committers
邮件列表也记录了所有源代码变更。另有一个Web 界面可显示特定文件的变更。
每个条目旁边标出的姓名表示该条目的主要开发者。当然,所有变更都经历了社区讨论和补丁审查,因此每个条目实际上都是社区共同努力的成果。
E.1. 版本 9.0.23 #
发行日期
2015-10-08
本次发布包含对 9.0.22 的多方面修复。有关 9.0 大版本中新特性的信息,请参见第 E.24 节。.
这预计是 PostgreSQL 9.0.X 系列的最后一个发行版。建议用户尽快更新到较新的发行分支。
E.1.2. 变更
修复
contrib/pgcrypto以检测并报告过短的crypt()盐值(Josh Kupershmidt)某些无效的盐值参数会导致服务器崩溃或泄露少量服务器内存字节。我们尚未排除通过安排让泄露字节中出现机密信息实施攻击的可行性,但这种攻击似乎不太可能。(CVE-2015-5288)
修复属于外部子事务的门户(游标)失败后的子事务清理问题(Tom Lane、Michael Paquier)
在外部子事务游标中执行的函数可能因引用在内部子事务中创建的关系而导致断言失败或崩溃。
修复关系插入关系缓存“init 文件”的问题(Tom Lane)
最近几个小版本中一个补丁的疏忽导致
pg_trigger_tgrelid_tgname_index被遗漏在 init 文件之外。后续会话检测到这一点后认定 init 文件已损坏并静默忽略它,导致会话启动时间显著退化。除修复该缺陷外,还加入了一些防护,使未来任何类似错误更明显。避免向 SPI 查询结果插入大量元组时的 O(N^2) 行为(Neil Conway)
改进存在大量未读通知时
LISTEN的启动时间(Matt Newell)默认禁用 SSL 重新协商(Michael Paquier、Andres Freund)
虽然使用 SSL 重新协商在理论上是个好主意,但实践中我们看到了太多缺陷,无论是底层 OpenSSL 库中还是我们对它的使用中。重新协商将在 9.5 及更高版本中完全移除。在较旧的分支中,只是把
ssl_renegotiation_limit的默认值改为零(禁用)。降低
*_freeze_max_age参数的最小值(Andres Freund)这主要是为了使相关行为的测试不那么耗时,但对磁盘空间有限的安装也可能有价值。
将
wal_buffers的最大值限制为 2GB 以避免服务器崩溃(Josh Berkus)修复
numeric值相乘时罕见的内部溢出(Dean Rasheed)防御涉及记录类型、范围类型、
json、jsonb、tsquery、ltxtquery和query_int的难以触发的栈溢出(Noah Misch)修复日期时间输入中
DOW和DOY的处理(Greg Stark)这些记号本不应在日期时间值中使用,但过去它们导致的是难懂的内部错误消息,而不是“无效的输入语法”。
在正则表达式匹配中增加更多查询取消检查(Tom Lane)
为正则表达式、
SIMILAR TO和LIKE匹配增加递归深度保护(Tom Lane)合适的搜索模式加上较低的栈深度限制可能导致栈越界崩溃。
修复正则表达式执行中潜在的无限循环(Tom Lane)
一个表面上能匹配零长度字符串、但实际上因反向引用而不匹配的搜索模式可能导致无限循环。
修复正则表达式编译中的内存不足失败(Andreas Seltenreich)
修复正则表达式执行期间低概率的内存泄漏(Tom Lane)
修复事务中止期间锁清理中罕见的内存不足失败(Tom Lane)
修复在使用较小
work_mem设置的元组存储时出现“排序期间意外的内存不足情况”错误的问题(Tom Lane)修复
qsort中极低概率的栈越界(Tom Lane)修复在使用较大
work_mem设置的哈希连接中出现“无效的内存分配请求大小”失败的问题(Tomas Vondra, Tom Lane)修复若干规划器缺陷(Tom Lane)
这些错误可能导致给出错误结果的错误查询计划、启用断言的构建中的断言失败,或奇怪的规划器错误,例如“could not devise a query plan for the given query”、“could not find pathkey item to sort”、“plan should not reference subplan's variable”或“failed to assign all NestLoopParams to plan nodes”。感谢 Andreas Seltenreich 和 Piotr Stefaniak 通过模糊测试暴露了这些问题。
在所有受支持的分支中使用模糊路径代价平局判定规则(Tom Lane)
此变更旨在避免当候选计划选项的估计代价实际相同时出现平台特定的行为。
在 postmaster 关闭期间,确保在移除
postmaster.pid文件之前移除各套接字的锁文件并关闭监听套接字(Tom Lane)这可以避免外部脚本在
pg_ctl stop一返回就尝试启动新 postmaster 时出现竞争条件失败。修复 postmaster 对崩溃恢复期间启动进程崩溃的处理(Tom Lane)
如果在崩溃恢复周期中,启动进程在尚未恢复数据库一致性时崩溃,我们会尝试启动一个新的启动进程,而这通常只会再次崩溃,导致无限循环。
当我们尝试向某个自动清理工作进程发送信号而它已经消失时,不再打印
WARNING,并降低此类信号的日志详细程度(Tom Lane)防止服务器时钟被大幅回拨时自动清理启动器睡眠时间过长(Álvaro Herrera)
确保 GIN 索引待插入列表的清理可被取消请求中断(Jeff Janes)
允许重用 GIN 索引中的全零页(Heikki Linnakangas)
崩溃之后可能遗留这样的页。
修复一个差一错误,该错误会导致 subtrans/multixact 截断中出现本可避免的“表面回卷”警告(Thomas Munro)
修复PL/pgSQL错误上下文消息中
CONTINUE和MOVE语句类型误报的问题(Pavel Stehule, Tom Lane)修复PL/Tcl中一些未检查
malloc()调用失败的位置(Michael Paquier, Álvaro Herrera)改进libpq对内存耗尽情况的处理(Michael Paquier, Heikki Linnakangas)
修复ecpg中的内存泄漏和缺失的内存不足检查(Michael Paquier)
修复 psql 中对数字输出的区域感知格式化代码(Tom Lane)
\pset numericlocale on所调用的格式化代码在一些不常见的情况下会出错,例如带指数但没有小数点的数字。它还可能破坏money数据类型已经区域化的输出。防止在没有当前连接时psql的
\c命令崩溃(Noah Misch)确保pg_dump以tar格式输出运行期间创建的临时文件不被全局可读(Michael Paquier)
修复pg_dump和pg_upgrade以支持
postgres或template1数据库位于非默认表空间的情况(Marti Raudsepp, Bruce Momjian)修复 pg_dump 从过于陈旧而没有特定权限类型的服务器转储时对对象权限的处理(Tom Lane)
从 7.3 之前的服务器转储函数或过程语言时,pg_dump 会生成撤销所有者可授予权限、转而把所有权限授予
PUBLIC的GRANT/REVOKE命令。由于涉及的权限只是USAGE和EXECUTE,这不构成安全问题,但这确实是对旧系统行为令人惊讶的表示。已修复为在这些情况下保持默认权限状态不变。修复pg_dump以转储 shell 类型(Tom Lane)
shell 类型(即尚未完全定义的类型)用处不大,但pg_dump仍应转储它们。
修复 PPC 硬件的自旋锁汇编代码使其与AIX本机汇编器兼容(Tom Lane)
如果gcc被配置为使用本机汇编器(这正变得越来越普遍),则用gcc构建无法工作。
在AIX上,测试
-qlonglong编译器选项,而不是直接假定它可以安全使用(Noah Misch)在AIX上,使用
-Wl,-brtllib链接选项以允许符号在运行时解析(Noah Misch)Perl 5.8.0 及更高版本依赖这一能力。
由于编译器缺陷,在使用 32 位xlc编译时避免使用内联函数(Noah Misch)
必要时使用
librt提供sched_yield(),某些 Solaris 版本即是如此(Oskari Saarenmaa)修复 Windows
install.bat脚本以处理包含空格的目标目录名(Heikki Linnakangas)使PostgreSQL版本号的数字形式(例如
90405)以名为VERSION_NUM的变量方便地提供给扩展 Makefile 使用(Michael Paquier)将时区数据文件更新到tzdata发行版 2015g,以反映开曼群岛、斐济、摩尔多瓦、摩洛哥、诺福克岛、朝鲜、土耳其和乌拉圭的夏令时法规变更。为加拿大北落基山地区新增了时区名
America/Fort_Nelson。