开发快照。 PostgreSQL 20devel 尚未正式发布,内容仍可能变化。
49.1. 初始化函数 #
归档库是通过动态加载共享库的方式载入的,该共享库以 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 回调是必需的,其余回调都是可选的。