*** DRAFT ***

SQLite Requirement Matrix Details
result_blob.html

Index Summary Markup Original


R-08185-34281-12728-08403-04938-30337-50100-31193 tcl slt th3 src

The sqlite3_result_blob() interface sets the result from an application-defined function to be the BLOB whose content is pointed to by the second parameter and which is N bytes long where N is the third parameter.

th3/req1/result01.test:138

/* IMP: R-08185-34281 */
# EVIDENCE-OF: R-08185-34281 The sqlite3_result_blob() interface sets
# the result from an application-defined function to be the BLOB whose
# content is pointed to by the second parameter and which is N bytes
# long where N is the third parameter.

R-01210-33705-17929-40552-10240-19673-31617-63915 tcl slt th3 src

The sqlite3_result_zeroblob(C,N) and sqlite3_result_zeroblob64(C,N) interfaces set the result of the application-defined function to be a BLOB containing all zero bytes and N bytes in size.

th3/req1/result01.test:147

/* IMP: R-01210-33705 */
# EVIDENCE-OF: R-01210-33705 The sqlite3_result_zeroblob(C,N) and
# sqlite3_result_zeroblob64(C,N) interfaces set the result of the
# application-defined function to be a BLOB containing all zero bytes
# and N bytes in size.

R-37338-25090-02456-18897-36801-31063-06233-22705 tcl slt th3 src

The sqlite3_result_double() interface sets the result from an application-defined function to be a floating point value specified by its 2nd argument.

th3/req1/result01.test:160

/* IMP: R-37338-25090 */
# EVIDENCE-OF: R-37338-25090 The sqlite3_result_double() interface sets
# the result from an application-defined function to be a floating point
# value specified by its 2nd argument.

R-62953-16283-60973-36600-59526-31076-28505-32788 tcl slt th3 src

The sqlite3_result_error() and sqlite3_result_error16() functions cause the implemented SQL function to throw an exception.

th3/req1/result01.test:169

/* IMP: R-62953-16283 */
# EVIDENCE-OF: R-62953-16283 The sqlite3_result_error() and
# sqlite3_result_error16() functions cause the implemented SQL function
# to throw an exception.

R-16315-56881-31877-40762-35289-40185-03417-40758 tcl slt th3 src

SQLite uses the string pointed to by the 2nd parameter of sqlite3_result_error() or sqlite3_result_error16() as the text of an error message.

th3/req1/result01.test:173

/* IMP: R-16315-56881 */
# EVIDENCE-OF: R-16315-56881 SQLite uses the string pointed to by the
# 2nd parameter of sqlite3_result_error() or sqlite3_result_error16() as
# the text of an error message.

R-51278-32108-12212-46077-36246-55134-53199-48747 tcl slt th3 src

SQLite interprets the error message string from sqlite3_result_error() as UTF-8.

th3/req1/result01.test:177

/* IMP: R-51278-32108 */
# EVIDENCE-OF: R-51278-32108 SQLite interprets the error message string
# from sqlite3_result_error() as UTF-8.

R-29055-19620-57316-63969-08563-57428-43116-59145 tcl slt th3 src

SQLite interprets the string from sqlite3_result_error16() as UTF-16 using the same byte-order determination rules as sqlite3_bind_text16().

th3/req1/result01.test:180

/* IMP: R-29055-19620 */
# EVIDENCE-OF: R-29055-19620 SQLite interprets the string from
# sqlite3_result_error16() as UTF-16 using the same byte-order
# determination rules as sqlite3_bind_text16().

R-18741-16139-46901-23037-06510-07608-27753-13735 tcl slt th3 src

If the third parameter to sqlite3_result_error() or sqlite3_result_error16() is negative then SQLite takes as the error message all text up through the first zero character.

th3/req1/result01.test:184

/* IMP: R-18741-16139 */
# EVIDENCE-OF: R-18741-16139 If the third parameter to
# sqlite3_result_error() or sqlite3_result_error16() is negative then
# SQLite takes as the error message all text up through the first zero
# character.

R-41381-35999-48332-52888-17487-39096-22671-62741 tcl slt th3 src

If the third parameter to sqlite3_result_error() or sqlite3_result_error16() is non-negative then SQLite takes that many bytes (not characters) from the 2nd parameter as the error message.

th3/req1/result01.test:198

/* IMP: R-41381-35999 */
# EVIDENCE-OF: R-41381-35999 If the third parameter to
# sqlite3_result_error() or sqlite3_result_error16() is non-negative
# then SQLite takes that many bytes (not characters) from the 2nd
# parameter as the error message.

R-11203-26095-47421-44988-44413-41576-06585-21050 tcl slt th3 src

The sqlite3_result_error() and sqlite3_result_error16() routines make a private copy of the error message text before they return.

th3/req1/result01.test:58   th3/req1/result01.test:73

/* IMP: R-11203-26095 */
# EVIDENCE-OF: R-11203-26095 The sqlite3_result_error() and
# sqlite3_result_error16() routines make a private copy of the error
# message text before they return.

R-34326-56357-56903-53526-53046-15549-19745-22986 tcl slt th3 src

The sqlite3_result_error_code() function changes the error code returned by SQLite as a result of an error in a function.

th3/req1/result01.test:210

/* IMP: R-34326-56357 */
# EVIDENCE-OF: R-34326-56357 The sqlite3_result_error_code() function
# changes the error code returned by SQLite as a result of an error in a
# function.

R-34526-35712-49832-15543-35160-30600-56964-59649 tcl slt th3 src

By default, the error code is SQLITE_ERROR.

th3/req1/result01.test:189

/* IMP: R-34526-35712 */
# EVIDENCE-OF: R-34526-35712 By default, the error code is SQLITE_ERROR.

R-29497-04603-39486-29131-04048-03697-44723-21949 tcl slt th3 src

A subsequent call to sqlite3_result_error() or sqlite3_result_error16() resets the error code to SQLITE_ERROR.

th3/req1/result01.test:221

/* IMP: R-29497-04603 */
# EVIDENCE-OF: R-29497-04603 A subsequent call to sqlite3_result_error()
# or sqlite3_result_error16() resets the error code to SQLITE_ERROR.

R-62450-40032-48633-16143-21492-49055-31149-65125 tcl slt th3 src

The sqlite3_result_error_toobig() interface causes SQLite to throw an error indicating that a string or BLOB is too long to represent.

th3/req1/result01.test:231

/* IMP: R-62450-40032 */
# EVIDENCE-OF: R-62450-40032 The sqlite3_result_error_toobig() interface
# causes SQLite to throw an error indicating that a string or BLOB is
# too long to represent.

R-22036-37196-51098-25883-36361-04038-28343-30035 tcl slt th3 src

The sqlite3_result_error_nomem() interface causes SQLite to throw an error indicating that a memory allocation failed.

th3/req1/result01.test:239

/* IMP: R-22036-37196 */
# EVIDENCE-OF: R-22036-37196 The sqlite3_result_error_nomem() interface
# causes SQLite to throw an error indicating that a memory allocation
# failed.

R-51206-57397-04624-50040-55912-00290-07116-44966 tcl slt th3 src

The sqlite3_result_int() interface sets the return value of the application-defined function to be the 32-bit signed integer value given in the 2nd argument.

th3/req1/result01.test:247

/* IMP: R-51206-57397 */
# EVIDENCE-OF: R-51206-57397 The sqlite3_result_int() interface sets the
# return value of the application-defined function to be the 32-bit
# signed integer value given in the 2nd argument.

R-61533-26777-10805-19639-06010-35256-55057-28233 tcl slt th3 src

The sqlite3_result_int64() interface sets the return value of the application-defined function to be the 64-bit signed integer value given in the 2nd argument.

th3/req1/result01.test:255

/* IMP: R-61533-26777 */
# EVIDENCE-OF: R-61533-26777 The sqlite3_result_int64() interface sets
# the return value of the application-defined function to be the 64-bit
# signed integer value given in the 2nd argument.

R-27896-13480-56358-14836-45881-39569-16238-21022 tcl slt th3 src

The sqlite3_result_null() interface sets the return value of the application-defined function to be NULL.

th3/req1/result01.test:263

/* IMP: R-27896-13480 */
# EVIDENCE-OF: R-27896-13480 The sqlite3_result_null() interface sets
# the return value of the application-defined function to be NULL.

R-13561-46814-58902-48141-34775-52925-09120-28270 tcl slt th3 src

The sqlite3_result_text(), sqlite3_result_text16(), sqlite3_result_text16le(), and sqlite3_result_text16be() interfaces set the return value of the application-defined function to be a text string which is represented as UTF-8, UTF-16 native byte order, UTF-16 little endian, or UTF-16 big endian, respectively.

th3/req1/result02.test:294

/* IMP: R-13561-46814 */
# EVIDENCE-OF: R-13561-46814 The sqlite3_result_text(),
# sqlite3_result_text16(), sqlite3_result_text16le(), and
# sqlite3_result_text16be() interfaces set the return value of the
# application-defined function to be a text string which is represented
# as UTF-8, UTF-16 native byte order, UTF-16 little endian, or UTF-16
# big endian, respectively.

R-30918-12436-57339-31834-32101-57409-49210-29864 tcl slt th3 src

The sqlite3_result_text64() interface sets the return value of an application-defined function to be a text string in an encoding specified by the fifth (and last) parameter, which must be one of SQLITE_UTF8, SQLITE_UTF16, SQLITE_UTF16BE, or SQLITE_UTF16LE.

th3/req1/result02.test:375

/* IMP: R-30918-12436 */
# EVIDENCE-OF: R-30918-12436 The sqlite3_result_text64() interface sets
# the return value of an application-defined function to be a text
# string in an encoding specified by the fifth (and last) parameter,
# which must be one of SQLITE_UTF8, SQLITE_UTF16, SQLITE_UTF16BE, or
# SQLITE_UTF16LE.

R-08114-32142-00732-64514-48561-20765-18490-60884 tcl slt th3 src

SQLite takes the text result from the application from the 2nd parameter of the sqlite3_result_text* interfaces.

th3/req1/result02.test:301

/* IMP: R-08114-32142 */
# EVIDENCE-OF: R-08114-32142 SQLite takes the text result from the
# application from the 2nd parameter of the sqlite3_result_text*
# interfaces.

R-29497-24405-09063-15182-02450-11825-26112-55595 tcl slt th3 src

If the 3rd parameter to any of the sqlite3_result_text* interfaces other than sqlite3_result_text64() is negative, then SQLite computes the string length itself by searching the 2nd parameter for the first zero character.

th3/req1/result02.test:305

/* IMP: R-29497-24405 */
# EVIDENCE-OF: R-29497-24405 If the 3rd parameter to any of the
# sqlite3_result_text* interfaces other than sqlite3_result_text64() is
# negative, then SQLite computes the string length itself by searching
# the 2nd parameter for the first zero character.

R-64528-42778-02888-51810-06932-64442-58390-22409 tcl slt th3 src

If the 3rd parameter to the sqlite3_result_text* interfaces is non-negative, then as many bytes (not characters) of the text pointed to by the 2nd parameter are taken as the application-defined function result.

th3/req1/result02.test:328

/* IMP: R-64528-42778 */
# EVIDENCE-OF: R-64528-42778 If the 3rd parameter to the
# sqlite3_result_text* interfaces is non-negative, then as many bytes
# (not characters) of the text pointed to by the 2nd parameter are taken
# as the application-defined function result.

R-03384-16988-56342-27113-15582-23905-61625-46605 tcl slt th3 src

If the 4th parameter to the sqlite3_result_text* interfaces or sqlite3_result_blob is a non-NULL pointer, then SQLite calls that function as the destructor on the text or BLOB result when it has finished using that result.

th3/req1/result02.test:358

/* IMP: R-03384-16988 */
# EVIDENCE-OF: R-03384-16988 If the 4th parameter to the
# sqlite3_result_text* interfaces or sqlite3_result_blob is a non-NULL
# pointer, then SQLite calls that function as the destructor on the text
# or BLOB result when it has finished using that result.

R-61449-07528-25918-54581-50691-46240-35761-07017 tcl slt th3 src

If the 4th parameter to the sqlite3_result_text* interfaces or to sqlite3_result_blob is the special constant SQLITE_STATIC, then SQLite assumes that the text or BLOB result is in constant space and does not copy the content of the parameter nor call a destructor on the content when it has finished using that result.

th3/req1/result02.test:393

/* IMP: R-61449-07528 */
# EVIDENCE-OF: R-61449-07528 If the 4th parameter to the
# sqlite3_result_text* interfaces or to sqlite3_result_blob is the
# special constant SQLITE_STATIC, then SQLite assumes that the text or
# BLOB result is in constant space and does not copy the content of the
# parameter nor call a destructor on the content when it has finished
# using that result.

R-20556-35657-32764-17566-55966-02395-47898-45086 tcl slt th3 src

If the 4th parameter to the sqlite3_result_text* interfaces or sqlite3_result_blob is the special constant SQLITE_TRANSIENT then SQLite makes a copy of the result into space obtained from sqlite3_malloc() before it returns.

th3/req1/result02.test:310

/* IMP: R-20556-35657 */
# EVIDENCE-OF: R-20556-35657 If the 4th parameter to the
# sqlite3_result_text* interfaces or sqlite3_result_blob is the special
# constant SQLITE_TRANSIENT then SQLite makes a copy of the result into
# space obtained from sqlite3_malloc() before it returns.

R-64621-04411-33319-49745-15596-29150-62306-56215 tcl slt th3 src

For the sqlite3_result_text16(), sqlite3_result_text16le(), and sqlite3_result_text16be() routines, and for sqlite3_result_text64() when the encoding is not UTF8, if the input UTF16 begins with a byte-order mark (BOM, U+FEFF) then the BOM is removed from the string and the rest of the string is interpreted according to the byte-order specified by the BOM.

/* IMP: R-64621-04411 */
# EVIDENCE-OF: R-64621-04411 For the sqlite3_result_text16(),
# sqlite3_result_text16le(), and sqlite3_result_text16be() routines, and
# for sqlite3_result_text64() when the encoding is not UTF8, if the
# input UTF16 begins with a byte-order mark (BOM, U+FEFF) then the BOM
# is removed from the string and the rest of the string is interpreted
# according to the byte-order specified by the BOM.

R-12576-53774-15482-62453-08322-32739-63345-41890 tcl slt th3 src

The byte-order specified by the BOM at the beginning of the text overrides the byte-order specified by the interface procedure.

/* IMP: R-12576-53774 */
# EVIDENCE-OF: R-12576-53774 The byte-order specified by the BOM at the
# beginning of the text overrides the byte-order specified by the
# interface procedure.

R-28060-16686-02484-25378-20168-65175-45888-14189 tcl slt th3 src

So, for example, if sqlite3_result_text16le() is invoked with text that begins with bytes 0xfe, 0xff (a big-endian byte-order mark) then the first two bytes of input are skipped and the remaining input is interpreted as UTF16BE text.

/* IMP: R-28060-16686 */
# EVIDENCE-OF: R-28060-16686 So, for example, if
# sqlite3_result_text16le() is invoked with text that begins with bytes
# 0xfe, 0xff (a big-endian byte-order mark) then the first two bytes of
# input are skipped and the remaining input is interpreted as UTF16BE
# text.

R-49060-02464-24124-01756-13538-48535-01084-34882 tcl slt th3 src

For UTF16 input text to the sqlite3_result_text16(), sqlite3_result_text16be(), sqlite3_result_text16le(), and sqlite3_result_text64() routines, if the text contains invalid UTF16 characters, the invalid characters might be converted into the unicode replacement character, U+FFFD.

/* IMP: R-49060-02464 */
# EVIDENCE-OF: R-49060-02464 For UTF16 input text to the
# sqlite3_result_text16(), sqlite3_result_text16be(),
# sqlite3_result_text16le(), and sqlite3_result_text64() routines, if
# the text contains invalid UTF16 characters, the invalid characters
# might be converted into the unicode replacement character, U+FFFD.

R-45324-33155-04012-63035-54710-33706-56967-14745 tcl slt th3 src

The sqlite3_result_value() interface sets the result of the application-defined function to be a copy of the unprotected sqlite3_value object specified by the 2nd parameter.

th3/req1/result03.test:51

/* IMP: R-45324-33155 */
# EVIDENCE-OF: R-45324-33155 The sqlite3_result_value() interface sets
# the result of the application-defined function to be a copy of the
# unprotected sqlite3_value object specified by the 2nd parameter.

R-19186-55658-49729-13397-54658-17694-41016-19836 tcl slt th3 src

The sqlite3_result_value() interface makes a copy of the sqlite3_value so that the sqlite3_value specified in the parameter may change or be deallocated after sqlite3_result_value() returns without harm.

th3/req1/result03.test:55

/* IMP: R-19186-55658 */
# EVIDENCE-OF: R-19186-55658 The sqlite3_result_value() interface makes
# a copy of the sqlite3_value so that the sqlite3_value specified in the
# parameter may change or be deallocated after sqlite3_result_value()
# returns without harm.

R-49956-53465-03282-32441-61380-45245-38103-26687 tcl slt th3 src

A protected sqlite3_value object may always be used where an unprotected sqlite3_value object is required, so either kind of sqlite3_value object can be used with this interface.

th3/req1/result03.test:78

/* IMP: R-49956-53465 */
# EVIDENCE-OF: R-49956-53465 A protected sqlite3_value object may always
# be used where an unprotected sqlite3_value object is required, so
# either kind of sqlite3_value object can be used with this interface.

R-47220-36599-18549-01728-06678-05877-60935-22906 tcl slt th3 src

The sqlite3_result_pointer(C,P,T,D) interface sets the result to an SQL NULL value, just like sqlite3_result_null(C), except that it also associates the host-language pointer P or type T with that NULL value such that the pointer can be retrieved within an application-defined SQL function using sqlite3_value_pointer().

th3/cov1/bindptr01.test:40   th3/cov1/carray01.test:97

/* IMP: R-47220-36599 */
# EVIDENCE-OF: R-47220-36599 The sqlite3_result_pointer(C,P,T,D)
# interface sets the result to an SQL NULL value, just like
# sqlite3_result_null(C), except that it also associates the
# host-language pointer P or type T with that NULL value such that the
# pointer can be retrieved within an application-defined SQL function
# using sqlite3_value_pointer().

R-57180-61125-28109-34818-16201-30872-33443-40704 tcl slt th3 src

If the D parameter is not NULL, then it is a pointer to a destructor for the P parameter.

th3/cov1/bindptr01.test:47

/* IMP: R-57180-61125 */
# EVIDENCE-OF: R-57180-61125 If the D parameter is not NULL, then it is
# a pointer to a destructor for the P parameter.

R-58827-57434-27367-43621-07290-05598-35918-65407 tcl slt th3 src

SQLite invokes D with P as its only argument when SQLite is finished with P.

/* IMP: R-58827-57434 */
# EVIDENCE-OF: R-58827-57434 SQLite invokes D with P as its only
# argument when SQLite is finished with P.