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",
60634 ** This feature is used to implement "EXPLAIN".
60636 ** When p->explain==1, each instruction is listed. When
60637 ** p->explain==2, only OP_Explain instructions are listed and these
60638 ** are shown in a different format. p->explain==2 is used to implement
60639 ** EXPLAIN QUERY PLAN.
60641 ** When p->explain==1, first the main program is listed, then each of
60656 assert( p->explain );
60682 if( p->explain==1 ){
60702 }while( i<nRow && p->explain==2 && p->aOp[i].opcode!=OP_Explain );
60727 if( p->explain==1 ){
60792 if( p->explain==1 ){
60819 p->nResColumn = 8 - 4*(p->explain-1);
61020 if( pParse->explain && nMem<10 ){
61076 p->explain = pParse->explain;
63155 if( p->explain ){
64228 ** Allocate a new Explain object
64233 Explain *p = sqlite3_malloc( sizeof(Explain) );
64249 ** Return true if the Explain ends with a new-line.
64251 static int endsWithNL(Explain *p){
64260 Explain *p;
64278 Explain *p;
64289 Explain *p;
65429 assert( p->explain==0 );
71060 ** The magic Explain opcode are only inserted when explain==2 (which
71061 ** is to say when the EXPLAIN QUERY PLAN syntax is used.)
76011 if( pParse->explain==2 ){
81228 pParse->explain = (u8)explainFlag;
84689 if( db->aDb[1].pBt==0 && !pParse->explain ){
94267 if( rc==SQLITE_OK && pParse->pVdbe && pParse->explain ){
94273 if( pParse->explain==2 ){
95304 ** Unless an "EXPLAIN QUERY PLAN" command is being processed, this function
95314 if( pParse->explain==2 ){
95338 ** Unless an "EXPLAIN QUERY PLAN" command is being processed, this function
95359 if( pParse->explain==2 ){
95682 /* If this is an EXPLAIN, skip this step */
95683 if( pParse->explain ){
98176 ** Add a single OP_Explain instruction to the VDBE to explain a simple
98185 if( pParse->explain==2 ){
106245 ** This function is a no-op unless currently processing an EXPLAIN QUERY PLAN
106246 ** command. If the query being compiled is an EXPLAIN QUERY PLAN, a single
106258 if( pParse->explain==2 ){
108567 26, /* EXPLAIN => ID */
108710 "$", "SEMI", "EXPLAIN", "QUERY",
108746 "ecmd", "explain", "cmdx", "cmd",
108784 /* 4 */ "ecmd ::= explain cmdx SEMI",
108785 /* 5 */ "explain ::=",
108786 /* 6 */ "explain ::= EXPLAIN",
108787 /* 7 */ "explain ::= EXPLAIN QUERY PLAN",
109880 case 5: /* explain ::= */
109883 case 6: /* explain ::= EXPLAIN */
109886 case 7: /* explain ::= EXPLAIN QUERY PLAN */
110970 /* (4) ecmd ::= explain cmdx SEMI */ yytestcase(yyruleno==4);
111481 testcase( i==13 ); /* EXPLAIN */
112132 ** (3) EXPLAIN The keyword EXPLAIN has been seen at the beginning of
112136 ** statement, possibly preceeded by EXPLAIN and/or followed by
112154 ** (3) tkEXPLAIN The "explain" keyword.
112177 /* State: ** SEMI WS OTHER EXPLAIN CREATE TEMP TRIGGER END */
112181 /* 3 EXPLAIN: */ { 1, 3, 3, 2, 4, 2, 2, 2, },
112290 if( nId==7 && sqlite3StrNICmp(zSql, "explain", 7)==0 ){