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
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 |