Code simplifications. New test cases.
FossilOrigin-Name: 57508518ef9d003d259ba98dcc32e5104aca26731a7161808741fe10bc0830d0
diff --git a/src/treeview.c b/src/treeview.c
index ea91710..cfe8182 100644
--- a/src/treeview.c
+++ b/src/treeview.c
@@ -293,7 +293,8 @@
break;
}
case TK_TRUEFALSE: {
- sqlite3TreeViewLine(pView, pExpr->iTable ? "TRUE":"FALSE");
+ sqlite3TreeViewLine(pView,
+ sqlite3ExprTruthOperand(pExpr) ? "TRUE" : "FALSE");
break;
}
#ifndef SQLITE_OMIT_BLOB_LITERAL
@@ -353,16 +354,15 @@
case TK_NOTNULL: zUniOp = "NOTNULL"; break;
case TK_TRUTH: {
+ int x;
+ const char *azOp[] = {
+ "IS-FALSE", "IS-TRUE", "IS-NOT-FALSE", "IS-NOT-TRUE"
+ };
assert( pExpr->op2==TK_IS || pExpr->op2==TK_ISNOT );
assert( pExpr->pRight );
assert( pExpr->pRight->op==TK_TRUEFALSE );
- assert( pExpr->pRight->iTable==0 || pExpr->pRight->iTable==1 );
- switch( (pExpr->op2==TK_ISNOT)*2 + pExpr->pRight->iTable ){
- case 0: zUniOp = "IS-FALSE"; break;
- case 1: zUniOp = "IS-TRUE"; break;
- case 2: zUniOp = "IS-NOT-FALSE"; break;
- case 3: zUniOp = "IS-NOT-TRUE"; break;
- }
+ x = (pExpr->op2==TK_ISNOT)*2 + sqlite3ExprTruthOperand(pExpr->pRight);
+ zUniOp = azOp[x];
break;
}