Thread: anonymous record as an in parameter

anonymous record as an in parameter

From
Maximilian Tyrtania
Date:
Hi there,

i'd like to write a function (sql or plpgsql) that takes an anonymous record as an in parameter. You know, kind of like
(simplified):

create function f_tablename (p_anyrecord record) returns text as
$body$
select $1.tableoid::regclass::text
$body$
language sql;

...but PG 9.0.3 doesn't like that:
ERROR:  SQL functions cannot have arguments of type record. It also doesn't work with plpgsql.
Is there a way?

Best wishes from Berlin,
Maximilian Tyrtania

Maximilian Tyrtania Software-Entwicklung
10969 Berlin
http://www.contactking.de


Re: anonymous record as an in parameter

From
Merlin Moncure
Date:
On Tue, Mar 29, 2011 at 8:07 AM, Maximilian Tyrtania
<lists@contactking.de> wrote:
> Hi there,
>
> i'd like to write a function (sql or plpgsql) that takes an anonymous record as an in parameter. You know, kind of
like(simplified): 
>
> create function f_tablename (p_anyrecord record) returns text as
> $body$
> select $1.tableoid::regclass::text
> $body$
> language sql;
>
> ...but PG 9.0.3 doesn't like that:
> ERROR:  SQL functions cannot have arguments of type record. It also doesn't work with plpgsql.
> Is there a way?

yes, in C, which is maybe 10 notches up in the difficulty level. my
advice is to cast the record to text, or use an hstore.

merlin