On Sun, 19 May 2002, Andriy I Pilipenko wrote:
> Please enter a FULL description of your problem:
> ------------------------------------------------
>
> I've upgraded from 7.0.3 to 7.2.1 and noticed that queries like
>
> SELECT ... WHERE field LIKE 'something%'
>
> take too much time to execute now.
Are you sure that you're running in C locale? If you're unsure,
you can build pg_controldata in contrib and check.
(From comments in recent sources:
/*
* We want test whether the database's LC_COLLATE setting is safe for
* LIKE/regexp index optimization.
*
* The key requirement here is that given a prefix string, say "foo",
* we must be able to generate another string "fop" that is greater
* than all strings "foobar" starting with "foo". Unfortunately, a
* non-C locale may have arbitrary collation rules in which "fop" >
* "foo" is not sufficient to ensure "fop" > "foobar". Until we can
* come up with a more bulletproof way of generating the upper-bound
* string, the optimization is disabled in all non-C locales.
*
* (In theory, locales other than C may be LIKE-safe so this function
* could be different from lc_collate_is_c(), but in a different
* theory, non-C locales are completely unpredicable so it's unlikely
* to happen.)
*/
)