Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.

SQLITE3_SNAPSHOT_GET(3)    Library Functions Manual    SQLITE3_SNAPSHOT_GET(3)

     sqlite3_snapshot_get - Record A Database Snapshot

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

     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

     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

        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.

     sqlite3_get_autocommit(3), sqlite3(3), sqlite3_snapshot(3),
     sqlite3_snapshot_free(3), sqlite3_snapshot_get(3)

NetBSD 9.99                    December 19, 2018                   NetBSD 9.99