Re: Function parameters of rowtype - Mailing list pgsql-general

From Iker Arizmendi
Subject Re: Function parameters of rowtype
Date
Msg-id 402A67FF.3030502@research.att.com
Whole thread Raw
In response to Re: Function parameters of rowtype  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses client IP address
List pgsql-general
But what if there is no table? Instead, is there
some way to specify the row tuple explicitly, similar
to what is done for arrays? I'd like to create a type
and define an instance of that type as part of the
SQL statement. For example,

    CREATE TYPE user_t
    {
       id varchar,
       pwd varchar
    };

    CREATE FUNCTION add_user(user_t)
    RETURNS INT4 AS
    DECLARE
       p_user ALIAS FOR $1;
    BEGIN
       INSERT INTO user (id, pwd)
       VALUES (p_user.id, p_user.pwd);
       -- etc, etc, etc
    END

then, from the client I might do something like:

    SELECT add_user('{john, john123}');

with something like this I can get around Postgres'
limit of 32 parameters without having to compile a
custom version of the DB. One of the entities we're
working has many more than 32 parts which I'd rather
not have to split.

Regards,
Iker


Tom Lane wrote:
> Iker Arizmendi <iker@research.att.com> writes:
>
>>How are function parameters of rowtype specified when
>>calling them from a client such as libpq?
>
>
> Something like
>     select myfunc(t.*) from tab t where ...
>
>             regards, tom lane
>


pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: DB cache size strategies
Next
From: Richard Huxton
Date:
Subject: Re: pl/pythonu