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?
Re: Why do we let CREATE DATABASE reassign encoding? Re: Why do we let CREATE DATABASE reassign encoding? |
Список | 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 по дате отправления: