É possível definir tipos compostos recursivos no Postgres 13?
create type "t" as (
"a" int,
"b" t
);
Estou ciente de que posso usar uma tabela com um relacionamento pai-filho. A única desvantagem é que precisarei consultar cada nível aninhado em vez de acessar diretamente os dados aninhados.
Também estou ciente de que posso usar jsonb
, mas não tenho certeza se ele pode acessar os dados aninhados diretamente sem consultar cada nível aninhado?
Quais são as outras alternativas usando apenas PL/pgSQL?
Eu preciso acessar cada nível aninhado separadamente.
Não , definições de tipo "recursivas" não são possíveis no Postgres.
Você não pode fazer referência a um tipo
CREATE TYPE
que ainda não está registrado.(O que terminaria a recursão de qualquer maneira?)