BUG #5743: Regexp engine fails to case-insensitively match multi-byte codepoints - Mailing list pgsql-bugs

From Vlad Romascanu
Subject BUG #5743: Regexp engine fails to case-insensitively match multi-byte codepoints
Date
Msg-id 201011040048.oA40md61095262@wwwmaster.postgresql.org
Whole thread Raw
Responses Re: BUG #5743: Regexp engine fails to case-insensitively match multi-byte codepoints  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
The following bug has been logged online:

Bug reference:      5743
Logged by:          Vlad Romascanu
Email address:      vromascanu@accurev.com
PostgreSQL version: 8.4.3
Operating system:   Windows, Linux
Description:        Regexp engine fails to case-insensitively match
multi-byte codepoints
Details:

Already reported in 2006 but seems to have fallen through the cracks (I can
find no followup.)  Problem still exists in v8.4.3.

Problem still appears to be pg_wc_tolower downcasting to char before calling
tolower() (instead of calling towlower().)

This one of several inconsistencies unfortunately still present in
case-insensitive regexp vs. LOWER(str) [str_lower] treatment (including char
to wchar conversion using MultiByteToWideChar/mbstowcs vs. char2wchar, or
towlower vs. pg_wc_tolower.)

Current workaround is to use LOWER(str) ~ LOWER('regexp').

pgsql-bugs by date:

Previous
From: Dirk Heinrichs
Date:
Subject: Re: BUG #5740: contrib/spi/moddatetime.c doesn't work with timezones.
Next
From: Tom Lane
Date:
Subject: Re: BUG #5743: Regexp engine fails to case-insensitively match multi-byte codepoints