В чем разница между языками C и Posix на Postgres? - PullRequest
17 голосов
/ 01 марта 2010

Я знаю, что локали баз данных на Postgres отвечают за правильный порядок национальных символов, правильный нижний / верхний регистр и т. Д.

Но почему существуют две языковые локали: posix и c? Есть ли какая-то разница между ними или это просто одна нейтральная локаль с двумя разными именами?

ОБНОВЛЕНИЕ Как утверждает Магнус Хагандер в своем ответе, локали POSIX и C - это одна и та же локаль с разными именами (независимо от того, установлен Postgres в POSIX или в системе Windows). Я не знаю, как подтвердить эту информацию - где искать соответствующий раздел документации?

Объяснение Магнуса кажется разумным, но в то же время странно, что есть два названия для одной и той же локали на выбор. Какова цель этого - только сделать путаницу?

Ответы [ 2 ]

8 голосов
/ 01 марта 2010

Обратите внимание, что PostgreSQL просто использует локаль операционной системы и не имеет собственного определения локалей. Если ваша система совместима с POSIX, C и POSIX будут точно такой же локали: http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap07.html (см. Первое предложение в разделе 7.2).

1 голос
/ 28 сентября 2015

Согласно Единичная спецификация UNIX ® POSIX и C локали - это псевдонимы:

Строки "C" и "POSIX" зарезервированы как идентификаторы для языкового стандарта POSIX

* +1007 *

Таким образом, они гарантированно будут одинаковыми в системах POSIX. Я не знаю, насколько Windows Vista или 7 совместимы с POSIX, но, вероятно, подобное определение можно найти в документации Microsoft.

...