Thread: Cache lookup failed with FUNCTION + TRIGGER

Cache lookup failed with FUNCTION + TRIGGER

From
"Stéphane FILLON"
Date:
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

From
Tom Lane
Date:
"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