Re: Why do we let CREATE DATABASE reassign encoding? - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Why do we let CREATE DATABASE reassign encoding?
Date
Msg-id 2135.1240512777@sss.pgh.pa.us
Whole thread Raw
In response to Re: Why do we let CREATE DATABASE reassign encoding?  (Bill Moran <wmoran@potentialtech.com>)
Responses Re: Why do we let CREATE DATABASE reassign encoding?  (Bill Moran <wmoran@potentialtech.com>)
List pgsql-hackers
Bill Moran <wmoran@potentialtech.com> writes:
> In response to Tom Lane <tgl@sss.pgh.pa.us>:
>> 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.

> On a pedantic level, doesn't this remove the ability to have
> databases on a single cluster that are different encodings?  I mean,
> if template1 is utf8, and I can't change that using CREATE
> DATABASE, then I'm stuck with utf8 for all databases on that
> cluster ... unless I'm missing something.

You're supposed to clone from template0, not template1, when creating
DBs that are different in either encoding or locale from the
installation default.  We already enforce this except for having missed
the special case of C locale.  (There might be some corner cases
involving UTF8 on Windows, too; not sure about that.)  The reason is
that template0 is expected to contain only ASCII data, but template1
might not.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Andrew Dunstan
Date:
Subject: Re: Why do we let CREATE DATABASE reassign encoding?
Next
From: Heikki Linnakangas
Date:
Subject: Re: Why do we let CREATE DATABASE reassign encoding?