Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Support zeroblob in trace output. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
5086bf8e838c824accda531afeb56a51 |
User & Date: | drh 2009-11-25 21:05:09.000 |
Context
2009-11-25
| ||
22:42 | Make sure the new fts3Int.h header file is added to the amalgamation. (check-in: f25558f333 user: drh tags: trunk) | |
21:05 | Support zeroblob in trace output. (check-in: 5086bf8e83 user: drh tags: trunk) | |
19:35 | Get trace with parameter insertion working for UTF16 databases. (check-in: 01d5451af0 user: drh tags: trunk) | |
Changes
Changes to src/vdbetrace.c.
︙ | ︙ | |||
97 98 99 100 101 102 103 104 105 106 107 108 109 110 | testcase( zRawSql[0]=='$' ); testcase( zRawSql[0]=='@' ); n = sqlite3GetToken((u8*)zRawSql, &dummy); idx = 0; for(i=0, pOp=p->aOp; ALWAYS(i<p->nOp); i++, pOp++){ if( pOp->opcode!=OP_Variable ) continue; if( pOp->p3>1 ) continue; if( memcmp(pOp->p4.z, zRawSql, n)==0 && pOp->p4.z[n]==0 ){ idx = pOp->p1; break; } } assert( idx>0 ); zRawSql += n; | > | 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | testcase( zRawSql[0]=='$' ); testcase( zRawSql[0]=='@' ); n = sqlite3GetToken((u8*)zRawSql, &dummy); idx = 0; for(i=0, pOp=p->aOp; ALWAYS(i<p->nOp); i++, pOp++){ if( pOp->opcode!=OP_Variable ) continue; if( pOp->p3>1 ) continue; if( pOp->p4.z==0 ) continue; if( memcmp(pOp->p4.z, zRawSql, n)==0 && pOp->p4.z[n]==0 ){ idx = pOp->p1; break; } } assert( idx>0 ); zRawSql += n; |
︙ | ︙ | |||
129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | sqlite3XPrintf(&out, "'%.*q'", utf8.n, utf8.z); sqlite3VdbeMemRelease(&utf8); }else #endif { sqlite3XPrintf(&out, "'%.*q'", pVar->n, pVar->z); } }else{ assert( pVar->flags & MEM_Blob ); sqlite3StrAccumAppend(&out, "x'", 2); for(i=0; i<pVar->n; i++){ sqlite3XPrintf(&out, "%02x", pVar->z[i]&0xff); } sqlite3StrAccumAppend(&out, "'", 1); } } return sqlite3StrAccumFinish(&out); } #endif /* #ifndef SQLITE_OMIT_TRACE */ | > > | 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | sqlite3XPrintf(&out, "'%.*q'", utf8.n, utf8.z); sqlite3VdbeMemRelease(&utf8); }else #endif { sqlite3XPrintf(&out, "'%.*q'", pVar->n, pVar->z); } }else if( pVar->flags & MEM_Zero ){ sqlite3XPrintf(&out, "zeroblob(%d)", pVar->u.nZero); }else{ assert( pVar->flags & MEM_Blob ); sqlite3StrAccumAppend(&out, "x'", 2); for(i=0; i<pVar->n; i++){ sqlite3XPrintf(&out, "%02x", pVar->z[i]&0xff); } sqlite3StrAccumAppend(&out, "'", 1); } } return sqlite3StrAccumFinish(&out); } #endif /* #ifndef SQLITE_OMIT_TRACE */ |