1

有人用 Palle Girgensohn 的 ICU 补丁在 Mac OS X 上构建过 Postgresql 吗?如果是这样,您遇到了什么问题,整理行为的变化是否令人满意?

我正在使用 Postgresql 9.2 和 Mac OS 10.7 和 10.8。

4

3 回答 3

3

谷歌认为有问题的补丁是从 2005 年开始的。它干净地应用于 PostgreSQL 9.2 的可能性几乎为零。除非有人将工作向前移植到新版本,否则可能需要做很多工作来更新它。

您还没有定义您对当前排序行为的不满意之处 - 尽管坦率地说,鉴于 Mac OS X 的 libc,我想答案是“很多”。我认为您目前没有太多选择,除非您愿意努力向前移植 ICU 补丁。

我真的很想看到 PostgreSQL 能够支持 ICU 排序,如果我能找到时间做这种没人愿意资助的工作,它就在我的工作清单上。然而,实施它并不是说服团队接受改变,并缓解或解决任何性能问题的挑战。

就我个人而言,我只是在 Linux 上运行它,其中更明智的整理和编码支持将有很大帮助。

于 2013-06-24T12:57:51.637 回答
0

是的,这是可能的——我刚刚完成了基于 MacPorts 安装的过程(当前 PostgreSQL 版本为 9.3.5)。我使用了Palle 补丁页面中的 9.2.8补丁文件,参考 9.3.5 源代码库稍作修改并使用 autoconf 的 2.63 版本而不是 2.69,然后使用此 MacPorts 票证Portfile中的修改来告诉 MacPorts 如何应用补丁文件。

我的初步测试结果大部分都很好,例如

postgres=# show server_encoding;
 client_encoding 
-----------------
 UTF8
(1 row)

postgres=# select * from comments order by comment;
 comment 
---------
 gros
 gross
 groß
 grot
(4 rows)

postgres=# select * from comments order by comment collate "C";
 comment 
---------
 gros
 gross
 grot
 groß
(4 rows)

postgres=# select upper('ß');
 upper 
-------
 SS
(1 row)

但请注意...

postgres=# select upper('ß') collate "C";
 upper 
-------
 SS
(1 row)

(我本来期望只是'ß'。)

于 2014-10-15T12:18:00.070 回答
0

目前,补丁可用于 PostgreSQL 至 9.1 版本。我还没有测试过它,但我认为补丁本身工作得很好,因为它很小,而且,AFAIK,它默认在 FreeBSD 下使用。由于 Mac OS X 与 GNU autoconf 兼容,因此补丁应该可以直接使用。

对 C 有一定的了解,可以尝试自己升级到 PostgreSQL 9.2 或 9.3。此外,1C 提供了将 PostgreSQL 与他们的 1C:Enterprise 平台一起使用的补丁。这些补丁还提供了 ICU 库,PostgreSQL 有 9.1 和 9.2 两种版本。您可以查看并获得有关升级的一些想法。

于 2013-12-18T14:13:16.477 回答