storage-common/pgsql/fshow.sql

29 lines
690 B
PL/PgSQL

-- create show functions
create or replace function show_value(type smallint, id bigint) returns text as $$
declare tname text := (select dtname from datatypes as dt where dt.id = type);
begin
return show_value(tname, id);
end;
$$ language plpgsql;
create or replace function show_value(tname text, id bigint) returns text as $$
begin
case tname
when 'node' then
return show_node(id);
else
return text(show_value.id);
end case;
end;
$$ language plpgsql;
create or replace function show_node(nid bigint) returns text as $$
select ns.prefix || ':' || n.name from nodes n
join namespaces ns on ns.id = n.namespace
where n.id = nid;
$$ language sql;