Skip to content

Latest commit

 

History

History
2731 lines (2124 loc) · 94.9 KB

_fblangref-appx04-systables.adoc

File metadata and controls

2731 lines (2124 loc) · 94.9 KB

Системные таблицы

При первоначальном создании базы данных система управления базами данных создаёт множество системных таблиц. В системных таблицах хранятся метаданные — описания всех объектов базы данных. Системные таблицы содержат префикс RDB$ в имени.

Системные таблицы
RDB$AUTH_MAPPING

Сведения об отображении объектов безопасности.

RDB$BACKUP_HISTORY

Хранит историю копирования базы данных с помощью nbackup.

RDB$CHARACTER_SETS

Описание доступных наборов символов в базе данных.

RDB$CHECK_CONSTRAINTS

Соответствие имён триггеров именам ограничений, связанных с характеристиками NOT NULL, ограничениями CHECK и предложениями ON UPDATE и ON DELETE в ограничениях внешнего ключа.

RDB$COLLATIONS

Порядки сортировки для всех наборов символов.

RDB$CONFIG

Виртуальная таблица, отображающая актуальные параметры конфигурации, заданные в firebird.conf, databases.conf или через передаваемые через DPB.

RDB$DATABASE

Основные данные о базе данных.

RDB$DB_CREATORS

Содержит сведения о пользователях имеющих права на создание базы данных. Используется только в том случае, если текущая база данных назначена как база данных безопасности.

RDB$DEPENDENCIES

Сведения о зависимостях между объектами базы данных.

RDB$EXCEPTIONS

Пользовательские исключения базы данных.

RDB$FIELD_DIMENSIONS

Размерности столбцов, являющихся массивами.

RDB$FIELDS

Характеристики столбцов и доменов, как системных, так и созданных пользователем.

RDB$FILES

Сведения о вторичных файлах и файлах теневых копий.

RDB$FILTERS

Данные о BLOB-фильтрах.

RDB$FORMATS

Данные об изменениях таблиц.

RDB$FUNCTION_ARGUMENTS

Параметры хранимых или внешних функций.

RDB$FUNCTIONS

Описание хранимых или внешних функций.

RDB$GENERATORS

Сведения о генераторах (последовательностях).

RDB$INDEX_SEGMENTS

Сегменты индексов.

RDB$INDICES

Определение индексов базы данных (созданных пользователем или системой).

RDB$LOG_FILES

В настоящей версии не используется.

RDB$PACKAGES

Сведения о PSQL пакетах.

RDB$PAGES

Сведения о страницах базы данных.

RDB$PROCEDURE_PARAMETERS

Параметры хранимых процедур.

RDB$PROCEDURES

Описания хранимых процедур.

RDB$PUBLICATION_TABLES

Таблицы включенные в публикацию.

RDB$PUBLICATIONS

Публикации. Публикация — набор таблиц для репликации.

RDB$REF_CONSTRAINTS

Описания именованных ограничений базы данных (внешних ключей).

RDB$RELATION_CONSTRAINTS

Описание всех ограничений на уровне таблиц.

RDB$RELATION_FIELDS

Характеристики столбцов таблиц.

RDB$RELATIONS

Заголовки таблиц и представлений.

RDB$ROLES

Определение ролей.

RDB$SECURITY_CLASSES

Списки управления доступом.

RDB$TIME_ZONES

Список часовых поясов поддерживаемых сервером.

RDB$TRANSACTIONS

Состояние транзакций при обращении к нескольким базам данных.

RDB$TRIGGER_MESSAGES

Сообщения триггеров.

RDB$TRIGGERS

Описания триггеров.

RDB$TYPES

Описание перечислимых типов данных.

RDB$USER_PRIVILEGES

Полномочия пользователей системы.

RDB$VIEW_RELATIONS

Описывает представления. Содержит имена таблиц используемые при определении представления.

RDB$AUTH_MAPPING

Сведения о локальных отображениях объектов безопасности.

Table 1. Описание столбцов таблицы RDB$AUTH_MAPPING
Наименование столбца Тип данных Описание

RDB$MAP_NAME

CHAR(63)

Имя отображения.

RDB$MAP_USING

CHAR(1)

Является ли аутентификация общесерверной (S) или обычной (P).

RDB$MAP_PLUGIN

CHAR(63)

Имя плагина аутентификации, из которого происходит отображение.

RDB$MAP_DB

CHAR(63)

Имя базы данных, в которой прошла аутентификация. Из неё происходит отображение.

RDB$MAP_FROM_TYPE

CHAR(63)

Тип объекта, который будет отображён.

RDB$MAP_FROM

CHAR(255)

Имя объекта, из которого будет произведено отображение.

RDB$MAP_TO_TYPE

SMALLINT

Тип объекта, в который будет произведено отображение:

0 — USER;
1 — ROLE.

RDB$MAP_TO

CHAR(63)

Наименование объекта, в который будет произведено отображение (имя пользователя или роли).

RDB$SYSTEM_FLAG

SMALLINT

Признак: определён пользователем — значение 0; определён в системе — значение 1.

RDB$DESCRIPTION

BLOB TEXT

Произвольное текстовое описание порядка сортировки.

RDB$BACKUP_HISTORY

Таблица хранит историю копирования базы данных при помощи утилиты nbackup.

Table 2. Описание столбцов таблицы RDB$BACKUP_HISTORY
Наименование столбца Тип данных Описание

RDB$BACKUP_ID

INTEGER

Присваиваемый ядром идентификатор.

RDB$TIMESTAMP

DATE

Дата и время выполнения копирования.

RDB$BACKUP_LEVEL

INTEGER

Уровень копирования.

RDB$GUID

CHAR(38)

Уникальный идентификатор.

RDB$SCN

INTEGER

Системный номер.

RDB$FILE_NAME

VARCHAR(255)

Полный путь и имя файла копии.

RDB$CHARACTER_SETS

Содержит наборы символов, доступные в базе данных.

Table 3. Описание столбцов таблицы RDB$CHARACTER_SETS
Наименование столбца Тип данных Описание

RDB$CHARACTER_SET_NAME

CHAR(63)

Имя набора символов.

RDB$FORM_OF_USE

CHAR(63)

Не используется.

RDB$NUMBER_OF_CHARACTERS

INTEGER

Количество символов в наборе. Для существующих наборов символов не используется.

RDB$DEFAULT_COLLATE_NAME

CHAR(63)

Имя порядка сортировки по умолчанию для набора символов.

RDB$CHARACTER_SET_ID

SMALLINT

Уникальный идентификатор набора символов.

RDB$SYSTEM_FLAG

SMALLINT

Системный флаг: имеет значение 1, если набор символов был определён в системе при создании базы данных; значение 0 для набора символов, определённого пользователем.

RDB$DESCRIPTION

BLOB TEXT

Произвольное текстовое описание набора символов.

RDB$FUNCTION_NAME

CHAR(63)

Имя внешней функции для наборов символов, определённых пользователем, доступ к которым осуществляется через внешнюю функцию.

RDB$BYTES_PER_CHARACTER

SMALLINT

Количество байтов для представления одного символа.

RDB$SECURITY_CLASS

CHAR(63)

Может ссылаться на класс безопасности, определённый в таблице RDB$SECURITY_CLASSES для применения ограничений управления доступом для всех пользователей этого набора символов.

RDB$OWNER_NAME

CHAR(63)

Имя пользователя — владельца (создателя) набора символов.

RDB$CHECK_CONSTRAINTS

Описывает соответствие имён триггеров именам ограничений, связанных с характеристиками NOT NULL, ограничениями CHECK и предложениями ON UPDATE, ON DELETE в ограничениях внешнего ключа.

Table 4. Описание столбцов таблицы RDB$CHECK_CONSTRAINTS
Наименование столбца Тип данных Описание

RDB$CONSTRAINT_NAME

CHAR(63)

Имя ограничения. Задаётся пользователем или автоматически генерируется системой.

RDB$TRIGGER_NAME

CHAR(63)

Для ограничения CHECK — это имя триггера, который поддерживает данное ограничение. Для ограничения NOT NULL — это имя столбца, к которому применяется ограничение. Для ограничения внешнего ключа – это имя триггера, который поддерживает предложения ON UPDATE, ON DELETE.

RDB$COLLATIONS

Порядки сортировки для наборов символов.

Table 5. Описание столбцов таблицы RDB$COLLATIONS
Наименование столбца Тип данных Описание

RDB$COLLATION_NAME

CHAR(63)

Имя порядка сортировки.

RDB$COLLATION_ID

SMALLINT

Идентификатор порядка сортировки. Вместе с идентификатором набора символов является уникальным идентификатором порядка сортировки.

RDB$CHARACTER_SET_ID

SMALLINT

Идентификатор набора символов. Вместе с идентификатором порядка сортировки является уникальным идентификатором.

RDB$COLLATION_ATTRIBUTES

SMALLINT

Атрибуты сортировки. Представляет собой битовую маску,

где 1-й бит показывает учитывать ли конечные пробелы при сравнении (0 — NO PAD; 1 — PAD SPACE);
2-й бит показывает является ли сравнение чувствительным к регистру символов (0 — CASE SENSITIVE, 1 — CASE INSENSITIVE);
3-й бит показывает будет ли сравнение чувствительным к акцентам (0 — ACCENT SENSITIVE, 1 — ACCENT SENSITIVE).

Таким образом, значение 5 означает, что сравнение не является чувствительным к конечным пробелам и к акцентированным буквам.

RDB$SYSTEM_FLAG

SMALLINT

Признак: определён пользователем — значение 0; определён в системе — значение 1.

RDB$DESCRIPTION

BLOB TEXT

Произвольное текстовое описание порядка сортировки.

RDB$FUNCTION_NAME

CHAR(63)

В настоящий момент не используется.

RDB$BASE_COLLATION_NAME

CHAR(63)

Имя базового порядка сортировки для данного порядка сортировки.

RDB$SPECIFIC_ATTRIBUTES

BLOB TEXT

Описание особых атрибутов.

RDB$SECURITY_CLASS

CHAR(63)

Может ссылаться на класс безопасности, определённый в таблице RDB$SECURITY_CLASSES для применения ограничений управления доступом для всех пользователей этой сортировки.

RDB$OWNER_NAME

CHAR(63)

Имя пользователя — владельца (создателя) сортировки.

RDB$CONFIG

Виртуальная таблица, отображающая актуальные параметры конфигурации, заданные в firebird.conf, databases.conf или через передаваемые через DPB.

Таблица RDB$CONFIG при необходимости заполняется из структур в памяти, а экземпляр хранится на уровне запроса SQL. По соображениям безопасности доступ разрешен только SYSDBA и владельцу базы данных. Непривилегированный пользователь видит пустое содержимое, ошибка не возникает.

Table 6. Описание столбцов таблицы RDB$CONFIG
Наименование столбца Тип данных Описание

RDB$CONFIG_ID

INTEGER

Уникальный идентификатор записи. Не имеет значения.

RDB$CONFIG_NAME

VARCHAR(63)

Наименование параметра, например “DefaultDbCachePages”, “TempCacheLimit” и т. д.

RDB$CONFIG_VALUE

VARCHAR(255)

Фактическое значение настройки, может задаваться в конфигурации и при необходимости браться из ядра Firebird (в случае неверного значения).

RDB$CONFIG_DEFAULT

VARCHAR(255)

Значение настройки по умолчанию, фиксированное в коде Firebird.

RDB$CONFIG_IS_SET

BOOLEAN

TRUE, если значение установлено пользователем, FALSE в противном случае.

RDB$CONFIG_SOURCE

VARCHAR(255)

Имя конфигурационного файла, в котором был задан параметр, относительно корневой папки firebird, например: “firebird.conf”, “databases.conf” или специальное значение “DPB”, если параметр был установлен в DPB, если значение параметра не было задано, то это поле содержит NULL.

RDB$DATABASE

Основные данные о базе данных. Содержит только одну запись.

Table 7. Описание столбцов таблицы RDB$DATABASE
Наименование столбца Тип данных Описание

RDB$DESCRIPTION

BLOB TEXT

Текст примечания для базы данных.

RDB$RELATION_ID

SMALLINT

Количество таблиц и представлений в базе данных.

RDB$SECURITY_CLASS

CHAR(63)

Класс безопасности, определённый в RDB$SECURITY_CLASSES, для обращения к общим для базы данных ограничениям доступа.

RDB$CHARACTER_SET_NAME

CHAR(63)

Имя набора символов по умолчанию для базы данных, установленного в предложении DEFAULT CHARACTER SET при создании базы данных. NULL — набор символов NONE.

RDB$LINGER

INTEGER

Количество секунд "задержки" (установленной оператором alter database set linger) до закрытия последнего соединения базы данных (в SuperServer). Если задержка не установлена, то содержит NULL.

RDB$SQL_SECURITY

BOOLEAN

Режим SQL SECURITY по умолчанию (DEFINER или INVOKER) для вновь создаваемым объектам:

NULL — режим по умолчанию (INVOKER);
FALSE — INVOKER. Вновь создаваемые объекты выполняются с правами вызывающего пользователя;
TRUE — DEFINER. Вновь создаваемые объекты выполняются с правами определяющего пользователя.

RDB$DB_CREATORS

Содержит сведения о пользователях имеющих права на создание базы данных. Используется только в том случае, если текущая база данных назначена как база данных безопасности.

Table 8. Описание столбцов таблицы RDB$DB_CREATORS
Наименование столбца Тип данных Описание

RDB$USER

CHAR(63)

Имя пользователя или роли, которому даны полномочия на создание базы данных.

RDB$USER_TYPE

SMALLINT

Тип пользователя:

8 — пользователь;
13 — роль.

RDB$DEPENDENCIES

Сведения о зависимостях между объектами базы данных.

Table 9. Описание столбцов таблицы RDB$DEPENDENCIES
Наименование столбца Тип данных Описание

RDB$DEPENDENT_NAME

CHAR(63)

Имя представления, процедуры, триггера, ограничения CHECK или вычисляемого столбца, для которого описывается зависимость.

RDB$DEPENDED_ON_NAME

CHAR(63)

Объект, зависящий от описываемого объекта — таблица, на которую ссылается представление, процедура, триггер, ограничение CHECK или вычисляемый столбец.

RDB$FIELD_NAME

CHAR(63)

Имя столбца в зависимой таблице, на который ссылается представление, процедура, триггер, ограничение CHECK или вычисляемый столбец.

RDB$DEPENDENT_TYPE

SMALLINT

Идентифицирует тип объекта, для которого описывается зависимость:

0 — таблица;
1 — представление;
2 — триггер;
3 — вычисляемый столбец;
4 — ограничение CHECK;
5 — процедура;
6 — выражение для индекса;
9 — столбец;
15 — хранимая функция;
18 — заголовок пакета;
19 — тело пакета.

RDB$DEPENDED_ON_TYPE

SMALLINT

Идентифицирует тип зависимого объекта:

0 — таблица (или её столбец);
1 — представление;
2 — триггер;
3 — вычисляемый столбец;
4 — ограничение CHECK;
5 — процедура;
6 — выражение для индекса;
7 — исключение;
8 — пользователь;
9 — столбец;
10 — индекс;
14 — генератор (последовательность);
15 — UDF или хранимая функция;
17 — сортировка;
18 — заголовок пакета;
19 — тело пакета.

RDB$PACKAGE_NAME

CHAR(63)

Пакет процедуры или функции, для которой описывается зависимость.

RDB$EXCEPTIONS

Пользовательские исключения базы данных.

Table 10. Описание столбцов таблицы RDB$EXCEPTIONS
Наименование столбца Тип данных Описание

RDB$EXCEPTION_NAME

CHAR(63)

Имя пользовательского исключения.

RDB$EXCEPTION_NUMBER

INTEGER

Назначенный системой уникальный номер исключения.

RDB$MESSAGE

CHAR(1023)

Текст сообщения в исключении.

RDB$DESCRIPTION

BLOB TEXT

Произвольное текстовое описание исключения.

RDB$SYSTEM_FLAG

SMALLINT

Признак: определено пользователем = 0; определено системой = 1 или выше.

RDB$SECURITY_CLASS

CHAR(63)

Может ссылаться на класс безопасности, определённый в таблице RDB$SECURITY_CLASSES для применения ограничений управления доступом для всех пользователей этого исключения.

RDB$OWNER_NAME

CHAR(63)

Имя пользователя — владельца (создателя) исключения.

RDB$FIELD_DIMENSIONS

Размерности столбцов, являющихся массивами.

Table 11. Описание столбцов таблицы RDB$FIELD_DIMENSIONS
Наименование столбца Тип данных Описание

RDB$FIELD_NAME

CHAR(63)

Имя столбца, являющегося массивом. Должно содержаться в поле RDB$FIELD_NAME таблицы RDB$FIELDS.

RDB$DIMENSION

SMALLINT

Определяет одну размерность столбца массива. Нумерация размерностей начинается с 0.

RDB$LOWER_BOUND

INTEGER

Нижняя граница этой размерности.

RDB$UPPER_BOUND

INTEGER

Верхняя граница описываемой размерности.

RDB$FIELDS

Характеристики столбцов и доменов, как системных, так и созданных пользователем. В этой таблице хранятся подробности атрибутов всех столбцов.

Note

Столбец RDB$FIELDS.RDB$FIELD_NAME ссылается на RDB$RELATION_FIELDS.RDB$FIELD_SOURCE, но не на RDB$RELATION_FIELDS.RDB$FIELD_NAME.

Table 12. Описание столбцов таблицы RDB$FIELDS
Наименование столбца Тип данных Описание

RDB$FIELD_NAME

CHAR(63)

Уникальное имя домена, созданного пользователем, или домена, автоматически построенного ядром Firebird для столбца таблицы. Во втором случае имя будет начинаться с символов RDB$.

RDB$QUERY_NAME

CHAR(63)

Не используется.

RDB$VALIDATION_BLR

BLOB BLR

Двоичное представление (BLR) выражения SQL, задающее проверку значения CHECK у домена.

RDB$VALIDATION_SOURCE

BLOB TEXT

Оригинальный исходный текст на языке SQL, задающий проверку значения CHECK.

RDB$COMPUTED_BLR

BLOB BLR

Двоичное представление (BLR) выражения SQL, которое используется сервером базы данных для вычисления при обращении к столбцу COMPUTED BY.

RDB$COMPUTED_SOURCE

BLOB TEXT

Оригинальный исходный текст выражения, которое определяет столбец COMPUTED BY.

RDB$DEFAULT_VALUE

BLOB BLR

Значение по умолчанию в двоичном виде BLR.

RDB$DEFAULT_SOURCE

BLOB TEXT

Значение по умолчанию в исходном виде на языке SQL.

RDB$FIELD_LENGTH

SMALLINT

Размер столбца в байтах. FLOAT, DATE, TIME, INTEGER занимают 4 байта. DOUBLE PRECISION, BIGINT, TIMESTAMP и идентификатор BLOB — 8 байтов. Для типов данных CHAR и VARCHAR столбец задаёт максимальное количество байтов, указанное при объявлении строкового домена (столбца).

RDB$FIELD_SCALE

SMALLINT

Отрицательное число задаёт масштаб для столбцов DECIMAL и NUMERIC — количество дробных знаков после десятичной точки.

RDB$FIELD_TYPE

SMALLINT

Код типа данных для столбца:

7 – SMALLINT;
8 – INTEGER;
10 – FLOAT;
12 – DATE;
13 – TIME WITHOUT TIME ZONE;
14 – CHAR или BINARY;
16 – BIGINT;
23 – BOOLEAN;
24 – DECFLOAT(16);
25 – DECFLOAT(34);
26 – INT128;
27 – DOUBLE PRECISION;
28 – TIME WITH TIME ZONE;
29 – TIMESTAMP WITH TIME ZONE; 35 – TIMESTAMP WITHOUT TIME ZONE;
37 – VARCHAR или VARBINARY;
261 – BLOB.

Коды для DECIMAL и NUMERIC имеют тот же размер, что и целые типы, используемые для их хранения.

Для типов BINARY, VARBINARY поле RDB$FIELD_SUB_TYPE = 0, для CHAR и VARCHAR поле RDB$FIELD_SUB_TYPE = 1.

RDB$FIELD_SUB_TYPE

SMALLINT

Для типа данных BLOB задаёт подтип:

  • 0 – не определён;

  • 1 – текст;

  • 2 – BLR;

  • 3 – список управления доступом;

  • 4 – резервируется для дальнейшего использования;

  • 5 – кодированное описание метаданных таблицы;

  • 6 – описание транзакции к нескольким базам данных, которая не завершилась нормально.

Для типа данных CHAR задаёт:

  • 0 – неопределённые данные;

  • 1 – фиксированные двоичные данные.

Для целочисленных типов данных (SMALLINT, INTEGER, BIGINT, INT128) и чисел с фиксированной точкой (NUMERIC, DECIMAL) задаёт конкретный тип данных:

  • 0 или NULL – тип данных соответствует значению в поле RDB$FIELD_TYPE;

  • 1 – NUMERIC;

  • 2 – DECIMAL.

RDB$MISSING_VALUE

BLOB BLR

Не используется.

RDB$MISSING_SOURCE

BLOB TEXT

Не используется.

RDB$DESCRIPTION

BLOB TEXT

Произвольный текст комментария для домена (столбца таблицы).

RDB$SYSTEM_FLAG

SMALLINT

Признак: значение 1 – домен, автоматически созданный системой, значение 0 – домен определён пользователем.

RDB$QUERY_HEADER

BLOB TEXT

Не используется.

RDB$SEGMENT_LENGTH

SMALLINT

Для столбцов BLOB задаёт длину буфера BLOB в байтах. Для остальных типов данных содержит NULL.

RDB$EDIT_STRING

VARCHAR(127)

Не используется.

RDB$EXTERNAL_LENGTH

SMALLINT

Длина столбца в байтах, если он входит в состав внешней таблицы. Всегда NULL для обычных таблиц.

RDB$EXTERNAL_SCALE

SMALLINT

Показатель степени для столбца целого типа данных во внешней таблице; задаётся степенью 10, на которую умножается целое.

RDB$EXTERNAL_TYPE

SMALLINT

Тип данных поля, как он представляется во внешней таблице.

7 – SMALLINT;
8 – INTEGER;
10 – FLOAT;
12 – DATE;
13 – TIME WITHOUT TIME ZONE;
14 – CHAR;
16 – BIGINT;
23 – BOOLEAN;
24 – DECFLOAT(16);
25 – DECFLOAT(34);
26 – INT128;
27 – DOUBLE PRECISION;
28 – TIME WITH TIME ZONE;
29 – TIMESTAMP WITH TIME ZONE;
35 – TIMESTAMP WITHOUT TIME ZONE;
37 – VARCHAR.

Коды для DECIMAL и NUMERIC имеют тот же размер, что и целые типы, используемые для их хранения.

RDB$DIMENSIONS

SMALLINT

Задаёт количество размерностей массива, если столбец был определён как массив. Для столбцов, не являющихся массивами, всегда NULL.

RDB$NULL_FLAG

SMALLINT

Указывает, может ли столбец принимать пустое значение (в поле будет значение NULL) или не может (в поле будет содержаться значение 1).

RDB$CHARACTER_LENGTH

SMALLINT

Длина столбцов CHAR или VARCHAR в символах (не в байтах).

RDB$COLLATION_ID

SMALLINT

Идентификатор порядка сортировки для символьного столбца или домена. Если не задан, значением поля будет 0.

RDB$CHARACTER_SET_ID

SMALLINT

Идентификатора набора символов для символьного столбца, столбца BLOB или домена.

RDB$FIELD_PRECISION

SMALLINT

Указывает общее количество цифр для числового типа данных с фиксированной точкой (DECIMAL и NUMERIC). Для целочисленных типов данных значением является 0, для всех остальных типов данных – NULL.

RDB$SECURITY_CLASS

CHAR(63)

Может ссылаться на класс безопасности, определённый в таблице RDB$SECURITY_CLASSES для применения ограничений управления доступом для всех пользователей этого домена.

RDB$OWNER_NAME

CHAR(63)

Имя пользователя – владельца (создателя) домена.

RDB$FILES

Сведения о вторичных файлах и файлах оперативных копий.

Table 13. Описание столбцов таблицы RDB$FILES
Наименование столбца Тип данных Описание

RDB$FILE_NAME

VARCHAR(255)

Полный путь к файлу и имя вторичного файла базы данных в многофайловой базе данных или файла оперативной копии.

RDB$FILE_SEQUENCE

SMALLINT

Порядковый номер вторичного файла в последовательности или номер файла копии в наборе оперативных копий.

RDB$FILE_START

INTEGER

Начальный номер страницы вторичного файла или файла оперативной копии.

RDB$FILE_LENGTH

INTEGER

Длина файла в страницах базы данных.

RDB$FILE_FLAGS

SMALLINT

Для внутреннего использования.

RDB$SHADOW_NUMBER

SMALLINT

Номер набора оперативных копий. Если строка описывает вторичный файл базы данных, то значением поля будет NULL или 0.

RDB$FILTERS

Содержит данные о BLOB-фильтрах.

Table 14. Описание столбцов таблицы RDB$FILTERS
Наименование столбца Тип данных Описание

RDB$FUNCTION_NAME

CHAR(63)

Уникальное имя фильтра BLOB.

RDB$DESCRIPTION

BLOB TEXT

Написанная пользователем документация о фильтре BLOB и используемых двух подтипах.

RDB$MODULE_NAME

VARCHAR(255)

Имя динамической библиотеки / совместно используемого объекта, где расположен код фильтра BLOB.

RDB$ENTRYPOINT

CHAR(255)

Точка входа в библиотеке фильтров для этого фильтра BLOB.

RDB$INPUT_SUB_TYPE

SMALLINT

Подтип BLOB для преобразуемых данных.

RDB$OUTPUT_SUB_TYPE

SMALLINT

Подтип BLOB, в который преобразуются входные данные.

RDB$SYSTEM_FLAG

SMALLINT

Признак: внешне определённый фильтр (т.е. определённый пользователем = значение 0, внутренне определённый = значение 1 или более)

RDB$SECURITY_CLASS

CHAR(63)

Может ссылаться на класс безопасности, определённый в таблице RDB$SECURITY_CLASSES для применения ограничений управления доступом для всех пользователей этого BLOB фильтра.

RDB$OWNER_NAME

CHAR(63)

Имя пользователя — владельца (создателя) BLOB фильтра.

RDB$FORMATS

Таблица RDB$FORMATS хранит данные об изменениях метаданных таблиц. Каждый раз, когда метаданные таблицы изменяются, таблица получает новый номер формата. Когда номер формата любой таблицы достигает 255 (или 32000 для представлений), вся база данных становится недоступной для работы с ней. В этом случае необходимо выполнить резервное копирование с помощью утилиты gbak, после чего восстановить эту копию и продолжить работу с заново созданной базой данных.

Table 15. Описание столбцов таблицы RDB$FORMATS
Наименование столбца Тип данных Описание

RDB$RELATION_ID

SMALLINT

Идентификатор таблицы или представления.

RDB$FORMAT

SMALLINT

Идентификатор формата таблицы. Форматов может быть 255 для таблиц и 32000 для представлений.

RDB$DESCRIPTOR

BLOB FORMAT

Отображение в виде BLOB столбцов и характеристик данных на момент, когда была создана запись формата.

RDB$FUNCTION_ARGUMENTS

Параметры хранимых или внешних функций.

Table 16. Описание столбцов таблицы RDB$FUNCTION_ARGUMENTS
Наименование столбца Тип данных Описание

RDB$FUNCTION_NAME

CHAR(63)

Имя функции.

RDB$ARGUMENT_POSITION

SMALLINT

Позиция аргумента в списке аргументов.

RDB$MECHANISM

SMALLINT

Механизм передачи параметра для Legacy функций:

0 — по значению;
1 — по ссылке;
2 — через дескриптор;
3 — через дескриптор BLOB.

RDB$FIELD_TYPE

SMALLINT

Код типа данных аргумента:

7 — SMALLINT;
8 — INTEGER;
12 — DATE;
13 — TIME WITHOUT TIME ZONE;
14 — CHAR;
16 — BIGINT;
23 — BOOLEAN;
24 — DECFLOAT(16);
25 — DECFLOAT(34);
26 — INT128;
27 — DOUBLE PRECISION;
28 – TIME WITH TIME ZONE;
29 – TIMESTAMP WITH TIME ZONE;
35 — TIMESTAMP WITHOUT TIME ZONE;
37 — VARCHAR;
40 — CSTRING;
45 — blob id;
261 — BLOB.

RDB$FIELD_SCALE

SMALLINT

Масштаб для целого числа или аргумента с фиксированной точкой. Это показатель числа 10.

RDB$FIELD_LENGTH

SMALLINT

Длина аргумента в байтах:

1 — для BOOLEAN;
2 — для SMALLINT;
4 — для INTEGER;
4 — для DATE;
4 — для TIME WITHOUT TIME ZONE;
8 — для TIME WITH TIME ZONE;
8 — для BIGINT;
8 — для DOUBLE PRECISION;
8 — для TIMESTAMP WITHOUT TIME ZONE;
8 — для DECFLOAT(16);
8 — для blob id;
12 — для TIMESTAMP WITH TIME ZONE;
16 — для DECFLOAT(34);
16 — для INT128.

RDB$FIELD_SUB_TYPE

SMALLINT

Для аргумента типа данных BLOB задаёт подтип BLOB.

RDB$CHARACTER_SET_ID

SMALLINT

Идентификатор набора символов для символьного аргумента.

RDB$FIELD_PRECISION

SMALLINT

Количество цифр точности, допустимой для типа данных аргумента.

RDB$CHARACTER_LENGTH

SMALLINT

Длина аргумента CHAR или VARCHAR в символах (не в байтах).

RDB$PACKAGE_NAME

CHAR(63)

Имя пакета функции (если функция упакованная), в которой используется параметр.

RDB$ARGUMENT_NAME

CHAR(63)

Имя параметра.

RDB$FIELD_SOURCE

CHAR(63)

Имя домена, созданного пользователем (при использовании ссылки на домен вместо типа), или домена, автоматически построенного системой для параметра функции. Во втором случае имя будет начинаться с символов RDB$.

RDB$DEFAULT_VALUE

BLOB BLR

Значение по умолчанию на языке BLR.

RDB$DEFAULT_SOURCE

BLOB TEXT

Значение по умолчанию в исходном виде на языке SQL.

RDB$COLLATION_ID

SMALLINT

Идентификатор используемого порядка сортировки для символьного параметра.

RDB$NULL_FLAG

SMALLINT

Признак допустимости пустого значения NULL.

RDB$ARGUMENT_MECHANISM

SMALLINT

Механизм передачи параметра для не Legacy функций:

0 — по значению;
1 — по ссылке;
2 — через дескриптор;
3 — через дескриптор BLOB.

RDB$FIELD_NAME

CHAR(63)

Имя столбца, на которое ссылается параметр с помощью предложения TYPE OF COLUMN.

RDB$RELATION_NAME

CHAR(63)

Имя таблицы, на которую ссылается параметр с помощью предложения TYPE OF COLUMN.

RDB$SYSTEM_FLAG

SMALLINT

Указывает, является ли параметр определённым системой (значение 1 и выше) или пользователем (значение 0).

RDB$DESCRIPTION

BLOB TEXT

Текст произвольного примечания к параметру.

RDB$FUNCTIONS

Описание хранимых или внешних функций.

Table 17. Описание столбцов таблицы RDB$FUNCTIONS
Наименование столбца Тип данных Описание

RDB$FUNCTION_NAME

CHAR(63)

Имя функции.

RDB$FUNCTION_TYPE

SMALLINT

В настоящий момент не используется.

RDB$QUERY_NAME

CHAR(63)

В настоящий момент не используется.

RDB$DESCRIPTION

BLOB TEXT

Произвольный текст комментария к функции.

RDB$MODULE_NAME

VARCHAR(255)

Имя внешнего модуля (динамической библиотеки), где расположен код функции.

RDB$ENTRYPOINT

CHAR(255)

Имя точки входа в библиотеке, где находится эта функция.

RDB$RETURN_ARGUMENT

SMALLINT

Номер позиции возвращаемого аргумента в списке параметров, соответствующем входным аргументам.

RDB$SYSTEM_FLAG

SMALLINT

Признак определения функции:

0 — определённая системой,
1 — определённая пользователем.

RDB$ENGINE_NAME

CHAR(63)

Имя движка для использования внешних функций. Обычно UDR.

RDB$PACKAGE_NAME

CHAR(63)

Имя пакета, если функция является упакованной.

RDB$PRIVATE_FLAG

SMALLINT

Для неупакованных хранимых функций всегда NULL,
для упакованных 0 — если функция описана в заголовке пакета и
1 — если функция описана или реализована только в теле пакета (не описана в заголовке).

RDB$FUNCTION_SOURCE

BLOB TEXT

Исходный код функции на языке SQL.

RDB$FUNCTION_ID

SMALLINT

Уникальный идентификатор функции.

RDB$FUNCTION_BLR

BLOB BLR

Двоичное представление (BLR) кода функции.

RDB$VALID_BLR

SMALLINT

Указывает, остаётся ли текст хранимой функции корректным после последнего изменения функции при помощи оператора ALTER FUNCTION.

RDB$DEBUG_INFO

BLOB

Содержит отладочную информацию о переменных, используемых в хранимой функции.

RDB$SECURITY_CLASS

CHAR(63)

Может указывать на класс безопасности, определённый в системной таблице RDB$SECURITY_CLASSES, для применения ограничений управления доступом.

RDB$OWNER_NAME

CHAR(63)

Имя пользователя — владельца (создателя) функции.

RDB$LEGACY_FLAG

SMALLINT

Признак legacy стиля функции.

1 — если функция описана в legacy стиле (DECLARE EXTERNAL FUNCTION),
в противном случае 0 (CREATE FUNCTION).

RDB$DETERMINISTIC_FLAG

SMALLINT

Флаг детерминистической функции.

1 — если функция детерминистическая (DETERMINISTIC),
в противном случае — 0.

RDB$SQL_SECURITY

BOOLEAN

С какими правами выполняется функция:

TRUE — с правами определяющего пользователя (SQL SECURITY DEFINER);
FALSE — с правами вызывающего пользователя (SQL SECURITY INVOKER);
NULL — привилегии выполнения наследуется от пакета.

RDB$GENERATORS

Сведения о генераторах (последовательностях).

Table 18. Описание столбцов таблицы RDB$GENERATORS
Наименование столбца Тип данных Описание

RDB$GENERATOR_NAME

CHAR(63)

Уникальное имя генератора.

RDB$GENERATOR_ID

SMALLINT

Назначаемый системой уникальный идентификатор для генератора.

RDB$SYSTEM_FLAG

SMALLINT

Признак:

0 — генератор определён пользователем,
1 или выше — определён системой.
6 — внутренний генератор для identity столбца.

RDB$DESCRIPTION

BLOB TEXT

Произвольный текст примечания к генератору.

RDB$SECURITY_CLASS

CHAR(63)

Может указывать на класс безопасности, определённый в системной таблице RDB$SECURITY_CLASSES, для применения ограничений управления доступом.

RDB$OWNER_NAME

CHAR(63)

Имя пользователя — владельца (создателя) генератора.

RDB$INITIAL_VALUE

BIGINT

Хранит начальное значение генератора или значение генератора, установленное при предыдущем рестарте (WITH RESTART).

RDB$GENERATOR_INCREMENT

INTEGER

Шаг приращения генератора при использовании оператора NEXT VALUE FOR.

RDB$INDEX_SEGMENTS

Сегменты и позиции индексов. Таблица описывает все столбцы таблицы, входящие в состав конкретного индекса. Для каждого столбца индекса создаётся отдельная строка в данной таблице.

Table 19. Описание столбцов таблицы RDB$INDEX_SEGMENTS
Наименование столбца Тип данных Описание

RDB$INDEX_NAME

CHAR(63)

Имя индекса, к которому относится данный сегмент. Должно соответствовать главной записи в системной таблице RDB$INDICES.

RDB$FIELD_NAME

CHAR(63)

Имя одного из столбцов, входящего в состав индекса. Должно соответствовать значению в столбце RDB$FIELD_NAME в таблице RDB$RELATION_FIELDS.

RDB$FIELD_POSITION

SMALLINT

Позиция столбца в индексе. Нумерация начинается с нуля.

RDB$STATISTICS

DOUBLE PRECISION

Последнее известное (рассчитанное) значение селективности индекса по данному столбцу.

RDB$INDICES

Определение индексов базы данных (созданных пользователем или системой). Описывает каждый индекс, созданный пользователем или системой. Для каждого столбца таблицы, входящего в состав индекса, присутствует строка системной таблицы RDB$INDEX_SEGMENTS, где описываются характеристики столбца индекса.

Table 20. Описание столбцов таблицы RDB$INDICES
Наименование столбца Тип данных Описание

RDB$INDEX_NAME

CHAR(63)

Уникальное имя индекса, заданное пользователем или автоматически сгенерированное системой.

RDB$RELATION_NAME

CHAR(63)

Имя таблицы, к которой применяется индекс. Соответствует RDB$RELATION_NAME в строке таблицы RDB$RELATIONS.

RDB$INDEX_ID

SMALLINT

Внутренний (системный) идентификатор индекса.

RDB$UNIQUE_FLAG

SMALLINT

Указывает, является ли индекс уникальным:

0 — не уникальный;
1 — уникальный.

RDB$DESCRIPTION

BLOB TEXT

Произвольный текст комментария к индексу.

RDB$SEGMENT_COUNT

SMALLINT

Количество сегментов (столбцов) в индексе.

RDB$INDEX_INACTIVE

SMALLINT

Указывает, является ли в настоящий момент индекс активным:

0 — активный;
1 — неактивный;
3 — состояние только для Foreign Key. Это состояние существует только во время восстановления данных. Оно необходимо чтобы различать частично “неактивное” состояние некоторых индексов от неактивного состояния всех индексов (gbak -i).

RDB$INDEX_TYPE

SMALLINT

Направление индекса:

0 — ascending;
1 — descending.

RDB$FOREIGN_KEY

CHAR(63)

Имя ассоциированного ограничения внешнего ключа, если существует.

RDB$SYSTEM_FLAG

SMALLINT

Указывает, является ли индекс определённым системой (значение 1 или выше) или пользователем (значение 0).

RDB$EXPRESSION_BLR

BLOB BLR

Выражение, записанное на языке двоичного представления (BLR). Будет использовано для вычисления во время выполнения, когда будут реализованы индексы выражений.

RDB$EXPRESSION_SOURCE

BLOB TEXT

Исходный текст выражения. Будет использовано, когда будут реализованы индексы выражений.

RDB$STATISTICS

DOUBLE PRECISION

Хранит самую последнюю селективность индекса, вычисленную при помощи оператора SET STATISTICS.

RDB$LOG_FILES

В настоящей версии не используется.

Table 21. Описание столбцов таблицы RDB$LOG_FILES
Наименование столбца Тип данных Описание

RDB$FILE_NAME

VARCHAR(255)

Не используется.

RDB$FILE_SEQUENCE

SMALLINT

Не используется.

RDB$FILE_LENGTH

INTEGER

Не используется.

RDB$FILE_PARTITIONS

SMALLINT

Не используется.

RDB$FILE_P_OFFSET

INTEGER

Не используется.

RDB$FILE_FLAGS

SMALLINT

Не используется.

RDB$PACKAGES

Сведения о PSQL пакетах.

Table 22. Описание столбцов таблицы RDB$PACKAGES
Наименование столбца Тип данных Описание

RDB$PACKAGE_NAME

CHAR(63)

Уникальное имя пакета.

RDB$PACKAGE_HEADER_SOURCE

BLOB TEXT

Исходный код заголовка пакета на языке SQL.

RDB$PACKAGE_BODY_SOURCE

BLOB TEXT

Исходный код тела пакета на языке SQL.

RDB$VALID_BODY_FLAG

SMALLINT

Указывает, остаётся ли текст тела пакета корректным после последнего изменения заголовка пакета или его пересоздания.

RDB$SECURITY_CLASS

CHAR(63)

Может указывать на класс безопасности, определённый в системной таблице RDB$SECURITY_CLASSES, для применения ограничений управления доступом.

RDB$OWNER_NAME

CHAR(63)

Имя пользователя – владельца (создателя) пакета.

RDB$SYSTEM_FLAG

SMALLINT

Указывает, что пакет определён пользователем (значение 0) или системой (значение 1 или выше).

RDB$DESCRIPTION

BLOB TEXT

Произвольный текст примечания к пакету.

RDB$SQL_SECURITY

BOOLEAN

С какими правами выполняется процедуры и функции пакета:

TRUE — с правами определяющего пользователя (SQL SECURITY DEFINER);
FALSE — с правами вызывающего пользователя (SQL SECURITY INVOKER).

RDB$PAGES

Сведения о страницах базы данных.

Table 23. Описание столбцов таблицы RDB$PAGES
Наименование столбца Тип данных Описание

RDB$PAGE_NUMBER

INTEGER

Уникальный номер физически созданной страницы базы данных.

RDB$RELATION_ID

SMALLINT

Идентификатор таблицы, для которой выделена эта страница.

RDB$PAGE_SEQUENCE

INTEGER

Последовательный номер страницы по отношению к другим страницам, выделенным для данной таблицы.

RDB$PAGE_TYPE

SMALLINT

Описывает тип страницы. Для системного использования.

RDB$PROCEDURE_PARAMETERS

Описывает параметры хранимых процедур.

Table 24. Описание столбцов таблицы RDB$PROCEDURE_PARAMETERS
Наименование столбца Тип данных Описание

RDB$PARAMETER_NAME

CHAR(63)

Имя параметра.

RDB$PROCEDURE_NAME

CHAR(63)

Имя процедуры, в которой используется параметр.

RDB$PARAMETER_NUMBER

SMALLINT

Последовательный номер параметра.

RDB$PARAMETER_TYPE

SMALLINT

Указывает, является ли параметр входным (значение 0) или выходным (значение 1).

RDB$FIELD_SOURCE

CHAR(63)

Имя домена, созданного пользователем (при использовании ссылки на домен вместо типа), или домена, автоматически построенного системой для параметра процедуры. Во втором случае имя будет начинаться с символов RDB$.

RDB$DESCRIPTION

BLOB TEXT

Текст произвольного примечания к параметру.

RDB$SYSTEM_FLAG

SMALLINT

Указывает, является ли параметр определённым системой (значение 1 и выше) или пользователем (значение 0).

RDB$DEFAULT_VALUE

BLOB BLR

Значение по умолчанию на языке BLR.

RDB$DEFAULT_SOURCE

BLOB TEXT

Значение по умолчанию в исходном виде на языке SQL.

RDB$COLLATION_ID

SMALLINT

Идентификатор используемого порядка сортировки для символьного параметра.

RDB$NULL_FLAG

SMALLINT

Признак допустимости пустого значения NULL.

RDB$PARAMETER_MECHANISM

SMALLINT

Механизм передачи параметра:

0 — по значению;
1 — по ссылке;
2 — через дескриптор;
3 — через дескриптор BLOB.

RDB$FIELD_NAME

CHAR(63)

Имя столбца, на которое ссылается параметр с помощью предложения TYPE OF COLUMN.

RDB$RELATION_NAME

CHAR(63)

Имя таблицы, на которую ссылается параметр с помощью предложения TYPE OF COLUMN.

RDB$PACKAGE_NAME

CHAR(63)

Имя пакета процедуры (если процедура упакованная), в которой используется параметр.

RDB$PROCEDURES

Описывает хранимые процедуры.

Table 25. Описание столбцов таблицы RDB$PROCEDURES
Наименование столбца Тип данных Описание

RDB$PROCEDURE_NAME

CHAR(63)

Имя хранимой процедуры.

RDB$PROCEDURE_ID

SMALLINT

Уникальный идентификатор процедуры.

RDB$PROCEDURE_INPUTS

SMALLINT

Указывает количество входных параметров или их отсутствие (значение NULL).

RDB$PROCEDURE_OUTPUTS

SMALLINT

Указывает количество выходных параметров или их отсутствие (значение NULL).

RDB$DESCRIPTION

BLOB TEXT

Произвольный текст примечания к процедуре.

RDB$PROCEDURE_SOURCE

BLOB TEXT

Исходный код процедуры на языке SQL.

RDB$PROCEDURE_BLR

BLOB BLR

Двоичное представление (BLR) кода процедуры.

RDB$SECURITY_CLASS

CHAR(63)

Может указывать на класс безопасности, определённый в системной таблице RDB$SECURITY_CLASSES, для применения ограничений управления доступом.

RDB$OWNER_NAME

CHAR(63)

Имя пользователя — владельца (создателя) процедуры.

RDB$RUNTIME

BLOB

Описание метаданных процедуры. Внутреннее использование для оптимизации.

RDB$SYSTEM_FLAG

SMALLINT

Указывает, что процедура определена пользователем (значение 0) или системой (значение 1 или выше).

RDB$PROCEDURE_TYPE

SMALLINT

Тип процедуры:

1 — селективная хранимая процедура (содержит в своём составе оператор SUSPEND);
2 — выполняемая хранимая процедура.

RDB$VALID_BLR

SMALLINT

Указывает, остаётся ли текст хранимой процедуры корректным после последнего изменения процедуры при помощи оператора ALTER PROCEDURE.

RDB$DEBUG_INFO

BLOB

Содержит отладочную информацию о переменных, используемых в хранимой процедуре.

RDB$ENGINE_NAME

CHAR(63)

Имя движка для использования внешних процедур. Обычно UDR.

RDB$ENTRYPOINT

CHAR(255)

Имя точки входа в библиотеке, где находится эта процедура.

RDB$PACKAGE_NAME

CHAR(63)

Имя пакета, если процедура является упакованной.

RDB$PRIVATE_FLAG

SMALLINT

Для неупакованных хранимых процедур всегда NULL, для упакованных

0 — если процедура описана в заголовке пакета и
1 — если процедура описана или реализована только в теле пакета (не описана в заголовке).

RDB$SQL_SECURITY

BOOLEAN

С какими правами выполняется процедура:

TRUE — с правами определяющего пользователя (SQL SECURITY DEFINER);
FALSE — с правами вызывающего пользователя (SQL SECURITY INVOKER);
NULL — привилегии выполнения наследуется от пакета.

RDB$PUBLICATION_TABLES

Таблицы включенные в набор репликации (публикацию).

Table 26. Описание столбцов таблицы RDB$PUBLICATION_TABLES
Наименование столбца Тип данных Описание

RDB$PUBLICATION_NAME

CHAR(63)

Имя публикации.

RDB$TABLE_NAME

CHAR(63)

Имя таблицы.

RDB$PUBLICATIONS

Публикации. Публикация — набор таблиц для репликации.

Table 27. Описание столбцов таблицы RDB$PUBLICATIONS
Наименование столбца Тип данных Описание

RDB$PUBLICATION_NAME

CHAR(63)

Имя публикации.

RDB$OWNER_NAME

CHAR(63)

Владелец. Имя пользователя, создавшего публикацию.

RDB$SYSTEM_FLAG

SMALLINT

Указывает, что публикация определена пользователем (значение 0) или системой (значение 1 или выше).

RDB$ACTIVE_FLAG

SMALLINT

Активная ли публикация. 1 — публикация активна, 0 — публикация отключена.

RDB$AUTO_ENABLE

SMALLINT

Признак автоматического добавления новых таблиц в публикацию.

1 — новые таблицы автоматически добавляются в публикацию,
0 — не добавляются (требуется ручное добавление).

Note

В Firebird 4.0 может быть только одна системная публикация — публикация по умолчанию с именем RDB$DEFAULT. В следующий версиях Firebird будет возможность создавать несколько пользовательских публикаций.

RDB$REF_CONSTRAINTS

Описания именованных ограничений базы данных (внешних ключей).

Table 28. Описание столбцов таблицы RDB$REF_CONSTRAINTS
Наименование столбца Тип данных Описание

RDB$CONSTRAINT_NAME

CHAR(63)

Имя ограничения внешнего ключа. Задаётся пользователем или автоматически генерируется системой.

RDB$CONST_NAME_UQ

CHAR(63)

Имя ограничения первичного или уникального ключа, на которое ссылается предложение REFERENCES в данном ограничении.

RDB$MATCH_OPTION

CHAR(7)

Не используется. Текущим значением является FULL во всех случаях.

RDB$UPDATE_RULE

CHAR(11)

Действия по ссылочной целостности, применимые к данному внешнему ключу, когда изменяется первичный (уникальный) ключ родительской таблицы: RESTRICT, NO ACTION, CASCADE, SET NULL, SET DEFAULT.

RDB$DELETE_RULE

CHAR(11)

Действия по ссылочной целостности, применимые к данному внешнему ключу, когда удаляется первичный (уникальный) ключ родительской таблицы: RESTRICT, NO ACTION, CASCADE, SET NULL, SET DEFAULT.

RDB$RELATION_CONSTRAINTS

Описание всех ограничений на уровне таблиц: первичного, уникального, внешнего ключей, ограничений CHECK, NOT NULL.

Table 29. Описание столбцов таблицы RDB$RELATION_CONSTRAINTS
Наименование столбца Тип данных Описание

RDB$CONSTRAINT_NAME

CHAR(63)

Имя ограничения на уровне таблицы, заданное пользователем или автоматически присвоенное системой.

RDB$CONSTRAINT_TYPE

CHAR(11)

Содержит название типа ограничения: PRIMARY KEY, UNIQUE, FOREIGN KEY, CHECK, NOT NULL.

RDB$RELATION_NAME

CHAR(63)

Имя таблицы, к которой применяется это ограничение.

RDB$DEFERRABLE

CHAR(3)

В настоящий момент во всех случаях NO.

RDB$INITIALLY_DEFERRED

CHAR(3)

В настоящий момент во всех случаях NO.

RDB$INDEX_NAME

CHAR(63)

Имя индекса, который поддерживает это ограничение (содержит NULL, если ограничением является CHECK или NOT NULL).

RDB$RELATION_FIELDS

Характеристики столбцов таблиц и представлений.

Table 30. Описание столбцов таблицы RDB$RELATION_FIELDS
Наименование столбца Тип данных Описание

RDB$FIELD_NAME

CHAR(63)

Имя столбца.

RDB$RELATION_NAME

CHAR(63)

Имя таблицы (представления), где присутствует описываемый столбец.

RDB$FIELD_SOURCE

CHAR(63)

Содержит имя домена (определённого пользователем или созданного автоматически системой), на котором основывается данный столбец.

RDB$QUERY_NAME

CHAR(63)

В настоящей версии системы не используется.

RDB$BASE_FIELD

CHAR(63)

Только для представления. Имя столбца из базовой таблицы

RDB$EDIT_STRING

VARCHAR(127)

Не используется.

RDB$FIELD_POSITION

SMALLINT

Позиция столбца в таблице или представлении. Нумерация начинается с 0.

RDB$QUERY_HEADER

BLOB TEXT

Не используется.

RDB$UPDATE_FLAG

SMALLINT

Указывает, является ли столбец обычным столбцом (значение 1) или вычисляемым (значение 0).

RDB$FIELD_ID

SMALLINT

В настоящей версии системы в точности соответствует значению в столбце RDB$FIELD_POSITION.

RDB$VIEW_CONTEXT

SMALLINT

Для столбца представления это внутренний идентификатор базовой таблицы, откуда приходит это поле.

RDB$DESCRIPTION

BLOB TEXT

Примечание к столбцу таблицы или представления.

RDB$DEFAULT_VALUE

BLOB BLR

Записанное в двоичном виде (BLR) значение по умолчанию — предложение DEFAULT, если оно присутствует при описании столбца таблицы (представления).

RDB$SYSTEM_FLAG

SMALLINT

Указывает, определено пользователем (значение 0) или системой (значение 1 или выше).

RDB$SECURITY_CLASS

CHAR(63)

Может ссылаться на класс безопасности, определённый в RDB$SECURITY_CLASSES для применения ограничений управления доступом для всех пользователей этого столбца.

RDB$COMPLEX_NAME

CHAR(63)

Не используется.

RDB$NULL_FLAG

SMALLINT

Указывает, допускает ли столбец значения NULL (значение NULL) или не допускает (значение 1).

RDB$DEFAULT_SOURCE

BLOB TEXT

Исходный текст предложения DEFAULT, если присутствует.

RDB$COLLATION_ID

SMALLINT

Идентификатор последовательности сортировки в составе набора символов для столбца не по умолчанию.

RDB$GENERATOR_NAME

CHAR(63)

Имя внутреннего генератора для реализации identity столбца.

RDB$IDENTITY_TYPE

SMALLINT

Для IDENTITY столбцов определённых

GENERATED BY DEFAULT хранит значение 0,
GENERATED ALWAYS хранит значение 1.

Для не IDENTITY столбцов хранит NULL.

RDB$RELATIONS

Хранит некоторые характеристики таблиц и представлений.

Table 31. Описание столбцов таблицы RDB$RELATIONS
Наименование столбца Тип данных Описание

RDB$VIEW_BLR

BLOB BLR

Для представления содержит на языке BLR спецификации запроса. Для таблицы в поле содержится NULL.

RDB$VIEW_SOURCE

BLOB TEXT

Для представления содержит оригинальный исходный текст запроса на языке SQL (включая пользовательские комментарии). Для таблицы в поле содержится NULL.

RDB$DESCRIPTION

BLOB TEXT

Произвольный текст примечания к таблице (представлению).

RDB$RELATION_ID

SMALLINT

Внутренний идентификатор таблицы (представления).

RDB$SYSTEM_FLAG

SMALLINT

Указывает, создана ли таблица (представление) пользователем (значение 0) или системой (значение 1 или выше).

RDB$DBKEY_LENGTH

SMALLINT

Общая длина ключа. Для таблицы это 8 байтов. Для представления это 8, умноженное на количество таблиц, на которые ссылается представление.

RDB$FORMAT

SMALLINT

Внутреннее использование.

RDB$FIELD_ID

SMALLINT

Количество столбцов в таблице (представлении).

RDB$RELATION_NAME

CHAR(63)

Имя таблицы или представления.

RDB$SECURITY_CLASS

CHAR(63)

Может ссылаться на класс безопасности, определённый в таблице RDB$SECURITY_CLASSES для применения ограничений управления доступом для всех пользователей этой таблицы (представления).

RDB$EXTERNAL_FILE

VARCHAR(255)

Полный путь к внешнему файлу данных, если таблица описана с предложением EXTERNAL FILE.

RDB$RUNTIME

BLOB

Описание метаданных таблицы. Внутреннее использование для оптимизации.

RDB$EXTERNAL_DESCRIPTION

BLOB

Произвольное примечание к внешнему файлу таблицы.

RDB$OWNER_NAME

CHAR(31)

Имя пользователя — владельца (создателя) таблицы или представления.

RDB$DEFAULT_CLASS

CHAR(31)

Класс безопасности по умолчанию. Применяется, когда новый столбец добавляется в таблицу.

RDB$FLAGS

SMALLINT

Внутренние флаги.

RDB$RELATION_TYPE

SMALLINT

Тип описываемого объекта:

  • 0 – постоянная таблица созданная пользователем или системная таблица;

  • 1 – представление;

  • 2 – внешняя таблица;

  • 3 – виртуальная таблица (таблицы мониторинга MON$, псевдотаблицы безопасности SEC$);

  • 4 – GTT уровня соединения (PRESERVE ROWS);

  • 5 – GTT уровня транзакции (DELETE ROWS).

RDB$SQL_SECURITY

BOOLEAN

С какими правами вычисляются вычисляемые столбцы:

TRUE — с правами определяющего пользователя (SQL SECURITY DEFINER);
FALSE или NULL — с правами вызывающего пользователя (SQL SECURITY INVOKER).

RDB$ROLES

Определение ролей.

Table 32. Описание столбцов таблицы RDB$ROLES
Наименование столбца Тип данных Описание

RDB$ROLE_NAME

CHAR(63)

Имя роли.

RDB$OWNER_NAME

CHAR(63)

Имя пользователя-владельца роли.

RDB$DESCRIPTION

BLOB TEXT

Произвольный текст примечания к роли.

RDB$SYSTEM_FLAG

SMALLINT

Системный флаг.

RDB$SECURITY_CLASS

CHAR(63)

Может ссылаться на класс безопасности, определённый в таблице RDB$SECURITY_CLASSES для применения ограничений управления доступом для всех пользователей этой роли.

RDB$SYSTEM_PRIVILEGES

BINARY(8)

Битовый набор с системными привилегиями, предоставленными роли, со следующими битами:

0 - не используется
1 - USER_MANAGEMENT
2 - READ_RAW_PAGES
3 - CREATE_USER_TYPES
4 - USE_NBACKUP_UTILITY
5 - CHANGE_SHUTDOWN_MODE
6 - TRACE_ANY_ATTACHMENT
7 - MONITOR_ANY_ATTACHMENT
8 - ACCESS_SHUTDOWN_DATABASE
9 - CREATE_DATABASE
10 - DROP_DATABASE
11 - USE_GBAK_UTILITY
12 - USE_GSTAT_UTILITY
13 - USE_GFIX_UTILITY
14 - IGNORE_DB_TRIGGERS
15 - CHANGE_HEADER_SETTINGS
16 - SELECT_ANY_OBJECT_IN_DATABASE
17 - ACCESS_ANY_OBJECT_IN_DATABASE
18 - MODIFY_ANY_OBJECT_IN_DATABASE
19 - CHANGE_MAPPING_RULES
20 - USE_GRANTED_BY_CLAUSE
21 - GRANT_REVOKE_ON_ANY_OBJECT
22 - GRANT_REVOKE_ANY_DDL_RIGHT
23 - CREATE_PRIVILEGED_ROLES
24 - GET_DBCRYPT_INFO
25 - MODIFY_EXT_CONN_POOL
26 - REPLICATE_INTO_DATABASE

RDB$SECURITY_CLASSES

Списки управления доступом.

Table 33. Описание столбцов таблицы RDB$SECURITY_CLASSES
Наименование столбца Тип данных Описание

RDB$SECURITY_CLASS

CHAR(63)

Имя класса безопасности.

RDB$ACL

BLOB ACL

Список управления доступом, связанный с классом безопасности. Перечисляет пользователей и их полномочия.

RDB$DESCRIPTION

BLOB TEXT

Произвольный текст примечания к классу безопасности.

RDB$TIME_ZONES

Виртуальная таблица со списком часовых поясов поддерживаемых сервером.

Table 34. Описание столбцов таблицы RDB$TIME_ZONES
Наименование столбца Тип данных Описание

RDB$TIME_ZONE_ID

INTEGER

Идентификатор часового пояса.

RDB$TIME_ZONE_NAME

CHAR(63)

Наименование часового пояса

RDB$TRANSACTIONS

RDB$TRANSACTIONS хранит состояние распределённых и других транзакций, которые подготовлены для двухфазного подтверждения с явно подготовленным сообщением.

Table 35. Описание столбцов таблицы RDB$TRANSACTIONS
Наименование столбца Тип данных Описание

RDB$TRANSACTION_ID

INTEGER

Уникальный идентификатор отслеживаемой транзакции.

RDB$TRANSACTION_STATE

SMALLINT

Состояние транзакции:

0 — зависшая;
1 — подтверждённая;
2 — отменённая.

RDB$TIMESTAMP

TIMESTAMP

Не используется.

RDB$TRANSACTION_DESCRIPTION

BLOB

Описывает подготовленную транзакцию и может быть поступающее пользовательское сообщение isc_prepare_transaction2 даже если это не распределённая транзакция. Может быть использовано в случае потери соединения, которое не может быть восстановлено.

RDB$TRIGGER_MESSAGES

Сообщения триггеров.

Table 36. Описание столбцов таблицы RDB$TRIGGER_MESSAGES
Наименование столбца Тип данных Описание

RDB$TRIGGER_NAME

CHAR(63)

Имя триггера, с которым связано данное сообщение.

RDB$MESSAGE_NUMBER

SMALLINT

Номер сообщения в пределах одного триггера (от 1 до 32767).

RDB$MESSAGE

VARCHAR(1023)

Текст сообщения триггера.

RDB$TRIGGERS

Описания триггеров.

Table 37. Описание столбцов таблицы RDB$TRIGGERS
Наименование столбца Тип данных Описание

RDB$TRIGGER_NAME

CHAR(63)

Имя триггера.

RDB$RELATION_NAME

CHAR(63)

Имя таблицы или представления, для которого используется триггер. Если триггер применяется не к событию таблицы, а к событию базы данных, то в этом поле находится NULL.

RDB$TRIGGER_SEQUENCE

SMALLINT

Последовательность (позиция) триггера. Ноль обычно означает, что последовательность не задана.

RDB$TRIGGER_TYPE

BIGINT

Событие, на которое вызывается триггер:

1 — BEFORE INESRT;
2 — AFTER INSERT;
3 — BEFORE UPDATE;
4 — AFTER UPDATE;
5 — BEFORE DELETE;
6 — AFTER DELETE;
17 — BEFORE INSERT OR UPDATE;
18 — AFTER INSERT OR UPDATE;
25 — BEFORE INSERT OR DELETE;
26 — AFTER INSERT OR DELETE;
27 — BEFORE UPDATE OR DELETE;
28 — AFTER UPDATE OR DELETE;
113 — BEFORE INSERT OR UPDATE OR DELETE;
114 — AFTER INSERT OR UPDATE OR DELETE;
8192 — ON CONNECT;
8193 — ON DISCONNECT;
8194 — ON TRANSACTION START;
8195 — ON TRANSACTION COMMIT;
8196 — ON TRANSACTION ROLLBACK.

Описание событий DDL триггеров смотри ниже.

RDB$TRIGGER_SOURCE

BLOB TEXT

Хранит исходный код триггера в PSQL.

RDB$TRIGGER_BLR

BLOB BLR

Хранит триггер в двоичном коде BLR.

RDB$DESCRIPTION

BLOB TEXT

Текст примечания триггера.

RDB$TRIGGER_INACTIVE

SMALLINT

Указывает, является ли триггер в настоящее время неактивным (1) или активным (0).

RDB$SYSTEM_FLAG

SMALLINT

Признак — триггер определён пользователем (0) или системой (1 или выше).

RDB$FLAGS

SMALLINT

Внутреннее использование.

RDB$VALID_BLR

SMALLINT

Указывает, остаётся ли текст триггера корректным после последнего изменения триггера при помощи оператора ALTER TRIGGER.

RDB$DEBUG_INFO

BLOB

Содержит отладочную информацию о переменных, используемых в триггере.

RDB$ENGINE_NAME

CHAR(63)

Имя движка для использования внешних триггеров. Обычно UDR.

RDB$ENTRYPOINT

CHAR(255)

Имя точки входа в библиотеке, где находится этот триггер.

RDB$SQL_SECURITY

BOOLEAN

С какими правами выполняется триггер:

TRUE — с правами определяющего пользователя (SQL SECURITY DEFINER);
FALSE — с правами вызывающего пользователя (SQL SECURITY INVOKER);
NULL — привилегии выполнения наследуется от таблицы.

Для DDL триггеров тип триггера (RDB$TRIGGER_TYPE) получается путём побитового ИЛИ над фазой события (0 - BEFORE, 1 - AFTER) и всех перечисленных типов событий:

  • CREATE TABLE — 0x0000000000004002;

  • ALTER TABLE — 0x0000000000004004;

  • DROP TABLE — 0x0000000000004008;

  • CREATE PROCEDURE — 0x0000000000004010;

  • ALTER PROCEDURE — 0x0000000000004020;

  • DROP PROCEDURE — 0x0000000000004040;

  • CREATE FUNCTION — 0x0000000000004080;

  • ALTER FUNCTION — 0x0000000000004100;

  • DROP FUNCTION — 0x0000000000004200;

  • CREATE TRIGGER — 0x0000000000004400;

  • ALTER TRIGGER — 0x0000000000004800;

  • DROP TRIGGER — 0x0000000000005000;

  • CREATE EXCEPTION — 0x0000000000014000;

  • ALTER EXCEPTION — 0x0000000000024000;

  • DROP EXCEPTION — 0x0000000000044000;

  • CREATE VIEW — 0x0000000000084000;

  • ALTER VIEW — 0x0000000000104000;

  • DROP VIEW — 0x0000000000204000;

  • CREATE DOMAIN — 0x0000000000404000;

  • ALTER DOMAIN — 0x0000000000804000;

  • DROP DOMAIN — 0x0000000001004000;

  • CREATE ROLE — 0x0000000002004000;

  • ALTER ROLE — 0x0000000004004000;

  • DROP ROLE — 0x0000000008004000;

  • CREATE INDEX — 0x0000000010004000;

  • ALTER INDEX — 0x0000000020004000;

  • DROP INDEX — 0x0000000040004000;

  • CREATE SEQUENCE — 0x0000000080004000;

  • ALTER SEQUENCE — 0x0000000100004000;

  • DROP SEQUENCE — 0x0000000200004000;

  • CREATE USER — 0x0000000400004000;

  • ALTER USER — 0x0000000800004000;

  • DROP USER — 0x0000001000004000;

  • CREATE COLLATION — 0x0000002000004000;

  • DROP COLLATION — 0x0000004000004000;

  • ALTER CHARACTER SET — 0x0000008000004000;

  • CREATE PACKAGE — 0x0000010000004000;

  • ALTER PACKAGE — 0x0000020000004000;

  • DROP PACKAGE — 0x0000040000004000;

  • CREATE PACKAGE BODY — 0x0000080000004000;

  • DROP PACKAGE BODY — 0x0000100000004000;

  • CREATE MAPPING — 0x0000200000004000;

  • ALTER MAPPING — 0x0000400000004000;

  • DROP MAPPING — 0x0000800000004000;

  • ANY DDL STATEMENT — 0x7FFFFFFFFFFFDFFE.

Например, триггер

BEFORE CREATE PROCEDURE OR CREATE FUNCTION будет иметь тип 0x0000000000004090,
AFTER CREATE PROCEDURE OR CREATE FUNCTION — 0x0000000000004091,
BEFORE DROP FUNCTION OR DROP EXCEPTION — 0x00000000000044200,
AFTER DROP FUNCTION OR DROP EXCEPTION — 0x00000000000044201,
BEFORE DROP TRIGGER OR DROP DOMAIN — 0x00000000001005000,
AFTER DROP TRIGGER OR DROP DOMAIN — 0x00000000001005001.

RDB$TYPES

Описание перечислимых типов данных.

Table 38. Описание столбцов таблицы RDB$TYPES
Наименование столбца Тип данных Описание

RDB$FIELD_NAME

CHAR(63)

Имя перечисляемого типа. Совпадает с именем столбца, для которого определён данный перечислимый тип.

RDB$TYPE

SMALLINT

Задаёт идентификатор для типа. Последовательность чисел является уникальной для каждого отдельного перечислимого типа:

0 — таблица;
1 — представление;
2 — триггер;
3 — вычисляемый столбец;
4 — проверка;
5 — процедура.

RDB$TYPE_NAME

CHAR(63)

Текстовое представление для перечислимого типа.

RDB$DESCRIPTION

BLOB TEXT

Произвольный текст примечания к перечислимому типу.

RDB$SYSTEM_FLAG

SMALLINT

0 — определён пользователем
1 и выше — системой.

RDB$USER_PRIVILEGES

Полномочия пользователей системы.

Table 39. Описание столбцов таблицы RDB$USER_PRIVILEGES
Наименование столбца Тип данных Описание

RDB$USER

CHAR(63)

Пользователь, роль или объект которому предоставляется данное полномочие. Если в качестве грантополучателя используется системная привилегия, то вместо имени системной привилегии в данное поле попадает значение перечисляемого типа RDB$SYSTEM_PRIVILEGES:

1 – USER_MANAGEMENT;
2 – READ_RAW_PAGES;
3 – CREATE_USER_TYPES;
4 – USE_NBACKUP_UTILITY;
5 – CHANGE_SHUTDOWN_MODE;
6 – TRACE_ANY_ATTACHMENT;
7 – MONITOR_ANY_ATTACHMENT;
8 – ACCESS_SHUTDOWN_DATABASE;
9 – CREATE_DATABASE;
10 – DROP_DATABASE;
11 – USE_GBAK_UTILITY;
12 – USE_GSTAT_UTILITY;
13 – USE_GFIX_UTILITY;
14 – IGNORE_DB_TRIGGERS;
15 – CHANGE_HEADER_SETTINGS;
16 – SELECT_ANY_OBJECT_IN_DATABASE;
17 – ACCESS_ANY_OBJECT_IN_DATABASE;
18 – MODIFY_ANY_OBJECT_IN_DATABASE;
19 – CHANGE_MAPPING_RULES;
20 – USE_GRANTED_BY_CLAUSE;
21 – GRANT_REVOKE_ON_ANY_OBJECT;
22 – GRANT_REVOKE_ANY_DDL_RIGHT;
23 – CREATE_PRIVILEGED_ROLES.

RDB$GRANTOR

CHAR(63)

Имя пользователя, предоставляющего полномочие.

RDB$PRIVILEGE

CHAR(6)

Привилегия, предоставляемая в полномочии:

A – all (все привилегии);
S – select (выборка данных);
I – insert (добавление данных);
U – update (изменение данных);
D – delete (удаление строк);
R – reference (внешний ключ);
X – execute (выполнение);
G – usage (использование);
M – membership (членство).

RDB$GRANT_OPTION

SMALLINT

Содержит ли полномочие авторизацию WITH GRANT OPTION:

0 – не содержит;
1 – содержит.

RDB$RELATION_NAME

CHAR(63)

Имя объекта (таблица, роль, процедура) на который предоставляется полномочие.

RDB$FIELD_NAME

CHAR(63)

Имя столбца, к которому применяется привилегия на уровне столбца (только привилегии UPDATE и REFERENCES).

Если предоставляется членство в роли, то в данном столбце содержится NULL если роль предоставляется обычным образом, и D если роль предоставляется с использованием ключевого слова DEFAULT.

RDB$USER_TYPE

SMALLINT

Идентифицирует тип пользователя (или объекта), которому предоставляется привилегия:

1 – представление;
2 – триггер;
5 – процедура;
8 – пользователь;
13 – роль;
15 – функция;
18 – пакет;
20 – системная привилегия.

RDB$OBJECT_TYPE

SMALLINT

Идентифицирует тип объекта, на который предоставляется привилегия:

0 – таблица;
1 – представление;
2 – триггер;
5 – процедура;
7 – исключение;
8 – пользователь;
9 – домен;
11 – набор символов;
13 – роль;
14 – генератор (последовательность);
15 – функция;
16 – BLOB фильтр;
17 – сортировка;
18 – пакет.

RDB$VIEW_RELATIONS

Описывает представления.

Table 40. Описание столбцов таблицы RDB$VIEW_RELATIONS
Наименование столбца Тип данных Описание

RDB$VIEW_NAME

CHAR(63)

Имя представления.

RDB$RELATION_NAME

CHAR(63)

Имя таблицы, представления или хранимой процедуры на которое ссылается данное представление.

RDB$VIEW_CONTEXT

SMALLINT

Псевдоним (контекст), используемый для ссылки на столбец представления. Имеет то же значение, что и псевдоним, используемый в самом тексте представления на языке BLR в операторе запроса этого представления.

RDB$CONTEXT_NAME

CHAR(255)

Текстовый вариант псевдонима, указанного в столбце RDB$VIEW_CONTEXT.

RDB$CONTEXT_TYPE

SMALLINT

Тип контекста:

0 – таблица;
1 – представление;
2 – хранимая процедура.

RDB$PACKAGE_NAME

CHAR(63)

Имя пакета для упакованной хранимой процедуры.