51.11. pg_class#
51.11. pg_class
Каталог pg_class
описывает таблицы и
другие объекты, которые имеют столбцы или по-другому похожи на
таблицу. Это включает индексы (но см. также pg_index
),
последовательности (но см. также pg_sequence
),
представления, материализованные представления, составные типы и таблицы TOAST;
см. relkind
.
Ниже, когда мы говорим обо всех этих типах объектов, мы говорим о
“отношениях”. Не все столбцы pg_class
имеют смысл для всех видов отношений.
Таблица 51.11. pg_class
Колонки
Тип столбца Описание |
---|
Идентификатор строки |
Имя таблицы, индекса, представления и т. д. |
OID пространства имен, которое содержит данное отношение. |
OID типа данных, который соответствует типу строки этой таблицы,
если таковой имеется; ноль для индексов, последовательностей и таблиц TOAST, которые не имеют записи |
Для типизированных таблиц, OID базового составного типа; ноль для всех остальных отношений. |
Владелец отношения |
Если это таблица или индекс, используется метод доступа (куча, B-дерево, хеш и т. д.); в противном случае ноль (ноль встречается для последовательностей, а также для отношений без хранения, таких как представления). |
Имя файла на диске для данного отношения; ноль означает, что это “отображаемое” отношение, имя файла на диске которого определяется низкоуровневым состоянием. |
Табличное пространство имен, в котором хранится данное отношение. Если значение равно нулю, подразумевается пространство имен по умолчанию для базы данных. (Не имеет смысла, если отношение не имеет файлов на диске). |
Размер представления этой таблицы на диске в страницах (размером
|
Количество активных строк в таблице. Это только приблизительная оценка, используемая планировщиком. Она обновляется с помощью |
Количество страниц, которые помечены как полностью видимые в карте видимости таблицы. Это только приблизительная оценка, используемая планировщиком. Она обновляется с помощью |
OID таблицы TOAST, связанной с этой таблицей, ноль, если таковой нет. Таблица TOAST хранит большие атрибуты “вне основной таблицы” во вторичной таблице. |
True если это таблица и у нее есть (или недавно были) индексы |
True, если эта таблица общая для всех баз данных в кластере. Общими являются только некоторые системные каталоги (например, |
|
|
Количество пользовательских столбцов в отношении (системные столбцы не учитываются). В |
Количество ограничений |
True, если таблица имеет (или когда-либо имела) правила; см. каталог |
True, если у таблицы есть (или когда-либо были) триггеры; см. |
True, если таблица или индекс имеет (или когда-либо имела) какие-либо дочерние таблицы или секции |
True, если для таблицы включена политика на уровне строк; см. каталог |
True, если политика на уровне строк (когда включена) также будет применяться к владельцу таблицы; см. каталог |
True если отношение заполнено (это верно для всех отношений, кроме некоторых материализованных представлений) |
Столбцы, используемые для формирования “идентификатора реплики” для строк:
|
True, если таблица или индекс является разделом |
Для новых отношений, записываемых во время операции DDL, которая требует перезаписи таблицы, это содержит OID исходного отношения; в противном случае ноль. Это состояние видно только внутренне; это поле никогда не должно содержать ничего, кроме нуля для отношения, видимого пользователем. |
Все идентификаторы транзакций до этого были заменены постоянным идентификатором транзакции (“frozen”) в этой таблице. Это используется для отслеживания необходимости очистки таблицы для предотвращения зацикливания идентификатора транзакции или для сжатия |
Все идентификаторы мультитранзакций до этого были заменены идентификатором транзакции в этой таблице. Это используется для отслеживания необходимости очистки таблицы для предотвращения зацикливания идентификаторов мультитранзакций или для возможности уменьшения размера |
Права доступа; см. Раздел 5.7 для получения подробной информации |
Опции, специфичные для метода доступа, в виде строк “ключ=значение” |
Если таблица является разделом (см. |
В pg_class
несколько флагов типа Boolean поддерживаются лениво: они гарантированно устанавливаются в true, если это правильное состояние, но могут не сбрасываться в false немедленно, когда условие больше не выполняется. Например, relhasindex
устанавливается с помощью CREATE INDEX
, но не сбрасывается с помощью DROP INDEX
. Вместо этого VACUUM
сбрасывает relhasindex
, если обнаруживает, что у таблицы нет индексов. Такая организация избегает состязательных ситуаций и улучшает параллелизм.