Re: ERROR: column "currec" does not exist while calling function with 'record' (or %rowtype% argument

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: ERROR: column "currec" does not exist while calling function with 'record' (or %rowtype% argument
Дата
Msg-id 3903.1080172247@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: ERROR: column "currec" does not exist while calling function with 'record' (or %rowtype% argument  (günter strubinsky <strubinsky@acm.org>)
Ответы Re: ERROR: column "currec" does not exist while calling function with 'record' (or %rowtype% argument  (günter strubinsky <strubinsky@acm.org>)
Список pgsql-general
=?iso-8859-1?Q?g=FCnter_strubinsky?= <strubinsky@acm.org> writes:
> Sorry, wrong copy!

Okay, looking more closely, you've got two problems here:

> CREATE OR REPLACE FUNCTION public.norm(int8, record)
>   RETURNS int8 AS
> ...
>   LANGUAGE 'plpgsql' VOLATILE;

plpgsql functions don't support inputs declared as type "record"; you
have to use a more specific type name.  norm() would have failed at
runtime had you ever gotten that far.

> declare
> currec record;
> ...
>                 select norm(catrec.cat1,currec) into dmy;

plpgsql also doesn't support passing whole record variables into SQL
commands.  The error message about this is unhelpful :-(.  (I just
improved the message in CVS tip, but actually making it work seems like
a much larger project...)

In this particular case I think you can end-run around it by not
importing the row into plpgsql at all.  Can't you combine

        select * into currec from denorm where theKey=catrec.cat1;
        select norm(catrec.cat1,currec) into dmy;

into

        select norm(catrec.cat1,denorm.*) into dmy
        from denorm where theKey=catrec.cat1;

This should work if norm()'s second argument is declared as type
"denorm" (equivalent to denorm%rowtype).

If you don't want to tie norm() to the denorm row type, you'll need to
pass in the values it needs as separate scalars.

            regards, tom lane

В списке pgsql-general по дате отправления:

Предыдущее
От: Shelby Cain
Дата:
Сообщение: Re: pg_dump "what if?"
Следующее
От: Anony Mous
Дата:
Сообщение: Re: pg_dump "what if?"