Updated: 2022/Sep/29

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 10358.

     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 10.99                    August 24, 2023                   NetBSD 10.99