PostgreSQL 9.4.4 中文手册
上一页 | 上一级 | 附录 E. 版本说明 | 下一页

# E.149. 版本 8.1.12

> 发布日期: 从未发布

这个版本包含各种自8.1.11以来的修复。关于8.1主版本的新特性信息， 请查看第 E.161 节。

## E.149.1. 迁移到版本 8.1.12

运行8.1.X的用户不需要转储/恢复。不过，如果你是从一个早于8.1.2的版本升级而来， 那么请查看第 E.159 节。

## E.149.2. 修改列表

- 修复`ALTER TABLE ADD COLUMN ... PRIMARY KEY`， 这样新的字段正确的检查是否它被初始化为所有都是非空 (Brendan Jurd)

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

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

- 修复ISO-8859-5和其他编码之间的转换，以处理Cyrillic "Yo"字符 （`e`和`E`带有两个句点） (Sergey Burladyan)

- 修复一个新的日期类型输入函数， 允许未使用的字节在它们的结果中包含未初始化的、不可预测的值 (Tom)

  这会导致两个表面上相同的文字值不被看做相等的失败， 导致解析器抱怨不匹配的`ORDER BY`和`DISTINCT`表达式。

- 修复正则表达式子串匹配中的一个极端情况(`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和Chile发生了改变）

- 修复ecpg的`PGTYPEStimestamp_sub()` 函数中的不正确的结果 (Michael)

- 当输入查询返回一个NULL值时，修复`contrib/xml2`的 `xpath_table()`函数中的内核转储 (Tom)

- 修复`contrib/xml2`的makefile，不要覆盖`CFLAGS` (Tom)

- 修复`DatumGetBool`宏，不要在使用gcc 4.3时失败 (Tom)

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

- 修复长期存在的`LISTEN`/`NOTIFY`竞态条件 (Tom)

  在罕见的情况下，刚刚执行了`LISTEN`的会话可能不会获得一个通知， 即使预期应该有一个通知，因为并发事务执行`NOTIFY`是在提交之后能观察到。

  该修复的一个副作用是一个刚刚执行了暂未提交的`LISTEN`命令的事务将不会看到 该`LISTEN`的`pg_listener`中的任何行，而它应该能看到的； 以前它是能够看到的。这个行为不管怎样都没有记录过，但是有可能一些应用依赖于老的行为。

- 不允许`LISTEN`和`UNLISTEN`在一个准备事务中 (Tom)

  这在以前是允许的，但是尝试这样做会有各种不愉快的后果， 尤其是只要`UNLISTEN`保持未提交，原始的后端就不能退出。

- 修复在查询使用哈希索引期间发生错误时的罕见的崩溃 (Heikki)

- 修复公元前的年中二月29的日期时间值的输入 (Tom)

  以前的代码弄错了哪一年是闰年。

- 修复在某些`ALTER OWNER`的变体中的"未识别的节点类型"错误 (Tom)

- 修复pg_ctl，正确的从命令行选项中提取主进程的端口号 (Itagaki Takahiro, Tom)

  以前，`pg_ctl start -w`尝试在错误的端口连接主进程， 导致启动失败的虚假的报告。

- 使用`-fwrapv`防卫在最近的gcc版本中可能的错误最优化 (Tom)

  这在用gcc 4.3或更新的版本建立PostgreSQL时是必需的。

- 修复`ORDER BY`和`GROUP BY`中常量表达式的显示 (Tom)

  一个显示转换的常量将会不正确的显示。这会导致例如转储和重载期间视图定义的损坏。

- 修复libpq，以在COPY OUT期间正确的处理NOTICE消息 (Tom)

  只有当用户定义的数据类型的输出例程发出一个NOTICE时，这个失败才能观察到， 但是不保证它不会因为其他原因发生。

上一页 | 起始页 | 下一页
版本 8.1.13 | 上一级 | 版本 8.1.11