The following bug has been logged on the website:
Bug reference: 19431
Logged by: Alex Perov
Email address: perovaa@sbermarketing.ru
PostgreSQL version: 18.3
Operating system: Windows 10
Description:
Hello.
I have a type:
CREATE TYPE public.t_dict AS
(
id bigint,
name text,
gid uuid,
alias text,
bgcolor text,
disabled boolean,
checked boolean,
options jsonb,
"order" integer
);
and function
CREATE OR REPLACE FUNCTION public.f_func(data jsonb, uid bigint, context
text = null, ext text = null, pid bigint = null, pgid uuid = null)
returns setof rd.t_dict
language plpgsql
AS $$
begin
context := coalesce(context, data->>'context', '');
ext = coalesce(ext, '');
create temp table tmp_f_table of public.t_dict;
if dict = 'dict1' then
insert into tmp_f_table (id, name)
select
1, name
from public.tbl1 a;
elsif dict = 'dict2' then
insert into tmp_f_table (id, name, alias)
select
t.objecttypeid, t.objecttype, t.alias
from public.tbl2 t
where (t.objecttypeid <> 0)
and t.active;
elsif dict = 'dict3' then
insert into tmp_f_table (id, name, options)
select
t.linktypeid, t.linktype,
json_object(
'rev': t.reftypeid = (data->'objecttype')::bigint,
'items': t.options
)
from public.tbl3 t;
end if;
return query select * from tmp_f_cpdictionary;
drop table tmp_f_cpdictionary;
end
$$;
when calling a function for dict3, I have an error "could not open relation
with OID 196327".
As far as I know, this is due to a limitation of the data type jsonb equals
8Kb.
Is it possible to fix this error without changing the logic of the code?