Re: Pathological regexp match
От | Magnus Hagander |
---|---|
Тема | Re: Pathological regexp match |
Дата | |
Msg-id | 9837222c1001290514q3978889as3bba94b84714f69b@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Pathological regexp match (Alvaro Herrera <alvherre@commandprompt.com>) |
Ответы |
Re: Pathological regexp match
|
Список | pgsql-hackers |
2010/1/29 Alvaro Herrera <alvherre@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 HaganderMe: http://www.hagander.net/Work: http://www.redpill-linpro.com/
В списке pgsql-hackers по дате отправления: