Thread: Re: Catastrophic changes to PostgreSQL 8.4

Re: Catastrophic changes to PostgreSQL 8.4

From
Greg Stark
Date:
[moving this point to -hackers]

On Wed, Dec 2, 2009 at 10:49 PM, Adrian Klaver <aklaver@comcast.net> wrote:
> When I tried the above Postgres did not ignore the command, instead it gave me
> the following error and did not create the database:
> CREATE DATABASE bacula ENCODING 'SQL_ASCII';
> ERROR:  new encoding (SQL_ASCII) is incompatible with the encoding of the
> template database (UTF8)
> HINT:  Use the same encoding as in the template database, or use template0 as
> template.

Actually I'm kind of surprised at this. I don't see a reason not to
allow converting a template to SQL_ASCII from any encoding given that
we're going to allow them to put random bytes into the database
afterwards. Why not let them start with random bytes?


--
greg


Re: Catastrophic changes to PostgreSQL 8.4

From
Tom Lane
Date:
Greg Stark <gsstark@mit.edu> writes:
>> CREATE DATABASE bacula ENCODING 'SQL_ASCII';
>> ERROR: �new encoding (SQL_ASCII) is incompatible with the encoding of the
>> template database (UTF8)
>> HINT: �Use the same encoding as in the template database, or use template0 as
>> template.

> Actually I'm kind of surprised at this. I don't see a reason not to
> allow converting a template to SQL_ASCII from any encoding given that
> we're going to allow them to put random bytes into the database
> afterwards. Why not let them start with random bytes?

Hm, that's a good point, although we should still enforce that the new
database's LC_xxx settings be C/POSIX if it's SQL_ASCII.  My guess is
that the initdb environment had some non-C locale, so this example would
have failed the next error check anyway.
        regards, tom lane


Re: Catastrophic changes to PostgreSQL 8.4

From
Josh Berkus
Date:
> On Wed, Dec 2, 2009 at 10:49 PM, Adrian Klaver <aklaver@comcast.net> wrote:
>> When I tried the above Postgres did not ignore the command, instead it gave me
>> the following error and did not create the database:
>> CREATE DATABASE bacula ENCODING 'SQL_ASCII';
>> ERROR:  new encoding (SQL_ASCII) is incompatible with the encoding of the
>> template database (UTF8)
>> HINT:  Use the same encoding as in the template database, or use template0 as

Boy, this looks like a reason why app developers should do some beta
testing of new Postgres versions ...

--Josh Berkus