31. Описание системных таблиц

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

Список системных таблиц в алфавитном порядке представлен в таблице 31.1.

Таблица 31.1 Список системных таблиц «РЕД База Данных»

Таблица

Содержание

RDB$AUTH_MAPPING

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

RDB$BACKUP_HISTORY

Хранит историю копирования базы данных

RDB$CHARACTER_SETS

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

RDB$CHECK_CONSTRAINTS

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

RDB$COLLATIONS

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

RDB$CONFIG

Настройки конфигурации текущей базы данных для текущего подключения

RDB$DATABASE

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

RDB$DB_CREATORS

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

RDB$CONSTANTS

Хранит информацию о константах.

RDB$DEPENDENCIES

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

RDB$EXCEPTIONS

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

RDB$FIELDS

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

RDB$FIELD_DIMENSIONS

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

RDB$FILES

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

RDB$FILTERS

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

RDB$FORMATS

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

RDB$FUNCTIONS

Сведения о внешних или хранимых функциях

RDB$FUNCTION_ARGUMENTS

Характеристики параметров внешних или хранимых функций

RDB$GENERATORS

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

RDB$INDEX_SEGMENTS

Сегменты и позиции индексов

RDB$INDICES

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

RDB$KEYWORDS

Ключевые слова

RDB$LOG_FILES

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

RDB$PACKAGES

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

RDB$PAGES

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

RDB$PROCEDURE_PARAMETERS

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

RDB$PROCEDURES

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

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$PUBLICATIONS

Хранит публикации репликации, заданные в базе данных

RDB$PUBLICATION_TABLES

Хранит имена таблиц, которые реплицируются в рамках публикации

RDB$USER_PRIVILEGES

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

RDB$VIEW_RELATIONS

Описывает представления. Не используется в настоящей версии

31.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

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

31.2. RDB$BACKUP_HISTORY

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

Идентификатор столбца

Тип данных

Описание

RDB$BACKUP_ID

INTEGER

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

RDB$TIMESTAMP

TIMESTAMP WITH TIME ZONE

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

RDB$BACKUP_LEVEL

INTEGER

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

RDB$GUID

CHAR(38)

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

RDB$SCN

INTEGER

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

RDB$FILE_NAME

VARCHAR(255)

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

31.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)

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

31.4. RDB$CHECK_CONSTRAINTS

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

Идентификатор столбца

Тип данных

Описание

RDB$CONSTRAINT_NAME

CHAR(63)

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

RDB$TRIGGER_NAME

CHAR(63)

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

31.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 INSENSITIVE). Таким образом, значение 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)

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

31.6. RDB$CONFIG

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

Идентификатор столбца

Тип данных

Описание

RDB$CONFIG_ID

INTEGER

Идентификатор строки.

RDB$CONFIG_NAME

VARCHAR(63)

Название параметра конфигурации.

RDB$CONFIG_VALUE

VARCHAR(255)

Значение параметра конфигурации.

RDB$CONFIG_DEFAULT

VARCHAR(255)

Значение по умолчанию для параметра конфигурации.

RDB$CONFIG_IS_SET

BOOLEAN

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

RDB$CONFIG_SOURCE

VARCHAR(255)

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

31.7. RDB$CONSTANTS

Хранит информацию о константах.

Идентификатор столбца

Тип данных

Описание

RDB$CONSTANT_NAME

CHAR(63)

Имя константы

RDB$PACKAGE_NAME

CHAR(63)

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

RDB$FIELD_SOURCE

CHAR(63)

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

RDB$PRIVATE_FLAG

SMALLINT

Указывает, определина константа в теле пакета (значение true) или в заголовке пакета (значеение false).

RDB$CONSTANT_BLR

BLOB BLR

Значение константы, сохранённое в виде blr.

RDB$CONSTANT_SOURCE

BLOB TEXT

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

31.8. 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

Определяет в контексте какого пользователя будет выполняться объект базы данных (процедура, функция, пакет, триггер, таблица) по умолчанию. Если установлен в FALSE, то объект выполняется с правами вызвавшего его пользователя. Иначе объект выполняется с правами его владельца (создателя)

31.9. RDB$DB_CREATORS

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

Идентификатор столбца

Тип данных

Описание

RDB$USER

CHAR(63)

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

RDB$USER_TYPE

SMALLINT

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

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

31.10. 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 – выражение для индекса,
7 – исключение,
8 – пользователь,
9 – столбец,
10 – индекс,
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)

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

31.11. RDB$EXCEPTIONS

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

Идентификатор столбца

Тип данных

Описание

RDB$EXCEPTION_NAME

CHAR(63)

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

RDB$EXCEPTION_NUMBER

INTEGER

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

RDB$MESSAGE

VARCHAR(1023)

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

RDB$DESCRIPTION

BLOB TEXT

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

RDB$SYSTEM_FLAG

SMALLINT

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

RDB$SECURITY_CLASS

CHAR(63)

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

RDB$OWNER_NAME

CHAR(63)

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

31.12. RDB$FIELDS

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

Идентификатор столбца

Тип данных

Описание

RDB$FIELD_NAME

CHAR(63)

Уникальное имя домена, созданного пользователем, или домена, автоматически построенного системой для столбца таблицы. Во втором случае имя будет начинаться с символов '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,
14 = CHAR,
16 = BIGINT,
23 = BOOLEAN,
24 = DECFLOAT(16),
25 = DECFLOAT(32),
26 = INT128,
27 = DOUBLE PRECISION,
28 = TIME WITH TIME ZONE,

RDB$FIELD_TYPE

SMALLINT

29 = TIMESTAMP WITH WITH TIME ZONE,
35 = TIMESTAMP,
37 = VARCHAR,
261 = BLOB.

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

RDB$FIELD_SUB_TYPE

SMALLINT

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

0 – не определен,
1 – текст,
2 – BLR,
3 – список управления доступом,
4 – резервируется для дальнейшего использования,
5 – кодированное описание метаданных таблицы,
6 – описание транзакции к нескольким базам данных, которая не завершилась нормально.

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

0 – неопределенные данные,
1 – фиксированные двоичные данные.

Для целочисленных типов данных (SMALLINT, INTEGER, BIGINT) и чисел с фиксированной точкой (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,
14 = CHAR,
16 = BIGINT,
23 = BOOLEAN,
27 = DOUBLE PRECISION,
35 = TIMESTAMP,
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)

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

31.13. 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

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

31.14. 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.

31.15. RDB$FILTERS

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

Идентификатор столбца

Тип данных

Описание

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 фильтра.

31.16. RDB$FORMATS

Данные об изменениях таблиц. Каждый раз, когда таблица изменяется, таблица получает новый номер формата. Когда номер формата любой таблицы достигает 255, вся база данных становится недоступной для работы с ней. Тогда нужно выполнить резервное копирование, восстановить эту копию и продолжить работу с заново созданной базой данных.

Идентификатор столбца

Тип данных

Описание

RDB$RELATION_ID

SMALLINT

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

RDB$FORMAT

SMALLINT

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

RDB$DESCRIPTOR

BLOB FORMAT

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

31.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)

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

RDB$ENTRYPOINT

CHAR(255)

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

RDB$RETURN_ARGUMENT

SMALLINT

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

RDB$SYSTEM_FLAG

SMALLINT

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

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

Определяет в контексте какого пользователя будет выполняться функция. Если установлен в FALSE, то функция выполняется с правами вызвавшего его пользователя. Иначе функция выполняется с правами его владельца (создателя)

31.18. RDB$FUNCTION_ARGUMENTS

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

Идентификатор столбца

Тип данных

Описание

RDB$FUNCTION_NAME

CHAR(63)

Уникальное имя внешней функции.

RDB$ARGUMENT_POSITION

SMALLINT

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

RDB$MECHANISM

SMALLINT

Механизм передачи параметра для Legacy функций: передается ли аргумент по значению (значение столбца 0), по ссылке (значение 1), через дескриптор (значение 2) или через дескриптор BLOB (значение 3).

RDB$FIELD_TYPE

SMALLINT

Число, задающее код типа данных, определенного для столбца:

7 = SMALLINT,
8 = INTEGER,
12 = DATE,
13 = TIME,
14 = CHAR,
16 = BIGINT,
23 = BOOLEAN;
27 = DOUBLE PRECISION,
35 = TIMESTAMP,
37 = VARCHAR,
40 = CSTRING (строка, завершаемая нулем),
45 = blob_id,
261 = BLOB.

RDB$FIELD_SCALE

SMALLINT

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

RDB$FIELD_LENGTH

SMALLINT

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

BOOLEAN = 1,

SMALLINT = 2,

INTEGER = 4,

DATE = 4,

TIME = 4,

BIGINT = 8,

DOUBLE PRECISION = 8,

TIMESTAMP = 8,

blob_id = 8.

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) или через дескриптор BLOB (значение 3).

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

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

31.19. 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.

31.20. 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

Селективность индекса по данному столбцу.

31.21. RDB$INDICES

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

Идентификатор столбца

Тип данных

Описание

RDB$INDEX_NAME

CHAR(63)

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

RDB$RELATION_NAME

CHAR(63)

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

RDB$INDEX_ID

SMALLINT

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

RDB$UNIQUE_FLAG

SMALLINT

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

1 — уникальный,

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

RDB$DESCRIPTION

BLOB TEXT

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

RDB$SEGMENT_COUNT

SMALLINT

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

RDB$INDEX_INACTIVE

SMALLINT

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

1 — неактивный,
0 — активный.

RDB$INDEX_TYPE

SMALLINT

Упорядоченность индекса:

1 - по убыванию значений столбцов
0 - по возрастанию значений столбцов.

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$TABLESPACE_NAME

CHAR (63)

Наименование табличного пространства.

RDB$CONDITION_SOURCE

BLOB TEXT

Исходный код выражения для ограничения набора индексируемых записей

RDB$CONDITION_BLR

BLOB BLR

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

31.22. RDB$JOBS

Сведения о заданиях планировщика.

Идентификатор столбца

Тип данных

Описание

RDB$JOB_NAME

CHAR(63)

Имя задания

RDB$JOB_ID

INTEGER

ID задания

RDB$JOB_SOURCE

BLOB TEXT

Код задания в текстовом виде

RDB$JOB_BLR

BLOB BINARY

Скомпилированный BLR для задания

RDB$DESCRIPTION

BLOB TEXT

Содержит описание задания

RDB$OWNER_NAME

CHAR(63)

Имя пользователя, создавшего задание

RDB$JOB_INACTIVE

SMALLINT

Имеет два значения:

1 - задание не будет запускаться по расписанию
0 - задание будет запускаться

RDB$JOB_TYPE

SMALLINT

Имеет два значения:

0 — обычное PSQL задание
1 — задание с командой ОС

RDB$JOB_SCHEDULE

VARBINARY(64)

Строка в формате cron, задающая расписание

RDB$START_DATE

TIMESTAMP WITH TIME ZONE

Дата и время начала выполнения задания

RDB$END_DATE

TIMESTAMP WITH TIME ZONE

Дата и время окончания выполнения задания

RDB$DATABASE

VARCHAR(255)

Имя базы данных, для которой создано задание

31.23. RDB$JOBS_LOG

События, связанные с заданиями.

Идентификатор столбца

Тип данных

Описание

RDB$TIMESTAMP

TIMESTAMP WITH TIME ZONE

Время произошедшего события

RDB$JOB_NAME

CHAR(63)

Имя задания

RDB$JOB_ID

INTEGER

ID задания

RDB$EVENT

VARCHAR(32)

Регистрируются следующие типы событий:

RUN_START - начало выполнения задания;
RUN_FINISH - завершение выполнения задания;
RUN_ERROR - ошибка во время выполнения задания.

RDB$MESSAGE

VARCHAR(1023)

Текст ошибки

31.24. RDB$KEYWORDS

Содержит информацию о ключевых словах сервера.

Идентификатор столбца

Тип данных

Описание

RDB$KEYWORD_NAME

VARCHAR(63)

Ключевое слово.

RDB$KEYWORD_RESERVED

BOOLEAN

Зарезервировано ли ключевое слово.

31.25. 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

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

31.26. RDB$PACKAGES

В таблице содержатся сведения о PSQL пакетах.

Идентификатор столбца

Тип данных

Описание

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

Определяет в контексте какого пользователя будут выполняться процедуры и функции. Если установлен в FALSE, то они выполняется с правами вызвавшего его пользователя. Иначе они выполняется с правами его владельца (создателя).

31.27. RDB$PAGES

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

Идентификатор столбца

Тип данных

Описание

RDB$PAGE_NUMBER

INTEGER

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

RDB$RELATION_ID

SMALLINT

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

RDB$PAGE_SEQUENCE

INTEGER

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

RDB$PAGE_TYPE

SMALLINT

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

31.28. 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$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) или через дескриптор BLOB (значение 3).

RDB$FIELD_NAME

CHAR(63)

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

RDB$RELATION_NAME

CHAR(63)

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

RDB$PACKAGE_NAME

CHAR(63)

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

31.29. 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

Определяет в контексте какого пользователя будет выполняться процедура. Если установлен в FALSE, то процедура выполняется с правами вызвавшего его пользователя. Иначе процедура выполняется с правами его владельца (создателя)

31.30. 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.

31.31. RDB$RELATION_CONSTRAINTS

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

Идентификатор столбца

Тип данных

Описание

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).

31.32. 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 столбца:

0 - GENERATED ALWAYS,

1 - GENERATED BY DEFAULT,

NULL - не является столбцом идентификации.

RDB$TABLESPACE_NAME

CHAR(63)

Наименование табличного пространства.

31.33. 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(63)

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

RDB$DEFAULT_CLASS

CHAR(63)

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

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

Определяет в контексте какого пользователя будет использоваться таблица. Если установлен в FALSE, то таблица будет использоваться с правами вызвавшего его пользователя. Иначе таблица будет использоваться с правами его владельца (создателя)

RDB$ADAPTER

CHAR(7)

Адаптер для внешней таблицы для чтения двоичных трейсов

RDB$TABLESPACE_NAME

CHAR(63)

Наименование табличного пространства.

RDB$POINTER_PAGE

INTEGER

Номер первой страницы указателей таблицы.

RDB$ROOT_PAGE

INTEGER

Номер страницы корневых индексов таблицы.

31.34. 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)

Флаги системных привилегий

31.35. RDB$SECURITY_CLASSES

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

Идентификатор столбца

Тип данных

Описание

RDB$SECURITY_CLASS

CHAR(63)

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

RDB$ACL

BLOB ACL

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

RDB$DESCRIPTION

BLOB TEXT

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

31.36. RDB$TABLESPACES

Идентификатор столбца

Тип данных

Описание

RDB$TABLESPACE_ID

INTEGER

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

RDB$TABLESPACE_NAME

CHAR(63)

Наименование табличного пространства.

RDB$SECURITY_CLASS

CHAR (63)

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

RDB$SYSTEM_FLAG

SMALLINT

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

RDB$DESCRIPTION

BLOB TEXT

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

RDB$OWNER_NAME

CHAR (63)

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

RDB$FILE_NAME

VARCHAR (255)

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

RDB$OFFLINE

BOOLEAN

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

RDB$READ_ONLY

BOOLEAN

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

31.37. RDB$TIME_ZONES

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

Идентификатор столбца

Тип данных

Описание

RDB$TIME_ZONE_ID

INTEGER

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

RDB$TIME_ZONE_NAME

CHAR(63)

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

31.38. RDB$TRANSACTIONS

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

Идентификатор столбца

Тип данных

Описание

RDB$TRANSACTION_ID

INTEGER

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

RDB$TRANSACTION_STATE

SMALLINT

Состояние транзакции: зависшая (значение 0), подтвержденная (значение 1), отмененная (значение 2).

RDB$TIMESTAMP

TIMESTAMP WITH TIME ZONE

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

RDB$TRANSACTION_DESCRIPTION

BLOB

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

31.39. RDB$TRIGGER_MESSAGES

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

Идентификатор столбца

Тип данных

Описание

RDB$TRIGGER_NAME

CHAR(63)

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

RDB$MESSAGE_NUMBER

SMALLINT

Номер сообщения в пределах одного триггера (от 1 до максимум 32,767).

RDB$MESSAGE

VARCHAR(1023)

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

31.40. RDB$TRIGGERS

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

Идентификатор столбца

Тип данных

Описание

RDB$TRIGGER_NAME

CHAR(63)

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

RDB$RELATION_NAME

CHAR(63)

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

RDB$TRIGGER_SEQUENCE

SMALLINT

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

RDB$TRIGGER_TYPE

BIGINT

Событие, на которое вызывается триггер. Значение высчитывается как битовая маска. Наиболее распростаненные значения:

1 — before insert,

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 триггеров тип триггера получается путём побитового ИЛИ над фазой события (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

RDB$TRIGGER_TYPE

BIGINT

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.

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

Определяет в контексте какого пользователя будет выполняться триггер. Если установлен в FALSE, то триггер выполняется с правами вызвавшего его пользователя. Иначе триггер выполняется с правами его владельца (создателя)

31.41. 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 или выше).

31.42. RDB$PUBLICATIONS

Хранит публикации репликации, заданные в базе данных.

Идентификатор столбца

Тип данных

Описание

RDB$PUBLICATION_NAME

CHAR(63)

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

RDB$OWNER_NAME

CHAR(63)

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

RDB$SYSTEM_FLAG

SMALLINT

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

0 - если публикация определена пользователем;

1 или выше - если публикация определена системой.

RDB$ACTIVE_FLAG

SMALLINT

Неактивная (0) или активная (1).

RDB$AUTO_ENABLE

SMALLINT

Автоматическое добавление новых таблиц в публикацию:

0 - отключено;

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

31.43. RDB$PUBLICATION_TABLES

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

Идентификатор столбца

Тип данных

Описание

RDB$PUBLICATION_NAME

CHAR(63)

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

RDB$TABLE_NAME

CHAR(63)

Имя таблицы.

31.44. 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;

RDB$USER

CHAR(63)

7 – MONITOR_ANY_ATTACHMENT;

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 (добавление данных),

D delete (удаление строк),

R reference (внешний ключ),

U update (изменение данных),

X execute (выполнение),

G usage (использование),

C - create (создание),

L - alter (изменение),

O - drop (удаление),

M membership (членство).

RDB$GRANT_OPTION

SMALLINT

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

0 — не содержит,

1 — содержит,

2 — .

RDB$RELATION_NAME

CHAR(63)

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

RDB$FIELD_NAME

CHAR(63)

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

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

RDB$USER_TYPE

SMALLINT

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

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

2 – триггер;

5 – процедура;

8 – пользователь;

13 – роль;

15 – функция;

18 – пакет.

RDB$OBJECT_TYPE

SMALLINT

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

0 - таблица, представление;

2 - триггер;

3 - вычисляемый столбец;

4 - проверочное ограничение;

5 - процедура;

6 - выражение, используемое для индекса;

7 - исключение;

8 - пользователь;

9 - столбец;

10 - индекс;

11 - набор символов;

12 - группа пользователя;

13 - роль;

14 - генератор;

15 - UDF;

16 - BLOB фильтр;

17 - порядок сортировки;

18 - заголовок пакета;

19 - тело пакета;

20 - привилегия;

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

21 - база данных;

22 - таблица;

23 - представление;

24 - процедура;

25 - фунцкия;

26 - пакет;

27 - генератор;

28 - домен;

29 - исключение;

30 - роль;

31 - набор символов;

32 - порядок сортировки;

33 - фильтр;

34 - задания;

35,36 - табличные пространства;

37 - условие частичного индекса.

31.45. 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)

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

31.46. Поле RDB$VALID_BLR

В системных таблицах RDB$PROCEDURES, RDB$FUNCTIONS и RDB$TRIGGERS присутствует поле RDB$VALID_BLR. Оно предназначено для сигнализации о возможной недействительности модуля PSQL (процедуры или триггера) после изменения доменов или столбцов таблиц, от которых он зависит. При возникновении описанной выше ситуации поле RDB$VALID_BLR устанавливается в 0 для процедур или триггеров, код которых возможно является недействительным.

В триггерах, процедурах и функциях (в том числе и в процедурах и функциях пакетов) зависимости возникают от столбцов таблицы к которой они обращаются, а так же от любого параметра или переменной которые определены в модуле с использованием предложения TYPE OF.

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

Любой модуль, который не удалось перекомпилировать из-за несовместимости, возникающей из-за изменения домена, помечается как недействительный (поле RDB$VALID_BLR устанавливается в 0 в записи соответствующей системной таблице RDB$PROCEDURES или RDB$TRIGGERS).

Возобновление (установка RDB$VALID_BLR в 1) происходит когда:

  1. домен изменён снова и его новое определение совместимо с ранее недействительным определением модуля; или

  2. ранее недействительный модуль изменён так, что соответствовать новому определению домена.

Нижеприведённый запрос находит процедуры и триггеры, зависящие от определённого домена (в примере это домен 'MYDOMAIN'), и выводит информацию о состоянии поля RDB$VALID_BLR. Замените MYDOMAIN фактическим именем проверяемого домена. Используйте заглавные буквы, если домен создавался нечувствительным к регистру — в противном случае используйте точное написание имени домена с учётом регистра.

WITH VALID_PSQL (
   PSQL_TYPE,
   ROUTE_NAME,
   VALID)
AS ( SELECT 'Procedure', RDB$PROCEDURE_NAME, RDB$VALID_BLR
     FROM RDB$PROCEDURES
     WHERE RDB$PROCEDURES.RDB$PACKAGE_NAME IS NULL
     UNION ALL
        SELECT 'Function', RDB$FUNCTION_NAME, RDB$VALID_BLR
        FROM RDB$FUNCTIONS
        WHERE RDB$FUNCTIONS.RDB$PACKAGE_NAME IS NULL
     UNION ALL
        SELECT 'Package', RDB$PACKAGE_NAME, RDB$VALID_BODY_FLAG
        FROM RDB$PACKAGES
     UNION ALL
        SELECT 'Trigger', RDB$TRIGGER_NAME, RDB$VALID_BLR
        FROM RDB$TRIGGERS
        WHERE RDB$TRIGGERS.RDB$SYSTEM_FLAG = 0)
SELECT
   PSQL_TYPE,
   ROUTE_NAME,
   VALID
FROM VALID_PSQL
WHERE
   EXISTS ( SELECT * FROM RDB$DEPENDENCIES
            WHERE RDB$DEPENDENT_NAME = VALID_PSQL.ROUTE_NAME
            AND RDB$DEPENDED_ON_NAME = 'MYDOMAIN' );

Следующий запрос находит процедуры и триггеры, зависящие от определённого столбца таблицы (в примере это столбец MYCOLUMN таблицы MYTABLE), и выводит информацию о состоянии поля RDB$VALID_BLR. Замените MYTABLE и MYCOLUMN фактическими именами проверяемой таблицы и её столбца. Используйте заглавные буквы, если таблица и её столбец создавались нечувствительными к регистру — в противном случае используйте точное написание имени таблицы и её столбца с учётом регистра.

WITH VALID_PSQL (
   PSQL_TYPE,
   ROUTE_NAME,
   VALID)
AS ( SELECT 'Procedure', RDB$PROCEDURE_NAME, RDB$VALID_BLR
     FROM RDB$PROCEDURES
     WHERE RDB$PROCEDURES.RDB$PACKAGE_NAME IS NULL
     UNION ALL
        SELECT 'Function', RDB$FUNCTION_NAME, RDB$VALID_BLR
        FROM RDB$FUNCTIONS
        WHERE RDB$FUNCTIONS.RDB$PACKAGE_NAME IS NULL
     UNION ALL
        SELECT 'Package', RDB$PACKAGE_NAME, RDB$VALID_BODY_FLAG
        FROM RDB$PACKAGES
     UNION ALL
        SELECT 'Trigger', RDB$TRIGGER_NAME, RDB$VALID_BLR
        FROM RDB$TRIGGERS
        WHERE RDB$TRIGGERS.RDB$SYSTEM_FLAG = 0)
SELECT
   PSQL_TYPE,
   ROUTE_NAME,
   VALID
FROM VALID_PSQL
WHERE
   EXISTS ( SELECT *
            FROM RDB$DEPENDENCIES D
            WHERE D.RDB$DEPENDENT_NAME = VALID_PSQL.ROUTE_NAME
            AND D.RDB$DEPENDED_ON_NAME = 'MYTABLE'
            AND D.RDB$FIELD_NAME = 'MYCOLUMN' );   

Предупреждение

Все случаи возникновения недействительных модулей, вызванных изменениями доменов/столбцов, отражаются в поле RDB$VALID_BLR. Тем не менее, другие виды изменения, таких как изменения количества входных или выходных параметров процедур и так далее, не влияют на поле проверки, даже если потенциально они могут привести к недействительности модуля. Типичные сценарии могут быть следующими:

  1. Процедура (B) определена так, что она вызывает другую процедуру (A) и считывает выходные параметры из неё. В этом случае зависимость будет зарегистрирована в RDB$DEPENDENCIES. В последствии вызываемая процедура (A) может быть изменена для изменения или удаления одного и более выходных параметров. Оператор ALTER PROCEDURE A приведёт к ошибки при выполнении фиксации транзакции.

  2. Процедура (B) вызывает процедуру (A), передавая ей значения в качестве входных параметров. Никаких зависимостей не будет зарегистрировано в RDB$DEPENDENCIES. Последующие модификации входных параметров процедуры A будут позволены. Отказ произойдет во время выполнения, когда В вызовет A с несогласованным набором входных параметров.

Примечание

Для модулей PSQL, наследованных от более ранних версий РЕД Базы Данных, поле RDB$VALID_BLR имеет значение NULL. Это не означает, что их BLR является недействительным.

Примечание

Команды утилиты командной строки isql SHOW PROCEDURES, SHOW FUNCTIONS и SHOW TRIGGERS при выводе информации отмечают звёздочкой модули, у которых поле RDB$VALID_BLR равно 0. Команды SHOW PROCEDURE <имя процедуры>, SHOW FUNCTION <имя функции> и SHOW TRIGGER <имя триггера>, выводящие на экран код PSQL модуля, не сигнализируют пользователя о недопустимом BLR.