Подтвердить что ты не робот

В чем разница между локалями C и Posix на Postgres?

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

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

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

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