Обсуждение: Cache lookup failed with FUNCTION + TRIGGER

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

Cache lookup failed with FUNCTION + TRIGGER

От
"Stéphane FILLON"
Дата:
I have one table client :

create table client( nocli int4,....
);

create function client() returns opaque as '
begin if new.nocli ISNULL then    raise exception "nocli null"; end if;
end;
' language 'plpgsql';

create trigger client before insert on client
for each row execute procedure client();

When I try to insert a tuple in client I have the following error:

"ERROR: fmgr_info: function 149857: cache lookup failed"

Where does this come from ? That's not the first time that I have this kind
of message!!

Please H E L P !!!!

RedHat 5.2
PostgreSQL 6.5.1


Regards,

Stephane FILLON



Re: [SQL] Cache lookup failed with FUNCTION + TRIGGER

От
Tom Lane
Дата:
"Stéphane FILLON" <fillons@offratel.nc> writes:
> create function client() returns opaque as '
> begin
>   if new.nocli ISNULL then
>      raise exception "nocli null";
>   end if;
> end;
> ' language 'plpgsql';

> create trigger client before insert on client
> for each row execute procedure client();

> When I try to insert a tuple in client I have the following error:

> "ERROR: fmgr_info: function 149857: cache lookup failed"

I'm guessing you dropped and recreated the function without dropping
and recreating the trigger.  It looks like triggers link to functions
on the basis of OID, not name, so after you recreate the function (with
a new OID), the old trigger no longer has a procedure to execute...
        regards, tom lane