Change the documentation to clearly state that the result of

sqlite3_column_type() is undefined following a type conversion. (CVS 4007)

FossilOrigin-Name: 960be575e2b062a34c96d006e411ad34ded58063
This commit is contained in:
drh
2007-05-15 14:17:25 +00:00
parent 150dbacea4
commit 76cb812d25
3 changed files with 28 additions and 15 deletions
+6 -6
View File
@@ -1,5 +1,5 @@
C Fix\sto\scheck-in\s(4005).\s\sA\scall\sto\ssqlite3_column_blob()\sshould\snot\smake\nsubsequent\scalls\sto\ssqlite3_column_type()\sreturn\sSQLITE_BLOB.\nSqlite3_column_type()\sreturns\sthe\sinitial\stype.\s(CVS\s4006)
D 2007-05-15T14:10:40
C Change\sthe\sdocumentation\sto\sclearly\sstate\sthat\sthe\sresult\sof\nsqlite3_column_type()\sis\sundefined\sfollowing\sa\stype\sconversion.\s(CVS\s4007)
D 2007-05-15T14:17:25
F Makefile.in 87b200ad9970907f76df734d29dff3d294c10935
F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -447,7 +447,7 @@ F www/audit.tcl 90e09d580f79c7efec0c7d6f447b7ec5c2dce5c0
F www/autoinc.tcl b357f5ba954b046ee35392ce0f884a2fcfcdea06
F www/c_interface.tcl b51b08591554c16a0c3ef718364a508ac25abc7e
F www/capi3.tcl 88884dd743039d1a95aa57f4a5eb369de7744716
F www/capi3ref.tcl 31da5635eb64ab0f47c71b93b131a6bcb1ddebc9
F www/capi3ref.tcl 8f1a17a10d95b48385ec4608449279274125c88a
F www/changes.tcl 550300b0ff00fc1b872f7802b2d5a1e7587d3e58
F www/common.tcl 2b793e5c31486c8a01dd27dc0a631ad93704438e
F www/compile.tcl 276546d7eb445add5a867193bbd80f6919a6b084
@@ -491,7 +491,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
P cf2dd45b58380de7f3e167b5357848d12872caa3
R c70e0740af8fc22bb0f88652371152ba
P b5e85deb5a0316781a6f39d6085b9fcfb9f88c6d
R 2c94f4739f016800a57525b336740acc
U drh
Z 8f2f5d1cc7ed3029aa9c988b8eb2451c
Z 5d300394ab97e7ae63df9330c51a060a
+1 -1
View File
@@ -1 +1 @@
b5e85deb5a0316781a6f39d6085b9fcfb9f88c6d
960be575e2b062a34c96d006e411ad34ded58063
+21 -8
View File
@@ -1,4 +1,4 @@
set rcsid {$Id: capi3ref.tcl,v 1.58 2007/05/15 13:27:08 drh Exp $}
set rcsid {$Id: capi3ref.tcl,v 1.59 2007/05/15 14:17:25 drh Exp $}
source common.tcl
header {C/C++ Interface For SQLite Version 3}
puts {
@@ -158,9 +158,9 @@ api {} {
#define SQLITE_TRANSIENT ((void(*)(void *))-1)
} {
In the SQL strings input to sqlite3_prepare_v2() and sqlite3_prepare16_v2(),
one or more literals can be replace by a parameter "?" or ":AAA" or
"@AAA" or "\$VVV"
where AAA is an alphanumeric identifier and VVV is a variable name according
one or more literals can be replace by a parameter "?" or "?NNN"
or ":AAA" or "@AAA" or "\$VVV" where NNN is an integer literal,
AAA is an alphanumeric identifier and VVV is a variable name according
to the syntax rules of the TCL programming language.
The values of these parameters (also called "host parameter names")
can be set using the sqlite3_bind_*() routines.
@@ -172,7 +172,9 @@ api {} {
and subsequent
occurrences have the same index as the first occurrence. The index for
named parameters can be looked up using the
sqlite3_bind_parameter_name() API if desired.
sqlite3_bind_parameter_name() API if desired. The index for "?NNN"
parametes is the value of NNN. The NNN value must be between 1 and 999.
The third argument is the value to bind to the parameter.
@@ -217,15 +219,17 @@ api {} {
} {
Return the name of the n-th parameter in the precompiled statement.
Parameters of the form ":AAA" or "@AAA" or "\$VVV" have a name which is the
string ":AAA" or "\$VVV". In other words, the initial ":" or "$" or "@"
string ":AAA" or "@AAA" or "\$VVV".
In other words, the initial ":" or "$" or "@"
is included as part of the name.
Parameters of the form "?" have no name.
Parameters of the form "?" or "?NNN" have no name.
The first bound parameter has an index of 1, not 0.
If the value n is out of range or if the n-th parameter is nameless,
then NULL is returned. The returned string is always in the
UTF-8 encoding.
UTF-8 encoding even if the named parameter was originally specified
as UTF-16 in sqlite3_prepare16_v2().
}
api {} {
@@ -391,6 +395,15 @@ int sqlite3_column_type(sqlite3_stmt*, int iCol);
If the SQL statement is not currently point to a valid row, or if the
the column index is out of range, the result is undefined.
The sqlite3_column_type() routine returns the initial data type
of the result column. The returned value is one of SQLITE_INTEGER,
SQLITE_FLOAT, SQLITE_TEXT, SQLITE_BLOB, or SQLITE_NULL. The value
returned by sqlite3_column_type() is only meaningful if no type
conversions have occurred as described below. After a type conversion,
the value returned by sqlite3_column_type() is undefined. Future
versions of SQLite may change the behavior of sqlite3_column_type()
following a type conversion.
If the result is a BLOB or UTF-8 string then the sqlite3_column_bytes()
routine returns the number of bytes in that BLOB or string.
If the result is a UTF-16 string, then sqlite3_column_bytes() converts