Updated: 2025/Nov/16
Please read Privacy Policy. It's for your privacy.
SQLITE3_SNAPSHOT_GET(3) Library Functions Manual SQLITE3_SNAPSHOT_GET(3)
NAME
sqlite3_snapshot_get - record a database snapshot
SYNOPSIS
#include <sqlite3.h>
int
sqlite3_snapshot_get(sqlite3 *db, const char *zSchema,
sqlite3_snapshot **ppSnapshot);
DESCRIPTION
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 there is not already a read-
transaction open on schema S when this function is called, one is opened
automatically.
The following must be true for this function to succeed. If any of the
following statements are false when sqlite3_snapshot_get() is called,
SQLITE_ERROR is returned. The final value of *P is undefined in this
case.
⊕ The database handle must not be in autocommit mode.
⊕ Schema S of database connection D must be a WAL mode database.
⊕ There must not be a write transaction open on schema S of database
connection D.
⊕ One or more transactions must have been written to the current wal
file since it was created on disk (by any connection). This means
that a snapshot cannot be taken on a wal mode database with no wal
file immediately after it is first opened. At least one transaction
must be written to it first.
This function may also return SQLITE_NOMEM. If it is called with the
database handle in autocommit mode but fails for some other reason,
whether or not a read transaction is opened on schema S is undefined.
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.
IMPLEMENTATION NOTES
These declarations were extracted from the interface documentation at
line 10470.
SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_get(
sqlite3 *db,
const char *zSchema,
sqlite3_snapshot **ppSnapshot
);
SEE ALSO
sqlite3(3), sqlite3_get_autocommit(3), sqlite3_snapshot(3),
sqlite3_snapshot_free(3)
NetBSD 11.99 January 24, 2024 NetBSD 11.99