*** DRAFT ***

SQLite Requirement Matrix Details
snapshot_open.html

Index Summary Markup Original


R-42285-56877-09234-46641-17073-37053-15248-47437 tcl slt th3 src

The sqlite3_snapshot_open(D,S,P) interface starts a read transaction for schema S of database connection D such that the read transaction refers to historical snapshot P, rather than the most recent change to the database.

/* IMP: R-42285-56877 */
# EVIDENCE-OF: R-42285-56877 The sqlite3_snapshot_open(D,S,P) interface
# starts a read transaction for schema S of database connection D such
# that the read transaction refers to historical snapshot P, rather than
# the most recent change to the database.

R-06640-03838-35138-60782-53418-54966-60899-05980 tcl slt th3 src

The sqlite3_snapshot_open() interface returns SQLITE_OK on success or an appropriate error code if it fails.

/* IMP: R-06640-03838 */
# EVIDENCE-OF: R-06640-03838 The sqlite3_snapshot_open() interface
# returns SQLITE_OK on success or an appropriate error code if it fails.

R-33198-05775-12486-51098-43766-32149-25799-18917 tcl slt th3 src

In order to succeed, a call to sqlite3_snapshot_open(D,S,P) must be the first operation following the BEGIN that takes the schema S out of autocommit mode.

/* IMP: R-33198-05775 */
# EVIDENCE-OF: R-33198-05775 In order to succeed, a call to
# sqlite3_snapshot_open(D,S,P) must be the first operation following the
# BEGIN that takes the schema S out of autocommit mode.

R-31310-22333-18574-57043-24725-36788-30807-54807 tcl slt th3 src

In other words, schema S must not currently be in a transaction for sqlite3_snapshot_open(D,S,P) to work, but the database connection D must be out of autocommit mode.

/* IMP: R-31310-22333 */
# EVIDENCE-OF: R-31310-22333 In other words, schema S must not currently
# be in a transaction for sqlite3_snapshot_open(D,S,P) to work, but the
# database connection D must be out of autocommit mode.

R-35040-01730-43982-30750-52073-28087-17408-35843 tcl slt th3 src

A snapshot will fail to open if it has been overwritten by a checkpoint.

/* IMP: R-35040-01730 */
# EVIDENCE-OF: R-35040-01730 A snapshot will fail to open if it has been
# overwritten by a checkpoint.

R-40460-39888-52540-38305-24333-10191-58577-29064 tcl slt th3 src

A call to sqlite3_snapshot_open(D,S,P) will fail if the database connection D does not know that the database file for schema S is in WAL mode. A database connection might not know that the database file is in WAL mode if there has been no prior I/O on that database connection, or if the database entered WAL mode after the most recent I/O on the database connection.

/* IMP: R-40460-39888 */
# EVIDENCE-OF: R-40460-39888 A call to sqlite3_snapshot_open(D,S,P) will
# fail if the database connection D does not know that the database file
# for schema S is in WAL mode. A database connection might not know that
# the database file is in WAL mode if there has been no prior I/O on
# that database connection, or if the database entered WAL mode after
# the most recent I/O on the database connection.