Bruce Momjian <bruce@momjian.us> writes:
> On Mon, Sep 24, 2012 at 10:13:45AM -0400, Tom Lane wrote:
>> FWIW, what I found out last time I touched this code is that on many
>> systems setlocale doesn't bother to return a canonicalized spelling;
>> it just gives back the string you gave it. It might be worth doing
>> what Peter suggests, just to be consistent with what we are doing
>> elsewhere, but I'm not sure how much it will help.
> This comment in initdb.c doesn't sound hopeful:
> * If successful, and canonname isn't NULL, a malloc'd copy of the locale's
> * canonical name is stored there. This is especially useful for figuring out
> * what locale name "" means (ie, the environment value). (Actually,
> * it seems that on most implementations that's the only thing it's good for;
> * we could wish that setlocale gave back a canonically spelled version of
> * the locale name, but typically it doesn't.)
Yeah, I wrote that. We can hope that the OP is running on a platform
where setlocale does canonicalize the name, in which case doing the
same thing in pg_upgrade that initdb does would fix his problem. But
I'm not going to predict success.
regards, tom lane