aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/expr.c26
-rw-r--r--src/select.c13
2 files changed, 15 insertions, 24 deletions
diff --git a/src/expr.c b/src/expr.c
index 09f07abf4..6af583ce0 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 539e4156a..d51ae103e 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; 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);