OLD | NEW |
1 /* | 1 /* |
2 ** 2001 September 15 | 2 ** 2001 September 15 |
3 ** | 3 ** |
4 ** The author disclaims copyright to this source code. In place of | 4 ** The author disclaims copyright to this source code. In place of |
5 ** a legal notice, here is a blessing: | 5 ** a legal notice, here is a blessing: |
6 ** | 6 ** |
7 ** May you do good and not evil. | 7 ** May you do good and not evil. |
8 ** May you find forgiveness for yourself and forgive others. | 8 ** May you find forgiveness for yourself and forgive others. |
9 ** May you share freely, never taking more than you give. | 9 ** May you share freely, never taking more than you give. |
10 ** | 10 ** |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
72 */ | 72 */ |
73 #define PAGER_JOURNALMODE_QUERY (-1) /* Query the value of journalmode */ | 73 #define PAGER_JOURNALMODE_QUERY (-1) /* Query the value of journalmode */ |
74 #define PAGER_JOURNALMODE_DELETE 0 /* Commit by deleting journal file */ | 74 #define PAGER_JOURNALMODE_DELETE 0 /* Commit by deleting journal file */ |
75 #define PAGER_JOURNALMODE_PERSIST 1 /* Commit by zeroing journal header */ | 75 #define PAGER_JOURNALMODE_PERSIST 1 /* Commit by zeroing journal header */ |
76 #define PAGER_JOURNALMODE_OFF 2 /* Journal omitted. */ | 76 #define PAGER_JOURNALMODE_OFF 2 /* Journal omitted. */ |
77 #define PAGER_JOURNALMODE_TRUNCATE 3 /* Commit by truncating journal */ | 77 #define PAGER_JOURNALMODE_TRUNCATE 3 /* Commit by truncating journal */ |
78 #define PAGER_JOURNALMODE_MEMORY 4 /* In-memory journal file */ | 78 #define PAGER_JOURNALMODE_MEMORY 4 /* In-memory journal file */ |
79 #define PAGER_JOURNALMODE_WAL 5 /* Use write-ahead logging */ | 79 #define PAGER_JOURNALMODE_WAL 5 /* Use write-ahead logging */ |
80 | 80 |
81 /* | 81 /* |
82 ** Flags that make up the mask passed to sqlite3PagerAcquire(). | 82 ** Flags that make up the mask passed to sqlite3PagerGet(). |
83 */ | 83 */ |
84 #define PAGER_GET_NOCONTENT 0x01 /* Do not load data from disk */ | 84 #define PAGER_GET_NOCONTENT 0x01 /* Do not load data from disk */ |
85 #define PAGER_GET_READONLY 0x02 /* Read-only page is acceptable */ | 85 #define PAGER_GET_READONLY 0x02 /* Read-only page is acceptable */ |
86 | 86 |
87 /* | 87 /* |
88 ** Flags for sqlite3PagerSetFlags() | 88 ** Flags for sqlite3PagerSetFlags() |
89 */ | 89 */ |
90 #define PAGER_SYNCHRONOUS_OFF 0x01 /* PRAGMA synchronous=OFF */ | 90 #define PAGER_SYNCHRONOUS_OFF 0x01 /* PRAGMA synchronous=OFF */ |
91 #define PAGER_SYNCHRONOUS_NORMAL 0x02 /* PRAGMA synchronous=NORMAL */ | 91 #define PAGER_SYNCHRONOUS_NORMAL 0x02 /* PRAGMA synchronous=NORMAL */ |
92 #define PAGER_SYNCHRONOUS_FULL 0x03 /* PRAGMA synchronous=FULL */ | 92 #define PAGER_SYNCHRONOUS_FULL 0x03 /* PRAGMA synchronous=FULL */ |
(...skipping 18 matching lines...) Expand all Loading... |
111 int, | 111 int, |
112 int, | 112 int, |
113 void(*)(DbPage*) | 113 void(*)(DbPage*) |
114 ); | 114 ); |
115 int sqlite3PagerClose(Pager *pPager); | 115 int sqlite3PagerClose(Pager *pPager); |
116 int sqlite3PagerReadFileheader(Pager*, int, unsigned char*); | 116 int sqlite3PagerReadFileheader(Pager*, int, unsigned char*); |
117 | 117 |
118 /* Functions used to configure a Pager object. */ | 118 /* Functions used to configure a Pager object. */ |
119 void sqlite3PagerSetBusyhandler(Pager*, int(*)(void *), void *); | 119 void sqlite3PagerSetBusyhandler(Pager*, int(*)(void *), void *); |
120 int sqlite3PagerSetPagesize(Pager*, u32*, int); | 120 int sqlite3PagerSetPagesize(Pager*, u32*, int); |
| 121 #ifdef SQLITE_HAS_CODEC |
| 122 void sqlite3PagerAlignReserve(Pager*,Pager*); |
| 123 #endif |
121 int sqlite3PagerMaxPageCount(Pager*, int); | 124 int sqlite3PagerMaxPageCount(Pager*, int); |
122 void sqlite3PagerSetCachesize(Pager*, int); | 125 void sqlite3PagerSetCachesize(Pager*, int); |
| 126 int sqlite3PagerSetSpillsize(Pager*, int); |
123 void sqlite3PagerSetMmapLimit(Pager *, sqlite3_int64); | 127 void sqlite3PagerSetMmapLimit(Pager *, sqlite3_int64); |
124 void sqlite3PagerShrink(Pager*); | 128 void sqlite3PagerShrink(Pager*); |
125 void sqlite3PagerSetFlags(Pager*,unsigned); | 129 void sqlite3PagerSetFlags(Pager*,unsigned); |
126 int sqlite3PagerLockingMode(Pager *, int); | 130 int sqlite3PagerLockingMode(Pager *, int); |
127 int sqlite3PagerSetJournalMode(Pager *, int); | 131 int sqlite3PagerSetJournalMode(Pager *, int); |
128 int sqlite3PagerGetJournalMode(Pager*); | 132 int sqlite3PagerGetJournalMode(Pager*); |
129 int sqlite3PagerOkToChangeJournalMode(Pager*); | 133 int sqlite3PagerOkToChangeJournalMode(Pager*); |
130 i64 sqlite3PagerJournalSizeLimit(Pager *, i64); | 134 i64 sqlite3PagerJournalSizeLimit(Pager *, i64); |
131 sqlite3_backup **sqlite3PagerBackupPtr(Pager*); | 135 sqlite3_backup **sqlite3PagerBackupPtr(Pager*); |
| 136 int sqlite3PagerFlush(Pager*); |
132 | 137 |
133 /* Functions used to obtain and release page references. */ | 138 /* Functions used to obtain and release page references. */ |
134 int sqlite3PagerAcquire(Pager *pPager, Pgno pgno, DbPage **ppPage, int clrFlag); | 139 int sqlite3PagerGet(Pager *pPager, Pgno pgno, DbPage **ppPage, int clrFlag); |
135 #define sqlite3PagerGet(A,B,C) sqlite3PagerAcquire(A,B,C,0) | |
136 DbPage *sqlite3PagerLookup(Pager *pPager, Pgno pgno); | 140 DbPage *sqlite3PagerLookup(Pager *pPager, Pgno pgno); |
137 void sqlite3PagerRef(DbPage*); | 141 void sqlite3PagerRef(DbPage*); |
138 void sqlite3PagerUnref(DbPage*); | 142 void sqlite3PagerUnref(DbPage*); |
139 void sqlite3PagerUnrefNotNull(DbPage*); | 143 void sqlite3PagerUnrefNotNull(DbPage*); |
140 | 144 |
141 /* Operations on page references. */ | 145 /* Operations on page references. */ |
142 int sqlite3PagerWrite(DbPage*); | 146 int sqlite3PagerWrite(DbPage*); |
143 void sqlite3PagerDontWrite(DbPage*); | 147 void sqlite3PagerDontWrite(DbPage*); |
144 int sqlite3PagerMovepage(Pager*,DbPage*,Pgno,int); | 148 int sqlite3PagerMovepage(Pager*,DbPage*,Pgno,int); |
145 int sqlite3PagerPageRefcount(DbPage*); | 149 int sqlite3PagerPageRefcount(DbPage*); |
(...skipping 11 matching lines...) Expand all Loading... |
157 int sqlite3PagerOpenSavepoint(Pager *pPager, int n); | 161 int sqlite3PagerOpenSavepoint(Pager *pPager, int n); |
158 int sqlite3PagerSavepoint(Pager *pPager, int op, int iSavepoint); | 162 int sqlite3PagerSavepoint(Pager *pPager, int op, int iSavepoint); |
159 int sqlite3PagerSharedLock(Pager *pPager); | 163 int sqlite3PagerSharedLock(Pager *pPager); |
160 | 164 |
161 #ifndef SQLITE_OMIT_WAL | 165 #ifndef SQLITE_OMIT_WAL |
162 int sqlite3PagerCheckpoint(Pager *pPager, int, int*, int*); | 166 int sqlite3PagerCheckpoint(Pager *pPager, int, int*, int*); |
163 int sqlite3PagerWalSupported(Pager *pPager); | 167 int sqlite3PagerWalSupported(Pager *pPager); |
164 int sqlite3PagerWalCallback(Pager *pPager); | 168 int sqlite3PagerWalCallback(Pager *pPager); |
165 int sqlite3PagerOpenWal(Pager *pPager, int *pisOpen); | 169 int sqlite3PagerOpenWal(Pager *pPager, int *pisOpen); |
166 int sqlite3PagerCloseWal(Pager *pPager); | 170 int sqlite3PagerCloseWal(Pager *pPager); |
| 171 # ifdef SQLITE_ENABLE_SNAPSHOT |
| 172 int sqlite3PagerSnapshotGet(Pager *pPager, sqlite3_snapshot **ppSnapshot); |
| 173 int sqlite3PagerSnapshotOpen(Pager *pPager, sqlite3_snapshot *pSnapshot); |
| 174 # endif |
167 #endif | 175 #endif |
168 | 176 |
169 #ifdef SQLITE_ENABLE_ZIPVFS | 177 #ifdef SQLITE_ENABLE_ZIPVFS |
170 int sqlite3PagerWalFramesize(Pager *pPager); | 178 int sqlite3PagerWalFramesize(Pager *pPager); |
171 #endif | 179 #endif |
172 | 180 |
173 /* Functions used to query pager state and configuration. */ | 181 /* Functions used to query pager state and configuration. */ |
174 u8 sqlite3PagerIsreadonly(Pager*); | 182 u8 sqlite3PagerIsreadonly(Pager*); |
175 int sqlite3PagerRefcount(Pager*); | 183 u32 sqlite3PagerDataVersion(Pager*); |
| 184 #ifdef SQLITE_DEBUG |
| 185 int sqlite3PagerRefcount(Pager*); |
| 186 #endif |
176 int sqlite3PagerMemUsed(Pager*); | 187 int sqlite3PagerMemUsed(Pager*); |
177 const char *sqlite3PagerFilename(Pager*, int); | 188 const char *sqlite3PagerFilename(Pager*, int); |
178 const sqlite3_vfs *sqlite3PagerVfs(Pager*); | 189 sqlite3_vfs *sqlite3PagerVfs(Pager*); |
179 sqlite3_file *sqlite3PagerFile(Pager*); | 190 sqlite3_file *sqlite3PagerFile(Pager*); |
| 191 sqlite3_file *sqlite3PagerJrnlFile(Pager*); |
180 const char *sqlite3PagerJournalname(Pager*); | 192 const char *sqlite3PagerJournalname(Pager*); |
181 int sqlite3PagerNosync(Pager*); | 193 int sqlite3PagerNosync(Pager*); |
182 void *sqlite3PagerTempSpace(Pager*); | 194 void *sqlite3PagerTempSpace(Pager*); |
183 int sqlite3PagerIsMemdb(Pager*); | 195 int sqlite3PagerIsMemdb(Pager*); |
184 void sqlite3PagerCacheStat(Pager *, int, int, int *); | 196 void sqlite3PagerCacheStat(Pager *, int, int, int *); |
185 void sqlite3PagerClearCache(Pager *); | 197 void sqlite3PagerClearCache(Pager *); |
186 int sqlite3SectorSize(sqlite3_file *); | 198 int sqlite3SectorSize(sqlite3_file *); |
187 | 199 |
188 /* Functions used to truncate the database file. */ | 200 /* Functions used to truncate the database file. */ |
189 void sqlite3PagerTruncateImage(Pager*,Pgno); | 201 void sqlite3PagerTruncateImage(Pager*,Pgno); |
190 | 202 |
| 203 void sqlite3PagerRekey(DbPage*, Pgno, u16); |
| 204 |
191 #if defined(SQLITE_HAS_CODEC) && !defined(SQLITE_OMIT_WAL) | 205 #if defined(SQLITE_HAS_CODEC) && !defined(SQLITE_OMIT_WAL) |
192 void *sqlite3PagerCodec(DbPage *); | 206 void *sqlite3PagerCodec(DbPage *); |
193 #endif | 207 #endif |
194 | 208 |
195 /* Functions to support testing and debugging. */ | 209 /* Functions to support testing and debugging. */ |
196 #if !defined(NDEBUG) || defined(SQLITE_TEST) | 210 #if !defined(NDEBUG) || defined(SQLITE_TEST) |
197 Pgno sqlite3PagerPagenumber(DbPage*); | 211 Pgno sqlite3PagerPagenumber(DbPage*); |
198 int sqlite3PagerIswriteable(DbPage*); | 212 int sqlite3PagerIswriteable(DbPage*); |
199 #endif | 213 #endif |
200 #ifdef SQLITE_TEST | 214 #ifdef SQLITE_TEST |
201 int *sqlite3PagerStats(Pager*); | 215 int *sqlite3PagerStats(Pager*); |
202 void sqlite3PagerRefdump(Pager*); | 216 void sqlite3PagerRefdump(Pager*); |
203 void disable_simulated_io_errors(void); | 217 void disable_simulated_io_errors(void); |
204 void enable_simulated_io_errors(void); | 218 void enable_simulated_io_errors(void); |
205 #else | 219 #else |
206 # define disable_simulated_io_errors() | 220 # define disable_simulated_io_errors() |
207 # define enable_simulated_io_errors() | 221 # define enable_simulated_io_errors() |
208 #endif | 222 #endif |
209 | 223 |
210 #endif /* _PAGER_H_ */ | 224 #endif /* _PAGER_H_ */ |
OLD | NEW |