Index: third_party/sqlite/src/src/pcache.h |
diff --git a/third_party/sqlite/src/src/pcache.h b/third_party/sqlite/src/src/pcache.h |
index 42c44cf7ba07297e35c53aedc30576a25636ce8b..9012edf22e8c832e8ee4c1e01e2fcd22c4fe9879 100644 |
--- a/third_party/sqlite/src/src/pcache.h |
+++ b/third_party/sqlite/src/src/pcache.h |
@@ -26,7 +26,7 @@ struct PgHdr { |
sqlite3_pcache_page *pPage; /* Pcache object page handle */ |
void *pData; /* Page data */ |
void *pExtra; /* Extra content */ |
- PgHdr *pDirty; /* Transient list of dirty pages */ |
+ PgHdr *pDirty; /* Transient list of dirty sorted by pgno */ |
Pager *pPager; /* The pager this page is part of */ |
Pgno pgno; /* Page number for this page */ |
#ifdef SQLITE_CHECK_PAGES |
@@ -51,9 +51,10 @@ struct PgHdr { |
#define PGHDR_WRITEABLE 0x004 /* Journaled and ready to modify */ |
#define PGHDR_NEED_SYNC 0x008 /* Fsync the rollback journal before |
** writing this page to the database */ |
-#define PGHDR_NEED_READ 0x010 /* Content is unread */ |
-#define PGHDR_DONT_WRITE 0x020 /* Do not write content to disk */ |
-#define PGHDR_MMAP 0x040 /* This is an mmap page object */ |
+#define PGHDR_DONT_WRITE 0x010 /* Do not write content to disk */ |
+#define PGHDR_MMAP 0x020 /* This is an mmap page object */ |
+ |
+#define PGHDR_WAL_APPEND 0x040 /* Appended to wal file */ |
/* Initialize and shutdown the page cache subsystem */ |
int sqlite3PcacheInitialize(void); |
@@ -97,6 +98,7 @@ void sqlite3PcacheDrop(PgHdr*); /* Remove page from cache */ |
void sqlite3PcacheMakeDirty(PgHdr*); /* Make sure page is marked dirty */ |
void sqlite3PcacheMakeClean(PgHdr*); /* Mark a single page as clean */ |
void sqlite3PcacheCleanAll(PCache*); /* Mark all dirty list pages as clean */ |
+void sqlite3PcacheClearWritable(PCache*); |
/* Change a page number. Used by incr-vacuum. */ |
void sqlite3PcacheMove(PgHdr*, Pgno); |
@@ -135,6 +137,11 @@ int sqlite3PcachePagecount(PCache*); |
void sqlite3PcacheIterateDirty(PCache *pCache, void (*xIter)(PgHdr *)); |
#endif |
+#if defined(SQLITE_DEBUG) |
+/* Check invariants on a PgHdr object */ |
+int sqlite3PcachePageSanity(PgHdr*); |
+#endif |
+ |
/* Set and get the suggested cache-size for the specified pager-cache. |
** |
** If no global maximum is configured, then the system attempts to limit |
@@ -171,4 +178,7 @@ void sqlite3PCacheSetDefault(void); |
int sqlite3HeaderSizePcache(void); |
int sqlite3HeaderSizePcache1(void); |
+/* Number of dirty pages as a percentage of the configured cache size */ |
+int sqlite3PCachePercentDirty(PCache*); |
+ |
#endif /* _PCACHE_H_ */ |