** Return a component of the report. */
| 12206 | ** Return a component of the report. |
| 12207 | */ |
| 12208 | const char *sqlite3_expert_report(sqlite3expert *p, int iStmt, int eReport){ |
| 12209 | const char *zRet = 0; |
| 12210 | IdxStatement *pStmt; |
| 12211 | |
| 12212 | if( p->bRun==0 ) return 0; |
| 12213 | for(pStmt=p->pStatement; pStmt && pStmt->iId!=iStmt; pStmt=pStmt->pNext); |
| 12214 | switch( eReport ){ |
| 12215 | case EXPERT_REPORT_SQL: |
| 12216 | if( pStmt ) zRet = pStmt->zSql; |
| 12217 | break; |
| 12218 | case EXPERT_REPORT_INDEXES: |
| 12219 | if( pStmt ) zRet = pStmt->zIdx; |
| 12220 | break; |
| 12221 | case EXPERT_REPORT_PLAN: |
| 12222 | if( pStmt ) zRet = pStmt->zEQP; |
| 12223 | break; |
| 12224 | case EXPERT_REPORT_CANDIDATES: |
| 12225 | zRet = p->zCandidates; |
| 12226 | break; |
| 12227 | } |
| 12228 | return zRet; |
| 12229 | } |
| 12230 | |
| 12231 | /* |
| 12232 | ** Free an sqlite3expert object. |