Найти раздел в базе данных postgresql через его границы - PullRequest
0 голосов
/ 19 декабря 2018

Как найти раздел в каталоге базы данных по информации о диапазоне (границах) этого раздела?Я разделил таблицу, используя поле даты, и мне нужно найти раздел с помощью этой информации.Я видел, что у меня есть поле "relpartbound" в дочерней таблице каталога, но, похоже, его не так просто найти.

1 Ответ

0 голосов
/ 20 декабря 2018
SELECT
    nmsp_parent.nspname AS parent_schema,
    parent.relname      AS parent,
    nmsp_child.nspname  AS child_schema,
    child.relname       AS child,
    pg_get_expr(child.relpartbound, child.relfilenode) AS child_bounds
FROM pg_inherits
    JOIN pg_class parent ON pg_inherits.inhparent = parent.oid
    JOIN pg_class child ON pg_inherits.inhrelid = child.oid
    JOIN pg_namespace nmsp_parent ON nmsp_parent.oid = parent.relnamespace
    JOIN pg_namespace nmsp_child ON nmsp_child.oid = child.relnamespace
WHERE parent.relname = 'parent_table_name';

Функция PostgreSql "pg_get_expr" декомпилирует внутреннюю форму выражения "child.relpartbound" и даст мне что-то более читабельное, например:

FOR VALUES FROM ('2017-01-01') TO ('2017-01-02')

Ty @a_horse_with_no_name для отличного предложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...