带有ICU补丁的Mac OS X上的Postgresql

时间:2013-06-23 20:12:15

标签: macos postgresql icu

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

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

3 个答案:

答案 0 :(得分:3)

谷歌建议这个补丁来自2005年。它几乎没有机会适用于PostgreSQL 9.2。除非有人将工作转发到新版本,否则可能需要做很多工作来更新它。

你还没有定义对你当前的整理行为不满意的事情 - 虽然坦率地说,考虑到Mac OS X的libc我觉得答案是“很多”。我不认为你现在有很多选择,除非你愿意努力转发ICU补丁。

我真的很高兴看到PostgreSQL能够支持ICU整理,如果我能找到时间去做那种没人愿意资助这项工作的话,那就是我的工作清单。实施它并不是说服团队接受变更,而是缓解或解决任何性能问题所带来的挑战。

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

答案 1 :(得分:0)

目前,patch可用于PostgreSQL,最高版本为9.1。我还没有测试它,但我认为补丁本身工作正常,因为它非常小,而AFAIK,默认情况下在FreeBSD下使用。由于Mac OS X与GNU autoconf兼容,因此补丁应该可以在框中使用。

熟练掌握C语言,您可以尝试自己升级到PostgreSQL 9.2或9.3。 此外,1C提供patches for using PostgreSQL with their 1C:Enterprise platform。这些补丁还提供ICU库,PostgreSQL有9.1和9.2版本。您可以查看并获得有关升级的一些想法。

答案 2 :(得分:0)

是的,这是可能的 - 我刚刚完成了基于MacPorts安装(目前PostgreSQL版本9.3.5)的过程。我使用了来自Palle's patch page的9.2.8补丁文件,稍微修改了一下9.3.5 soruce base并使用了autoconf的2.63而不是2.69,然后使用this MacPorts ticketPortfile修改来告诉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)

(我本来期待'ß'。)