2022-08-31 23:45:43 +03:00
|
|
|
/*
|
|
|
|
** 2022-08-27
|
|
|
|
**
|
|
|
|
** The author disclaims copyright to this source code. In place of
|
|
|
|
** a legal notice, here is a blessing:
|
|
|
|
**
|
|
|
|
** May you do good and not evil.
|
|
|
|
** May you find forgiveness for yourself and forgive others.
|
|
|
|
** May you share freely, never taking more than you give.
|
|
|
|
**
|
|
|
|
*************************************************************************
|
|
|
|
**
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef _SQLITE_RECOVER_H
|
|
|
|
#define _SQLITE_RECOVER_H
|
|
|
|
|
|
|
|
#include "sqlite3.h" /* Required for error code definitions */
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
typedef struct sqlite3_recover sqlite3_recover;
|
|
|
|
|
|
|
|
/* Create an object to recover data from database zDb (e.g. "main")
|
|
|
|
** opened by handle db. Data will be recovered into the database
|
|
|
|
** identified by parameter zUri. Database zUri is clobbered if it
|
|
|
|
** already exists.
|
|
|
|
*/
|
|
|
|
sqlite3_recover *sqlite3_recover_init(
|
|
|
|
sqlite3* db,
|
|
|
|
const char *zDb,
|
|
|
|
const char *zUri
|
|
|
|
);
|
|
|
|
|
|
|
|
/* Details TBD. */
|
|
|
|
int sqlite3_recover_config(sqlite3_recover*, int op, void *pArg);
|
|
|
|
|
2022-09-03 23:07:39 +03:00
|
|
|
/*
|
|
|
|
** SQLITE_RECOVER_TESTDB:
|
|
|
|
**
|
|
|
|
**
|
|
|
|
** SQLITE_RECOVER_LOST_AND_FOUND:
|
|
|
|
** The pArg argument points to a string buffer containing the name
|
|
|
|
** of a "lost-and-found" table in the output database, or NULL. If
|
|
|
|
** the argument is non-NULL and the database contains seemingly
|
|
|
|
** valid pages that cannot be associated with any table in the
|
|
|
|
** recovered part of the schema, data is extracted from these
|
|
|
|
** pages to add to the lost-and-found table.
|
|
|
|
*/
|
2022-09-02 00:00:39 +03:00
|
|
|
#define SQLITE_RECOVER_TESTDB 789
|
|
|
|
#define SQLITE_RECOVER_LOST_AND_FOUND 790
|
2022-08-31 23:45:43 +03:00
|
|
|
|
|
|
|
/* Step the recovery object. Return SQLITE_DONE if recovery is complete,
|
|
|
|
** SQLITE_OK if recovery is not complete but no error has occurred, or
|
|
|
|
** an SQLite error code if an error has occurred.
|
|
|
|
*/
|
|
|
|
int sqlite3_recover_step(sqlite3_recover*);
|
|
|
|
|
|
|
|
const char *sqlite3_recover_errmsg(sqlite3_recover*);
|
|
|
|
|
|
|
|
int sqlite3_recover_errcode(sqlite3_recover*);
|
|
|
|
|
|
|
|
/* Clean up a recovery object created by a call to sqlite3_recover_init().
|
|
|
|
** This function returns SQLITE_DONE if the new database was created,
|
|
|
|
** SQLITE_OK if it processing was abandoned before it as finished or
|
|
|
|
** an SQLite error code (e.g. SQLITE_IOERR, SQLITE_NOMEM etc.) if an
|
|
|
|
** error occurred. */
|
|
|
|
int sqlite3_recover_finish(sqlite3_recover*);
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
} /* end of the 'extern "C"' block */
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* ifndef _SQLITE_RECOVER_H */
|
|
|
|
|