struct sqlite3
struct sqlite3
{
sqlite3_vfs *pVfs;
struct Vdbe *pVdbe;
CollSeq *pdfltColl;
sqlite3_mutex *mutex;
Db *aDb;
int nDb;
int flags;
i64 lastRowid;
i64 szMmap;
unsigned int openFlags;
int errCode;
int errMask;
u16 dbOptFlags;
u8 autoCommit;
u8 temp_store;
u8 mallocFailed;
u8 dfltLockMode;
signed char nextAutovac;
u8 suppressErr;
u8 vtabOnConflict;
u8 isTransactionSavepoint;
int nextPagesize;
u32 magic;
int nChange;
int nTotalChange;
int aLimit[SQLITE_N_LIMIT];
struct sqlite3InitInfo {
int newTnum;
u8 iDb;
u8 busy;
u8 orphanTrigger;
} init;
int nVdbeActive;
int nVdbeRead;
int nVdbeWrite;
int nVdbeExec;
int nExtension;
void **aExtension;
void (*xTrace)(void*,const char*);
void *pTraceArg;
void (*xProfile)(void*,const char*,u64);
void *pProfileArg;
void *pCommitArg;
int (*xCommitCallback)(void*);
void *pRollbackArg;
void (*xRollbackCallback)(void*);
void *pUpdateArg;
void (*xUpdateCallback)(void*,int, const char*,const char*,sqlite_int64);
#ifndef SQLITE_OMIT_WAL
int (*xWalCallback)(void *, sqlite3 *, const char *, int);
void *pWalArg;
#endif
void(*xCollNeeded)(void*,sqlite3*,int eTextRep,const char*);
void(*xCollNeeded16)(void*,sqlite3*,int eTextRep,const void*);
void *pCollNeededArg;
sqlite3_value *pErr;
uNIOn {
volatile int isInterrupted;
double notUsed1;
} u1;
Lookaside lookaside;
#ifndef SQLITE_OMIT_AUTHORIZATION
int (*xAuth)(void*,int,const char*,const char*,const char*,const char*);
void *pAuthArg;
#endif
#ifndef SQLITE_OMIT_PROGRESS_CALLBACK
int (*xProgress)(void *);
void *pProgressArg;
unsigned nProgressOps;
#endif
#ifndef SQLITE_OMIT_VIRTUALTABLE
int nVTrans;
Hash aModule;
VtabCtx *pVtabCtx;
VTable **aVTrans;
VTable *pDisconnect;
#endif
FuncDefHash aFunc;
Hash aCollSeq;
BusyHandler busyHandler;
Db aDbStatic[2];
Savepoint *pSavepoint;
int busyTimeout;
int nSavepoint;
int nStatement;
i64 nDeferredCons;
i64 nDeferredImmCons;
int *pnBytesFreed;
#ifdef SQLITE_ENABLE_UNLOCK_NOTIFY
sqlite3 *pBlockinGConnection;
sqlite3 *pUnlockConnection;
void *pUnlockArg;
void (*xUnlockNotify)(void **, int);
sqlite3 *pNextBlocked;
#endif
};
相关文章