Using rule with function for view delete gives error on OLD.* type

Поиск
Список
Период
Сортировка
От christine.homer@powerconv.alstom.com
Тема Using rule with function for view delete gives error on OLD.* type
Дата
Msg-id OFF3EEA8D2.D1CE17C4-ON80256FCC.003179C3-80256FCC.003DC893@test.alstom.com
обсуждение исходный текст
Ответы Re: Using rule with function for view delete gives error on OLD.* type  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general

Hi,

Can anyone explain or suggest a workaround for the following:

I am getting the error:

"ERROR:  record type has not been registered"
CONTEXT:  PL/pgSQL function "f_cmplx_prdct_dlte" while storing call arguments into local variables

when I call a function from a delete rule for a view I've created.

The view has 42 fields.

Selecting from the view works OK, and inserting using an insert function called from the insert rule using new.* works OK.

 A delete function called from the delete rule using old.* gives the error above.

The type seems to be in the database correctly.

 I have another similar view, using 45 fields (most of them the same!) with a delete rule and function that works OK.

 I have tried deleting and re-creating the view and its associated functions, the error did not change.

 I get the same error even if the delete function contents are blank

The rule that fails is:

CREATE OR REPLACE RULE rle_cmplx_prdct_dlte AS
    ON DELETE TO complex_product DO INSTEAD  SELECT f_cmplx_prdct_dlte(old.*) AS f_cmplx_prdct_dlte;

The function it calls starts as follows (it fails before the 'raise warning'):

CREATE OR REPLACE FUNCTION bsns_obj.f_cmplx_prdct_dlte(bsns_obj.complex_product)
  RETURNS void AS
$BODY$

DECLARE
        oldrst ALIAS FOR $1;

        fn varchar;

        FnResult varchar;
        intResult integer;
BEGIN
raise warning 'Start of f_cmplx_prdct_dlte';



I am using a Postgres 8 server on Windows 2000, my client is running on Windows XP.

Thanks,


  Christine.
:.________________
CONFIDENTIALITY : This  e-mail  and  any attachments are confidential and may be privileged. If  you are not a named recipient, please notify the sender immediately and do not disclose the contents to another person, use it for any purpose or store or copy the information in any medium.

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

Предыдущее
От: "FERREIRA William (COFRAMI)"
Дата:
Сообщение: Re: pl/perl problem
Следующее
От: Shaun Clements
Дата:
Сообщение: PHP SQL