On Mon, Sep 12, 2005 at 12:21:22PM -0300, [EMAIL PROTECTED] wrote: > suppose the > > type mycolumn as (field1, varchar, field2 varchar) > and > > field_name = ''field1'' > > and returnValue declared as mycolumn > ... > can i say returnValue.$field_name = ''ok''?
To achieve this in PL/pgSQL you'll need to use a conditional statement (IF field_name = 'field1' THEN ...). I'm not sure if a solution involving EXECUTE is possible; if so then it's probably non-obvious. What version of PostgreSQL are you using, and do you have a requirement to use PL/pgSQL? In 8.0 PL/Perl can return composite types and such an assignment would be trivial: CREATE TYPE mycolumn AS (field1 varchar, field2 varchar); CREATE FUNCTION foo(varchar) RETURNS mycolumn AS $$ my $field_name = $_[0]; my $returnValue = {$field_name => "ok"}; return $returnValue; $$ LANGUAGE plperl IMMUTABLE STRICT; SELECT * FROM foo('field1'); field1 | field2 --------+-------- ok | (1 row) SELECT * FROM foo('field2'); field1 | field2 --------+-------- | ok (1 row) -- Michael Fuhr ---------------------------(end of broadcast)--------------------------- TIP 1: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly