• Tom Lane's avatar
    Fix up handling of C/POSIX collations. · 176d5bae
    Tom Lane authored
    Install just one instance of the "C" and "POSIX" collations into
    pg_collation, rather than one per encoding.  Make these instances exist
    and do something useful even in machines without locale_t support: to wit,
    it's now possible to force comparisons and case-folding functions to use C
    locale in an otherwise non-C database, whether or not the platform has
    support for using any additional collations.
    
    Fix up severely broken upper/lower/initcap functions, too: the C/POSIX
    fastpath now does what it is supposed to, and non-default collations are
    handled correctly in single-byte database encodings.
    
    Merge the two separate collation hashtables that were being maintained in
    pg_locale.c, and be more wary of the possibility that we fail partway
    through filling a cache entry.
    176d5bae
catversion.h 2.53 KB