BtCursor
int fileBtreeCursor(Btree *pBt, int iTable, int wrFlag, BtCursor **ppCur){
BtCursor *pCur, *pRing;
static int fileBtreeCloseCursor(BtCursor *pCur){
BtCursor *pRing = pCur->pShared;
static void getTempCursor(BtCursor *pCur, BtCursor *pTempCur){
static void releaseTempCursor(BtCursor *pCur){
static int fileBtreeKeySize(BtCursor *pCur, int *pSize){
static int getPayload(BtCursor *pCur, int offset, int amt, char *zBuf){
static int fileBtreeKey(BtCursor *pCur, int offset, int amt, char *zBuf){
static int fileBtreeDataSize(BtCursor *pCur, int *pSize){
static int fileBtreeData(BtCursor *pCur, int offset, int amt, char *zBuf){
BtCursor *pCur, /* Pointer to entry to compare against */
static int moveToChild(BtCursor *pCur, int newPgno){
static void moveToParent(BtCursor *pCur){
static int moveToRoot(BtCursor *pCur){
static int moveToLeftmost(BtCursor *pCur){
static int moveToRightmost(BtCursor *pCur){
static int fileBtreeFirst(BtCursor *pCur, int *pRes){
static int fileBtreeLast(BtCursor *pCur, int *pRes){
int fileBtreeMoveto(BtCursor *pCur, const void *pKey, int nKey, int *pRes){
static int fileBtreeNext(BtCursor *pCur, int *pRes){
static int fileBtreePrevious(BtCursor *pCur, int *pRes){
static int balance(Btree *pBt, MemPage *pPage, BtCursor *pCur){
static int checkReadLocks(BtCursor *pCur){
BtCursor *p;
BtCursor *pCur, /* Insert data into the table of this cursor */
static int fileBtreeDelete(BtCursor *pCur){
BtCursor leafCur;
BtCursor *pCur;
BtCursor *pCur;
static int fileBtreeCursorDump(BtCursor *pCur, int *aResult){
BtCursor cur;
BtCursor *pCursor; /* A list of all open cursors */
BtCursor *pNext, *pPrev; /* Forms a linked list of all cursors */
BtCursor *pShared; /* Loop of cursors with the same root page */
static int fileBtreeCloseCursor(BtCursor *pCur);
BtCursor *pCur;
BtCursor *pCur;
typedef struct BtCursor BtCursor;
int (*Cursor)(Btree*, int iTable, int wrFlag, BtCursor **ppCur);
int (*Moveto)(BtCursor*, const void *pKey, int nKey, int *pRes);
int (*Delete)(BtCursor*);
int (*Insert)(BtCursor*, const void *pKey, int nKey,
int (*First)(BtCursor*, int *pRes);
int (*Last)(BtCursor*, int *pRes);
int (*Next)(BtCursor*, int *pRes);
int (*Previous)(BtCursor*, int *pRes);
int (*KeySize)(BtCursor*, int *pSize);
int (*Key)(BtCursor*, int offset, int amt, char *zBuf);
int (*KeyCompare)(BtCursor*, const void *pKey, int nKey,
int (*DataSize)(BtCursor*, int *pSize);
int (*Data)(BtCursor*, int offset, int amt, char *zBuf);
int (*CloseCursor)(BtCursor*);
int (*CursorDump)(BtCursor*, int*);
(int(*)(Btree*,int,int,BtCursor**)) memRbtreeCursor,
(int(*)(BtCursor*,const void*,int,int*)) memRbtreeMoveto,
(int(*)(BtCursor*)) memRbtreeDelete,
(int(*)(BtCursor*,const void*,int,const void*,int)) memRbtreeInsert,
(int(*)(BtCursor*,int*)) memRbtreeFirst,
(int(*)(BtCursor*,int*)) memRbtreeLast,
(int(*)(BtCursor*,int*)) memRbtreeNext,
(int(*)(BtCursor*,int*)) memRbtreePrevious,
(int(*)(BtCursor*,int*)) memRbtreeKeySize,
(int(*)(BtCursor*,int,int,char*)) memRbtreeKey,
(int(*)(BtCursor*,const void*,int,int,int*)) memRbtreeKeyCompare,
(int(*)(BtCursor*,int*)) memRbtreeDataSize,
(int(*)(BtCursor*,int,int,char*)) memRbtreeData,
(int(*)(BtCursor*)) memRbtreeCloseCursor,
(int(*)(BtCursor*,int*)) memRbtreeCursorDump,
BtCursor *curMain;
BtCursor *pCur;
BtCursor *pCur;
BtCursor *pCur;
BtCursor *pCur;
BtCursor *pCur;
BtCursor *pCur;
BtCursor *pCur;
BtCursor *pCur;
BtCursor *pCur;
BtCursor *pCur;
BtCursor *pCur;
BtCursor *pCur;
BtCursor *pCur;
BtCursor *pCrsr;
BtCursor *pCrsr;
BtCursor *pCrsr = pC->pCursor;
BtCursor *pCrsr;
BtCursor *pCrsr;
BtCursor *pCrsr;
BtCursor *pCrsr;
BtCursor *pCrsr;
BtCursor *pCrsr;
BtCursor *pCrsr;
BtCursor *pCrsr;
BtCursor *pCrsr;
BtCursor *pCursor; /* The cursor structure of the backend */