50.11. pg_class#
50.11. pg_class
#
Каталог pg_class
описывает таблицы и
другие объекты, которые имеют столбцы или по-другому похожи на
таблицу. Это включает индексы (но см. также pg_index
),
последовательности (но см. также pg_sequence
),
представления, материализованные представления, составные типы и таблицы TOAST;
см. relkind
.
Ниже, когда мы говорим обо всех этих типах объектов, мы говорим о
“отношениях”. Не все столбцы pg_class
имеют смысл для всех видов отношений.
Таблица 50.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
, если обнаруживает, что у таблицы нет индексов. Такая организация избегает состязательных ситуаций и улучшает параллелизм.