Re: Death by regexp_replace - Mailing list pgsql-hackers

From Kevin Grittner
Subject Re: Death by regexp_replace
Date
Msg-id CACjxUsNhFSYT9kCzf7RYb9Cr0e=48J-kjHvrH0BD0xNGuRfR+g@mail.gmail.com
Whole thread Raw
In response to Re: Death by regexp_replace  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Death by regexp_replace  (Benedikt Grundmann <bgrundmann@janestreet.com>)
Re: Death by regexp_replace  (Tom Lane <tgl@sss.pgh.pa.us>)
List 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 by date:

Previous
From: Tom Lane
Date:
Subject: Re: Death by regexp_replace
Next
From: Thom Brown
Date:
Subject: Re: Truncating/vacuuming relations on full tablespaces