More compact notation for the parse-tree view.

FossilOrigin-Name: 0eb3f8b1e3a196811fb54a5e2645debe6119610a
diff --git a/src/expr.c b/src/expr.c
index 09f07ab..6af583c 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -2956,8 +2956,8 @@
   }
   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 @@
         /* 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 @@
     }
 #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 539e415..d51ae10 100644
--- a/src/select.c
+++ b/src/select.c
@@ -4508,22 +4508,21 @@
     sqlite3ExplainPush(pVdbe);
     for(i=0; i<p->pSrc->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);