Recheck condition... - Mailing list pgsql-novice

From Ioannis Anagnostopoulos
Subject Recheck condition...
Date
Msg-id 4FF793C4.2030309@anatec.com
Whole thread Raw
Responses Re: Recheck condition...  (Gurjeet Singh <singh.gurjeet@gmail.com>)
List pgsql-novice
Hello,

I think that my query is as much tuned as possible can. However I am baffled by the "recheck condition" that always follow my index scan. Is this something normal or can I get rid of it somehow?

"HashAggregate  (cost=2141.07..2141.16 rows=4 width=38)"
"  ->  Result  (cost=0.00..2141.03 rows=4 width=38)"
"        ->  Append  (cost=0.00..2140.99 rows=4 width=38)"
"              ->  Seq Scan on message_copies  (cost=0.00..0.00 rows=1 width=68)"
"                    Filter: ((date_part('day'::text, msg_date_rec) = ANY ('{6}'::double precision[])) AND (date_trunc('day'::text, msg_date_rec) = ANY ('{"2012-01-06 00:00:00"}'::timestamp without time zone[])) AND (((((pos_georef1)::text || (pos_georef2)::text) || (pos_georef3)::text) || (pos_georef4)::text) = ANY ('{MKPM2648,MKPM2649,MKPM2650}'::text[])) AND (src_id = ANY ('{1,2,3,4,5,6,7,8,9,10}'::integer[])))"
"              ->  Bitmap Heap Scan on message_copies_wk0 message_copies  (cost=139.41..2140.99 rows=3 width=28)"
"                    Recheck Cond: ((date_trunc('day'::text, msg_date_rec) = ANY ('{"2012-01-06 00:00:00"}'::timestamp without time zone[])) AND (src_id = ANY ('{1,2,3,4,5,6,7,8,9,10}'::integer[])) AND (((((pos_georef1)::text || (pos_georef2)::text) || (pos_georef3)::text) || (pos_georef4)::text) = ANY ('{MKPM2648,MKPM2649,MKPM2650}'::text[])))"
"                    Filter: (date_part('day'::text, msg_date_rec) = ANY ('{6}'::double precision[]))"
"                    ->  Bitmap Index Scan on idx_message_copies_wk0_date_src_pos  (cost=0.00..139.41 rows=507 width=0)"
"                          Index Cond: ((date_trunc('day'::text, msg_date_rec) = ANY ('{"2012-01-06 00:00:00"}'::timestamp without time zone[])) AND (src_id = ANY ('{1,2,3,4,5,6,7,8,9,10}'::integer[])) AND (((((pos_georef1)::text || (pos_georef2)::text) || (pos_georef3)::text) || (pos_georef4)::text) = ANY ('{MKPM2648,MKPM2649,MKPM2650}'::text[])))"


Kind Regards
Yiannis

pgsql-novice by date:

Previous
From: "Oliveiros d'Azevedo Cristina"
Date:
Subject: Re: How can I re-use an expression in a SELECT?
Next
From: Gurjeet Singh
Date:
Subject: Re: Recheck condition...