49.26. pg_index
В каталоге pg_index
содержится часть информации об индексах. Остальная информация в основном находится в pg_class
.
Таблица 49.26. Столбцы pg_index
Имя | Тип | Ссылки | Описание |
---|---|---|---|
indexrelid | oid |
| OID записи в pg_class для этого индекса |
indrelid | oid |
| OID записи в pg_class для таблицы, к которой относится этот индекс |
indnatts | int2 | Число столбцов в индексе (повторяет значение pg_class.relnatts ) | |
indnkeyatts | int2 | Количество ключевых столбцов в индексе. «Ключевые столбцы» это обычные столбцы, в отличие от «включённых» столбцов. | |
indisunique | bool | Если true, это уникальный индекс | |
indisprimary | bool | Если true, этот индекс представляет первичный ключ таблицы (в этом случае и в поле indisunique должно быть значение true) | |
indisexclusion | bool | Если true, этот индекс поддерживает ограничение-исключение | |
indimmediate | bool | Если true, проверка уникальности осуществляется непосредственно при добавлении данных (неприменимо, если значение indisunique не true) | |
indisclustered | bool | Если true, таблица в последний раз кластеризовалась по этому индексу | |
indisvalid | bool | Если true, индекс можно применять в запросах. Значение false означает, что индекс, возможно, неполный: он будет, тем не менее, изменяться командами INSERT /UPDATE , но безопасно применять его в запросах нельзя. Если он уникальный, свойство уникальности так же не гарантируется. | |
indcheckxmin | bool | Если true, запросы не должны использовать этот индекс, пока поле xmin данной записи в pg_index не окажется ниже их горизонта событий TransactionXmin , так как таблица может содержать оборванные цепочки HOT, с видимыми несовместимыми строками | |
indisready | bool | Если true, индекс готов к добавлению данных. Значение false означает, что индекс игнорируется операциями INSERT /UPDATE . | |
indislive | bool | Если false, индекс находится в процессе удаления и его следует игнорировать для любых целей (включая вопрос применимости HOT) | |
indisreplident | bool | Если true, этот индекс выбран в качестве «идентификатора реплики» командой ALTER TABLE ... REPLICA IDENTITY USING INDEX ... | |
indkey | int2vector |
| Это массив из indnatts значений, указывающих, какие столбцы таблицы индексирует этот индекс. Например, значения 1 3 будут означать, что ключ индекса составляют первый и третий столбцы таблицы. Ноль в этом массиве означает, что соответствующий атрибут индекса определяется выражением со столбцами таблицы, а не просто ссылкой на столбец. |
indcollation | oidvector |
| Для каждого столбца в ключе индекса этот массив содержит OID правила сортировки для применения в этом индексе. |
indclass | oidvector |
| Для каждого столбца в ключе индекса этот массив содержит OID применяемых классов операторов. Подробнее это рассматривается в описании pg_opclass . |
indoption | int2vector | Это массив из indnatts значений, в которых хранятся битовые флаги для отдельных столбцов. Значение этих флагов определяется методом доступа конкретного индекса. | |
indexprs | pg_node_tree | Деревья выражений (в представлении nodeToString() ) для атрибутов индекса, не являющихся простыми ссылками на столбцы. Этот список содержит один элемент для каждого нулевого значения в indkey . Значением может быть NULL, если все атрибуты индекса представляют собой простые ссылки. | |
indpred | pg_node_tree | Дерево выражения (в представлении nodeToString() ) для предиката частичного индекса, либо NULL, если это не частичный индекс. |