Обсуждение: pgsql: Improve efficiency of LIKE/ILIKE code, especially for multi-byte

Поиск
Список
Период
Сортировка

pgsql: Improve efficiency of LIKE/ILIKE code, especially for multi-byte

От
adunstan@postgresql.org (Andrew Dunstan)
Дата:
Log Message:
-----------
Improve efficiency of LIKE/ILIKE code, especially for multi-byte charsets,
and most especially for UTF8. Remove unnecessary special cases for bytea
processing and single-byte charset ILIKE.  a ILIKE b is now processed as
lower(a) LIKE lower(b) in all cases. The code is now considerably simpler. All
comparisons are now performed byte-wise, and the text and pattern are also
advanced byte-wise where it is safe to do so - essentially where a wildcard is
not being matched.
Andrew Dunstan, from an original patch by ITAGAKI Takahiro, with ideas from
Tom Lane and Mark Mielke.

Modified Files:
--------------
    pgsql/src/backend/utils/adt:
        like.c (r1.68 -> r1.69)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/like.c.diff?r1=1.68&r2=1.69)
        like_match.c (r1.15 -> r1.16)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/like_match.c.diff?r1=1.15&r2=1.16)