Skip to content

Подключение pg_pathman к существующему inherit партиционированию #97

@NikitinNikolay

Description

@NikitinNikolay

Здравствуйте!

У нас есть схемы, в которых используется стандартное партиционирование постгрес, при подключении их возникают проблемы.
Текущее партиционирование представляет из себя несколько партиционированных таблиц, связанных внешними ключами.

  1. При вызове create_range_partitions(v_table.oid, 'tbs_id'::text, 1, 1, 0, false) возникает две ошибки:
  1. На таблицу ссылаются внешние ключи! Не понимаю чем они могут в данном случае мешать? Удалять их и потом создавать мне кажется ненужным.
  2. У потомков партиционированной таблицы нет константы pg_pathman.
    В результате приходится хакать так:

insert into public.pathman_config (partrel, expr, parttype, range_interval)
values (v_table.oid, v_attribute, 2, null);
Что очень некрасиво.

  1. При вызове attach_range_partition появляется ошибка:
    У других потомков партиционированной таблицы нет константы pg_pathman.
    Тут делаю сейчас так:
    execute format('ALTER TABLE %s ADD CONSTRAINT %s CHECK (%s)',
    a_child_table,
    public.build_check_constraint_name(v_child_oid),
    public.build_range_condition(v_child_oid, 'tbs_id', a_tbs_id, a_tbs_id + 1)

В общем хотелось бы иметь штатный механизм подключения pg_pathman, чтобы не заниматься хаками.

С уважением,
Никитин Николай.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions