Системный каталог pg_class описывает таблицы и другие объекты, имеющие столбцы или иным образом подобные таблице. Сюда входят индексы (но см. также pg_index),
последовательности (но см. также pg_sequence),
представления, материализованные представления, составные типы и таблицы TOAST;
см. relkind.
Далее, когда подразумеваются все эти виды объектов, используется термин
«отношения». Не все столбцы pg_classприменимы ко всем видам отношений.
Таблица 7.2.11. pg_class Столбцы
Тип столбца Описание |
|---|
Идентификатор строки |
Имя таблицы, индекса, представления и т. д. |
OID пространства имён, содержащего данное отношение |
OID типа данных, соответствующего типу строки этой таблицы,
если таковой имеется; ноль для индексов, последовательностей и таблиц TOAST, которые не имеют
никакой |
Для типизированных таблиц — OID базового составного типа; ноль для всех остальных отношений |
Владелец отношения |
Метод доступа, используемый для обращения к данной таблице или индексу.
Не имеет значения, если отношение является последовательностью или
не имеет файла на диске,
за исключением секционированных таблиц, для которых данное значение (если оно установлено) имеет
приоритет над |
Имя файла данного отношения на диске; нулевое значение означает, что это «отображаемое» отношение, имя дискового файла которого определяется низкоуровневым состоянием |
Табличное пространство, в котором хранится данное отношение. Если указан ноль, подразумевается табличное пространство базы данных по умолчанию. Не имеет значения, если у отношения нет файла на диске, за исключением секционированных таблиц, где это табличное пространство, в котором будут создаваться секции, если оно не было явно указано в команде создания. |
Размер физического представления данной таблицы на диске в страницах (размером
|
Количество актуальных строк в таблице. Это лишь приблизительная оценка, используемая
планировщиком. Она обновляется командой |
Количество страниц, отмеченных как полностью видимые в
карте видимости таблицы. Это лишь оценочное значение, используемое
планировщиком. Она обновляется командой |
OID таблицы TOAST, связанной с данной таблицей; ноль, если таблица TOAST отсутствует. В таблице TOAST хранятся длинные атрибуты, «вынесенные» во вторичную таблицу. |
Имеет значение true, если это таблица и она имеет (или недавно имела) индексы |
Имеет значение true, если эта таблица является общей для всех баз данных в кластере. Только
определенные системные каталоги (такие как |
|
|
Количество пользовательских столбцов в отношении (системные столбцы не
учитываются). В каталоге должно присутствовать соответствующее количество записей
|
Количество |
Истинно, если таблица имеет (или имела ранее) правила; см.
|
Истинно, если таблица имеет (или имела ранее) триггеры; см.
|
Истинно, если таблица или индекс имеют (или имели ранее) дочерние элементы наследования или секции |
Истинно, если для таблицы включена защита на уровне строк (RLS); см.
|
Принимает значение true, если политика защиты на уровне строк (когда она включена) также применяется к владельцу таблицы; см.
|
Принимает значение true, если отношение заполнено (это справедливо для всех отношений, за исключением некоторых материализованных представлений) |
Столбцы, используемые для формирования «идентификатора репликации» для строк:
|
Принимает значение true, если таблица или индекс является секцией |
Для новых отношений, записываемых во время DDL-операции, требующей перезаписи таблицы, это поле содержит OID исходного отношения; в противном случае — ноль. Это состояние является внутренним; для видимого пользователю отношения данное поле никогда не должно содержать значений, отличных от нуля. |
Все идентификаторы транзакций до указанного были заменены в этой таблице постоянным
(«frozen») идентификатором транзакции. Это поле используется для отслеживания
того, требуется ли очистка (VACUUM) таблицы для предотвращения
зацикливания идентификаторов транзакций или для того, чтобы позволить |
Все идентификаторы мультитранзакций до указанного были заменены в этой таблице
идентификатором транзакции. Это поле используется для отслеживания
требуется ли выполнение очистки (команды VACUUM) для предотвращения зацикливания идентификаторов MultiXact
wraparound или для того, чтобы разрешить |
Привилегии доступа; подробнее см. Раздел 2.2.8 для получения подробных сведений |
Параметры, специфичные для метода доступа, такие как «keyword=value» строк |
Если таблица является секцией (см. |
Некоторые логические флаги в pg_class обновляются
в «ленивом» режиме: они гарантированно имеют значение true, если это соответствует действительности, но
могут не сбрасываться в false немедленно, когда условие перестает
выполняться. Например, relhasindex устанавливается функцией
CREATE INDEX, но никогда не сбрасывается командой
DROP INDEX. Вместо этого, VACUUM сбрасывает
relhasindex если обнаруживается, что у таблицы отсутствуют индексы. Такая
структура позволяет избежать состояний гонки и повышает уровень параллелизма.