On 25.10.23 20:32, Jeff Davis wrote:
> But what should the result of UPPER('á' COLLATE UCS_BASIC) be? In
> Postgres, the answer is 'á', but intuitively, one could reasonably
> expect the answer to be 'Á'.
I think that's right. But what would you put into ctype to make that
happen?
> That seems to suggest the standard answer should be 'Á' regardless of
> any COLLATE clause (though I could be misreading). I'm a bit confused
> by that... what's the standard-compatible way to specify the locale for
> UPPER()/LOWER()? If there is none, then it makes sense that Postgres
> overloads the COLLATE clause for that purpose so that users can use a
> different locale if they want.
The standard doesn't have the notion of locale-dependent case conversion.