From: drh <> Date: Mon, 12 Jan 2026 14:45:55 +0000 (+0000) Subject: Improved documentation (in the header comment) for tmstmpvfs.c. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6444f694a6c7ec2647bc0b9549145dd4175a402f;p=thirdparty%2Fsqlite.git Improved documentation (in the header comment) for tmstmpvfs.c. FossilOrigin-Name: 70b1da718c176b8eb154fe087af4352eb6f55c9c0d1f09fc625d073d9f8075f4 --- diff --git a/ext/misc/tmstmpvfs.c b/ext/misc/tmstmpvfs.c index 2ff8b9774c..c82292f2ee 100644 --- a/ext/misc/tmstmpvfs.c +++ b/ext/misc/tmstmpvfs.c @@ -42,6 +42,16 @@ ** You may want to add additional compiler options, of course, ** according to the needs of your project. ** +** Another option is to statically link both SQLite and this extension +** into your application. If both this file and "sqlite3.c" are statically +** linked, and if "sqlite3.c" is compiled with -DSQLITE_EXTRA_INIT= +** SQLite amalgamation "sqlite3.c" file with the option like: +** +** -DSQLITE_EXTRA_INIT=sqlite3_register_tmstmpvfs +** +** Then SQLite will use the tmstmp VFS by default throughout your +** application. +** ** LOADING ** ** To load this extension as a shared library, you first have to @@ -64,6 +74,14 @@ ** correct order so that it sequences itself into the default VFS ** Shim stack in the right order. ** +** When running the CLI, you can load this extension at invocation by +** adding a command-line option like this: "--vfs ./tmstmpvfs.so". +** The --vfs option usually specifies the symbolic name of a built-in VFS. +** But if the argument to --vfs is not a built-in VFS but is instead the +** name of a file, the CLI tries to load that file as an extension. Note +** that the full name of the extension file must be provided, including +** the ".so" or ".dylib" or ".dll" suffix. +** ** An application can see if the tmstmpvfs is being used by examining ** the results from SQLITE_FCNTL_VFSNAME (or the .vfsname command in ** the CLI). If the answer include "tmstmp", then this VFS is being @@ -96,13 +114,16 @@ ** From the CLI, use the ".filectrl reserve_bytes 16" command, ** followed by "VACUUM;". ** -** Note that SQLite allows the number of reserve-bytes to be -** increased but not decreased. So if a database file already -** has a reserve-bytes value greater than 16, there is no way to -** activate timestamping on that database, other than to dump -** and restore the database file. Note also that other extensions -** might also make use of the reserve-bytes. Timestamping will -** be incompatible with those other extensions. +** SQLite allows the number of reserve-bytes to be increased, but +** not decreased. If you want to restore the reserve-bytes to 0 +** (to disable tmstmpvfs), the easiest approach is to use VACUUM INTO +** with a URI filename as the argument and include "reserve=0" query +** parameter on the URI. Example: +** +** VACUUM INTO 'file:notimestamps.db?reserve=0'; +** +** Then switch over to using the new database file. The reserve=0 query +** parameter only works on SQLite 3.52.0 and later. ** ** IMPLEMENTATION NOTES ** diff --git a/manifest b/manifest index 6567057c8b..05b03f0410 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Add\ssqlite3_carray_bind()\sto\ssqlite3_api_routines.\s[forum:257e642a4c|Forum\spost\s257e642a4c]. -D 2026-01-11T21:18:23.438 +C Improved\sdocumentation\s(in\sthe\sheader\scomment)\sfor\stmstmpvfs.c. +D 2026-01-12T14:45:55.981 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -402,7 +402,7 @@ F ext/misc/sqlite3_stdio.h 27a4ecea47e61bc9574ccdf2806f468afe23af2f95028c9b689bf F ext/misc/stmt.c b090086cd6bd6281c21271d38d576eeffe662f0e6b67536352ce32bbaa438321 F ext/misc/stmtrand.c 59cffa5d8e158943ff1ce078956d8e208e8c04e67307e8f249dece2436dcb7fc F ext/misc/templatevtab.c 10f15b165b95423ddef593bc5dcb915ec4eb5e0f1066d585e5435a368b8bc22b -F ext/misc/tmstmpvfs.c 6145eb362e3cd48a687c8878766f1eeae396ef29c4c76d3cb9d129ecc3f804e9 +F ext/misc/tmstmpvfs.c 3446d4a769ff05265cca4affc6533010b382bc33437b21476b792e95a32798e4 F ext/misc/totype.c ba11aac3c0b52c685bd25aa4e0f80c41c624fb1cc5ab763250e09ddc762bc3a8 F ext/misc/uint.c 327afc166058acf566f33a15bf47c869d2d3564612644d9ff81a23efc8b36039 F ext/misc/unionvtab.c 716d385256d5fb4beea31b0efede640807e423e85c9784d21d22f0cce010a785 @@ -2191,8 +2191,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee F tool/warnings.sh d924598cf2f55a4ecbc2aeb055c10bd5f48114793e7ba25f9585435da29e7e98 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c -P 334b2be57e752672cfcaf764e3bc73e3d00a0a5174e8ef7c3d83c26136bccaf5 -R dfd43f7b9a6ab7246c7dbc2a4c9e1177 -U stephan -Z dc5ff1f8abfae450c383c3af7a86a512 +P 7c40dbcec8843f6189549a25dcfa8475f53212de8b0de81e10fd6687ef8fae9e +R afca1fd0bf7ca05599a16b8fde1f7f49 +U drh +Z 51c97575c031d15460ea4697f3e2a0b5 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 53d6d6f500..bc1ccb0013 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -7c40dbcec8843f6189549a25dcfa8475f53212de8b0de81e10fd6687ef8fae9e +70b1da718c176b8eb154fe087af4352eb6f55c9c0d1f09fc625d073d9f8075f4