*** DRAFT ***

SQLite Requirement Matrix Details
expanded_sql.html

Index Summary Markup Original


R-34314-06007-23852-03493-52380-57466-48633-09703 tcl slt th3 src

The sqlite3_sql(P) interface returns a pointer to a copy of the UTF-8 SQL text used to create prepared statement P if P was created by sqlite3_prepare_v2(), sqlite3_prepare_v3(), sqlite3_prepare16_v2(), or sqlite3_prepare16_v3().

th3/req1/sql01.test:18   th3/th3util.c:2502

/* IMP: R-34314-06007 */
# EVIDENCE-OF: R-34314-06007 The sqlite3_sql(P) interface returns a
# pointer to a copy of the UTF-8 SQL text used to create prepared
# statement P if P was created by sqlite3_prepare_v2(),
# sqlite3_prepare_v3(), sqlite3_prepare16_v2(), or
# sqlite3_prepare16_v3().

R-64182-49733-18009-45461-02192-56112-34061-30398 tcl slt th3 src

The sqlite3_expanded_sql(P) interface returns a pointer to a UTF-8 string containing the SQL text of prepared statement P with bound parameters expanded.

th3/req1/sql01.test:60

/* IMP: R-64182-49733 */
# EVIDENCE-OF: R-64182-49733 The sqlite3_expanded_sql(P) interface
# returns a pointer to a UTF-8 string containing the SQL text of
# prepared statement P with bound parameters expanded.

R-04945-22784-17023-15023-27622-31516-40757-39566 tcl slt th3 src

For example, if a prepared statement is created using the SQL text "SELECT $abc,:xyz" and if parameter $abc is bound to integer 2345 and parameter :xyz is unbound, then sqlite3_sql() will return the original string, "SELECT $abc,:xyz" but sqlite3_expanded_sql() will return "SELECT 2345,NULL".

th3/req1/sql01.test:64

/* IMP: R-04945-22784 */
# EVIDENCE-OF: R-04945-22784 For example, if a prepared statement is
# created using the SQL text "SELECT $abc,:xyz" and if parameter $abc is
# bound to integer 2345 and parameter :xyz is unbound, then
# sqlite3_sql() will return the original string, "SELECT $abc,:xyz" but
# sqlite3_expanded_sql() will return "SELECT 2345,NULL".

R-48508-22969-00511-42065-43898-18607-20276-53224 tcl slt th3 src

The sqlite3_expanded_sql() interface returns NULL if insufficient memory is available to hold the result, or if the result would exceed the the maximum string length determined by the SQLITE_LIMIT_LENGTH.

/* IMP: R-48508-22969 */
# EVIDENCE-OF: R-48508-22969 The sqlite3_expanded_sql() interface
# returns NULL if insufficient memory is available to hold the result,
# or if the result would exceed the the maximum string length determined
# by the SQLITE_LIMIT_LENGTH.

R-02603-20369-49628-47923-33871-62989-43083-21610 tcl slt th3 src

The SQLITE_TRACE_SIZE_LIMIT compile-time option limits the size of bound parameter expansions.

th3/cov1/main16.test:188

/* IMP: R-02603-20369 */
# EVIDENCE-OF: R-02603-20369 The SQLITE_TRACE_SIZE_LIMIT compile-time
# option limits the size of bound parameter expansions.

R-39074-57615-41505-43616-22624-34066-27860-62726 tcl slt th3 src

The SQLITE_OMIT_TRACE compile-time option causes sqlite3_expanded_sql() to always return NULL.

th3/req1/sql01.test:80

/* IMP: R-39074-57615 */
# EVIDENCE-OF: R-39074-57615 The SQLITE_OMIT_TRACE compile-time option
# causes sqlite3_expanded_sql() to always return NULL.

R-58280-63515-02896-54202-47701-47296-40255-41768 tcl slt th3 src

The string returned by sqlite3_sql(P) is managed by SQLite and is automatically freed when the prepared statement is finalized.

th3/req1/sql01.test:24

/* IMP: R-58280-63515 */
# EVIDENCE-OF: R-58280-63515 The string returned by sqlite3_sql(P) is
# managed by SQLite and is automatically freed when the prepared
# statement is finalized.

R-64254-06275-15717-61317-29135-17923-39276-44642 tcl slt th3 src

The string returned by sqlite3_expanded_sql(P), on the other hand, is obtained from sqlite3_malloc() and must be free by the application by passing it to sqlite3_free().

th3/req1/sql01.test:85

/* IMP: R-64254-06275 */
# EVIDENCE-OF: R-64254-06275 The string returned by
# sqlite3_expanded_sql(P), on the other hand, is obtained from
# sqlite3_malloc() and must be free by the application by passing it to
# sqlite3_free().