Обсуждение: Please help cache lookup failed
Hello,
I just upgraded from 6.5.2 to 7.0.2 on SuSE 6.4 Linux, and now I get this
message when trying to insert records:
ERROR: fmgr_info: function 19104: cache lookup failed
This only happens on tables that use refint.so (under contrib/spi in the source
distribution). There is a trigger that calls a function, to check primary or
foreign key. Has anyone else encountered this?
Here's the schema:
create subscriptions table
-------------------
CREATE SEQUENCE "subscriptions_script_id_seq" start 1 increment 1 maxvalue
2147483647 minvalue 1 cache 1 ;
CREATE TABLE "subscriptions" (
"script_id" int4 DEFAULT nextval('subscriptions_script_id_seq') NOT NULL,
"mag_id" int4 NOT NULL,
"paid_amount" money NOT NULL,
"start_date" date NOT NULL,
"end_date" date NOT NULL,
"notes" text);
CREATE UNIQUE INDEX "subscriptions_script_id_key" on "subscriptions" using btree
( "script_id" "int4_ops" );
CREATE TRIGGER "sub_mag_trigger" BEFORE INSERT OR UPDATE ON "subscriptions"
FOR EACH ROW EXECUTE PROCEDURE
check_primary_key ('mag_id', 'magazines', 'mag_id');
create function
------------
CREATE FUNCTION "check_primary_key" ( ) RETURNS opaque AS
'/usr/local/pgsql/lib/modules/refint.so' LANGUAGE 'C';
--
Michael Fraley
fraley@usfca.edu
http://www.usfca.edu/~fraley
This works, but you may create the function first...
And then the trigger...
On Tue, 27 Jun 2000, Michael Fraley wrote:
> ERROR: fmgr_info: function 19104: cache lookup failed
> create subscriptions table
> -------------------
> CREATE SEQUENCE "subscriptions_script_id_seq" start 1 increment 1 maxvalue
> 2147483647 minvalue 1 cache 1 ;
> CREATE TABLE "subscriptions" (
> "script_id" int4 DEFAULT nextval('subscriptions_script_id_seq') NOT NULL,
> "mag_id" int4 NOT NULL,
> "paid_amount" money NOT NULL,
> "start_date" date NOT NULL,
> "end_date" date NOT NULL,
> "notes" text);
> CREATE UNIQUE INDEX "subscriptions_script_id_key" on "subscriptions" using btree
> ( "script_id" "int4_ops" );
> CREATE TRIGGER "sub_mag_trigger" BEFORE INSERT OR UPDATE ON "subscriptions"
> FOR EACH ROW EXECUTE PROCEDURE
> check_primary_key ('mag_id', 'magazines', 'mag_id');
>
> create function
> ------------
> CREATE FUNCTION "check_primary_key" ( ) RETURNS opaque AS
> '/usr/local/pgsql/lib/modules/refint.so' LANGUAGE 'C';
>
>
> --
>
> Michael Fraley
> fraley@usfca.edu
> http://www.usfca.edu/~fraley
>
Michael Fraley <fraley@usfca.edu> writes:
> I just upgraded from 6.5.2 to 7.0.2 on SuSE 6.3 Linux kernel 2.2.13, and
> now I get this message when trying to insert records:
> ERROR: fmgr_info: function 19104: cache lookup failed
Did you perhaps delete and recreate check_primary_key() without
also recreating the triggers that refer to it?
regards, tom lane