From: drh Date: Tue, 18 Nov 2008 19:18:08 +0000 (+0000) Subject: Application-defined page cache documentation updates. (CVS 5916) X-Git-Tag: version-3.6.10~261 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2161474f620a55b1bc195b253f9e0bc4f65046f3;p=thirdparty%2Fsqlite.git Application-defined page cache documentation updates. (CVS 5916) FossilOrigin-Name: db0f1203591fcc4c554c47cdf28abe279cf7f1d5 --- diff --git a/manifest b/manifest index f9b01a5efd..d7506f4249 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Reduce\sthe\snumber\sof\s"missing\sinitializer"\swarnings.\s(CVS\s5915) -D 2008-11-18T07:27:24 +C Application-defined\spage\scache\sdocumentation\supdates.\s(CVS\s5916) +D 2008-11-18T19:18:09 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.in 6cbc7db84c23804c368bc7ffe51367412212d7b2 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -152,7 +152,7 @@ F src/random.c a87afbd598aa877e23ac676ee92fd8ee5c786a51 F src/resolve.c 4af5391d2b4c1d6c583a6805ac6660181de4545b F src/select.c 18c6d96f4f8c6e43cb35201a1245ff02be8c9378 F src/shell.c 650d1a87408682280d0e9d014d0d328c59c84b38 -F src/sqlite.h.in 85e159e1d634c84ddbf87481293d5b1d26e2d27b +F src/sqlite.h.in 4d05b9195e9489dc62857d9dd3334b0139715101 F src/sqlite3ext.h 1db7d63ab5de4b3e6b83dd03d1a4e64fef6d2a17 F src/sqliteInt.h d48bb0ecc2d1c25d47ea144560d7a8e6864fbabe F src/sqliteLimit.h f435e728c6b620ef7312814d660a81f9356eb5c8 @@ -658,7 +658,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81 F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e -P 8009220c36635dd9b6efea7dc13281ca9625c40a -R 4f74c331c9f7344cfe41ff3e999a5aa5 -U danielk1977 -Z 5297fca5f2e96adf66d4f86dda3033ce +P d68e2795e72f1bfc0bf3b8e75cdec2e0b3d5bfcb +R e674c380ec3d98c94fd560231dd11c92 +U drh +Z 7fccbfebb63a85d4f415b73c1ae13548 diff --git a/manifest.uuid b/manifest.uuid index d508e78dec..2bc6f59e64 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -d68e2795e72f1bfc0bf3b8e75cdec2e0b3d5bfcb \ No newline at end of file +db0f1203591fcc4c554c47cdf28abe279cf7f1d5 \ No newline at end of file diff --git a/src/sqlite.h.in b/src/sqlite.h.in index 1e0dd74199..39070f7374 100644 --- a/src/sqlite.h.in +++ b/src/sqlite.h.in @@ -30,7 +30,7 @@ ** the version number) and changes its name to "sqlite3.h" as ** part of the build process. ** -** @(#) $Id: sqlite.h.in,v 1.413 2008/11/13 14:28:29 danielk1977 Exp $ +** @(#) $Id: sqlite.h.in,v 1.414 2008/11/18 19:18:09 drh Exp $ */ #ifndef _SQLITE3_H_ #define _SQLITE3_H_ @@ -1274,7 +1274,10 @@ struct sqlite3_mem_methods { ** **
SQLITE_CONFIG_PAGECACHE
**
This option specifies a static memory buffer that SQLite can use for -** the database page cache. There are three arguments: A pointer to the +** the database page cache with the default page cache implemenation. +** This configuration should not be used if an application-define page +** cache implementation is loaded using the SQLITE_CONFIG_PCACHE option. +** There are three arguments to this option: A pointer to the ** memory, the size of each page buffer (sz), and the number of pages (N). ** The sz argument must be a power of two between 512 and 32768. The first ** argument should point to an allocation of at least sz*N bytes of memory. @@ -1319,6 +1322,17 @@ struct sqlite3_mem_methods { ** size of each lookaside buffer slot and the second is the number of ** slots allocated to each database connection.
** +**
SQLITE_CONFIG_PCACHE
+**
This option takes a single argument which is a pointer to +** an [sqlite3_pcache_methods] object. This object specifies the interface +** to a custom page cache implementation. SQLite makes a copy of the +** object and uses it for page cache memory allocations.
+** +**
SQLITE_CONFIG_GETPCACHE
+**
This option takes a single argument which is a pointer to an +** [sqlite3_pcache_methods] object. SQLite copies of the current +** page cache implementation into that object.
+** ** */ #define SQLITE_CONFIG_SINGLETHREAD 1 /* nil */ @@ -6558,19 +6572,24 @@ SQLITE_EXPERIMENTAL int sqlite3_stmt_status(sqlite3_stmt*, int op,int resetFlg); #define SQLITE_STMTSTATUS_SORT 2 /* +** CAPI3REF: Custom Page Cache Object +** EXPERIMENTAL +** ** The sqlite3_pcache type is opaque. It is implemented by ** the pluggable module. The SQLite core has no knowledge of ** its size or internal structure and never deals with the ** sqlite3_pcache object except by holding and passing pointers ** to the object. +** +** See [sqlite3_pcache_methods] for additional information. */ typedef struct sqlite3_pcache sqlite3_pcache; /* -** CAPI3REF: Custom Page Cache API. +** CAPI3REF: Application Defined Page Cache. ** EXPERIMENTAL ** -** The sqlite3_config(SQLITE_CONFIG_SET_PCACHE, ...) interface can +** The [sqlite3_config]([SQLITE_CONFIG_PCACHE], ...) interface can ** register an alternative page cache implementation by passing in an ** instance of the sqlite3_pcache_methods structure. The majority of the ** heap memory used by sqlite is used by the page cache to cache data read @@ -6584,12 +6603,12 @@ typedef struct sqlite3_pcache sqlite3_pcache; ** The contents of the structure are copied to an internal buffer by sqlite ** within the call to [sqlite3_config]. ** -** The xInit() method is called once for each call to sqlite3_initialize() +** The xInit() method is called once for each call to [sqlite3_initialize()] ** (usually only once during the lifetime of the process). It is passed ** a copy of the sqlite3_pcache_methods.pArg value. It can be used to set ** up global structures and mutexes required by the custom page cache ** implementation. The xShutdown() method is called from within -** sqlite3_shutdown(), if the application invokes this API. It can be used +** [sqlite3_shutdown()], if the application invokes this API. It can be used ** to clean up any outstanding resources before process shutdown, if required. ** ** The xCreate() method is used to construct a new cache instance. The @@ -6604,7 +6623,7 @@ typedef struct sqlite3_pcache sqlite3_pcache; ** The xCachesize() method may be called at any time by SQLite to set the ** suggested maximum cache-size (number of pages stored by) the cache ** instance passed as the first argument. This is the value configured using -** the SQLite "PRAGMA cache_size" command. As with the bPurgeable parameter, +** the SQLite "[PRAGMA cache_size]" command. As with the bPurgeable parameter, ** the implementation is not required to do anything special with this ** value, it is advisory only. ** @@ -6675,7 +6694,7 @@ typedef struct sqlite3_pcache sqlite3_pcache; ** ** The xDestroy() method is used to delete a cache allocated by xCreate(). ** All resources associated with the specified cache should be freed. After -** calling the xDestroy() method, SQLite considers the sqlite3_pcache* +** calling the xDestroy() method, SQLite considers the [sqlite3_pcache*] ** handle invalid, and will not use it with any other sqlite3_pcache_methods ** functions. */