When I send the mail, I saw it, the problem is that the function should return setof void instead of void, then it works, sorry for bothering. pv=# --increase every a in foo by 1, but now in function create or replace function foofunc2() returns setof void as $func$ select foofunc(a) from foo $func$ language sql; pv=# select foofunc2(); foofunc2 ---------- (3 rows) pv=# select * from foo; a ----- 1 11 101 (3 rows) -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general