*** DRAFT ***

SQLite Requirement Matrix Details
close.html

Index Summary Markup Original


R-04239-05140-34509-16246-41712-61041-39161-05924 tcl slt th3 src

The sqlite3_close() and sqlite3_close_v2() routines are destructors for the sqlite3 object.

th3/th3util.c:2567

/* IMP: R-04239-05140 */
# EVIDENCE-OF: R-04239-05140 The sqlite3_close() and sqlite3_close_v2()
# routines are destructors for the sqlite3 object.

R-26128-01625-01942-61645-49803-53494-49149-48512 tcl slt th3 src

Calls to sqlite3_close() and sqlite3_close_v2() return SQLITE_OK if the sqlite3 object is successfully destroyed and all associated resources are deallocated.

th3/th3util.c:2570

/* IMP: R-26128-01625 */
# EVIDENCE-OF: R-26128-01625 Calls to sqlite3_close() and
# sqlite3_close_v2() return SQLITE_OK if the sqlite3 object is
# successfully destroyed and all associated resources are deallocated.

R-28963-00207-05179-26933-06486-36885-16571-22389 tcl slt th3 src

If the database connection is associated with unfinalized prepared statements or unfinished sqlite3_backup objects then sqlite3_close() will leave the database connection open and return SQLITE_BUSY.

th3/cov1/main23.test:57

/* IMP: R-28963-00207 */
# EVIDENCE-OF: R-28963-00207 If the database connection is associated
# with unfinalized prepared statements or unfinished sqlite3_backup
# objects then sqlite3_close() will leave the database connection open
# and return SQLITE_BUSY.

R-01040-26324-57141-34957-01130-02284-37283-35215 tcl slt th3 src

If sqlite3_close_v2() is called with unfinalized prepared statements and/or unfinished sqlite3_backups, then the database connection becomes an unusable "zombie" which will automatically be deallocated when the last prepared statement is finalized or the last sqlite3_backup is finished.

th3/cov1/main39.test:101

/* IMP: R-01040-26324 */
# EVIDENCE-OF: R-01040-26324 If sqlite3_close_v2() is called with
# unfinalized prepared statements and/or unfinished sqlite3_backups,
# then the database connection becomes an unusable "zombie" which will
# automatically be deallocated when the last prepared statement is
# finalized or the last sqlite3_backup is finished.

R-47380-47766-30559-16874-18437-48917-00984-13736 tcl slt th3 src

If sqlite3_close_v2() is called on a database connection that still has outstanding prepared statements, BLOB handles, and/or sqlite3_backup objects then it returns SQLITE_OK and the deallocation of resources is deferred until all prepared statements, BLOB handles, and sqlite3_backup objects are also destroyed.

th3/cov1/main39.test:107

/* IMP: R-47380-47766 */
# EVIDENCE-OF: R-47380-47766 If sqlite3_close_v2() is called on a
# database connection that still has outstanding prepared statements,
# BLOB handles, and/or sqlite3_backup objects then it returns SQLITE_OK
# and the deallocation of resources is deferred until all prepared
# statements, BLOB handles, and sqlite3_backup objects are also
# destroyed.

R-51885-42713-13450-15041-37294-08802-56652-50878 tcl slt th3 src

If an sqlite3 object is destroyed while a transaction is open, the transaction is automatically rolled back.

th3/cov1/main23.test:128

/* IMP: R-51885-42713 */
# EVIDENCE-OF: R-51885-42713 If an sqlite3 object is destroyed while a
# transaction is open, the transaction is automatically rolled back.

R-63257-11740-13370-40315-30257-30447-50403-36483 tcl slt th3 src

Calling sqlite3_close() or sqlite3_close_v2() with a NULL pointer argument is a harmless no-op.

src/main.c:1056   th3/cov1/main23.test:146

/* IMP: R-63257-11740 */
# EVIDENCE-OF: R-63257-11740 Calling sqlite3_close() or
# sqlite3_close_v2() with a NULL pointer argument is a harmless no-op.