F.1. adminpack

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

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

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

ИмяТип результатаОписание
pg_catalog.pg_file_write(filename text, data text, append boolean)bigintЗаписать или дописать в текстовый файл
pg_catalog.pg_file_rename(oldname text, newname text [, archivename text])booleanПереименовать файл
pg_catalog.pg_file_unlink(filename text)booleanУдалить файл
pg_catalog.pg_logdir_ls()setof recordПолучить список файлов журналов в каталоге log_directory

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

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

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

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

Функции, перечисленные в Таблице F.2, являются устаревшими и не должны использоваться в новых приложениях; вместо них следует использовать функции, описанные в Таблице 9.67 и Таблице 9.76. Эти функции включены в adminpack только для совместимости со старыми версиями pgAdmin.

Таблица F.2. Устаревшие функции модуля adminpack

ИмяТип результатаОписание
pg_catalog.pg_file_read(filename text, offset bigint, nbytes bigint)textАльтернативный вариант функции pg_read_file()
pg_catalog.pg_file_length(filename text)bigintВыдаёт то же значение, что содержится в столбце size результата pg_stat_file()
pg_catalog.pg_logfile_rotate()integerАльтернативный вариант pg_rotate_logfile(), возвращает целое (0 или 1), а не булевское значение