2010/1/29 Alvaro Herrera <alvhe...@commandprompt.com>: > Hi Michael, > > Michael Glaesemann wrote: >> We came across a regexp that takes very much longer than expected. >> >> PostgreSQL 8.4.1 on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) >> 4.1.2 20080704 (Red Hat 4.1.2-44), 64-bit >> >> SELECT 'ooo...' ~ $r$Z(Q)[^Q]*A.*?(\1)$r$; -- omitted for email brevity > > The ? after .* is pointless. If you remove it, the query returns > immediately. > > (There's a badly needed CHECK_FOR_INTERRUPTS in this code BTW)
Incidentally, I ran across the exact same issue with a non-greedy regexp with a client earlier this week, and put on my TODO to figure out a good place to stick a check for interrupts. Does this mean I don't have to, because you're on it? ;) -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/ -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers