structsqlite3
{ sqlite3_vfs *pVfs; /* OS Interface */ struct Vdbe *pVdbe; /* List of active virtual machines */ CollSeq *pdfltColl; /* The default collating sequence (BINARY) */ sqlite3_mutex *mutex; /* Connection mutex */ Db *aDb; /* All backends */ int nDb; /* Number of backends currently in use */ int flags; /* Miscellaneous flags. See below */ i64 lastRowID; /* ROWID of most recent insert (see above) */ i64 szMmap; /* Default mmap_size setting */ unsigned int openFlags; /* Flags passed to sqlite3_vfs.xopen() */ int errCode; /* Most recent error code (sqlITE_*) */ int errMask; /* & result codes with this before returning */ u16 dbOptFlags; /* Flags to enable/disable optimizations */ u8 autoCommit; /* The auto-commit flag. */ u8 temp_store; /* 1: file 2: memory 0: default */ u8 mallocFailed; /* True if we have seen a malloc failure */ u8 dfltLockMode; /* Default locking-mode for attached dbs */ signed char nextautovac; /* autovac setting after VACUUM if >=0 */ u8 suppressErr; /* Do not issue error messages if true */ u8 vtabOnConflict; /* Value to return for s3_vtab_on_conflict() */ u8 isTransactionSavepoint; /* True if the outermost savepoint is a TS */ int nextPagesize; /* Pagesize after VACUUM if >0 */ u32 magic; /* Magic number for detect library misuse */ int nChange; /* Value returned by sqlite3_changes() */ int nTotalChange; /* Value returned by sqlite3_total_changes() */ int alimit[sqlITE_N_liMIT]; /* limits */ struct sqlite3InitInfo { /* information used during initialization */ int newTnum; /* Rootpage of table being initialized */ u8 IDb; /* Which db file is being initialized */ u8 busy; /* TRUE if currently initializing */ u8 orphanTrigger; /* Last statement is orphaned TEMP trigger */ } init; int nVdbeActive; /* Number of VDBEs currently running */ int nVdbeRead; /* Number of active VDBEs that read or write */ int nVdbeWrite; /* Number of active VDBEs that read and write */ int nVdbeExec; /* Number of nested calls to VdbeExec() */ int nExtension; /* Number of loaded extensions */ voID **aExtension; /* Array of shared library handles */ voID (*xTrace)(voID*,const char*); /* Trace function */ voID *pTraceArg; /* Argument to the trace function */ voID (*xProfile)(voID*,const char*,u64); /* Profiling function */ voID *pProfileArg; /* Argument to profile function */ voID *pCommitArg; /* Argument to xCommitCallback() */ int (*xCommitCallback)(voID*); /* Invoked at every commit. */ voID *pRollbackArg; /* Argument to xRollbackCallback() */ voID (*xRollbackCallback)(voID*); /* Invoked at every commit. */ voID *pUpdateArg; voID (*xUpdateCallback)(voID*,int,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*,const voID*); voID *pCollNeededArg; sqlite3_value *pErr; /* Most recent error message */ union { volatile int isInterrupted; /* True if sqlite3_interrupt has been called */ double notUsed1; /* Spacer */ } u1; LookasIDe lookasIDe; /* LookasIDe malloc configuration */#ifndef sqlITE_OMIT_AUTHORIZATION int (*xAuth)(voID*,const char*); /* Access authorization function */ voID *pAuthArg; /* 1st argument to the access auth function */#endif#ifndef sqlITE_OMIT_PROGRESS_CALLBACK int (*xProgress)(voID *); /* The progress callback */ voID *pProgressArg; /* Argument to the progress callback */ unsigned nProgressOps; /* Number of opcodes for progress callback */#endif#ifndef sqlITE_OMIT_VIRTUALtable int nVTrans; /* Allocated size of aVTrans */ Hash aModule; /* populated by sqlite3_create_module() */ VtabCtx *pVtabCtx; /* Context for active vtab connect/create */ Vtable **aVTrans; /* Virtual tables with open transactions */ Vtable *pdisconnect; /* disconnect these in next sqlite3_prepare() */#endif FuncDefHash aFunc; /* Hash table of connection functions */ Hash aCollSeq; /* All collating sequences */ BusyHandler busyHandler; /* Busy callback */ Db aDbStatic[2]; /* Static space for the 2 default backends */ Savepoint *pSavepoint; /* List of active savepoints */ int busyTimeout; /* Busy handler timeout,in msec */ int nSavepoint; /* Number of non-transaction savepoints */ int nStatement; /* Number of nested statement-transactions */ i64 nDeferredCons; /* Net deferred constraints this transaction. */ i64 nDeferredImmCons; /* Net deferred immediate constraints */ int *pnBytesFreed; /* If not NulL,increment this in DbFree() */#ifdef sqlITE_ENABLE_UNLOCK_NOTIFY /* The following variables are all protected by the STATIC_MASTER ** mutex,not by sqlite3.mutex. They are used by code in notify.c. ** ** When X.pUnlockConnection==Y,that means that X is waiting for Y to ** unlock so that it can proceed. ** ** When X.pBlockingConnection==Y,that means that something that X trIEd ** trIEd to do recently Failed with an sqlITE_LOCKED error due to locks ** held by Y. */ sqlite3 *pBlockingConnection; /* Connection that caused sqlITE_LOCKED */ sqlite3 *pUnlockConnection; /* Connection to watch for unlock */ voID *pUnlockArg; /* Argument to xUnlockNotify */ voID (*xUnlockNotify)(voID **,int); /* Unlock notify callback */ sqlite3 *pNextBlocked; /* Next in List of all blocked connections */#endif};
总结以上是内存溢出为你收集整理的struct sqlite3全部内容,希望文章能够帮你解决struct sqlite3所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)