Re: Per-column collation
Pavel Stehule <pavel.stehule@gmail.com>
From: Pavel Stehule <pavel.stehule@gmail.com>
To: Peter Eisentraut <peter_e@gmx.net>
Cc: pgsql-hackers@postgresql.org
Date: 2010-11-15T22:13:55Z
Lists: pgsql-hackers
Hello
2010/11/15 Peter Eisentraut <peter_e@gmx.net>:
> On mån, 2010-11-15 at 11:34 +0100, Pavel Stehule wrote:
>> I am checking a patch. I found a problem with initdb
>
> Ah, late night brain farts, it appears. Here is a corrected version.
>
>
yes, it's ok now.
I see still a few issues:
a) default encoding for collate isn't same as default encoding of database
it's minimally not friendly - mostly used encoding is UTF8, but in
most cases users should to write locale.utf8.
b) there is bug - default collate (database collate is ignored)
postgres=# show lc_collate;
lc_collate
────────────
cs_CZ.UTF8
(1 row)
Time: 0.518 ms
postgres=# select * from jmena order by v;
v
───────────
Chromečka
Crha
Drobný
Čečetka
(4 rows)
postgres=# select * from jmena order by v collate "cs_CZ.utf8";
v
───────────
Crha
Čečetka
Drobný
Chromečka
(4 rows)
both result should be same.
isn't there problem in case sensitive collate name? When I use a
lc_collate value, I got a error message
postgres=# select * from jmena order by v collate "cs_CZ.UTF8";
ERROR: collation "cs_CZ.UTF8" for current database encoding "UTF8"
does not exist
LINE 1: select * from jmena order by v collate "cs_CZ.UTF8";
problem is when table is created without explicit collate.
Regards
Pavel Stehule