Small. Fast. Reliable.
Choose any three.

SQLite C Interface

Record A Database Snapshot

int sqlite3_snapshot_get(
  sqlite3 *db,
  const char *zSchema,
  sqlite3_snapshot **ppSnapshot
);

Important: This interface is experimental and is subject to change without notice.

The sqlite3_snapshot_get(D,S,P) interface attempts to make a new sqlite3_snapshot object that records the current state of schema S in database connection D. On success, the sqlite3_snapshot_get(D,S,P) interface writes a pointer to the newly created sqlite3_snapshot object into *P and returns SQLITE_OK. If schema S of database connection D is not a WAL mode database that is in a read transaction, then sqlite3_snapshot_get(D,S,P) leaves the *P value unchanged and returns an appropriate error code.

The sqlite3_snapshot object returned from a successful call to sqlite3_snapshot_get() must be freed using sqlite3_snapshot_free() to avoid a memory leak.

The sqlite3_snapshot_get() interface is only available when the SQLITE_ENABLE_SNAPSHOT compile-time option is used.

See also lists of Objects, Constants, and Functions.