Re: Pathological regexp match
Magnus Hagander <magnus@hagander.net>
From: Magnus Hagander <magnus@hagander.net>
To: Michael Glaesemann <michael.glaesemann@myyearbook.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2010-02-08T13:15:32Z
Lists: pgsql-hackers
2010/2/1 Michael Glaesemann <michael.glaesemann@myyearbook.com>: > > On Jan 31, 2010, at 22:14 , Tom Lane wrote: > >> The Tcl folk accepted that patch, so I went ahead and applied it to >> our code. It would still be a good idea for us to do any testing we >> can on it, though. > > I applied the patch and ran both the test query I submitted as well as original problematic query that triggered the report, and it runs much faster. Thanks for the fix! I did the same, and it does not help in my case. FWIW, the regexp I'm matching is: <pre .*?>(.*?)</pre> (yes, the production system has already been fixed to use a smarter regexp that solves the same problem) The text is about 180Kb. PostgreSQL takes ~40 seconds without the patch, ~36 seconds with it, to extract the match from it. Perl takes 0.016 seconds. -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/