Документация по PostgreSQL 9.4.1 | |||
---|---|---|---|
Пред. | Уровень выше | Глава 48. Системные каталоги | След. |
48.7. pg_attribute
В каталоге pg_attribute хранится информация о колонках таблицы. Для каждой колонки каждой таблицы в pg_attribute существует ровно одна строка. (Также в этом каталоге будут записи для индексов и на самом деле для всех объектов, присутствующих в pg_class.)
Термин «атрибут» равнозначен «колонке» и употребляется по историческим причинам.
Таблица 48-7. Колонки pg_attribute
Имя | Тип | Ссылки | Описание |
---|---|---|---|
attrelid | oid | pg_class.oid | Таблица, к которой принадлежит колонка |
attname | name | Имя колонки | |
atttypid | oid | pg_type.oid | Тип данных этой колонки |
attstattarget | int4 | Колонка attstattarget управляет детализацией статистики, собираемой по этой колонке командой ANALYZE. Нулевое значение указывает, что статистика не собирается. При отрицательном значении используется системное ограничение статистики по умолчанию. Точное значение положительных величин определяется типом данных. Для скалярных типов данных, attstattarget задаёт и целевое число собираемых "самых частых значений", и целевое число создаваемых групп гистограммы. | |
attlen | int2 | Копия pg_type.typlen из записи типа колонки | |
attnum | int2 | Порядковый номер колонки. Обычные колонки нумеруются по возрастанию, начиная с 1. Системные колонки, такие как oid, имеют (обычно) отрицательные номера. | |
attndims | int4 | Число размерностей, если колонка имеет тип массива; 0 в противном случае. (В настоящее время число размерностей массива не контролируется, поэтому любое ненулевое значение по сути означает "это массив".) | |
attcacheoff | int4 | Всегда -1 в постоянном хранилище, но когда запись загружается в память, в этом поле может кешироваться смещение атрибута в строке | |
atttypmod | int4 | В поле atttypmod записывается дополнительное число, связанное с определённым типом данных, указываемое при создании таблицы (например, максимальный размер колонки varchar). Это значение передаётся функциям ввода и преобразования длины конкретного типа. Для типов, которым не нужен atttypmod, это обычно -1. | |
attbyval | bool | Копия pg_type.typbyval из записи типа колонки | |
attstorage | char | Обычно копия pg_type.typstorage из записи типа колонки. Для типов, поддерживающих TOAST, можно изменять это значение после создания колонки и таким образом управлять политикой хранения. | |
attalign | char | Копия pg_type.typalign из записи типа колонки | |
attnotnull | bool | Это поле представляет ограничение «не NULL». Изменив это поле, можно включить или отключить данное ограничение. | |
atthasdef | bool | Колонка имеет значение по умолчанию, в этом случае в каталоге pg_attrdef будет соответствующая запись, определяющая это значение. | |
attisdropped | bool | Колонка была удалена и теперь не является рабочей. Удалённая колонка может по-прежнему физически присутствовать в таблице, но анализатор запросов её игнорирует, так что обратиться к ней из SQL нельзя. | |
attislocal | bool | Колонка определена локально в данном отношении. Заметьте, что колонка может быть определена локально и при этом наследоваться. | |
attinhcount | int4 | Число прямых потомков этой колонки. Колонку с ненулевым числом потомков нельзя удалить или переименовать. | |
attcollation | oid | pg_collation.oid | Заданное для колонки правило сортировки, либо 0, если тип колонки не сортируемый. |
attacl | aclitem[] | Права доступа к колонке, если они были заданы непосредственно для этой колонки | |
attoptions | text[] | Параметры уровня атрибута, в виде строк "ключ=значение" | |
attfdwoptions | text[] | Параметры уровня атрибута для обёрток сторонних данных, в виде строк "ключ=значение" |
В записи удалённой колонки в pg_attribute поле atttypid сбрасывается в ноль, но attlen и другие поля, копируемые из pg_type, сохраняют актуальные значения. Это нужно, чтобы справиться с ситуацией, когда после удаления колонки удаляется и её тип данных, так что записи в pg_type больше не будет. В таких случаях для интерпретации содержимого строки таблицы могут использоваться attlen и другие поля.
Пред. | Начало | След. |
pg_attrdef | Уровень выше | pg_authid |