Application-defined page cache documentation updates. (CVS 5916)

FossilOrigin-Name: db0f1203591fcc4c554c47cdf28abe279cf7f1d5
This commit is contained in:
drh 2008-11-18 19:18:08 +00:00
parent cdcfe95cec
commit 2161474f62
3 changed files with 35 additions and 16 deletions

View File

@ -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

View File

@ -1 +1 @@
d68e2795e72f1bfc0bf3b8e75cdec2e0b3d5bfcb
db0f1203591fcc4c554c47cdf28abe279cf7f1d5

View File

@ -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 {
**
** <dt>SQLITE_CONFIG_PAGECACHE</dt>
** <dd>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.</dd>
**
** <dt>SQLITE_CONFIG_PCACHE</dt>
** <dd>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.</dd>
**
** <dt>SQLITE_CONFIG_GETPCACHE</dt>
** <dd>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.</dd>
**
** </dl>
*/
#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.
*/