SQLite C 接口
从 wal 文件恢复快照
int sqlite3_snapshot_recover(sqlite3 *db, const char *zDb);
如果在所有数据库连接关闭后WAL 文件仍保留在磁盘上(通过使用SQLITE_FCNTL_PERSIST_WAL 文件控制 或因为打开数据库的最后一个进程在没有调用sqlite3_close()的情况下退出)并且随后在该数据库上打开一个新连接并且WAL 文件,sqlite3_snapshot_open()接口将只能打开添加到 WAL 文件的最后一个事务,即使 WAL 文件包含其他有效事务。
此函数尝试扫描与数据库句柄 db 的数据库 zDb 关联的 WAL 文件,并使所有有效的快照对 sqlite3_snapshot_open() 可用。如果数据库上已经打开了读取事务,或者数据库不是 WAL 模式数据库,则会出错。
如果成功则返回 SQLITE_OK,否则返回 SQLite 错误代码。
此接口仅在使用 SQLITE_ENABLE_SNAPSHOT选项编译 SQLite 时可用。