From: | Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Subject: | 8.4.0 vs. locales vs. pl/perl? |
Date: | 2009-07-08 16:30:08 |
Message-ID: | 87ljmzkui7.fsf@news-spur.riddles.org.uk |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Having been helping someone out on IRC with what looked initially like
an index corruption problem, it turns out to be (almost certainly) a
locale initialization error.
environment: debian packaged 8.4.0
scenario: restoring a dump results in incorrect indexes for some
specific tables (indexscan order fails to match < comparison or
order resulting from explicit sorts). The dump contains plperl
and plperlu language creation and function definitions; excising
these from the dump removes the problem.
The db locale is en_US.UTF-8 (which appears to be case-insensitive on
this platform: 'C' > 'd' > 'X'), but the incorrect index ordering that
results when the full restore is done is consistent with C locale
(i.e. 'C' > 'X' > 'd').
Looking at the code, the obvious thing that glares out is that the
locale setup in CheckMyDatabase is calling setlocale rather than
pg_perm_setlocale... am I missing something, or is this an obvious
bug?
--
Andrew (irc:RhodiumToad)
From | Date | Subject | |
---|---|---|---|
Next Message | Greg Smith | 2009-07-08 16:38:05 | Re: multi-threaded pgbench |
Previous Message | Stefan Kaltenbrunner | 2009-07-08 16:03:09 | Re: multi-threaded pgbench |