Информация о состоянии страницы файла

Функция

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

Спецификация
 
Общие правила
  1. Параметр < идентификатор таблицы > задает системный идентификатор таблицы, о состоянии страниц которой запрашивается информация. Системные идентификаторы таблиц хранятся в системной таблице $$$SYSRL, столбец $$$S11.

  2. Параметр < тип файла > задает тип файла таблицы:

    • 0 – индексный файл;

    • 1 – файл данных;

    • 2 – файл BLOB-данных.

  3. Параметр < номер файла > определяет порядковый номер файла заданного типа (начиная с 1).

  4. Параметр < номер страницы > определяет порядковый номер страницы в заданном файле (начиная с 1).

  5. Параметр < тип информации > определяет тип запрашиваемой о файле информации. Тип данных параметра – CHAR, значения параметра являются регистронезависимыми.

  6. Допустимые значения параметра приведены в пункте «Возвращаемое значение».

  7. Аргументы могут быть заданы < SQL-параметром >, который должен содержать спецификацию типа данных параметра.

    select linter_page_info(? (int), ? (int), ? (int), ? (int),  ? (char(15)));
    173
    1
    1
    1
    used_size
    |       4096|
Возвращаемое значение
  1. Тип возвращаемого значения – INTEGER.

  2. Возвращаемое значение зависит от параметра < тип информации >.

  3. Если хотя бы один аргумент равен NULL-значению, результат NULL-значение.

Значение параметра
< тип информации >
 Возвращаемое значение
used_size Размер занятой части страницы в байтах (для страниц битовой карты и конвертера – размер всей страницы)
free_size Размер свободной части страницы в байтах
status Битовая маска состояния страницы (первый бит): 1 – страница занята, 0 – свободна
Примеры
  1. select linter_page_info ($$$s11,1,1,2,'free_size'),
           linter_page_info ($$$s11,1,1,2,'used_size')
      from $$$sysrl
     where $$$s13='AUTO';
    | 80|4016|

  2. Проверить, является ли заданная страница свободной:

    select decode(linter_page_info ($$$s11,1,1,2,'status'), 1,'Нет',0, 'Да')
    from $$$sysrl where $$$s13='AUTO';
    |Нет|