error cache lookup failed in plpgsql function - Mailing list pgsql-bugs

From Floris Van Nee
Subject error cache lookup failed in plpgsql function
Date
Msg-id 148fde845019499db7d14776f46b3ad4@Optiver.com
Whole thread Raw
Responses Re: error cache lookup failed in plpgsql function
List pgsql-bugs

Hi hackers,

 

I ran into a bug with plpgsql not invalidating its cache.

Experienced it on 15.5, but it reproduces on master.

It involves a function that references a custom type

which gets “replaced” by a new type with the same name.

Reconnecting makes the error go away.

 

Reproducible example:

 

create type test_t as (a int);

create table t1 (a test_t);

insert into t1 (values ('(1)'));

create or replace function test_f()

returns int

language plpgsql

as $function$

declare

  t t1;

begin

  select * into t from t1;

  return (t.a).a;

end;

$function$

;

select test_f(); -- OK

 

-- create a new type and replace the old with the new one

create type test_t2 as (a int);

alter table t1 alter column a type test_t2 using a::text::test_t2;

drop type test_t;

alter type test_t2 rename to test_t;

select test_f(); -- ERROR

 

ERROR:  XX000: cache lookup failed for type 16403

CONTEXT:  PL/pgSQL function test_f() line 6 at RETURN

LOCATION:  format_type_extended, format_type.c:137

 

pgsql-bugs by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: BUG #18513: PG17 build on windows generates postgres.exe.lib instead of postgres.lib
Next
From: Alvaro Herrera
Date:
Subject: Re: BUG #18510: jsonpath does not support trailing backslash at the end of the query