I've tried to write a plpgsql function, and noticed the following
problem : (7.1RC2 rpm from postgresql.org)
When issuing a comand like:
DECLARE rowvar tablaname%ROWTYPE
BEGIN FOR rowvar IN SELECT FROM tablename t WHERE t.xxx=yyy AND t.zzz=qqq LOOP ..... END LOOP;
or just simply issuing a query like
DECLARE rownum int4:=0;
BEGIN SELECT count (*)::int4 INTO rownum FROM tablename t WHERE t.xxx=yyy AND t.zzz=qqq;
only the t.zzz=qqq is realized in the returned rows, the t.xxx=yyy is
skipped, but when executing the query with execute everything is fine.
Is this an undocumented bug? I've noticed that the same query
structure is avoided in the documentation, you use simple queryes with
only one filtering condition... :(