diff options
author | dan miller | 2007-10-20 05:34:26 +0000 |
---|---|---|
committer | dan miller | 2007-10-20 05:34:26 +0000 |
commit | 354ea97baf765759911f0c56d3ed511350ebe348 (patch) | |
tree | 1adf96a98045d24b8741ba02bf21d195e70993ca /libraries/sqlite/win32/btree.h | |
parent | sqlite source (unix build) added to libraries (diff) | |
download | opensim-SC_OLD-354ea97baf765759911f0c56d3ed511350ebe348.zip opensim-SC_OLD-354ea97baf765759911f0c56d3ed511350ebe348.tar.gz opensim-SC_OLD-354ea97baf765759911f0c56d3ed511350ebe348.tar.bz2 opensim-SC_OLD-354ea97baf765759911f0c56d3ed511350ebe348.tar.xz |
sqlite 3.5.1 windows source
Diffstat (limited to 'libraries/sqlite/win32/btree.h')
-rwxr-xr-x | libraries/sqlite/win32/btree.h | 204 |
1 files changed, 204 insertions, 0 deletions
diff --git a/libraries/sqlite/win32/btree.h b/libraries/sqlite/win32/btree.h new file mode 100755 index 0000000..f7bc8e1 --- /dev/null +++ b/libraries/sqlite/win32/btree.h | |||
@@ -0,0 +1,204 @@ | |||
1 | /* | ||
2 | ** 2001 September 15 | ||
3 | ** | ||
4 | ** The author disclaims copyright to this source code. In place of | ||
5 | ** a legal notice, here is a blessing: | ||
6 | ** | ||
7 | ** May you do good and not evil. | ||
8 | ** May you find forgiveness for yourself and forgive others. | ||
9 | ** May you share freely, never taking more than you give. | ||
10 | ** | ||
11 | ************************************************************************* | ||
12 | ** This header file defines the interface that the sqlite B-Tree file | ||
13 | ** subsystem. See comments in the source code for a detailed description | ||
14 | ** of what each interface routine does. | ||
15 | ** | ||
16 | ** @(#) $Id: btree.h,v 1.93 2007/09/03 15:19:35 drh Exp $ | ||
17 | */ | ||
18 | #ifndef _BTREE_H_ | ||
19 | #define _BTREE_H_ | ||
20 | |||
21 | /* TODO: This definition is just included so other modules compile. It | ||
22 | ** needs to be revisited. | ||
23 | */ | ||
24 | #define SQLITE_N_BTREE_META 10 | ||
25 | |||
26 | /* | ||
27 | ** If defined as non-zero, auto-vacuum is enabled by default. Otherwise | ||
28 | ** it must be turned on for each database using "PRAGMA auto_vacuum = 1". | ||
29 | */ | ||
30 | #ifndef SQLITE_DEFAULT_AUTOVACUUM | ||
31 | #define SQLITE_DEFAULT_AUTOVACUUM 0 | ||
32 | #endif | ||
33 | |||
34 | #define BTREE_AUTOVACUUM_NONE 0 /* Do not do auto-vacuum */ | ||
35 | #define BTREE_AUTOVACUUM_FULL 1 /* Do full auto-vacuum */ | ||
36 | #define BTREE_AUTOVACUUM_INCR 2 /* Incremental vacuum */ | ||
37 | |||
38 | /* | ||
39 | ** Forward declarations of structure | ||
40 | */ | ||
41 | typedef struct Btree Btree; | ||
42 | typedef struct BtCursor BtCursor; | ||
43 | typedef struct BtShared BtShared; | ||
44 | typedef struct BtreeMutexArray BtreeMutexArray; | ||
45 | |||
46 | /* | ||
47 | ** This structure records all of the Btrees that need to hold | ||
48 | ** a mutex before we enter sqlite3VdbeExec(). The Btrees are | ||
49 | ** are placed in aBtree[] in order of aBtree[]->pBt. That way, | ||
50 | ** we can always lock and unlock them all quickly. | ||
51 | */ | ||
52 | struct BtreeMutexArray { | ||
53 | int nMutex; | ||
54 | Btree *aBtree[SQLITE_MAX_ATTACHED+1]; | ||
55 | }; | ||
56 | |||
57 | |||
58 | int sqlite3BtreeOpen( | ||
59 | const char *zFilename, /* Name of database file to open */ | ||
60 | sqlite3 *db, /* Associated database connection */ | ||
61 | Btree **, /* Return open Btree* here */ | ||
62 | int flags, /* Flags */ | ||
63 | int vfsFlags /* Flags passed through to VFS open */ | ||
64 | ); | ||
65 | |||
66 | /* The flags parameter to sqlite3BtreeOpen can be the bitwise or of the | ||
67 | ** following values. | ||
68 | ** | ||
69 | ** NOTE: These values must match the corresponding PAGER_ values in | ||
70 | ** pager.h. | ||
71 | */ | ||
72 | #define BTREE_OMIT_JOURNAL 1 /* Do not use journal. No argument */ | ||
73 | #define BTREE_NO_READLOCK 2 /* Omit readlocks on readonly files */ | ||
74 | #define BTREE_MEMORY 4 /* In-memory DB. No argument */ | ||
75 | #define BTREE_READONLY 8 /* Open the database in read-only mode */ | ||
76 | #define BTREE_READWRITE 16 /* Open for both reading and writing */ | ||
77 | #define BTREE_CREATE 32 /* Create the database if it does not exist */ | ||
78 | |||
79 | /* Additional values for the 4th argument of sqlite3BtreeOpen that | ||
80 | ** are not associated with PAGER_ values. | ||
81 | */ | ||
82 | #define BTREE_PRIVATE 64 /* Never share with other connections */ | ||
83 | |||
84 | int sqlite3BtreeClose(Btree*); | ||
85 | int sqlite3BtreeSetBusyHandler(Btree*,BusyHandler*); | ||
86 | int sqlite3BtreeSetCacheSize(Btree*,int); | ||
87 | int sqlite3BtreeSetSafetyLevel(Btree*,int,int); | ||
88 | int sqlite3BtreeSyncDisabled(Btree*); | ||
89 | int sqlite3BtreeSetPageSize(Btree*,int,int); | ||
90 | int sqlite3BtreeGetPageSize(Btree*); | ||
91 | int sqlite3BtreeMaxPageCount(Btree*,int); | ||
92 | int sqlite3BtreeGetReserve(Btree*); | ||
93 | int sqlite3BtreeSetAutoVacuum(Btree *, int); | ||
94 | int sqlite3BtreeGetAutoVacuum(Btree *); | ||
95 | int sqlite3BtreeBeginTrans(Btree*,int); | ||
96 | int sqlite3BtreeCommitPhaseOne(Btree*, const char *zMaster); | ||
97 | int sqlite3BtreeCommitPhaseTwo(Btree*); | ||
98 | int sqlite3BtreeCommit(Btree*); | ||
99 | int sqlite3BtreeRollback(Btree*); | ||
100 | int sqlite3BtreeBeginStmt(Btree*); | ||
101 | int sqlite3BtreeCommitStmt(Btree*); | ||
102 | int sqlite3BtreeRollbackStmt(Btree*); | ||
103 | int sqlite3BtreeCreateTable(Btree*, int*, int flags); | ||
104 | int sqlite3BtreeIsInTrans(Btree*); | ||
105 | int sqlite3BtreeIsInStmt(Btree*); | ||
106 | int sqlite3BtreeIsInReadTrans(Btree*); | ||
107 | void *sqlite3BtreeSchema(Btree *, int, void(*)(void *)); | ||
108 | int sqlite3BtreeSchemaLocked(Btree *); | ||
109 | int sqlite3BtreeLockTable(Btree *, int, u8); | ||
110 | |||
111 | const char *sqlite3BtreeGetFilename(Btree *); | ||
112 | const char *sqlite3BtreeGetDirname(Btree *); | ||
113 | const char *sqlite3BtreeGetJournalname(Btree *); | ||
114 | int sqlite3BtreeCopyFile(Btree *, Btree *); | ||
115 | |||
116 | int sqlite3BtreeIncrVacuum(Btree *); | ||
117 | |||
118 | /* The flags parameter to sqlite3BtreeCreateTable can be the bitwise OR | ||
119 | ** of the following flags: | ||
120 | */ | ||
121 | #define BTREE_INTKEY 1 /* Table has only 64-bit signed integer keys */ | ||
122 | #define BTREE_ZERODATA 2 /* Table has keys only - no data */ | ||
123 | #define BTREE_LEAFDATA 4 /* Data stored in leaves only. Implies INTKEY */ | ||
124 | |||
125 | int sqlite3BtreeDropTable(Btree*, int, int*); | ||
126 | int sqlite3BtreeClearTable(Btree*, int); | ||
127 | int sqlite3BtreeGetMeta(Btree*, int idx, u32 *pValue); | ||
128 | int sqlite3BtreeUpdateMeta(Btree*, int idx, u32 value); | ||
129 | void sqlite3BtreeTripAllCursors(Btree*, int); | ||
130 | |||
131 | int sqlite3BtreeCursor( | ||
132 | Btree*, /* BTree containing table to open */ | ||
133 | int iTable, /* Index of root page */ | ||
134 | int wrFlag, /* 1 for writing. 0 for read-only */ | ||
135 | int(*)(void*,int,const void*,int,const void*), /* Key comparison function */ | ||
136 | void*, /* First argument to compare function */ | ||
137 | BtCursor **ppCursor /* Returned cursor */ | ||
138 | ); | ||
139 | |||
140 | int sqlite3BtreeCloseCursor(BtCursor*); | ||
141 | int sqlite3BtreeMoveto(BtCursor*,const void *pKey,i64 nKey,int bias,int *pRes); | ||
142 | int sqlite3BtreeDelete(BtCursor*); | ||
143 | int sqlite3BtreeInsert(BtCursor*, const void *pKey, i64 nKey, | ||
144 | const void *pData, int nData, | ||
145 | int nZero, int bias); | ||
146 | int sqlite3BtreeFirst(BtCursor*, int *pRes); | ||
147 | int sqlite3BtreeLast(BtCursor*, int *pRes); | ||
148 | int sqlite3BtreeNext(BtCursor*, int *pRes); | ||
149 | int sqlite3BtreeEof(BtCursor*); | ||
150 | int sqlite3BtreeFlags(BtCursor*); | ||
151 | int sqlite3BtreePrevious(BtCursor*, int *pRes); | ||
152 | int sqlite3BtreeKeySize(BtCursor*, i64 *pSize); | ||
153 | int sqlite3BtreeKey(BtCursor*, u32 offset, u32 amt, void*); | ||
154 | sqlite3 *sqlite3BtreeCursorDb(const BtCursor*); | ||
155 | const void *sqlite3BtreeKeyFetch(BtCursor*, int *pAmt); | ||
156 | const void *sqlite3BtreeDataFetch(BtCursor*, int *pAmt); | ||
157 | int sqlite3BtreeDataSize(BtCursor*, u32 *pSize); | ||
158 | int sqlite3BtreeData(BtCursor*, u32 offset, u32 amt, void*); | ||
159 | |||
160 | char *sqlite3BtreeIntegrityCheck(Btree*, int *aRoot, int nRoot, int, int*); | ||
161 | struct Pager *sqlite3BtreePager(Btree*); | ||
162 | |||
163 | int sqlite3BtreePutData(BtCursor*, u32 offset, u32 amt, void*); | ||
164 | void sqlite3BtreeCacheOverflow(BtCursor *); | ||
165 | |||
166 | #ifdef SQLITE_TEST | ||
167 | int sqlite3BtreeCursorInfo(BtCursor*, int*, int); | ||
168 | void sqlite3BtreeCursorList(Btree*); | ||
169 | int sqlite3BtreePageDump(Btree*, int, int recursive); | ||
170 | #endif | ||
171 | |||
172 | /* | ||
173 | ** If we are not using shared cache, then there is no need to | ||
174 | ** use mutexes to access the BtShared structures. So make the | ||
175 | ** Enter and Leave procedures no-ops. | ||
176 | */ | ||
177 | #if !defined(SQLITE_OMIT_SHARED_CACHE) && SQLITE_THREADSAFE | ||
178 | void sqlite3BtreeEnter(Btree*); | ||
179 | void sqlite3BtreeLeave(Btree*); | ||
180 | int sqlite3BtreeHoldsMutex(Btree*); | ||
181 | void sqlite3BtreeEnterCursor(BtCursor*); | ||
182 | void sqlite3BtreeLeaveCursor(BtCursor*); | ||
183 | void sqlite3BtreeEnterAll(sqlite3*); | ||
184 | void sqlite3BtreeLeaveAll(sqlite3*); | ||
185 | int sqlite3BtreeHoldsAllMutexes(sqlite3*); | ||
186 | void sqlite3BtreeMutexArrayEnter(BtreeMutexArray*); | ||
187 | void sqlite3BtreeMutexArrayLeave(BtreeMutexArray*); | ||
188 | void sqlite3BtreeMutexArrayInsert(BtreeMutexArray*, Btree*); | ||
189 | #else | ||
190 | # define sqlite3BtreeEnter(X) | ||
191 | # define sqlite3BtreeLeave(X) | ||
192 | # define sqlite3BtreeHoldsMutex(X) 1 | ||
193 | # define sqlite3BtreeEnterCursor(X) | ||
194 | # define sqlite3BtreeLeaveCursor(X) | ||
195 | # define sqlite3BtreeEnterAll(X) | ||
196 | # define sqlite3BtreeLeaveAll(X) | ||
197 | # define sqlite3BtreeHoldsAllMutexes(X) 1 | ||
198 | # define sqlite3BtreeMutexArrayEnter(X) | ||
199 | # define sqlite3BtreeMutexArrayLeave(X) | ||
200 | # define sqlite3BtreeMutexArrayInsert(X,Y) | ||
201 | #endif | ||
202 | |||
203 | |||
204 | #endif /* _BTREE_H_ */ | ||