adminpack

Модуль adminpack предоставляет ряд вспомогательных функций, которыми могут пользоваться pgAdmin и другие средства администрирования и управления для предоставления дополнительной функциональности, например для удаленного управления файлами журналов сервера. По умолчанию использовать все эти функции разрешено только суперпользователю, но такое право можно дать и другим пользователям с помощью команды GRANT.

Функции, приведенные в Таблице 1, предоставляют возможность записи в файлы на компьютере, где работает сервер. (См. также функции в таблице Функции доступа к типовым файлам, которые открывают доступ только на чтение.) Обычным пользователям они предоставляют доступ только к файлам в каталоге кластера базы данных, но не ограничивают суперпользователей или членов ролей pg_read_server_files или pg_write_server_files. При этом путь может задаваться как относительный, так и абсолютный.

Таблица 1. Функции модуля adminpack

Функция
Описание
pg_catalog.pg_file_write ( имя_файла text, данные text, append boolean ) → bigint
Записывает или дописывает данные в текстовый файл.
pg_catalog.pg_file_sync ( имя_файла text ) → void
Сбрасывает файл или каталог на диск.
pg_catalog.pg_file_rename ( старое_имя text, новое_имя text [, архивное_имя text ] ) → boolean
Переименовывает файл.
pg_catalog.pg_file_unlink ( имя_файла text ) → boolean
Удаляет файл.
pg_catalog.pg_logdir_ls () → setof record
Выводит список файлов журналов в каталоге log_directory.

Функция pg_file_write записывает заданные данные в файл имя_файла. Если append равен false, этот файл не должен существовать. Если же append равен true, существование этого файла допускается, и в этом случае данные будут дописаны в него. Возвращает число записанных байт.

Функция pg_file_sync синхронизирует с файловой системой файл или каталог имя_файла. В случае неудачи (например, если указанный файл не существует) выдается ошибка. Обратите внимание, что значение параметра data_sync_retry на эту функцию не влияет, и поэтому даже при сбое во время сброса файлов базы данных на диск не будет выдана ошибка уровня PANIC.

Функция pg_file_rename переименовывает файл. Если параметр архивное_имя опущен или равен NULL, она просто переименовывает файл старое_имя в новое_имя (файл с новым именем не должен существовать). Если же параметр архивное_имя задан, она сначала переименовывает новое_имя в архивное_имя (файл с таким именем не должен существовать), а затем переименовывает старое_имя в новое_имя. В случае сбоя на втором этапе переименовывания она попытается переименовать архивное_имя обратно в новое_имя, прежде чем выдать ошибку. Возвращает true в случае успеха и false, если исходные файлы отсутствуют или их невозможно изменить; в остальных случаях выдаются ошибки.

Функция pg_file_unlink удаляет заданный файл. Возвращает true в случае успеха и false, если заданный файл отсутствует либо при сбое в вызове unlink(); в остальных случаях выдаются ошибки.

Функция pg_logdir_ls возвращает временные метки и пути всех файлов журналов в каталоге, заданном в log_directory. Чтобы эта функция работала, параметр log_filename должен иметь значение по умолчанию (qhb-%Y-%m-%d_%H%M%S.log).