Обсуждение: Function parameters of rowtype

Поиск
Список
Период
Сортировка

Function parameters of rowtype

От
Iker Arizmendi
Дата:
How are function parameters of rowtype specified when
calling them from a client such as libpq? Is there a syntax
similar to that for arrays? (eg, {x, y, z} )

Thanks,
Iker



Re: Function parameters of rowtype

От
Tom Lane
Дата:
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

Re: Function parameters of rowtype

От
Iker Arizmendi
Дата:
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
>


client IP address

От
Iker Arizmendi
Дата:
Does Postgres provide a builtin mechanism to
obtain the IP address of the client that is executing
the current query?

Thanks,
Iker