]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Document minor discrepancies in how sqlite3_bind_pointer() and sqlite3_carray_bind...
authorstephan <stephan@noemail.net>
Fri, 24 Oct 2025 15:18:13 +0000 (15:18 +0000)
committerstephan <stephan@noemail.net>
Fri, 24 Oct 2025 15:18:13 +0000 (15:18 +0000)
FossilOrigin-Name: b92478c389a9ff57302c021444ced09aef067ab55394dcda38cde97a3f2628d4

manifest
manifest.uuid
src/sqlite.h.in

index 28418c9946f5ebb8b07421fa50d53bcddbef8bed..9cb25c1971c882e1f1cb311545cdc97fc0e93cb7 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Make\sexplicit\sthat\ssqlite3_bind_pointer()\sand\ssqlite3_carray_bind()\scall\sthe\sprovided\sdestructor\seven\sif\sthose\sroutines\sfail,\sper\s[forum:6d81b10952|forum\sfeedback].
-D 2025-10-24T14:30:42.743
+C Document\sminor\sdiscrepancies\sin\show\ssqlite3_bind_pointer()\sand\ssqlite3_carray_bind()\sreact\sto\sthe\sSQLITE_TRANSIENT\sand\sSQLITE_STATIC\sfinalizers.
+D 2025-10-24T15:18:13.630
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -737,7 +737,7 @@ F src/resolve.c f8d1d011aba0964ff1bdccd049d4d2c2fec217efd90d202a4bb775e926b2c25d
 F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
 F src/select.c b95181711d59c36d9789e67f76c4cfec64b99f9629a50be5e6566e117b87d957
 F src/shell.c.in 8d218cb62f8badb58cb6d91302ca8b6ccdc93232dd2ba39a9ace2e41fd8495cb
-F src/sqlite.h.in 84b45d68953c7fab8392c8ff7055db4e398e496083b853dac61e787154913720
+F src/sqlite.h.in 97d10657e673dd841626bb1d65d2c1a518d61c6d3a8a35e4111fea7a97fd6ce3
 F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479
 F src/sqlite3ext.h 7f236ca1b175ffe03316d974ef57df79b3938466c28d2f95caef5e08c57f3a52
 F src/sqliteInt.h 88f7fc9ce1630d9a5f7e0a8e1f3287cdc63882fba985c18e7eee1b9f457f59aa
@@ -2171,8 +2171,8 @@ F tool/version-info.c 33d0390ef484b3b1cb685d59362be891ea162123cea181cb8e6d2cf6dd
 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
 F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 440ce1cff2b7519912fec87f440894592e901d730bf74cf99479e7b1d047bf02
-R 96b76ffc99b8e4156ec41163bd33020c
+P 1fcb0b60798c708fec53d9d69a65cca2e37a9af7a5fa654c7b2bba97056cd461
+R 2cdd7a83325fc2e06d5a9b00c4543329
 U stephan
-Z 84de5de3825ba943849eab13baee19f5
+Z 2cee7d18aca1190f67d9a599c75e64bc
 # Remove this line to create a well-formed Fossil manifest.
index da5eca47538aeeddd83de45132bad5d5dbe13f26..2762695a9c8ce5b6321356e9f30ecee0623547e9 100644 (file)
@@ -1 +1 @@
-1fcb0b60798c708fec53d9d69a65cca2e37a9af7a5fa654c7b2bba97056cd461
+b92478c389a9ff57302c021444ced09aef067ab55394dcda38cde97a3f2628d4
index 9eafdeac1ff663f97deec36df0972c04d8ab1394..07028f8356bce09b35c8df4d4fdedb68846565fe 100644 (file)
@@ -4907,10 +4907,11 @@ typedef struct sqlite3_context sqlite3_context;
 ** associated with the pointer P of type T.  ^D is either a NULL pointer or
 ** a pointer to a destructor function for P. ^SQLite will invoke the
 ** destructor D with a single argument of P when it is finished using
-** P, even if the call to sqlite3_bind_pointer() fails.  The T
-** parameter should be a static string, preferably a string literal.
-** The sqlite3_bind_pointer() routine is part of the [pointer passing
-** interface] added for SQLite 3.20.0.
+** P, even if the call to sqlite3_bind_pointer() fails.  Due to a
+** historical design quirk, results are undefined if D is
+** SQLITE_TRANSIENT. The T parameter should be a static string,
+** preferably a string literal. The sqlite3_bind_pointer() routine is
+** part of the [pointer passing interface] added for SQLite 3.20.0.
 **
 ** ^If any of the sqlite3_bind_*() routines are called with a NULL pointer
 ** for the [prepared statement] or with a prepared statement for which
@@ -11155,7 +11156,8 @@ int sqlite3_deserialize(
 ** indicate the datatype of the array being bound.  The X argument is not a
 ** NULL pointer, then SQLite will invoke the function X on the P parameter
 ** after it has finished using P, even if the call to
-** sqlite3_carray_bind() fails.
+** sqlite3_carray_bind() fails. The special-case finalizer
+** SQLITE_TRANSIENT has no effect here.
 */
 SQLITE_API int sqlite3_carray_bind(
   sqlite3_stmt *pStmt,        /* Statement to be bound */