Lines Matching defs:explain
11144 u8 explain; /* True if the EXPLAIN flag is found on the query */
11152 int iSelectId; /* ID of current select for EXPLAIN output */
11153 int iNextSelectId; /* Next available select ID for EXPLAIN output */
12864 typedef struct Explain Explain;
13092 ** An Explain object accumulates indented output which is helpful
13095 struct Explain {
13144 u8 explain; /* True if EXPLAIN present on SQL command */
13169 Explain *pExplain; /* The explainer */
22667 /* 150 */ "Explain",
60662 ** This feature is used to implement "EXPLAIN".
60664 ** When p->explain==1, each instruction is listed. When
60665 ** p->explain==2, only OP_Explain instructions are listed and these
60666 ** are shown in a different format. p->explain==2 is used to implement
60667 ** EXPLAIN QUERY PLAN.
60669 ** When p->explain==1, first the main program is listed, then each of
60684 assert( p->explain );
60710 if( p->explain==1 ){
60730 }while( i<nRow && p->explain==2 && p->aOp[i].opcode!=OP_Explain );
60755 if( p->explain==1 ){
60820 if( p->explain==1 ){
60847 p->nResColumn = 8 - 4*(p->explain-1);
61048 if( pParse->explain && nMem<10 ){
61104 p->explain = pParse->explain;
63183 if( p->explain ){
64256 ** Allocate a new Explain object
64261 Explain *p = sqlite3_malloc( sizeof(Explain) );
64277 ** Return true if the Explain ends with a new-line.
64279 static int endsWithNL(Explain *p){
64288 Explain *p;
64306 Explain *p;
64317 Explain *p;
65457 assert( p->explain==0 );
71088 ** The magic Explain opcode are only inserted when explain==2 (which
71089 ** is to say when the EXPLAIN QUERY PLAN syntax is used.)
76047 if( pParse->explain==2 ){
81264 pParse->explain = (u8)explainFlag;
84725 if( db->aDb[1].pBt==0 && !pParse->explain ){
94303 if( rc==SQLITE_OK && pParse->pVdbe && pParse->explain ){
94309 if( pParse->explain==2 ){
95340 ** Unless an "EXPLAIN QUERY PLAN" command is being processed, this function
95350 if( pParse->explain==2 ){
95374 ** Unless an "EXPLAIN QUERY PLAN" command is being processed, this function
95395 if( pParse->explain==2 ){
95718 /* If this is an EXPLAIN, skip this step */
95719 if( pParse->explain ){
98212 ** Add a single OP_Explain instruction to the VDBE to explain a simple
98221 if( pParse->explain==2 ){
106281 ** This function is a no-op unless currently processing an EXPLAIN QUERY PLAN
106282 ** command. If the query being compiled is an EXPLAIN QUERY PLAN, a single
106294 if( pParse->explain==2 ){
108603 26, /* EXPLAIN => ID */
108746 "$", "SEMI", "EXPLAIN", "QUERY",
108782 "ecmd", "explain", "cmdx", "cmd",
108820 /* 4 */ "ecmd ::= explain cmdx SEMI",
108821 /* 5 */ "explain ::=",
108822 /* 6 */ "explain ::= EXPLAIN",
108823 /* 7 */ "explain ::= EXPLAIN QUERY PLAN",
109916 case 5: /* explain ::= */
109919 case 6: /* explain ::= EXPLAIN */
109922 case 7: /* explain ::= EXPLAIN QUERY PLAN */
111006 /* (4) ecmd ::= explain cmdx SEMI */ yytestcase(yyruleno==4);
111517 testcase( i==13 ); /* EXPLAIN */
112168 ** (3) EXPLAIN The keyword EXPLAIN has been seen at the beginning of
112172 ** statement, possibly preceeded by EXPLAIN and/or followed by
112190 ** (3) tkEXPLAIN The "explain" keyword.
112213 /* State: ** SEMI WS OTHER EXPLAIN CREATE TEMP TRIGGER END */
112217 /* 3 EXPLAIN: */ { 1, 3, 3, 2, 4, 2, 2, 2, },
112326 if( nId==7 && sqlite3StrNICmp(zSql, "explain", 7)==0 ){