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
>