*** DRAFT ***

SQLite Requirement Matrix Details
commit_hook.html

Index Summary Markup Original


R-08702-09805-37818-25319-39065-12548-64378-42477 tcl slt th3 src

The sqlite3_commit_hook() interface registers a callback function to be invoked whenever a transaction is committed.

/* IMP: R-08702-09805 */
# EVIDENCE-OF: R-08702-09805 The sqlite3_commit_hook() interface
# registers a callback function to be invoked whenever a transaction is
# committed.

R-05416-39654-33473-55228-34062-26099-18988-34297 tcl slt th3 src

Any callback set by a previous call to sqlite3_commit_hook() for the same database connection is overridden.

/* IMP: R-05416-39654 */
# EVIDENCE-OF: R-05416-39654 Any callback set by a previous call to
# sqlite3_commit_hook() for the same database connection is overridden.

R-27941-57764-10424-18721-07448-14003-34159-15666 tcl slt th3 src

The sqlite3_rollback_hook() interface registers a callback function to be invoked whenever a transaction is rolled back.

/* IMP: R-27941-57764 */
# EVIDENCE-OF: R-27941-57764 The sqlite3_rollback_hook() interface
# registers a callback function to be invoked whenever a transaction is
# rolled back.

R-24984-42113-54448-54138-16961-63127-18743-03855 tcl slt th3 src

Any callback set by a previous call to sqlite3_rollback_hook() for the same database connection is overridden.

/* IMP: R-24984-42113 */
# EVIDENCE-OF: R-24984-42113 Any callback set by a previous call to
# sqlite3_rollback_hook() for the same database connection is
# overridden.

R-17269-58859-62979-20789-28373-02283-01402-32903 tcl slt th3 src

The pArg argument is passed through to the callback.

/* IMP: R-17269-58859 */
# EVIDENCE-OF: R-17269-58859 The pArg argument is passed through to the
# callback.

R-30582-29746-05981-37310-62755-30295-44870-62832 tcl slt th3 src

If the callback on a commit hook function returns non-zero, then the commit is converted into a rollback.

/* IMP: R-30582-29746 */
# EVIDENCE-OF: R-30582-29746 If the callback on a commit hook function
# returns non-zero, then the commit is converted into a rollback.

R-39719-17021-25795-58953-42832-28593-26146-38577 tcl slt th3 src

The sqlite3_commit_hook(D,C,P) and sqlite3_rollback_hook(D,C,P) functions return the P argument from the previous call of the same function on the same database connection D, or NULL for the first call for each function on D.

/* IMP: R-39719-17021 */
# EVIDENCE-OF: R-39719-17021 The sqlite3_commit_hook(D,C,P) and
# sqlite3_rollback_hook(D,C,P) functions return the P argument from the
# previous call of the same function on the same database connection D,
# or NULL for the first call for each function on D.

R-35460-03740-02108-04893-51916-60089-58945-40785 tcl slt th3 src

Registering a NULL function disables the callback.

/* IMP: R-35460-03740 */
# EVIDENCE-OF: R-35460-03740 Registering a NULL function disables the
# callback.

R-29198-50701-28906-62015-01619-10608-18054-51120 tcl slt th3 src

When the commit hook callback routine returns zero, the COMMIT operation is allowed to continue normally.

/* IMP: R-29198-50701 */
# EVIDENCE-OF: R-29198-50701 When the commit hook callback routine
# returns zero, the COMMIT operation is allowed to continue normally.

R-14099-28081-41654-53120-44875-00301-46355-06140 tcl slt th3 src

If the commit hook returns non-zero, then the COMMIT is converted into a ROLLBACK.

/* IMP: R-14099-28081 */
# EVIDENCE-OF: R-14099-28081 If the commit hook returns non-zero, then
# the COMMIT is converted into a ROLLBACK.

R-12556-35327-19465-37938-14363-50325-55527-10605 tcl slt th3 src

The rollback hook is invoked on a rollback that results from a commit hook returning non-zero, just as it would be with any other rollback.

/* IMP: R-12556-35327 */
# EVIDENCE-OF: R-12556-35327 The rollback hook is invoked on a rollback
# that results from a commit hook returning non-zero, just as it would
# be with any other rollback.

R-40541-54897-33607-37262-17474-57290-09312-25628 tcl slt th3 src

For the purposes of this API, a transaction is said to have been rolled back if an explicit "ROLLBACK" statement is executed, or an error or constraint causes an implicit rollback to occur.

/* IMP: R-40541-54897 */
# EVIDENCE-OF: R-40541-54897 For the purposes of this API, a transaction
# is said to have been rolled back if an explicit "ROLLBACK" statement
# is executed, or an error or constraint causes an implicit rollback to
# occur.

R-60001-20170-36140-08740-00799-64790-64751-11735 tcl slt th3 src

The rollback callback is not invoked if a transaction is automatically rolled back because the database connection is closed.

/* IMP: R-60001-20170 */
# EVIDENCE-OF: R-60001-20170 The rollback callback is not invoked if a
# transaction is automatically rolled back because the database
# connection is closed.