Re: Pathological regexp match
Alvaro Herrera <alvherre@commandprompt.com>
From: Alvaro Herrera <alvherre@commandprompt.com>
To: Michael Glaesemann <michael.glaesemann@myyearbook.com>
Cc: pgsql-hackers@postgresql.org
Date: 2010-01-29T02:59:22Z
Lists: pgsql-hackers
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) -- Alvaro Herrera http://www.CommandPrompt.com/ The PostgreSQL Company - Command Prompt, Inc.