Библиотека архивирования загружается путем динамической загрузки динамической библиотеки, использующей
archive_libraryзаданное имя в качестве базового имени файла библиотеки. Для поиска библиотеки используется стандартный путь поиска динамических библиотек. Чтобы предоставить необходимые функции обратного вызова модуля архивирования и подтвердить, что библиотека действительно является модулем архивирования, в ней должна быть определена функция с именем
_PG_archive_module_init. Результатом выполнения данной функции
должен быть указатель на структуру типа
ArchiveModuleCallbacks, которая содержит все сведения, необходимые основному коду для использования модуля архивирования. Время жизни возвращаемого значения должно соответствовать времени работы сервера, что обычно достигается путем определения static const переменной в глобальной области видимости.
typedef struct ArchiveModuleCallbacks
{
ArchiveStartupCB startup_cb;
ArchiveCheckConfiguredCB check_configured_cb;
ArchiveFileCB archive_file_cb;
ArchiveShutdownCB shutdown_cb;
} ArchiveModuleCallbacks;
typedef const ArchiveModuleCallbacks *(*ArchiveModuleInit) (void);
Обязательной является только archive_file_cb функция обратного вызова. Остальные
являются необязательными.