Re: psql display of foreign keys

Поиск
Список
Период
Сортировка
От Alvaro Herrera
Тема Re: psql display of foreign keys
Дата
Msg-id 20190226222757.GA31622@alvherre.pgsql
обсуждение исходный текст
Ответ на Re: psql display of foreign keys  (Michael Paquier <michael@paquier.xyz>)
Ответы Re: psql display of foreign keys  (Michael Paquier <michael@paquier.xyz>)
Список pgsql-hackers
On 2019-Feb-04, Michael Paquier wrote:

> pg_partition_root() has not made it to the finish line yet, still it
> would have been nice to see a rebase, and the patch has been waiting
> for input for 4 weeks now.  So I am marking it as returned with
> feedback.

Thanks for committing pg_partition_root ... but it turns out to be
useless for this purpose.  It turns out that we need to obtain the list
of *ancestors* of the table being displayed, which pg_partition_tree
does not easily give you.  So I ended up adding yet another auxiliary
function, pg_partition_ancestors, which in its current formulation
returns just a lits of OIDs of ancestor tables.  This seems generally
useful, and can be used in conjunction with pg_partition_tree():

alvherre=# select t.* from pg_partition_tree(pg_partition_root('pk11')) t
           join pg_partition_ancestors('pk11', true) a on (t.relid = a.relid);
 relid | parentrelid | isleaf | level 
-------+-------------+--------+-------
 pk    |             | f      |     0
 pk1   | pk          | f      |     1
 pk11  | pk1         | t      |     2
(3 filas)

(A small tweak is to change the return type from OID to regclass.
Docbook additions missing also.)

Anyway, given this function, it's possible to fix the psql display to be
as I showed previously.  Patches attached.

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Allowing extensions to supply operator-/function-specific info
Следующее
От: Paul Ramsey
Дата:
Сообщение: Re: Allowing extensions to supply operator-/function-specific info