我知道Postgres上的数据库区域设置负责正确的国家字符顺序,正确的下/上层等。
但为什么有两种与语言无关的语言环境:posix
和c
?它们之间是否有任何区别,或者它只是一个具有两个不同名称的中性区域设置?
更新正如Magnus Hagander在他的回答中所述,POSIX和C语言环境是具有不同名称的相同语言环境(无论Postgres是安装在POSIX还是Windows系统上)。我不知道如何确认这些信息 - 在哪里查找适当的文档部分?
Magnus的解释似乎是明智的,但同时奇怪的是同一个语言环境有两个名称可供选择。 这样做的目的是什么 - 只是为了混淆?
答案 0 :(得分:8)
请注意,PostgreSQL只使用操作系统区域设置,并且没有自己的locales定义。如果您的系统符合POSIX,则C和POSIX将完全相同:http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap07.html(参见7.2下的第一句)。
答案 1 :(得分:1)
根据The Single UNIX ® Specification POSIX和C语言环境是别名:
字符串" C"和" POSIX"保留为POSIX语言环境的标识符
所以它们在POSIX系统上保证是相同的。我不知道Windows Vista或7与POSIX兼容的程度,但可能在Microsoft文档中找到类似的定义。