btree.c File Reference

ROUND8

MX_CELL_SIZE

MX_CELL

Typedef MemPage

typedef struct MemPageMemPage

Typedef BtLock

typedef struct BtLockBtLock

SQLITE_FILE_HEADER

const char zMagicHeader

const charzMagicHeader[static]

PTF_INTKEY

PTF_ZERODATA

PTF_LEAFDATA

PTF_LEAF

EXTRA_SIZE

TRANS_NONE

TRANS_READ

TRANS_WRITE

Typedef CellInfo

typedef struct CellInfoCellInfo

CURSOR_INVALID

CURSOR_VALID

CURSOR_REQUIRESEEK

TRACE

checkReadLocks(Btree *, Pgno, BtCursor *)

intcheckReadLocks(Btree *,
Pgno,
BtCursor *
)[static]

Parameters

Btree *
Pgno
BtCursor *

get2byte(unsigned char *)

u32 get2byte(unsigned char *p)[static]

Parameters

unsigned char * p

get4byte(unsigned char *)

u32 get4byte(unsigned char *p)[static]

Parameters

unsigned char * p

put2byte(unsigned char *, u32)

voidput2byte(unsigned char *p,
u32v
)[static]

Parameters

unsigned char * p
u32 v

put4byte(unsigned char *, u32)

voidput4byte(unsigned char *p,
u32v
)[static]

Parameters

unsigned char * p
u32 v

getVarint

getVarint32

putVarint

PENDING_BYTE_PAGE

READ_LOCK

WRITE_LOCK

queryTableLock(Btree *, Pgno, u8)

intqueryTableLock(Btree *p,
PgnoiTab,
u8eLock
)[static]

Parameters

Btree * p
Pgno iTab
u8 eLock

lockTable(Btree *, Pgno, u8)

intlockTable(Btree *p,
PgnoiTable,
u8eLock
)[static]

Parameters

Btree * p
Pgno iTable
u8 eLock

unlockAllTables(Btree *)

voidunlockAllTables(Btree *p)[static]

Parameters

Btree * p

releasePage(MemPage *)

voidreleasePage(MemPage *pPage)[static]

Parameters

MemPage * pPage

saveCursorPosition(BtCursor *)

intsaveCursorPosition(BtCursor *pCur)[static]

Parameters

BtCursor * pCur

saveAllCursors(BtShared *, Pgno, BtCursor *)

intsaveAllCursors(BtShared *pBt,
PgnoiRoot,
BtCursor *pExcept
)[static]

Parameters

BtShared * pBt
Pgno iRoot
BtCursor * pExcept

restoreOrClearCursorPositionX(BtCursor *, int)

intrestoreOrClearCursorPositionX(BtCursor *pCur,
intdoSeek
)[static]

Parameters

BtCursor * pCur
int doSeek

restoreOrClearCursorPosition

PTRMAP_PAGENO

PTRMAP_PTROFFSET

PTRMAP_ISPAGE

ptrmapPageno(BtShared *, Pgno)

Pgno ptrmapPageno(BtShared *pBt,
Pgnopgno
)[static]

Parameters

BtShared * pBt
Pgno pgno

PTRMAP_ROOTPAGE

PTRMAP_FREEPAGE

PTRMAP_OVERFLOW1

PTRMAP_OVERFLOW2

PTRMAP_BTREE

ptrmapPut(BtShared *, Pgno, u8, Pgno)

intptrmapPut(BtShared *pBt,
Pgnokey,
u8eType,
Pgnoparent
)[static]

Parameters

BtShared * pBt
Pgno key
u8 eType
Pgno parent

ptrmapGet(BtShared *, Pgno, u8 *, Pgno *)

intptrmapGet(BtShared *pBt,
Pgnokey,
u8 *pEType,
Pgno *pPgno
)[static]

Parameters

BtShared * pBt
Pgno key
u8 * pEType
Pgno * pPgno

findCell(MemPage *, int)

u8 *findCell(MemPage *pPage,
intiCell
)[static]

Parameters

MemPage * pPage
int iCell

findOverflowCell(MemPage *, int)

u8 *findOverflowCell(MemPage *pPage,
intiCell
)[static]

Parameters

MemPage * pPage
int iCell

parseCellPtr(MemPage *, u8 *, CellInfo *)

voidparseCellPtr(MemPage *pPage,
u8 *pCell,
CellInfo *pInfo
)[static]

Parameters

MemPage * pPage
u8 * pCell
CellInfo * pInfo

parseCell(MemPage *, int, CellInfo *)

voidparseCell(MemPage *pPage,
intiCell,
CellInfo *pInfo
)[static]

Parameters

MemPage * pPage
int iCell
CellInfo * pInfo

cellSize(MemPage *, int)

intcellSize(MemPage *pPage,
intiCell
)[static]

Parameters

MemPage * pPage
int iCell

cellSizePtr(MemPage *, u8 *)

intcellSizePtr(MemPage *pPage,
u8 *pCell
)[static]

Parameters

MemPage * pPage
u8 * pCell

ptrmapPutOvflPtr(MemPage *, u8 *)

intptrmapPutOvflPtr(MemPage *pPage,
u8 *pCell
)[static]

Parameters

MemPage * pPage
u8 * pCell

ptrmapPutOvfl(MemPage *, int)

intptrmapPutOvfl(MemPage *pPage,
intiCell
)[static]

Parameters

MemPage * pPage
int iCell

pageIntegrity

btreeIntegrity

defragmentPage(MemPage *)

intdefragmentPage(MemPage *pPage)[static]

Parameters

MemPage * pPage

allocateSpace(MemPage *, int)

intallocateSpace(MemPage *pPage,
intnByte
)[static]

Parameters

MemPage * pPage
int nByte

freeSpace(MemPage *, int, int)

voidfreeSpace(MemPage *pPage,
intstart,
intsize
)[static]

Parameters

MemPage * pPage
int start
int size

decodeFlags(MemPage *, int)

voiddecodeFlags(MemPage *pPage,
intflagByte
)[static]

Parameters

MemPage * pPage
int flagByte

initPage(MemPage *, MemPage *)

intinitPage(MemPage *pPage,
MemPage *pParent
)[static]

Parameters

MemPage * pPage
MemPage * pParent

zeroPage(MemPage *, int)

voidzeroPage(MemPage *pPage,
intflags
)[static]

Parameters

MemPage * pPage
int flags

getPage(BtShared *, Pgno, MemPage **)

intgetPage(BtShared *pBt,
Pgnopgno,
MemPage **ppPage
)[static]

Parameters

BtShared * pBt
Pgno pgno
MemPage ** ppPage

getAndInitPage(BtShared *, Pgno, MemPage **, MemPage *)

intgetAndInitPage(BtShared *pBt,
Pgnopgno,
MemPage **ppPage,
MemPage *pParent
)[static]

Parameters

BtShared * pBt
Pgno pgno
MemPage ** ppPage
MemPage * pParent

pageDestructor(void *, int)

voidpageDestructor(void *pData,
intpageSize
)[static]

Parameters

void * pData
int pageSize

pageReinit(void *, int)

voidpageReinit(void *pData,
intpageSize
)[static]

Parameters

void * pData
int pageSize

sqlite3BtreeOpen(const char *, sqlite3 *, Btree **, int)

intsqlite3BtreeOpen(const char *zFilename,
sqlite3 *pSqlite,
Btree **ppBtree,
intflags
)

Parameters

const char * zFilename
sqlite3 * pSqlite
Btree ** ppBtree
int flags

sqlite3BtreeClose(Btree *)

intsqlite3BtreeClose(Btree *p)

Parameters

Btree * p

sqlite3BtreeSetBusyHandler(Btree *, BusyHandler *)

intsqlite3BtreeSetBusyHandler(Btree *p,
BusyHandler *pHandler
)

Parameters

Btree * p
BusyHandler * pHandler

sqlite3BtreeSetCacheSize(Btree *, int)

intsqlite3BtreeSetCacheSize(Btree *p,
intmxPage
)

Parameters

Btree * p
int mxPage

sqlite3BtreeSetSafetyLevel(Btree *, int, int)

intsqlite3BtreeSetSafetyLevel(Btree *p,
intlevel,
intfullSync
)

Parameters

Btree * p
int level
int fullSync

sqlite3BtreeSyncDisabled(Btree *)

intsqlite3BtreeSyncDisabled(Btree *p)

Parameters

Btree * p

sqlite3BtreeSetPageSize(Btree *, int, int)

intsqlite3BtreeSetPageSize(Btree *p,
intpageSize,
intnReserve
)

Parameters

Btree * p
int pageSize
int nReserve

sqlite3BtreeGetPageSize(Btree *)

intsqlite3BtreeGetPageSize(Btree *p)

Parameters

Btree * p

sqlite3BtreeGetReserve(Btree *)

intsqlite3BtreeGetReserve(Btree *p)

Parameters

Btree * p

sqlite3BtreeSetAutoVacuum(Btree *, int)

intsqlite3BtreeSetAutoVacuum(Btree *p,
intautoVacuum
)

Parameters

Btree * p
int autoVacuum

sqlite3BtreeGetAutoVacuum(Btree *)

intsqlite3BtreeGetAutoVacuum(Btree *p)

Parameters

Btree * p

lockBtree(BtShared *)

intlockBtree(BtShared *pBt)[static]

Parameters

BtShared * pBt

lockBtreeWithRetry(Btree *)

intlockBtreeWithRetry(Btree *pRef)[static]

Parameters

Btree * pRef

unlockBtreeIfUnused(BtShared *)

voidunlockBtreeIfUnused(BtShared *pBt)[static]

Parameters

BtShared * pBt

newDatabase(BtShared *)

intnewDatabase(BtShared *pBt)[static]

Parameters

BtShared * pBt

sqlite3BtreeBeginTrans(Btree *, int)

intsqlite3BtreeBeginTrans(Btree *p,
intwrflag
)

Parameters

Btree * p
int wrflag

setChildPtrmaps(MemPage *)

intsetChildPtrmaps(MemPage *pPage)[static]

Parameters

MemPage * pPage

modifyPagePointer(MemPage *, Pgno, Pgno, u8)

intmodifyPagePointer(MemPage *pPage,
PgnoiFrom,
PgnoiTo,
u8eType
)[static]

Parameters

MemPage * pPage
Pgno iFrom
Pgno iTo
u8 eType

relocatePage(BtShared *, MemPage *, u8, Pgno, Pgno)

intrelocatePage(BtShared *pBt,
MemPage *pDbPage,
u8eType,
PgnoiPtrPage,
PgnoiFreePage
)[static]

Parameters

BtShared * pBt
MemPage * pDbPage
u8 eType
Pgno iPtrPage
Pgno iFreePage

allocatePage(BtShared *, MemPage **, Pgno *, Pgno, u8)

intallocatePage(BtShared *,
MemPage **,
Pgno *,
Pgno,
u8
)[static]

Parameters

BtShared *
MemPage **
Pgno *
Pgno
u8

autoVacuumCommit(BtShared *, Pgno *)

intautoVacuumCommit(BtShared *pBt,
Pgno *nTrunc
)[static]

Parameters

BtShared * pBt
Pgno * nTrunc

sqlite3BtreeCommit(Btree *)

intsqlite3BtreeCommit(Btree *p)

Parameters

Btree * p

countWriteCursors(BtShared *)

intcountWriteCursors(BtShared *pBt)[static]

Parameters

BtShared * pBt

sqlite3BtreeRollback(Btree *)

intsqlite3BtreeRollback(Btree *p)

Parameters

Btree * p

sqlite3BtreeBeginStmt(Btree *)

intsqlite3BtreeBeginStmt(Btree *p)

Parameters

Btree * p

sqlite3BtreeCommitStmt(Btree *)

intsqlite3BtreeCommitStmt(Btree *p)

Parameters

Btree * p

sqlite3BtreeRollbackStmt(Btree *)

intsqlite3BtreeRollbackStmt(Btree *p)

Parameters

Btree * p

dfltCompare(void *, int, const void *, int, const void *)

intdfltCompare(void *NotUsed,
intn1,
const void *p1,
intn2,
const void *p2
)[static]

Parameters

void * NotUsed
int n1
const void * p1
int n2
const void * p2

sqlite3BtreeCursor(Btree *, int, int, int(*)(void *, int, const void *, int, const void *), void *, BtCursor **)

intsqlite3BtreeCursor(Btree *p,
intiTable,
intwrFlag,
int(*)(void *, int, const void *, int, const void *)xCmp,
void *pArg,
BtCursor **ppCur
)

Parameters

Btree * p
int iTable
int wrFlag
int(*)(void *, int, const void *, int, const void *) xCmp
void * pArg
BtCursor ** ppCur

sqlite3BtreeCloseCursor(BtCursor *)

intsqlite3BtreeCloseCursor(BtCursor *pCur)

Parameters

BtCursor * pCur

getTempCursor(BtCursor *, BtCursor *)

voidgetTempCursor(BtCursor *pCur,
BtCursor *pTempCur
)[static]

Parameters

BtCursor * pCur
BtCursor * pTempCur

releaseTempCursor(BtCursor *)

voidreleaseTempCursor(BtCursor *pCur)[static]

Parameters

BtCursor * pCur

getCellInfo(BtCursor *)

voidgetCellInfo(BtCursor *pCur)[static]

Parameters

BtCursor * pCur

sqlite3BtreeKeySize(BtCursor *, i64 *)

intsqlite3BtreeKeySize(BtCursor *pCur,
i64 *pSize
)

Parameters

BtCursor * pCur
i64 * pSize

sqlite3BtreeDataSize(BtCursor *, u32 *)

intsqlite3BtreeDataSize(BtCursor *pCur,
u32 *pSize
)

Parameters

BtCursor * pCur
u32 * pSize

getPayload(BtCursor *, int, int, unsigned char *, int)

intgetPayload(BtCursor *pCur,
intoffset,
intamt,
unsigned char *pBuf,
intskipKey
)[static]

Parameters

BtCursor * pCur
int offset
int amt
unsigned char * pBuf
int skipKey

sqlite3BtreeKey(BtCursor *, u32, u32, void *)

intsqlite3BtreeKey(BtCursor *pCur,
u32offset,
u32amt,
void *pBuf
)

Parameters

BtCursor * pCur
u32 offset
u32 amt
void * pBuf

sqlite3BtreeData(BtCursor *, u32, u32, void *)

intsqlite3BtreeData(BtCursor *pCur,
u32offset,
u32amt,
void *pBuf
)

Parameters

BtCursor * pCur
u32 offset
u32 amt
void * pBuf

fetchPayload(BtCursor *, int *, int)

const unsigned char *fetchPayload(BtCursor *pCur,
int *pAmt,
intskipKey
)[static]

Parameters

BtCursor * pCur
int * pAmt
int skipKey

sqlite3BtreeKeyFetch(BtCursor *, int *)

const void *sqlite3BtreeKeyFetch(BtCursor *pCur,
int *pAmt
)

Parameters

BtCursor * pCur
int * pAmt

sqlite3BtreeDataFetch(BtCursor *, int *)

const void *sqlite3BtreeDataFetch(BtCursor *pCur,
int *pAmt
)

Parameters

BtCursor * pCur
int * pAmt

moveToChild(BtCursor *, u32)

intmoveToChild(BtCursor *pCur,
u32newPgno
)[static]

Parameters

BtCursor * pCur
u32 newPgno

isRootPage(MemPage *)

intisRootPage(MemPage *pPage)[static]

Parameters

MemPage * pPage

moveToParent(BtCursor *)

voidmoveToParent(BtCursor *pCur)[static]

Parameters

BtCursor * pCur

moveToRoot(BtCursor *)

intmoveToRoot(BtCursor *pCur)[static]

Parameters

BtCursor * pCur

moveToLeftmost(BtCursor *)

intmoveToLeftmost(BtCursor *pCur)[static]

Parameters

BtCursor * pCur

moveToRightmost(BtCursor *)

intmoveToRightmost(BtCursor *pCur)[static]

Parameters

BtCursor * pCur

sqlite3BtreeFirst(BtCursor *, int *)

intsqlite3BtreeFirst(BtCursor *pCur,
int *pRes
)

Parameters

BtCursor * pCur
int * pRes

sqlite3BtreeLast(BtCursor *, int *)

intsqlite3BtreeLast(BtCursor *pCur,
int *pRes
)

Parameters

BtCursor * pCur
int * pRes

sqlite3BtreeMoveto(BtCursor *, const void *, i64, int *)

intsqlite3BtreeMoveto(BtCursor *pCur,
const void *pKey,
i64nKey,
int *pRes
)

Parameters

BtCursor * pCur
const void * pKey
i64 nKey
int * pRes

sqlite3BtreeEof(BtCursor *)

intsqlite3BtreeEof(BtCursor *pCur)

Parameters

BtCursor * pCur

sqlite3BtreeNext(BtCursor *, int *)

intsqlite3BtreeNext(BtCursor *pCur,
int *pRes
)

Parameters

BtCursor * pCur
int * pRes

sqlite3BtreePrevious(BtCursor *, int *)

intsqlite3BtreePrevious(BtCursor *pCur,
int *pRes
)

Parameters

BtCursor * pCur
int * pRes

freePage(MemPage *)

intfreePage(MemPage *pPage)[static]

Parameters

MemPage * pPage

clearCell(MemPage *, unsigned char *)

intclearCell(MemPage *pPage,
unsigned char *pCell
)[static]

Parameters

MemPage * pPage
unsigned char * pCell

fillInCell(MemPage *, unsigned char *, const void *, i64, const void *, int, int *)

intfillInCell(MemPage *pPage,
unsigned char *pCell,
const void *pKey,
i64nKey,
const void *pData,
intnData,
int *pnSize
)[static]

Parameters

MemPage * pPage
unsigned char * pCell
const void * pKey
i64 nKey
const void * pData
int nData
int * pnSize

reparentPage(BtShared *, Pgno, MemPage *, int)

intreparentPage(BtShared *pBt,
Pgnopgno,
MemPage *pNewParent,
intidx
)[static]

Parameters

BtShared * pBt
Pgno pgno
MemPage * pNewParent
int idx

reparentChildPages(MemPage *)

intreparentChildPages(MemPage *pPage)[static]

Parameters

MemPage * pPage

dropCell(MemPage *, int, int)

voiddropCell(MemPage *pPage,
intidx,
intsz
)[static]

Parameters

MemPage * pPage
int idx
int sz

insertCell(MemPage *, int, u8 *, int, u8 *, u8)

intinsertCell(MemPage *pPage,
inti,
u8 *pCell,
intsz,
u8 *pTemp,
u8nSkip
)[static]

Parameters

MemPage * pPage
int i
u8 * pCell
int sz
u8 * pTemp
u8 nSkip

assemblePage(MemPage *, int, u8 **, int *)

voidassemblePage(MemPage *pPage,
intnCell,
u8 **apCell,
int *aSize
)[static]

Parameters

MemPage * pPage
int nCell
u8 ** apCell
int * aSize

NN

NB

balance(MemPage *, int)

intbalance(MemPage *,
int
)[static]

Parameters

MemPage *
int

balance_quick(MemPage *, MemPage *)

intbalance_quick(MemPage *pPage,
MemPage *pParent
)[static]

Parameters

MemPage * pPage
MemPage * pParent

ISAUTOVACUUM

balance_nonroot(MemPage *)

intbalance_nonroot(MemPage *pPage)[static]

Parameters

MemPage * pPage

balance_shallower(MemPage *)

intbalance_shallower(MemPage *pPage)[static]

Parameters

MemPage * pPage

balance_deeper(MemPage *)

intbalance_deeper(MemPage *pPage)[static]

Parameters

MemPage * pPage

sqlite3BtreeInsert(BtCursor *, const void *, i64, const void *, int)

intsqlite3BtreeInsert(BtCursor *pCur,
const void *pKey,
i64nKey,
const void *pData,
intnData
)

Parameters

BtCursor * pCur
const void * pKey
i64 nKey
const void * pData
int nData

sqlite3BtreeDelete(BtCursor *)

intsqlite3BtreeDelete(BtCursor *pCur)

Parameters

BtCursor * pCur

sqlite3BtreeCreateTable(Btree *, int *, int)

intsqlite3BtreeCreateTable(Btree *p,
int *piTable,
intflags
)

Parameters

Btree * p
int * piTable
int flags

clearDatabasePage(BtShared *, Pgno, MemPage *, int)

intclearDatabasePage(BtShared *pBt,
Pgnopgno,
MemPage *pParent,
intfreePageFlag
)[static]

Parameters

BtShared * pBt
Pgno pgno
MemPage * pParent
int freePageFlag

sqlite3BtreeClearTable(Btree *, int)

intsqlite3BtreeClearTable(Btree *p,
intiTable
)

Parameters

Btree * p
int iTable

sqlite3BtreeDropTable(Btree *, int, int *)

intsqlite3BtreeDropTable(Btree *p,
intiTable,
int *piMoved
)

Parameters

Btree * p
int iTable
int * piMoved

sqlite3BtreeGetMeta(Btree *, int, u32 *)

intsqlite3BtreeGetMeta(Btree *p,
intidx,
u32 *pMeta
)

Parameters

Btree * p
int idx
u32 * pMeta

sqlite3BtreeUpdateMeta(Btree *, int, u32)

intsqlite3BtreeUpdateMeta(Btree *p,
intidx,
u32iMeta
)

Parameters

Btree * p
int idx
u32 iMeta

sqlite3BtreeFlags(BtCursor *)

intsqlite3BtreeFlags(BtCursor *pCur)

Parameters

BtCursor * pCur

sqlite3BtreePager(Btree *)

Pager *sqlite3BtreePager(Btree *p)

Parameters

Btree * p

Typedef IntegrityCk

typedef struct IntegrityCkIntegrityCk

checkAppendMsg(IntegrityCk *, char *, const char *, ...)

voidcheckAppendMsg(IntegrityCk *pCheck,
char *zMsg1,
const char *zFormat,
...
)[static]

Parameters

IntegrityCk * pCheck
char * zMsg1
const char * zFormat
...

checkRef(IntegrityCk *, int, char *)

intcheckRef(IntegrityCk *pCheck,
intiPage,
char *zContext
)[static]

Parameters

IntegrityCk * pCheck
int iPage
char * zContext

checkPtrmap(IntegrityCk *, Pgno, u8, Pgno, char *)

voidcheckPtrmap(IntegrityCk *pCheck,
PgnoiChild,
u8eType,
PgnoiParent,
char *zContext
)[static]

Parameters

IntegrityCk * pCheck
Pgno iChild
u8 eType
Pgno iParent
char * zContext

checkList(IntegrityCk *, int, int, int, char *)

voidcheckList(IntegrityCk *pCheck,
intisFreeList,
intiPage,
intN,
char *zContext
)[static]

Parameters

IntegrityCk * pCheck
int isFreeList
int iPage
int N
char * zContext

checkTreePage(IntegrityCk *, int, MemPage *, char *)

intcheckTreePage(IntegrityCk *pCheck,
intiPage,
MemPage *pParent,
char *zParentContext
)[static]

Parameters

IntegrityCk * pCheck
int iPage
MemPage * pParent
char * zParentContext

sqlite3BtreeIntegrityCheck(Btree *, int *, int)

char *sqlite3BtreeIntegrityCheck(Btree *p,
int *aRoot,
intnRoot
)

Parameters

Btree * p
int * aRoot
int nRoot

sqlite3BtreeGetFilename(Btree *)

const char *sqlite3BtreeGetFilename(Btree *p)

Parameters

Btree * p

sqlite3BtreeGetDirname(Btree *)

const char *sqlite3BtreeGetDirname(Btree *p)

Parameters

Btree * p

sqlite3BtreeGetJournalname(Btree *)

const char *sqlite3BtreeGetJournalname(Btree *p)

Parameters

Btree * p

sqlite3BtreeCopyFile(Btree *, Btree *)

intsqlite3BtreeCopyFile(Btree *pTo,
Btree *pFrom
)

Parameters

Btree * pTo
Btree * pFrom

sqlite3BtreeIsInTrans(Btree *)

intsqlite3BtreeIsInTrans(Btree *p)

Parameters

Btree * p

sqlite3BtreeIsInStmt(Btree *)

intsqlite3BtreeIsInStmt(Btree *p)

Parameters

Btree * p

sqlite3BtreeIsInReadTrans(Btree *)

intsqlite3BtreeIsInReadTrans(Btree *p)

Parameters

Btree * p

sqlite3BtreeSync(Btree *, const char *)

intsqlite3BtreeSync(Btree *p,
const char *zMaster
)

Parameters

Btree * p
const char * zMaster

sqlite3BtreeSchema(Btree *, int, void(*)(void *))

void *sqlite3BtreeSchema(Btree *p,
intnBytes,
void(*)(void *)xFree
)

Parameters

Btree * p
int nBytes
void(*)(void *) xFree

sqlite3BtreeSchemaLocked(Btree *)

intsqlite3BtreeSchemaLocked(Btree *p)

Parameters

Btree * p

sqlite3BtreeLockTable(Btree *, int, u8)

intsqlite3BtreeLockTable(Btree *p,
intiTab,
u8isWriteLock
)

Parameters

Btree * p
int iTab
u8 isWriteLock