[devel] Будущее постгресса

Michael Bochkaryov =?iso-8859-1?q?misha_=CE=C1_rattler=2Ekiev=2Eua?=
Пт Авг 1 01:39:27 MSD 2008


Alexey Borovskoy пишет:
> 1 августа 2008 г. 2:48 пользователь Michael Bochkaryov <misha@> написал:
> 
> 
>>> И как это будет влиять на createdb?
>> Если кластер инициализирован с такой локалью, то создать базу можно будет
>> только с кодировкой UTF8 либо SQL_ASCII.
>>
>> Кроме того, если потребуются collations, отличные от ru_RU, то с этим будет
>> большой облом :)
> 
> А если кластер проинициализирован с SQL_ASCII? Какие грабли будут?

Давайте только не будем путать кодировки с локалью :)
С _кодировкой_ SQL_ASCII (WIN1251, KOI8, UTF8, etc ) создается база, а
не кластер. Она определяет поддерживаемый набор символов для текстовых
строк.

Локаль же задается одна на весь кластер и определяет правила для
сортировки, соответствия символов в разных регистрах и т.д.

Так что выбирать локаль и, соответственно, кодировку БД имеет смысл, 
представляя задачи для БД. Например, если планируется обработка больших 
объемов текста на русском языке, для которого достаточно koi8, имеет 
смысл устанавливать локаль ru_RU.KOI8-R и базы создавать в KOI8. Как 
минимум, операции со строками будут пошустрее работать.


В общем, вот что пишут в доке:
=======================================
      On most modern operating systems, PostgreSQL can determine which
character set is implied by an LC_CTYPE setting, and it will enforce
that only the correct database encoding is used. On older systems it is
your responsibility to ensure that you use the encoding expected by the
locale you have selected. A mistake in this area is likely to lead to
strange misbehavior of locale-dependent operations such as sorting.

      PostgreSQL will allow superusers to create databases with SQL_ASCII
encoding even when LC_CTYPE is not C or POSIX. As noted above, SQL_ASCII
does not enforce that the data stored in the database has any particular
encoding, and so this choice poses risks of locale-dependent
misbehavior. Using this combination of settings is deprecated and may
someday be forbidden altogether.




Подробная информация о списке рассылки Devel