| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| #ifndef SQLITE_BTREE_H |
| #define SQLITE_BTREE_H |
|
|
| |
| |
| |
| #define SQLITE_N_BTREE_META 16 |
|
|
| |
| |
| |
| |
| #ifndef SQLITE_DEFAULT_AUTOVACUUM |
| #define SQLITE_DEFAULT_AUTOVACUUM 0 |
| #endif |
|
|
| #define BTREE_AUTOVACUUM_NONE 0 |
| #define BTREE_AUTOVACUUM_FULL 1 |
| #define BTREE_AUTOVACUUM_INCR 2 |
|
|
| |
| |
| |
| typedef struct Btree Btree; |
| typedef struct BtCursor BtCursor; |
| typedef struct BtShared BtShared; |
| typedef struct BtreePayload BtreePayload; |
|
|
|
|
| int sqlite3BtreeOpen( |
| sqlite3_vfs *pVfs, |
| const char *zFilename, |
| sqlite3 *db, |
| Btree **ppBtree, |
| int flags, |
| int vfsFlags |
| ); |
|
|
| |
| |
| |
| |
| |
| |
| #define BTREE_OMIT_JOURNAL 1 |
| #define BTREE_MEMORY 2 |
| #define BTREE_SINGLE 4 |
| #define BTREE_UNORDERED 8 |
|
|
| int sqlite3BtreeClose(Btree*); |
| int sqlite3BtreeSetCacheSize(Btree*,int); |
| int sqlite3BtreeSetSpillSize(Btree*,int); |
| #if SQLITE_MAX_MMAP_SIZE>0 |
| int sqlite3BtreeSetMmapLimit(Btree*,sqlite3_int64); |
| #endif |
| int sqlite3BtreeSetPagerFlags(Btree*,unsigned); |
| int sqlite3BtreeSetPageSize(Btree *p, int nPagesize, int nReserve, int eFix); |
| int sqlite3BtreeGetPageSize(Btree*); |
| Pgno sqlite3BtreeMaxPageCount(Btree*,Pgno); |
| Pgno sqlite3BtreeLastPage(Btree*); |
| int sqlite3BtreeSecureDelete(Btree*,int); |
| int sqlite3BtreeGetRequestedReserve(Btree*); |
| int sqlite3BtreeGetReserveNoMutex(Btree *p); |
| int sqlite3BtreeSetAutoVacuum(Btree *, int); |
| int sqlite3BtreeGetAutoVacuum(Btree *); |
| int sqlite3BtreeBeginTrans(Btree*,int,int*); |
| int sqlite3BtreeCommitPhaseOne(Btree*, const char*); |
| int sqlite3BtreeCommitPhaseTwo(Btree*, int); |
| int sqlite3BtreeCommit(Btree*); |
| int sqlite3BtreeRollback(Btree*,int,int); |
| int sqlite3BtreeBeginStmt(Btree*,int); |
| int sqlite3BtreeCreateTable(Btree*, Pgno*, int flags); |
| int sqlite3BtreeTxnState(Btree*); |
| int sqlite3BtreeIsInBackup(Btree*); |
|
|
| void *sqlite3BtreeSchema(Btree *, int, void(*)(void *)); |
| int sqlite3BtreeSchemaLocked(Btree *pBtree); |
| #ifndef SQLITE_OMIT_SHARED_CACHE |
| int sqlite3BtreeLockTable(Btree *pBtree, int iTab, u8 isWriteLock); |
| #endif |
|
|
| |
| |
| int sqlite3BtreeSavepoint(Btree *, int, int); |
|
|
| |
| #ifndef SQLITE_OMIT_WAL |
| int sqlite3BtreeCheckpoint(Btree*, int, int *, int *); |
| #endif |
|
|
| const char *sqlite3BtreeGetFilename(Btree *); |
| const char *sqlite3BtreeGetJournalname(Btree *); |
| int sqlite3BtreeCopyFile(Btree *, Btree *); |
|
|
| int sqlite3BtreeIncrVacuum(Btree *); |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| #define BTREE_INTKEY 1 |
| #define BTREE_BLOBKEY 2 |
|
|
| int sqlite3BtreeDropTable(Btree*, int, int*); |
| int sqlite3BtreeClearTable(Btree*, int, i64*); |
| int sqlite3BtreeClearTableOfCursor(BtCursor*); |
| int sqlite3BtreeTripAllCursors(Btree*, int, int); |
|
|
| void sqlite3BtreeGetMeta(Btree *pBtree, int idx, u32 *pValue); |
| int sqlite3BtreeUpdateMeta(Btree*, int idx, u32 value); |
|
|
| int sqlite3BtreeNewDb(Btree *p); |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| #define BTREE_FREE_PAGE_COUNT 0 |
| #define BTREE_SCHEMA_VERSION 1 |
| #define BTREE_FILE_FORMAT 2 |
| #define BTREE_DEFAULT_CACHE_SIZE 3 |
| #define BTREE_LARGEST_ROOT_PAGE 4 |
| #define BTREE_TEXT_ENCODING 5 |
| #define BTREE_USER_VERSION 6 |
| #define BTREE_INCR_VACUUM 7 |
| #define BTREE_APPLICATION_ID 8 |
| #define BTREE_DATA_VERSION 15 |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| #define BTREE_HINT_RANGE 0 |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| #define BTREE_BULKLOAD 0x00000001 |
| #define BTREE_SEEK_EQ 0x00000002 |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| #define BTREE_WRCSR 0x00000004 |
| #define BTREE_FORDELETE 0x00000008 |
|
|
| int sqlite3BtreeCursor( |
| Btree*, |
| Pgno iTable, |
| int wrFlag, |
| struct KeyInfo*, |
| BtCursor *pCursor |
| ); |
| BtCursor *sqlite3BtreeFakeValidCursor(void); |
| int sqlite3BtreeCursorSize(void); |
| #ifdef SQLITE_DEBUG |
| int sqlite3BtreeClosesWithCursor(Btree*,BtCursor*); |
| #endif |
| void sqlite3BtreeCursorZero(BtCursor*); |
| void sqlite3BtreeCursorHintFlags(BtCursor*, unsigned); |
| #ifdef SQLITE_ENABLE_CURSOR_HINTS |
| void sqlite3BtreeCursorHint(BtCursor*, int, ...); |
| #endif |
|
|
| int sqlite3BtreeCloseCursor(BtCursor*); |
| int sqlite3BtreeTableMoveto( |
| BtCursor*, |
| i64 intKey, |
| int bias, |
| int *pRes |
| ); |
| int sqlite3BtreeIndexMoveto( |
| BtCursor*, |
| UnpackedRecord *pUnKey, |
| int *pRes |
| ); |
| int sqlite3BtreeCursorHasMoved(BtCursor*); |
| int sqlite3BtreeCursorRestore(BtCursor*, int*); |
| int sqlite3BtreeDelete(BtCursor*, u8 flags); |
|
|
| |
| #define BTREE_SAVEPOSITION 0x02 |
| #define BTREE_AUXDELETE 0x04 |
| #define BTREE_APPEND 0x08 |
| #define BTREE_PREFORMAT 0x80 |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| struct BtreePayload { |
| const void *pKey; |
| sqlite3_int64 nKey; |
| const void *pData; |
| sqlite3_value *aMem; |
| u16 nMem; |
| int nData; |
| int nZero; |
| }; |
|
|
| int sqlite3BtreeInsert(BtCursor*, const BtreePayload *pPayload, |
| int flags, int seekResult); |
| int sqlite3BtreeFirst(BtCursor*, int *pRes); |
| int sqlite3BtreeIsEmpty(BtCursor *pCur, int *pRes); |
| int sqlite3BtreeLast(BtCursor*, int *pRes); |
| int sqlite3BtreeNext(BtCursor*, int flags); |
| int sqlite3BtreeEof(BtCursor*); |
| int sqlite3BtreePrevious(BtCursor*, int flags); |
| i64 sqlite3BtreeIntegerKey(BtCursor*); |
| void sqlite3BtreeCursorPin(BtCursor*); |
| void sqlite3BtreeCursorUnpin(BtCursor*); |
| i64 sqlite3BtreeOffset(BtCursor*); |
| int sqlite3BtreePayload(BtCursor*, u32 offset, u32 amt, void*); |
| const void *sqlite3BtreePayloadFetch(BtCursor*, u32 *pAmt); |
| u32 sqlite3BtreePayloadSize(BtCursor*); |
| sqlite3_int64 sqlite3BtreeMaxRecordSize(BtCursor*); |
|
|
| int sqlite3BtreeIntegrityCheck( |
| sqlite3 *db, |
| Btree *p, |
| Pgno *aRoot, |
| sqlite3_value *aCnt, |
| int nRoot, |
| int mxErr, |
| int *pnErr, |
| char **pzOut |
| ); |
| struct Pager *sqlite3BtreePager(Btree*); |
| i64 sqlite3BtreeRowCountEst(BtCursor*); |
|
|
| #ifndef SQLITE_OMIT_INCRBLOB |
| int sqlite3BtreePayloadChecked(BtCursor*, u32 offset, u32 amt, void*); |
| int sqlite3BtreePutData(BtCursor*, u32 offset, u32 amt, void*); |
| void sqlite3BtreeIncrblobCursor(BtCursor *); |
| #endif |
| void sqlite3BtreeClearCursor(BtCursor *); |
| int sqlite3BtreeSetVersion(Btree *pBt, int iVersion); |
| int sqlite3BtreeCursorHasHint(BtCursor*, unsigned int mask); |
| int sqlite3BtreeIsReadonly(Btree *pBt); |
| int sqlite3HeaderSizeBtree(void); |
|
|
| #ifdef SQLITE_DEBUG |
| sqlite3_uint64 sqlite3BtreeSeekCount(Btree*); |
| #else |
| # define sqlite3BtreeSeekCount(X) 0 |
| #endif |
|
|
| #ifndef NDEBUG |
| int sqlite3BtreeCursorIsValid(BtCursor*); |
| #endif |
| int sqlite3BtreeCursorIsValidNN(BtCursor*); |
|
|
| int sqlite3BtreeCount(sqlite3*, BtCursor*, i64*); |
|
|
| #ifdef SQLITE_TEST |
| int sqlite3BtreeCursorInfo(BtCursor*, int*, int); |
| void sqlite3BtreeCursorList(Btree*); |
| #endif |
|
|
| #ifndef SQLITE_OMIT_WAL |
| int sqlite3BtreeCheckpoint(Btree*, int, int *, int *); |
| #endif |
|
|
| int sqlite3BtreeTransferRow(BtCursor*, BtCursor*, i64); |
|
|
| void sqlite3BtreeClearCache(Btree*); |
|
|
| |
| |
| |
| |
| |
| #ifndef SQLITE_OMIT_SHARED_CACHE |
| void sqlite3BtreeEnter(Btree*); |
| void sqlite3BtreeEnterAll(sqlite3*); |
| int sqlite3BtreeSharable(Btree*); |
| void sqlite3BtreeEnterCursor(BtCursor*); |
| int sqlite3BtreeConnectionCount(Btree*); |
| #else |
| # define sqlite3BtreeEnter(X) |
| # define sqlite3BtreeEnterAll(X) |
| # define sqlite3BtreeSharable(X) 0 |
| # define sqlite3BtreeEnterCursor(X) |
| # define sqlite3BtreeConnectionCount(X) 1 |
| #endif |
|
|
| #if !defined(SQLITE_OMIT_SHARED_CACHE) && SQLITE_THREADSAFE |
| void sqlite3BtreeLeave(Btree*); |
| void sqlite3BtreeLeaveCursor(BtCursor*); |
| void sqlite3BtreeLeaveAll(sqlite3*); |
| #ifndef NDEBUG |
| |
| int sqlite3BtreeHoldsMutex(Btree*); |
| int sqlite3BtreeHoldsAllMutexes(sqlite3*); |
| int sqlite3SchemaMutexHeld(sqlite3*,int,Schema*); |
| #endif |
| #else |
|
|
| # define sqlite3BtreeLeave(X) |
| # define sqlite3BtreeLeaveCursor(X) |
| # define sqlite3BtreeLeaveAll(X) |
|
|
| # define sqlite3BtreeHoldsMutex(X) 1 |
| # define sqlite3BtreeHoldsAllMutexes(X) 1 |
| # define sqlite3SchemaMutexHeld(X,Y,Z) 1 |
| #endif |
|
|
|
|
| #endif |
|
|