SQLite3 Virtual DataBase Engine

前端之家收集整理的这篇文章主要介绍了SQLite3 Virtual DataBase Engine前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

An instance of the virtual machine.

This structure contains the completestate of the virtual machine.


structVdbe{
sqlite3*db;/*Thedatabaseconnectionthatownsthisstatement*/
Op*aOp;/*Spacetoholdthevirtualmachine'sprogram*/
Mem*aMem;/*Thememorylocations*/
Mem**apArg;/*Argumentstocurrentlyexecutinguserfunction*/
Mem*aColName;/*Columnnamestoreturn*/
Mem*pResultSet;/*Pointertoanarrayofresults*/
Parse*pParse;/*ParsingcontextusedtocreatethisVdbe*/
intnMem;/*Numberofmemorylocationscurrentlyallocated*/
intnOp;/*Numberofinstructionsintheprogram*/
intnCursor;/*NumberofslotsinapCsr[]*/
u32magic;/*Magicnumberforsanitychecking*/
char*zErrMsg;/*Errormessagewrittenhere*/
Vdbe*pPrev,*pNext;/*LinkedlistofVDBEswiththesameVdbe.db*/
VdbeCursor**apCsr;/*Oneelementofthisarrayforeachopencursor*/
Mem*aVar;/*ValuesfortheOP_Variableopcode.*/
char**azVar;/*Nameofvariables*/
ynVarnVar;/*NumberofentriesinaVar[]*/
ynVarnzVar;/*NumberofentriesinazVar[]*/
u32cacheCtr;/*VdbeCursorrowcachegenerationcounter*/
intpc;/*Theprogramcounter*/
intrc;/*Valuetoreturn*/

#ifdefsqlITE_DEBUG
intrcApp;/*errcodesetbysqlite3_result_error_code()*/
#endif

u16nResColumn;/*Numberofcolumnsinonerowoftheresultset*/
u8errorAction;/*RecoveryactiontodoincaSEOfanerror*/
u8minWriteFileFormat;/*Minimumfileformatforwritabledatabasefiles*/
bftexplain:2;/*TrueifEXPLAINpresentonsqlcommand*/
bftchangeCntOn:1;/*Truetoupdatethechange-counter*/
bftexpired:1;/*TrueiftheVMneedstoberecompiled*/
bftrunOnlyOnce:1;/*Automaticallyexpireonreset*/
bftusesStmtJournal:1;/*Trueifusesastatementjournal*/
bftreadOnly:1;/*Trueforstatementsthatdonotwrite*/
bftbIsReader:1;/*Trueforstatementsthatread*/
bftisPrepareV2:1;/*Trueifpreparedwithprepare_v2()*/
bftdoingRerun:1;/*Trueifrerunningafteranauto-reprepare*/
intnChange;/*Numberofdbchangesmadesincelastreset*/
yDbMaskbtreeMask;/*Bitmaskofdb->aDb[]entriesreferenced*/
yDbMasklockMask;/*SubsetofbtreeMaskthatrequiresalock*/
intiStatement;/*Statementnumber(or0ifhasnotopenedstmt)*/
u32aCounter[5];/*Countersusedbysqlite3_stmt_status()*/

#ifndefsqlITE_OMIT_TRACE
i64startTime;/*Timewhenquerystarted-usedforprofiling*/
#endif

i64iCurrentTime;/*Valueofjulianday('now')forthisstatement*/
i64nFkConstraint;/*Numberofimm.FKconstraintsthisVM*/
i64nStmtDefCons;/*Numberofdef.constraintswhenstmtstarted*/
i64nStmtDefImmCons;/*Numberofdef.immconstraintswhenstmtstarted*/
char*zsql;/*Textofthesqlstatementthatgeneratedthis*/
void*pFree;/*Freethiswhendeletingthevdbe*/
VdbeFrame*pFrame;/*Parentframe*/
VdbeFrame*pDelFrame;/*ListofframeobjectstofreeonVMreset*/
intnFrame;/*NumberofframesinpFramelist*/
u32expmask;/*BindingtothesevarsinvalidatesVM*/
SubProgram*pProgram;/*Linkedlistofallsub-programsusedbyVM*/
intnOnceFlag;/*SizeofarrayaOnceFlag[]*/
u8*aOnceFlag;/*FlagsforOP_Once*/
AuxData*pAuxData;/*Linkedlistofauxdataallocations*/

#ifdefsqlITE_ENABLE_STMT_SCANSTATUS
i64*anExec;/*Numberoftimeseachophasbeenexecuted*/
intnScan;/*EntriesinaScan[]*/
ScanStatus*aScan;/*Scandefinitionsforsqlite3_stmt_scanstatus()*/
#endif
};

猜你在找的Sqlite相关文章