E.93. 版本 8.2.8

发布日期: 从未发布

这个版本包含各种自8.2.7以来的修复。关于8.2主版本的新特性信息, 请查看Section E.101

E.93.1. 迁移到版本 8.2.8

运行8.2.X的用户不需要转储/恢复。不过,如果你是从一个早于8.2.7的版本升级而来, 那么请查看8.2.7的版本声明。

E.93.2. 修改列表

  • 修复使用一个UTF-8数据库编码和一个不同的客户端编码时,发生在Windows上的 ERRORDATA_STACK_SIZE exceeded崩溃 (Tom)

  • 修复ALTER TABLE ADD COLUMN ... PRIMARY KEY, 这样正确的检查新的字段看看是否初始化为所有非空 (Brendan Jurd)

    以前的版本完全疏忽了检查这个要求。

  • 修复从继承自同一个祖先的约束的多个父关系中继承"相同的"约束时, 可能的CREATE TABLE失败 (Tom)

  • 修复pg_get_ruledef()显示别名,如果有,附加UPDATEDELETE的目标表 (Tom)

  • 修复可能导致too many LWLocks taken失败的GIN错误 (Teodor)

  • 避免反编译损坏的数据时可能的崩溃 (Zdenek Kotala)

  • 修复两个地方,在这两个地方SIGTERM退出后端可能在共享内存中留下损坏的状态 (Tom)

    如果SIGTERM用于关闭整个数据库集群,那么哪种情况都不是非常重要的, 但是如果有人尝试SIGTERM单个后端,那么就有问题了。

  • 修复ISO-8859-5和其他编码之间的转换,以处理Cyrillic "Yo"字符 (eE带有两个点) (Sergey Burladyan)

  • 修复几个数据类型输入函数,尤其是array_in(), 它们允许在它们的结果中未使用的字节包含未初始化的、不可预期的值 (Tom)

    这会导致两个表面上相同的字面值被看做不等的失败,导致分析器抱怨未匹配的 ORDER BYDISTINCT表达式。

  • 修复正则表达式子字符串匹配中的一个极端情况 (substring(``_string_ from _pattern_)) (Tom)

    这个问题出现在整体匹配但是用户已经指定了一个加上括号的子表达式, 并且该子表达式没有得到一个匹配的情况下。一个例子是substring('foo' from 'foo(bar)?')。 这应该返回NULL,因为(bar)没有匹配,但是它错误的返回了整个模式匹配 (也就是foo)。

  • 更新时区数据文件到tzdata版本2008c(因为DST规律在Morocco、Iraq、 Choibalsan、Pakistan、Syria、Cuba和Argentina/San_Luis发生了改变)

  • 修复ecpg的PGTYPEStimestamp_sub() 函数的不正确结果 (Michael)

  • contrib/tsearch2tsquery类型修复破损的GiST比较函数 (Teodor)

  • 修复contrib/cube函数中可能的崩溃 (Tom)

  • 当输入查询返回一个NULL值时,修复contrib/xml2xpath_table() 函数中的内核转储 (Tom)

  • 修复contrib/xml2的makefile,不要重载CFLAGS (Tom)

  • 修复DatumGetBool宏,使用gcc 4.3时不要失败 (Tom)

    这个问题影响返回布尔值的"老式的" (V0) C函数。该修复在8.3中早就有了, 但是向后修复的需要在当时没有意识到。