From 8b2d8de3e20367e62c1320958bdedc4b534b87fd Mon Sep 17 00:00:00 2001 From: drh Date: Fri, 1 May 2020 13:32:19 +0000 Subject: [PATCH] Update documentation for sqlite3_close_v2() for clarity. No functional changes. FossilOrigin-Name: 80498b69ea489e8816c80a52c9e55a62699116fcbfdcbfd922ef23c2d9938871 --- manifest | 12 ++++++------ manifest.uuid | 2 +- src/sqlite.h.in | 34 +++++++++++++++------------------- 3 files changed, 22 insertions(+), 26 deletions(-) diff --git a/manifest b/manifest index 984be3d25f..464caade5b 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Add\sthe\snew\sSQLITE_IOERR_DATA\sresult\scode\sand\suse\sit\sin\scksumvfs.\nAlso\senhance\scksumvfs\sto\semit\san\ssqlite3_log()\smessage\swhenever\sit\sfinds\nan\sinvalid\schecksum. -D 2020-05-01T11:31:43.081 +C Update\sdocumentation\sfor\ssqlite3_close_v2()\sfor\sclarity.\s\sNo\sfunctional\nchanges. +D 2020-05-01T13:32:19.580 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -535,7 +535,7 @@ F src/resolve.c d36a2b1639e1c33d7b508abfd3452a63e7fd81737f6f3940bfef085fca6f21f4 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92 F src/select.c c310de94bf67315054587c18a16e7a3e3dc3a98dc79168f0c2b776548d43f6cd F src/shell.c.in 86cd0f0412b9739b769fafdfcad28f731882d522042a95c30ab033a5eba68b03 -F src/sqlite.h.in 177084a0cef8c3b1df835bdec9530f102026bf0b6e9492a32349d62c30113a66 +F src/sqlite.h.in dc7fe6a874febed1625fe270b0bbeb9e5018c585639df2ff7a1140d048dbbc15 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 F src/sqlite3ext.h 2d1af80082edffd71c6f96f70ad1ce6a4fb46615ad10291fc77fe0dea9ff0197 F src/sqliteInt.h 0f3848c46310d197246003f052985b72d1cdbfc0b31e069db76cb5231062fa1d @@ -1862,7 +1862,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 2c17cdce26fd935e6d81ff828f4670291fc014013c93b2a1578506598345ee86 -R 1e877c1fea766b151c81954ab2c1dc73 +P a094e8bfdef10d9e5d97f5a9f7c15b0fc547358b83367762ba5c2dfd2c9d0117 +R 693a622bdbf2543acdb106cd8db3f135 U drh -Z dd4cd34bda503d060e1073825c3c95ba +Z 6c1f5b11653b9fb726bcbb3b288cff5f diff --git a/manifest.uuid b/manifest.uuid index 7d94dfd16a..c6b677f739 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -a094e8bfdef10d9e5d97f5a9f7c15b0fc547358b83367762ba5c2dfd2c9d0117 \ No newline at end of file +80498b69ea489e8816c80a52c9e55a62699116fcbfdcbfd922ef23c2d9938871 \ No newline at end of file diff --git a/src/sqlite.h.in b/src/sqlite.h.in index 8b36af77bd..9e87ef8c0c 100644 --- a/src/sqlite.h.in +++ b/src/sqlite.h.in @@ -299,26 +299,22 @@ typedef sqlite_uint64 sqlite3_uint64; ** the [sqlite3] object is successfully destroyed and all associated ** resources are deallocated. ** -** ^If the database connection is associated with unfinalized prepared -** statements or unfinished sqlite3_backup objects then sqlite3_close() -** will leave the database connection open and return [SQLITE_BUSY]. -** ^If sqlite3_close_v2() is called with unfinalized prepared statements -** and/or unfinished sqlite3_backups, then the database connection becomes -** an unusable "zombie" which will automatically be deallocated when the -** last prepared statement is finalized or the last sqlite3_backup is -** finished. The sqlite3_close_v2() interface is intended for use with -** host languages that are garbage collected, and where the order in which -** destructors are called is arbitrary. -** -** Applications should [sqlite3_finalize | finalize] all [prepared statements], -** [sqlite3_blob_close | close] all [BLOB handles], and +** Ideally, applications should [sqlite3_finalize | finalize] all +** [prepared statements], [sqlite3_blob_close | close] all [BLOB handles], and ** [sqlite3_backup_finish | finish] all [sqlite3_backup] objects associated -** with the [sqlite3] object prior to attempting to close the object. ^If -** sqlite3_close_v2() is called on a [database connection] that still has -** outstanding [prepared statements], [BLOB handles], and/or -** [sqlite3_backup] objects then it returns [SQLITE_OK] and the deallocation -** of resources is deferred until all [prepared statements], [BLOB handles], -** and [sqlite3_backup] objects are also destroyed. +** with the [sqlite3] object prior to attempting to close the object. +** ^If the database connection is associated with unfinalized prepared +** statements, BLOB handlers, and/or unfinished sqlite3_backup objects then +** sqlite3_close() will leave the database connection open and return +** [SQLITE_BUSY]. ^If sqlite3_close_v2() is called with unfinalized prepared +** statements, unclosed BLOB handlers, and/or unfinished sqlite3_backups, +** it returns [SQLITE_OK] regardless, but instead of deallocating the database +** connection immediately, it marks the database connection as an unusable +** "zombie" and makes arrangements to automatically deallocate the database +** connection after all prepared statements are finalized, all BLOB handles +** are closed, and all backups have finished. The sqlite3_close_v2() interface +** is intended for use with host languages that are garbage collected, and +** where the order in which destructors are called is arbitrary. ** ** ^If an [sqlite3] object is destroyed while a transaction is open, ** the transaction is automatically rolled back.