Eu quero listar todas as partições criadas por triggers dinâmicos no PostgreSQL 9.1.
Consegui gerar uma contagem de partições usando esta resposta relacionada de Frank Heikens .
Eu tenho uma tabela foo
com um gatilho de inserção que cria foo_1
, foo_2
etc. dinamicamente. A partição para inserção é escolhida com base no id da chave primária, um particionamento baseado em intervalo.
É possível exibir todas as partições atualmente em vigor para a tabela foo
?
Use a primeira consulta da resposta que você vinculou e adicione uma
WHERE
cláusula simples para obter as partições de uma única tabela:Use o tipo de identificador de objeto
regclass
para uma consulta muito simples:Lista todas as tabelas filhas de uma determinada tabela pai
parent_schema.foo
. A qualificação do esquema é opcional, asearch_path
visibilidade decide se estiver ausente.Da mesma forma, os nomes de tabela retornados são qualificados pelo esquema e escapam automaticamente quando necessário. Seguro, rápido e simples.
A solução também funciona para particionamento declarativo no Postgres 10 ou posterior porque, citando o manual:
Além disso, para exibir a tabela de origem para qualquer linha recuperada de qualquer tabela: