amcheck

Проверка логической целостности структуры отношений.
Схема размещения: ext.
Модуль amcheck содержит функции, которые позволяют проверять логическую целостность структуры отношений. Если нарушения структуры не обнаружены, функции отрабатывают без ошибок.
Функции модуля:
  • bt_index_check проверяет, соблюдаются ли в целевом индексе B-tree различные инварианты;
  • bt_index_parent_check проверяет, соблюдаются ли в целевом объекте, индексе B-tree, различные инварианты.
Дополнительная фаза проверки добавляется, если для таблицы, связанной с отношением целевого индекса, аргумент heapallindexed проверяющих функций равен true.

Использование модуля

  • bt_index_check. Синтаксис:
    bt_index_check(index regclass, heapallindexed boolean) returns void
    Пример вывода результата выполнения запроса:
    Раскрыть type=sql
    SELECT bt_index_check(index => c.oid, heapallindexed => i.indisunique),
           c.relname,
           c.relpages
     FROM pg_index i
     JOIN pg_opclass op ON i.indclass[0] = op.oid
     JOIN pg_am am ON op.opcmethod = am.oid
     JOIN pg_class c ON i.indexrelid = c.oid
     JOIN pg_namespace n ON c.relnamespace = n.oid
     WHERE am.amname = 'btree' AND n.nspname = 'pg_catalog'
     -- Не проверять временные таблицы (они могут относиться к другим сеансам):
     AND c.relpersistence != 't'
     -- Функция может выдать ошибку без этих условий:
     AND c.relkind = 'i' AND i.indisready AND i.indisvalid
     ORDER BY c.relpages DESC LIMIT 10;
    
  • bt_index_parent_check. Синтаксис:
    bt_index_parent_check(index regclass, heapallindexed boolean) returns void;

Ссылки на документацию разработчика

Дополнительную информацию по поставляемому модулю amcheck можно получить по ссылке.
Предыдущий раздел
adminpack
Следующий раздел
auth_delay
Была ли страница полезной?