> Using a functional index you can define an index around the way you
> access the data. There is no faster or better way to do it...this is a
> mathematical truth, not a problem with the planner. Why not use the
> right tool for the job? A boolean index is super-efficient both in disk
> space and cache utilization.
Thanks for your constructive criticism, you're absolutely right.
I had to modify your "return" for a "select":
create function rankeable (bigint, bigint) returns boolean as '
select case when $1 > 0 or $2 > 0 then true else false end;'
language sql immutable;
and it works great.