Why do we let CREATE DATABASE reassign encoding?

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Why do we let CREATE DATABASE reassign encoding?
Дата
Msg-id 865.1240508801@sss.pgh.pa.us
обсуждение исходный текст
Ответы Re: Why do we let CREATE DATABASE reassign encoding?  (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>)
Re: Why do we let CREATE DATABASE reassign encoding?  (Bill Moran <wmoran@potentialtech.com>)
Re: Why do we let CREATE DATABASE reassign encoding?  (Andrew Dunstan <andrew@dunslane.net>)
Список pgsql-hackers
If I have locale set to C, I can do this:

regression=# create database u8 encoding 'utf8';
CREATE DATABASE
regression=# create database l1 encoding 'latin1' template u8;
CREATE DATABASE

Had I had any actual utf8 data in u8, l1 would now contain
encoding-corrupt information.  Given that we've tried to
clamp down on encoding violations in recent releases, I wonder
why this case is still allowed.

(In non-C locales, this will typically fail because the two
different encodings can't both match the locale.  But I don't
believe it's our policy to enforce encoding validity only for
non-C locales.)

We should presumably let the encoding be changed when cloning
from template0, and probably it's reasonable to trust the user
if either source or destination DB encoding is SQL_ASCII.
In other cases I'm thinking it should fail.
        regards, tom lane


В списке pgsql-hackers по дате отправления:

Предыдущее
От: "David E. Wheeler"
Дата:
Сообщение: Re: citex regression fails with de.UTF8 locale
Следующее
От: Heikki Linnakangas
Дата:
Сообщение: Re: Why do we let CREATE DATABASE reassign encoding?