The following snippet reveals that 9.3.1 has a bug
in regexp_matches, which uninterruptably keeps CPU
spinning for minutes:
-----8<---------------------------------------------------
\timing
SET statement_timeout = 2;
-- this is only to show statement_timeout is effective here
SELECT count(*) from generate_series(1, 100000);
-- this one is uninterruptable!
SELECT regexp_matches($INPUT$
/a
$b$
$c$d
;
$INPUT$,
$REG$((?:[^'"$;]+|"[^"]*"|'(?:[^']*|'')*'|(\$[^$]*\$).*?\2)+)$REG$, 'g' );
-----8<---------------------------------------------------
The above has been tested to be harmless with PostgreSQL 9.1.11
in that the regexp_matches call is interrupted, but it is NOT
with PostgreSQL 9.3.1.
Is it a known bug ?
Please include my address in replies as I don't get notified
of list activity. Thanks.
--strk;
() ASCII ribbon campaign -- Keep it simple !
/\ http://strk.keybit.net/rants/ascii_mails.txt
--
Sent via pgsql-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers