Shouldn't PostgreSQL behave in a different way in this case? (e.g. just
not use the index):
Table "public.forum_messages"
message_id | integer | not null default
nextval('forum_messages_message_id_seq'::text) parent_userid | integer | supersededby |
integer | default 0
"forum_messages_pkey" primary key, btree (message_id) "idx_supersede" hash (supersededby) WHERE (supersededby >
0)
# select m1.message_id,m2.message_id,m1.parent_userid,m2.parent_userid
from forum_messages m1, forum_messages m2 where
m2.supersededby=m1.message_id and m2.supersededby>0;
ERROR: hash indexes do not support whole-index scans
Regards, Marinos