Re: regex match and special characters

Поиск
Список
Период
Сортировка
От Oleksii Kliukin
Тема Re: regex match and special characters
Дата
Msg-id FF4AA68A-92CA-4975-AC37-CAE2ECE6310C@hintbits.com
обсуждение исходный текст
Ответ на Re: regex match and special characters  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general

On 16. Aug 2018, at 16:57, Tom Lane <tgl@sss.pgh.pa.us> wrote:

Alex Kliukin <alexk@hintbits.com> writes:
Here is a simple SQL statement that gives different results on PostgreSQL 9.6 and PostgreSQL 10+. The space character at the end of the string is actually U+2006 SIX-PER-EM SPACE (http://www.fileformat.info/info/unicode/char/2006/index.htm)

I think the reason for the discrepancy is that in v10 we fixed the regex
locale support so that it could properly classify code points above U+7FF,
cf

https://git.postgresql.org/gitweb/?p=postgresql.git&a=commitdiff&h=c54159d44ceaba26ceda9fea1804f0de122a8f30

This nails down the cause, thanks a lot for the link! Apparently I missed it from PostgreSQL 10 release notes, where it is present in the “Queries” section, although AFAIK it deserved an entry in the "migration to version 10”, as it may potentially make dump/restore from previous versions to version 10 error out if there are table constraints that use regex classes over the Unicode text fields with code points above U+7FF.


So 10 is giving the right answer (i.e. that \s matches U+2006).
9.x is not

Agreed.

Cheers,
Alex

В списке pgsql-general по дате отправления:

Предыдущее
От: Adrian Klaver
Дата:
Сообщение: Re: AW: CTE with JOIN of two tables is much faster than a regularquery
Следующее
От:
Дата:
Сообщение: AW: AW: CTE with JOIN of two tables is much faster than a regular query