On Fri, Apr 06, 2007 at 03:52:17AM +0200, Rikard Pavelic wrote: > When I select from this function I get an error > > ERROR: record "red" has no field "id" [...] > create function select_ex1(out id int, out name1 varchar, out value1 > int) returns setof record as > $$ > declare red record; > begin > for red in select id, name1, value1 from example1 LOOP > id=red.id; > name1=red.name1; > value1=red.value1; > return next; The columns in the select list match the parameter names so you're selecting the parameters, not the columns in example1. The query is effectively: for red in select NULL, NULL, NULL from example1 loop The code should work if you qualify the columns: for red in select e.id, e.name1, e.value1 from example1 e loop -- Michael Fuhr