*** DRAFT ***

SQLite Requirement Matrix Details
column_decltype.html

Index Summary Markup Original


R-15818-17128-00123-39161-32371-64598-56479-09338 tcl slt th3 src

The first parameter is a prepared statement. If this statement is a SELECT statement and the Nth column of the returned result set of that SELECT is a table column (not an expression or subquery) then the declared type of the table column is returned.

/* IMP: R-15818-17128 */
# EVIDENCE-OF: R-15818-17128 The first parameter is a prepared
# statement. If this statement is a SELECT statement and the Nth column
# of the returned result set of that SELECT is a table column (not an
# expression or subquery) then the declared type of the table column is
# returned.

R-53473-04519-45856-48059-38257-59187-05509-43871 tcl slt th3 src

If the Nth column of the result set is an expression or subquery, then a NULL pointer is returned.

/* IMP: R-53473-04519 */
# EVIDENCE-OF: R-53473-04519 If the Nth column of the result set is an
# expression or subquery, then a NULL pointer is returned.

R-61435-31567-58098-41334-50609-21089-31560-63690 tcl slt th3 src

The returned string is always UTF-8 encoded.

/* IMP: R-61435-31567 */
# EVIDENCE-OF: R-61435-31567 The returned string is always UTF-8
# encoded.

R-51255-43746-15106-11095-25505-08076-41908-14797 tcl slt th3 src

For example, given the database schema:

CREATE TABLE t1(c1 VARIANT);

and the following statement to be compiled:

SELECT c1 + 1, c1 FROM t1;

this routine would return the string "VARIANT" for the second result column (i==1), and a NULL pointer for the first result column (i==0).

/* IMP: R-51255-43746 */
# EVIDENCE-OF: R-51255-43746 For example, given the database schema:
# CREATE TABLE t1(c1 VARIANT); and the following statement to be
# compiled: SELECT c1 + 1, c1 FROM t1; this routine would return the
# string "VARIANT" for the second result column (i==1), and a NULL
# pointer for the first result column (i==0).

R-04905-26881-40783-35987-17174-16580-39842-61729 tcl slt th3 src

SQLite uses dynamic run-time typing.

/* IMP: R-04905-26881 */
# EVIDENCE-OF: R-04905-26881 SQLite uses dynamic run-time typing.

R-15572-63310-25640-21443-38928-49206-01158-44169 tcl slt th3 src

So just because a column is declared to contain a particular type does not mean that the data stored in that column is of the declared type.

/* IMP: R-15572-63310 */
# EVIDENCE-OF: R-15572-63310 So just because a column is declared to
# contain a particular type does not mean that the data stored in that
# column is of the declared type.

R-29629-55858-55328-41166-17171-44417-01732-51851 tcl slt th3 src

Type is associated with individual values, not with the containers used to hold those values.

/* IMP: R-29629-55858 */
# EVIDENCE-OF: R-29629-55858 Type is associated with individual values,
# not with the containers used to hold those values.