Re: Death by regexp_replace

Поиск
Список
Период
Сортировка
От Kevin Grittner
Тема Re: Death by regexp_replace
Дата
Msg-id CACjxUsNhFSYT9kCzf7RYb9Cr0e=48J-kjHvrH0BD0xNGuRfR+g@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Death by regexp_replace  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Death by regexp_replace  (Benedikt Grundmann <bgrundmann@janestreet.com>)
Re: Death by regexp_replace  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On Fri, Jan 15, 2016 at 9:33 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

>> *WARNING DO NOT DO THIS ON A PRODUCTION BOX*
>> select regexp_replace('VODI GR,VOD LN,VOD LN,VODN MM,VODPF US,VOD US,VZC
>> LN', '([^,]+)(,*\1)+', '\1');

> This responds to cancel just fine for me.

> (FWIW, I think you probably wanted ,+ not ,* in the regex, else there's
> practically no constraint there, leading to having to consider O(N^2)
> or more possibilities.)

On master (commit cf7dfbf2) it responds to pg_cancel_backend(),
but it seems to be in an endless loop until you do that.

-- 
Kevin Grittner
EDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Death by regexp_replace
Следующее
От: Thom Brown
Дата:
Сообщение: Re: Truncating/vacuuming relations on full tablespaces