Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Formatting improvements to the WHERE-clause constraint display in the wheretrace debugging logic. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
3a9e3ed94bf617f00c48009b1a6d348a |
User & Date: | drh 2013-10-28 22:33:36.558 |
Context
2013-10-30
| ||
12:30 | Have the shell ".timer on" command cause the shell to report wall-clock time for each query (as well as user and system CPU time). (Leaf check-in: 5530cdc485 user: dan tags: shell-wall-clock) | |
2013-10-29
| ||
20:40 | Automatically generated comments on many VDBE opcodes when in SQLITE_DEBUG mode. Comments derive from the "Synopsis:" field added to each opcode definition in vdbe.c. (check-in: 5f310c6a22 user: drh tags: trunk) | |
2013-10-28
| ||
22:47 | Merge all trunk changes since 3.8.1 into the sessions branch. (check-in: aa72ea8a00 user: drh tags: sessions) | |
22:39 | Merge recent fixes from trunk. (check-in: 9f8191d1d8 user: drh tags: omit-rowid) | |
22:33 | Formatting improvements to the WHERE-clause constraint display in the wheretrace debugging logic. (check-in: 3a9e3ed94b user: drh tags: trunk) | |
20:38 | Add regression tests for ticket [c620261b5b5]. (check-in: 05a35b09b1 user: drh tags: trunk) | |
Changes
Changes to src/where.c.
︙ | ︙ | |||
3899 3900 3901 3902 3903 3904 3905 | static void whereExplainTerm(Vdbe *v, WhereTerm *pTerm){ char zType[4]; memcpy(zType, "...", 4); if( pTerm->wtFlags & TERM_VIRTUAL ) zType[0] = 'V'; if( pTerm->eOperator & WO_EQUIV ) zType[1] = 'E'; if( ExprHasProperty(pTerm->pExpr, EP_FromJoin) ) zType[2] = 'L'; sqlite3ExplainPrintf(v, "%s ", zType); | < < < | 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 | static void whereExplainTerm(Vdbe *v, WhereTerm *pTerm){ char zType[4]; memcpy(zType, "...", 4); if( pTerm->wtFlags & TERM_VIRTUAL ) zType[0] = 'V'; if( pTerm->eOperator & WO_EQUIV ) zType[1] = 'E'; if( ExprHasProperty(pTerm->pExpr, EP_FromJoin) ) zType[2] = 'L'; sqlite3ExplainPrintf(v, "%s ", zType); sqlite3ExplainExpr(v, pTerm->pExpr); } #endif /* WHERETRACE_ENABLED && SQLITE_ENABLE_TREE_EXPLAIN */ #ifdef WHERETRACE_ENABLED /* |
︙ | ︙ | |||
3955 3956 3957 3958 3959 3960 3961 | */ if( p->nLTerm && (sqlite3WhereTrace & 0x100)!=0 ){ /* WHERETRACE 0x100 */ int i; Vdbe *v = pWInfo->pParse->pVdbe; sqlite3ExplainBegin(v); for(i=0; i<p->nLTerm; i++){ WhereTerm *pTerm = p->aLTerm[i]; | | | 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 | */ if( p->nLTerm && (sqlite3WhereTrace & 0x100)!=0 ){ /* WHERETRACE 0x100 */ int i; Vdbe *v = pWInfo->pParse->pVdbe; sqlite3ExplainBegin(v); for(i=0; i<p->nLTerm; i++){ WhereTerm *pTerm = p->aLTerm[i]; sqlite3ExplainPrintf(v, " (%d) #%-2d ", i+1, (int)(pTerm-pWC->a)); sqlite3ExplainPush(v); whereExplainTerm(v, pTerm); sqlite3ExplainPop(v); sqlite3ExplainNL(v); } sqlite3ExplainFinish(v); sqlite3DebugPrintf("%s", sqlite3VdbeExplanation(v)); |
︙ | ︙ | |||
5861 5862 5863 5864 5865 5866 5867 | /* Display all terms of the WHERE clause */ #if defined(WHERETRACE_ENABLED) && defined(SQLITE_ENABLE_TREE_EXPLAIN) if( sqlite3WhereTrace & 0x100 ){ int i; Vdbe *v = pParse->pVdbe; sqlite3ExplainBegin(v); for(i=0; i<sWLB.pWC->nTerm; i++){ | | | 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 | /* Display all terms of the WHERE clause */ #if defined(WHERETRACE_ENABLED) && defined(SQLITE_ENABLE_TREE_EXPLAIN) if( sqlite3WhereTrace & 0x100 ){ int i; Vdbe *v = pParse->pVdbe; sqlite3ExplainBegin(v); for(i=0; i<sWLB.pWC->nTerm; i++){ sqlite3ExplainPrintf(v, "#%-2d ", i); sqlite3ExplainPush(v); whereExplainTerm(v, &sWLB.pWC->a[i]); sqlite3ExplainPop(v); sqlite3ExplainNL(v); } sqlite3ExplainFinish(v); sqlite3DebugPrintf("%s", sqlite3VdbeExplanation(v)); |
︙ | ︙ |