error cache lookup failed in plpgsql function

From: Floris Van Nee <florisvannee(at)Optiver(dot)com>
To: "pgsql-bugs(at)lists(dot)postgresql(dot)org" <pgsql-bugs(at)lists(dot)postgresql(dot)org>
Subject: error cache lookup failed in plpgsql function
Date: 2024-06-18 09:19:41
Message-ID: 148fde845019499db7d14776f46b3ad4@Optiver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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

Responses

Browse pgsql-bugs by date

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