Chris,
> FOR this_record IN
> EXECUTE ''SELECT ''
> || quote_ident($1)
> || ''FROM ''
> || quote_ident($2)
> LOOP
> list := list || '', '' || this_record.$1 ;
> END LOOP;
>
> As expected, accessing a field via this_record.$1
> does not work.
> Can it be done otherwise?
Yes. Alias the columns:
FOR this_record IN
EXECUTE ''SELECT ''
|| quote_ident($1)
|| '' AS col1 FROM ''
|| quote_ident($2)
|| '' AS col2'' LOOP
list := list || '', '' || this_record.col1 ;
END LOOP;