$$$ATTRI
Назначение
Системная таблица $$$ATTRI
предназначена для хранения информации:
-
о столбцах таблиц БД и их атрибутах;
-
о простых и составных индексах (как именованных, так и неименованных).
Максимальное количество записей в таблице равно 1024 К (1048576 записей).
Схема таблицы
Схема записи о столбцах и их атрибутах
Схема таблицы $$$ATTRI
для записей о столбцах и их атрибутах приведена в таблице 1.
Имя столбца | Тип данных | Содержание |
---|---|---|
$$$S21 | integer | Системный идентификатор таблицы. |
$$$S22 | smallint |
Порядковый номер столбца таблицы. Если столбец имеет положительное значение, то запись содержит информацию о столбцах таблиц БД и их атрибутах, если отрицательное – то о простых и составных индексах. |
$$$S23 | char(66) | Имя столбца. |
$$$S24 | byte(80) | Описание атрибутов столбца (таблица 2). |
Структура записи о столбцах и их атрибутах
Структура записи ATTRI
о столбцах и их атрибутах приведена в таблице 2.
Поле | Тип данных | Смещение | Содержание |
---|---|---|---|
PRZNUL | L_BYTE | 0 |
Флаг допустимости NULL-значения:
ПримечаниеЭто поле и все остальные нижеследующие поля таблицы соответствуют столбцу $$$S24. |
TYPATR | L_BYTE | 1 |
Тип данных столбца:
|
Prec | L_BYTE | 2 |
Точность для столбцов типа decimal/numeric. Для геометрических типов содержит идентификатор геометрического типа:
|
Scale | L_BYTE | 3 | Масштаб для столбцов типа decimal/numeric. |
DLN | L_WORD | 4 | Длина столбца в байтах. |
Primary_Key | L_BYTE | 6 | Не используется. |
Unique | L_BYTE | 7 | Не используется. |
KEY | L_BYTE | 8 |
Признак индексирования:
|
NMRAS | L_BYTE | 9 | Номер файла области индексов для индекса по столбцу. |
Default_Null | L_BYTE | 10 | Не используется. |
Foreign | L_BYTE | 11 |
Признак ссылающегося столбца:
|
SDVINKOR | L_WORD | 12 | Номер байта, с которого начинается значение атрибута в неупакованной записи. Подсчет начинается с 0. |
Delete_Action | L_BYTE | 14 |
Наличие операции удаления по ссылочной целостности:
|
Update_Action | L_BYTE | 15 |
Наличие операции обновления по ссылочной целостности:
|
PrimaryOrder | L_BYTE | 16 | Порядковый номер столбца в составном первичном ключе. |
AccessGroup | L_BYTE | 17 | Группа доступа. Определяется мандатным доступом.1) |
AccessLevels | L_BYTE | 18 | Уровни доступа. Старшие 4 бита – RAL, младшие 4 бита – WAL. Определяется мандатным доступом.1) |
CKEYCOUNT | L_BYTE | 19 | Количество составных ключей, в которых задействован данный столбец. |
DEFLEN | L_WORD | 20 | Длина значения по умолчанию (для столбца со строковым типом данных или для столбца типа extfile). |
CharSet | L_WORD | 22 | Идентификатор кодовой страницы, используемой для представления данных столбца. |
PhIndex | L_BYTE | 24 | Признак принадлежности столбца к фразовому индексу. |
Res[3] | L_BYTE | 25 | Зарезервировано. |
RANGE_ID | L_LONG | 28 | Номер страницы файла данных (1.01) системной таблицы $$$SYSRL, в которой содержится информация для ранжированного столбца. |
AUTOINC_BASE | L_LONG | 32 | Начальное значение для AUTOINCREMENT. |
DEFAULT_ID | L_LONG | 36 | Смещение в странице Integrity родительской таблицы, по которому хранится значение по умолчанию. |
CHECK_ID | L_LONG | 40 | Не используется. |
DEF_FILTER | L_LONG | 44 | Идентификатор фильтра полнотекстового поиска по умолчанию. |
FOR_TABLE_ID | L_LONG | 48 | Идентификатор внешней таблицы. |
Foreign_Column_Id | L_LONG | 52 | Не используется. |
REF_ACTIONS | L_LONG | 56 | Не используется. |
CAS_FL | L_LONG | 60 |
Флаги столбца:
|
NMRFPAG | L_LONG | 64 |
Номер первой страницы индекса верхнего уровня. |
NMRLPAG | L_LONG | 68 |
Номер последней страницы индекса верхнего уровня. |
CKEYROWID[2] | L_LONG | 72 |
RowId описателя составного ключа в таблице |
1) Применяется только в СУБД ЛИНТЕР БАСТИОН
Пример
Получить системные атрибуты столбца MODEL пользовательской таблицы SYSTEM.AUTO:
select rowid from $$$attri where $$$s23='MODEL' and $$$s21=(select $$$s11 from $$$sysrl where $$$s12=(select rowid from $$$usr where $$$s34='SYSTEM') and $$$s13='AUTO'); | 852| ! Длина столбца select getword ($$$s24,4) from $$$attri where rowid=852; | 20| ! Признак индексированности столбца select case when getbyte ($$$s24,8)=0 then 'Не индексирован' else 'Индексирован' end from $$$attri where rowid=852; |Не индексирован| ! Кодировка столбца select name from $$$charset where ident=(select getword($$$s24,22) from $$$attri where rowid=852); |CP866 |
Схема записи об индексах таблиц БД
Схема таблицы $$$ATTRI
для записей об индексах таблиц приведена в таблице 3.
Имя столбца | Тип данных | Содержание |
---|---|---|
$$$S21 | integer | Системный идентификатор таблицы. |
$$$S22 | smallint | Порядковый номер индекса таблицы. |
$$$S23 | char(66) | Имя индекса. |
$$$S24 | byte(80) | Описание индекса (таблица 4). |
Структура записи об индексах таблиц БД
Структура записи ATTRI
об индексах приведена в таблице 4.
Поле | Тип данных | Смещение | Содержание |
---|---|---|---|
NMRAS | L_BYTE | 0 |
Номер файла индексов, где хранится информация о данном индексе. Для одностолбцовых именованных индексов это значение равно 255. ПримечаниеЭто поле и все остальные нижеследующие поля таблицы соответствуют столбцу $$$S24. |
Delete_Action | L_BYTE | 1 |
Наличие операции удаления по ссылочной целостности:
|
Update_Action | L_BYTE | 2 |
Наличие операции обновления по ссылочной целостности:
|
AccessGroup | L_BYTE | 3 |
Группа доступа. Определяется мандатным доступом.1) |
AccessLevels | L_BYTE | 4 |
Уровни доступа. Старшие 4 бита – RAL, младшие 4 бита – WAL. Определяется мандатным доступом.1) |
ATRCNT | L_BYTE | 5 |
Количество столбцов в индексе. |
Columns [6] | TCKEYPART | 6 |
Описание столбцов составного индекса. Структура элемента массива TCKEYPART, соответствующая старой версии ключа приведена в таблице 5, новой – в таблице 6. Признак новизны ключа содержится в поле VerType структуры записи таблицы |
DLNKEY | L_WORD | 54 |
Длина составного ключа. |
FOR_TABLE_ID | L_LONG | 56 |
Идентификатор внешней таблицы. |
Foreign_Column_Id | L_LONG | 60 |
Идентификатор внешнего ключа. |
CAS_FL | L_LONG | 64 |
Флаги индекса:
|
TreeTop | L_LONG | 68 |
Номер начальной страницы файла индексов, где хранится информация о данном индексе. |
TreeLab | L_LONG | 72 |
Метка уровня дерева индексов. |
geoType | L_BYTE | 76 |
Не используется. |
Tail | L_BYTE | 77 |
Не используется. |
VerType | L_WORD | 78 |
Версия ключа. Если установлен флаг 0x8000, то составной ключ имеет новую структуру (максимальный размер ключа 1024 байта). |
idxCreationTime | DATE | 80 |
Зарезервировано. |
Res | L_WORD | 86 |
Зарезервировано. |
1) Применяется только в СУБД ЛИНТЕР БАСТИОН
Поле | Тип данных | Содержание |
---|---|---|
Nmratr | L_BYTE |
Порядковый номер данного столбца в составном индексе. |
PartLen | L_BYTE |
Длина столбца. |
PartShf | L_WORD |
Смещение столбца в записи таблицы. |
CharSet | L_WORD |
Идентификатор кодовой страницы столбца. |
PartTyp | L_BYTE |
Тип данных столбца (см. поле TYPATR в таблице 2). |
Tail_byte | L_BYTE |
Не используется. |
Поле | Тип данных | Содержание |
---|---|---|
Nmratr | L_BYTE |
Порядковый номер данного столбца в составном индексе. |
PartTyp | L_BYTE |
Тип данных столбца (см. поле TYPATR в таблице 2). |
PartLen | L_WORD |
Длина столбца. |
PartShf | L_WORD |
Смещение столбца в записи таблицы. |
CharSet | L_WORD |
Идентификатор кодовой страницы столбца. |