Index: src/vdbeaux.c ================================================================== --- src/vdbeaux.c +++ src/vdbeaux.c @@ -1108,11 +1108,15 @@ sqlite3_snprintf(nTemp, zTemp, "r[%d]", pExpr->iTable); break; } case TK_COLUMN: { - sqlite3_snprintf(nTemp, zTemp, "c%d", (int)pExpr->iColumn); + if( pExpr->iColumn<0 ){ + sqlite3_snprintf(nTemp, zTemp, "rowid"); + }else{ + sqlite3_snprintf(nTemp, zTemp, "c%d", (int)pExpr->iColumn); + } break; } case TK_LT: zBinOp = "<"; break; case TK_LE: zBinOp = "<="; break; Index: src/wherecode.c ================================================================== --- src/wherecode.c +++ src/wherecode.c @@ -650,12 +650,10 @@ pTerm = &pWC->a[i]; if( pTerm->wtFlags & (TERM_VIRTUAL|TERM_CODED) ) continue; if( pTerm->prereqAll & pLevel->notReady ) continue; if( ExprHasProperty(pTerm->pExpr, EP_FromJoin) ) continue; if( sqlite3ExprContainsSubquery(pTerm->pExpr) ) continue; - for(j=0; jnLTerm && pWLoop->aLTerm[j]!=pTerm; j++){} - if( jnLTerm ) continue; pExpr = sqlite3ExprAnd(db, pExpr, sqlite3ExprDup(db, pTerm->pExpr, 0)); } if( pExpr!=0 ){ const char *a = (const char*)pExpr; Walker sWalker;