> Here's my general situation: I have a function which takes in an
> optional ARRAY of Ids as so:
>
> RETURN QUERY SELECT * FROM a WHERE a.id = ANY(v_ids) or v_ids is null;
>
If I understand what you are trying to do, if your passed in parameter
is null then select * and if there is something there then check it.
I would put the statement in an if:
if v_ids is null then
RETURN QUERY select * from a;
else
return query SELECT * FROM a WHERE a.id = ANY(v_ids)
end if;
It's definitely better then the loop.
Sim