From: drh Date: Wed, 7 Dec 2011 15:33:14 +0000 (+0000) Subject: More compact notation for the parse-tree view. X-Git-Tag: version-3.7.10~19^2~70^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=04b8342b8313dc7fe57a93a2cc7a2e9e5a2afd26;p=thirdparty%2Fsqlite.git More compact notation for the parse-tree view. FossilOrigin-Name: 0eb3f8b1e3a196811fb54a5e2645debe6119610a --- diff --git a/manifest b/manifest index 8900db8ee7..69c5847820 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Bug\sfix\sin\ssqlite3SelectDup().\s\sMake\ssure\sthe\spNext\spointer\sis\svalid. -D 2011-12-07T01:47:27.299 +C More\scompact\snotation\sfor\sthe\sparse-tree\sview. +D 2011-12-07T15:33:14.109 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in 5b4a3e12a850b021547e43daf886b25133b44c07 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -134,7 +134,7 @@ F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac F src/ctime.c a9c26822515f81ec21588cbb482ca6724be02e33 F src/date.c 067a81c9942c497aafd2c260e13add8a7d0c7dd4 F src/delete.c 51d32f0a9c880663e54ce309f52e40c325d5e112 -F src/expr.c 3d800a2280d1ea4eab33ab500af59ebb7b878e64 +F src/expr.c 59a530af612b95d4d29c066bf81f12def813d16d F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb F src/fkey.c 657212460bf5cfd3ae607d12ea62092844c227b5 F src/func.c 6261ce00aad9c63cd5b4219249b05683979060e9 @@ -180,7 +180,7 @@ F src/printf.c 7ffb4ebb8b341f67e049695ba031da717b3d2699 F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50 F src/resolve.c 365ab1c870e38596d6869e76fb544fe6e4ffc809 F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697 -F src/select.c 352ac58d6070f9a5564e9648bc2202b9d6339747 +F src/select.c 984ff4d2865fbf13a0ddeedbf892a93094f2b9dd F src/shell.c a1eadb2fdbfa45e54307263f0c8da8ee8cd61b8b F src/sqlite.h.in 1dc07194eb1a2c69c8ef75f88022b170be08024a F src/sqlite3ext.h 6904f4aadf976f95241311fbffb00823075d9477 @@ -977,7 +977,7 @@ F tool/tostr.awk e75472c2f98dd76e06b8c9c1367f4ab07e122d06 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f F tool/warnings-clang.sh 9f406d66e750e8ac031c63a9ef3248aaa347ef2a F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381 -P 0aa7d3d2346bdddcc4e1e25ee26d13c8594885e5 -R 8f6a328e6230a075adb0590e80910ddf +P 7e5b56b1c602d4adfd4496a9c877f3b685b2d360 +R 7004d54e96eda502d15d7553ec65e84c U drh -Z 657cde2c7390fad792d576ed9952c864 +Z 6c7ae5dd374ffa9280bde6b5186b14b5 diff --git a/manifest.uuid b/manifest.uuid index e28fee5f60..870fbb8eb1 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -7e5b56b1c602d4adfd4496a9c877f3b685b2d360 \ No newline at end of file +0eb3f8b1e3a196811fb54a5e2645debe6119610a \ No newline at end of file diff --git a/src/expr.c b/src/expr.c index 09f07abf42..6af583ce0a 100644 --- a/src/expr.c +++ b/src/expr.c @@ -2956,8 +2956,8 @@ void sqlite3ExplainExpr(Vdbe *pOut, Expr *pExpr){ } switch( op ){ case TK_AGG_COLUMN: { - sqlite3ExplainPrintf(pOut, "AGG_COLUMN(%s:%d:%d)", - pExpr->pTab->zName, pExpr->iTable, pExpr->iColumn); + sqlite3ExplainPrintf(pOut, "AGG{%d:%d}", + pExpr->iTable, pExpr->iColumn); break; } case TK_COLUMN: { @@ -2965,27 +2965,27 @@ void sqlite3ExplainExpr(Vdbe *pOut, Expr *pExpr){ /* This only happens when coding check constraints */ sqlite3ExplainPrintf(pOut, "COLUMN(%d)", pExpr->iColumn); }else{ - sqlite3ExplainPrintf(pOut, "COLUMN(%s:%d:%d)", - pExpr->pTab->zName, pExpr->iTable, pExpr->iColumn); + sqlite3ExplainPrintf(pOut, "{%d:%d}", + pExpr->iTable, pExpr->iColumn); } break; } case TK_INTEGER: { if( pExpr->flags & EP_IntValue ){ - sqlite3ExplainPrintf(pOut, "INTEGER(%d)", pExpr->u.iValue); + sqlite3ExplainPrintf(pOut, "%d", pExpr->u.iValue); }else{ - sqlite3ExplainPrintf(pOut, "INTEGER(%s)", pExpr->u.zToken); + sqlite3ExplainPrintf(pOut, "%s", pExpr->u.zToken); } break; } #ifndef SQLITE_OMIT_FLOATING_POINT case TK_FLOAT: { - sqlite3ExplainPrintf(pOut,"REAL(%s)", pExpr->u.zToken); + sqlite3ExplainPrintf(pOut,"%s", pExpr->u.zToken); break; } #endif case TK_STRING: { - sqlite3ExplainPrintf(pOut,"STRING(%s)", pExpr->u.zToken); + sqlite3ExplainPrintf(pOut,"%Q", pExpr->u.zToken); break; } case TK_NULL: { @@ -2994,15 +2994,7 @@ void sqlite3ExplainExpr(Vdbe *pOut, Expr *pExpr){ } #ifndef SQLITE_OMIT_BLOB_LITERAL case TK_BLOB: { - int n; - const char *z; - assert( !ExprHasProperty(pExpr, EP_IntValue) ); - assert( pExpr->u.zToken[0]=='x' || pExpr->u.zToken[0]=='X' ); - assert( pExpr->u.zToken[1]=='\'' ); - z = &pExpr->u.zToken[2]; - n = sqlite3Strlen30(z) - 1; - assert( z[n]=='\'' ); - sqlite3ExplainPrintf(pOut,"BLOB(%.*s)", n, z); + sqlite3ExplainPrintf(pOut,"%s", pExpr->u.zToken); break; } #endif diff --git a/src/select.c b/src/select.c index 539e4156a1..d51ae103ee 100644 --- a/src/select.c +++ b/src/select.c @@ -4508,22 +4508,21 @@ static void explainOneSelect(Vdbe *pVdbe, Select *p){ sqlite3ExplainPush(pVdbe); for(i=0; ipSrc->nSrc; i++){ struct SrcList_item *pItem = &p->pSrc->a[i]; - sqlite3ExplainPrintf(pVdbe, "src[%d] = ", i); + sqlite3ExplainPrintf(pVdbe, "{%d,*} = ", pItem->iCursor); if( pItem->pSelect ){ sqlite3ExplainSelect(pVdbe, pItem->pSelect); + if( pItem->pTab ){ + sqlite3ExplainPrintf(pVdbe, " (tabname=%s)", pItem->pTab->zName); + } }else if( pItem->zName ){ sqlite3ExplainPrintf(pVdbe, "%s", pItem->zName); } - if( pItem->pTab ){ - sqlite3ExplainPrintf(pVdbe, " (name=%s:%d)", - pItem->pTab->zName, pItem->iCursor); + if( pItem->zAlias ){ + sqlite3ExplainPrintf(pVdbe, " (AS %s)", pItem->zAlias); } if( pItem->jointype & JT_LEFT ){ sqlite3ExplainPrintf(pVdbe, " LEFT-JOIN"); } - if( pItem->zAlias ){ - sqlite3ExplainPrintf(pVdbe, " (AS %s)", pItem->zAlias); - } sqlite3ExplainNL(pVdbe); } sqlite3ExplainPop(pVdbe);