*** DRAFT ***

SQLite Requirement Matrix Details
preupdate_count.html

Index Summary Markup Original


R-17579-15688-44175-34852-39551-28405-28214-64262 tcl slt th3 src

These interfaces are only available if SQLite is compiled using the SQLITE_ENABLE_PREUPDATE_HOOK compile-time option.

/* IMP: R-17579-15688 */
# EVIDENCE-OF: R-17579-15688 These interfaces are only available if
# SQLite is compiled using the SQLITE_ENABLE_PREUPDATE_HOOK compile-time
# option.

R-50603-48655-15152-53727-63260-31520-08001-01619 tcl slt th3 src

The sqlite3_preupdate_hook() interface registers a callback function that is invoked prior to each INSERT, UPDATE, and DELETE operation on a database table.

/* IMP: R-50603-48655 */
# EVIDENCE-OF: R-50603-48655 The sqlite3_preupdate_hook() interface
# registers a callback function that is invoked prior to each INSERT,
# UPDATE, and DELETE operation on a database table.

R-47446-42933-31518-33219-37380-53181-26111-02925 tcl slt th3 src

At most one preupdate hook may be registered at a time on a single database connection; each call to sqlite3_preupdate_hook() overrides the previous setting.

/* IMP: R-47446-42933 */
# EVIDENCE-OF: R-47446-42933 At most one preupdate hook may be
# registered at a time on a single database connection; each call to
# sqlite3_preupdate_hook() overrides the previous setting.

R-32246-51249-01476-28736-10889-32262-29627-47860 tcl slt th3 src

The preupdate hook is disabled by invoking sqlite3_preupdate_hook() with a NULL pointer as the second parameter.

/* IMP: R-32246-51249 */
# EVIDENCE-OF: R-32246-51249 The preupdate hook is disabled by invoking
# sqlite3_preupdate_hook() with a NULL pointer as the second parameter.

R-42144-12179-61067-60521-47776-40756-33656-09079 tcl slt th3 src

The third parameter to sqlite3_preupdate_hook() is passed through as the first parameter to callbacks.

/* IMP: R-42144-12179 */
# EVIDENCE-OF: R-42144-12179 The third parameter to
# sqlite3_preupdate_hook() is passed through as the first parameter to
# callbacks.

R-06827-04046-27968-25213-21416-65071-36400-16150 tcl slt th3 src

The preupdate hook only fires for changes to real database tables; the preupdate hook is not invoked for changes to virtual tables or to system tables like sqlite_master or sqlite_stat1.

/* IMP: R-06827-04046 */
# EVIDENCE-OF: R-06827-04046 The preupdate hook only fires for changes
# to real database tables; the preupdate hook is not invoked for changes
# to virtual tables or to system tables like sqlite_master or
# sqlite_stat1.

R-36147-61857-54581-58200-55810-07092-59837-08687 tcl slt th3 src

The second parameter to the preupdate callback is a pointer to the database connection that registered the preupdate hook.

/* IMP: R-36147-61857 */
# EVIDENCE-OF: R-36147-61857 The second parameter to the preupdate
# callback is a pointer to the database connection that registered the
# preupdate hook.

R-44820-17227-57032-02316-25534-20387-01483-22879 tcl slt th3 src

The third parameter to the preupdate callback is one of the constants SQLITE_INSERT, SQLITE_DELETE, or SQLITE_UPDATE to identify the kind of update operation that is about to occur.

/* IMP: R-44820-17227 */
# EVIDENCE-OF: R-44820-17227 The third parameter to the preupdate
# callback is one of the constants SQLITE_INSERT, SQLITE_DELETE, or
# SQLITE_UPDATE to identify the kind of update operation that is about
# to occur.

R-14786-64066-57173-54332-48842-61932-26767-55226 tcl slt th3 src

The fourth parameter to the preupdate callback is the name of the database within the database connection that is being modified. This will be "main" for the main database or "temp" for TEMP tables or the name given after the AS keyword in the ATTACH statement for attached databases.

/* IMP: R-14786-64066 */
# EVIDENCE-OF: R-14786-64066 The fourth parameter to the preupdate
# callback is the name of the database within the database connection
# that is being modified. This will be "main" for the main database or
# "temp" for TEMP tables or the name given after the AS keyword in the
# ATTACH statement for attached databases.

R-48560-31808-12822-42502-57159-22070-42910-14910 tcl slt th3 src

The fifth parameter to the preupdate callback is the name of the table that is being modified.

/* IMP: R-48560-31808 */
# EVIDENCE-OF: R-48560-31808 The fifth parameter to the preupdate
# callback is the name of the table that is being modified.

R-11643-51568-63953-16021-50557-65139-53423-53670 tcl slt th3 src

The sqlite3_preupdate_count(D) interface returns the number of columns in the row that is being inserted, updated, or deleted.

/* IMP: R-11643-51568 */
# EVIDENCE-OF: R-11643-51568 The sqlite3_preupdate_count(D) interface
# returns the number of columns in the row that is being inserted,
# updated, or deleted.

R-19120-50787-31629-64944-20395-18225-62762-09460 tcl slt th3 src

The sqlite3_preupdate_old(D,N,P) interface writes into P a pointer to a protected sqlite3_value that contains the value of the Nth column of the table row before it is updated.

/* IMP: R-19120-50787 */
# EVIDENCE-OF: R-19120-50787 The sqlite3_preupdate_old(D,N,P) interface
# writes into P a pointer to a protected sqlite3_value that contains the
# value of the Nth column of the table row before it is updated.

R-19884-42355-59719-29955-34222-13016-47876-51670 tcl slt th3 src

The sqlite3_preupdate_new(D,N,P) interface writes into P a pointer to a protected sqlite3_value that contains the value of the Nth column of the table row after it is updated.

/* IMP: R-19884-42355 */
# EVIDENCE-OF: R-19884-42355 The sqlite3_preupdate_new(D,N,P) interface
# writes into P a pointer to a protected sqlite3_value that contains the
# value of the Nth column of the table row after it is updated.

R-50949-63870-33866-03179-22330-03090-53959-18896 tcl slt th3 src

The sqlite3_preupdate_depth(D) interface returns 0 if the preupdate callback was invoked as a result of a direct insert, update, or delete operation; or 1 for inserts, updates, or deletes invoked by top-level triggers; or 2 for changes resulting from triggers called by top-level triggers; and so forth.

/* IMP: R-50949-63870 */
# EVIDENCE-OF: R-50949-63870 The sqlite3_preupdate_depth(D) interface
# returns 0 if the preupdate callback was invoked as a result of a
# direct insert, update, or delete operation; or 1 for inserts, updates,
# or deletes invoked by top-level triggers; or 2 for changes resulting
# from triggers called by top-level triggers; and so forth.