Bjoern Metzdorf <[EMAIL PROTECTED]> writes:
> I assume I could just remove
> #define USE_WIDE_UPPER_LOWER
> from oracle_compat.c to emulate the old behaviour. But a cleaner fix 
> would be to check if we are using UNICODE and locale is C or POSIX and 
> only then skip USE_WIDE_UPPER_LOWER.

Perhaps it would be reasonable to do something like this:

#ifdef USE_WIDE_UPPER_LOWER
        /*
         * use wide char code only when max encoding length > one
         * and we aren't in C locale
         */
        if (pg_database_encoding_max_length() > 1 &&
            !lc_ctype_is_c())
        {

where lc_ctype_is_c() is the obvious clone of the existing 
lc_collate_is_c() routine.  We can reasonably assume that mbstowcs
is going to be unable to offer any useful behavior in C locale.

Comments?

                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]

Reply via email to