Planner: rows=1 after "similar to" where condition. - Mailing list pgsql-general

From Joris Dobbelsteen
Subject Planner: rows=1 after "similar to" where condition.
Date
Msg-id E4953B65D9E5054AA6C227B410C56AA9C3AF@exchange1.joris2k.local
Whole thread Raw
Responses Re: Planner: rows=1 after "similar to" where condition.
List pgsql-general
I seem to have some planner oddity, where it seems to completely
mispredict the output after a regex compare. I've seem it on other
occasions, where it completely screws up the join. You can note the
"rows=1" after the filter.
A similar sitution has occurred when doing a regex filter in a subquery,
which was subsequently predited as 1 row and triggered (oddly enough) a
sequencial scan. Doing the same using "equality" on the result to
substring(<text> from <regex>) seemed to work and produced a useful
plan, since it did a hash-join (as it should have).
Is this a known problem? Otherwise I think I should build a smaller test
case...

Using Postgresql 8.2.6 from Debian Etch-backports.

"Bitmap Heap Scan on log_syslog syslog  (cost=13124.26..51855.25 rows=1
width=270)"
"  Recheck Cond: (((program)::text = 'amavis'::text) AND
((facility)::text = 'mail'::text))"
"  Filter: ***SOME VERY LONG SIMILAR TO REGEX****"
"  ->  BitmapAnd  (cost=13124.26..13124.26 rows=18957 width=0)"
"        ->  Bitmap Index Scan on "IX_log_syslog_program"
(cost=0.00..2223.95 rows=92323 width=0)"
"              Index Cond: ((program)::text = 'amavis'::text)"
"        ->  Bitmap Index Scan on "IX_log_syslog_facility"
(cost=0.00..10899.81 rows=463621 width=0)"
"              Index Cond: ((facility)::text = 'mail'::text)"

- Joris


pgsql-general by date:

Previous
From: "Joris Dobbelsteen"
Date:
Subject: More formal definition of functions in documentation
Next
From: Tom Lane
Date:
Subject: Re: plpgsql function