aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
diff options
context:
space:
mode:
authordrh <>2025-07-01 20:32:45 +0000
committerdrh <>2025-07-01 20:32:45 +0000
commit46bfcc1a2171a4c6d1eec034d2f96181f987801d (patch)
treec91ce303b667bdca75ce15ff1c305e39a2349c69 /src/expr.c
parent5e71497404b8a03d25b324b14dafa0496dc665c7 (diff)
downloadsqlite-46bfcc1a2171a4c6d1eec034d2f96181f987801d.tar.gz
sqlite-46bfcc1a2171a4c6d1eec034d2f96181f987801d.zip
Improved byte-code comments for the short-circuit optimization of
[0083d5169a46104a], to aid in debugging. FossilOrigin-Name: 113f9d10e347eeaa893ff8b47a461009e0b12589374b93cf3e0bddd19c702dea
Diffstat (limited to 'src/expr.c')
-rw-r--r--src/expr.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/expr.c b/src/expr.c
index 9ed0a121e..c8dfd3af3 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -2424,7 +2424,9 @@ static int exprComputeOperands(
*/
if( exprEvalRhsFirst(pExpr) && sqlite3ExprCanBeNull(pExpr->pRight) ){
r2 = sqlite3ExprCodeTemp(pParse, pExpr->pRight, pFree2);
- addrIsNull = sqlite3VdbeAddOp1(v, OP_IsNull, r2); VdbeCoverage(v);
+ addrIsNull = sqlite3VdbeAddOp1(v, OP_IsNull, r2);
+ VdbeComment((v, "skip left operand"));
+ VdbeCoverage(v);
}else{
addrIsNull = 0;
}
@@ -2439,7 +2441,9 @@ static int exprComputeOperands(
if( ExprHasProperty(pExpr->pRight, EP_Subquery)
&& sqlite3ExprCanBeNull(pExpr->pLeft)
){
- addrIsNull = sqlite3VdbeAddOp1(v, OP_IsNull, r1); VdbeCoverage(v);
+ addrIsNull = sqlite3VdbeAddOp1(v, OP_IsNull, r1);
+ VdbeComment((v, "skip right operand"));
+ VdbeCoverage(v);
}
r2 = sqlite3ExprCodeTemp(pParse, pExpr->pRight, pFree2);
}
@@ -5112,6 +5116,7 @@ expr_code_doover:
sqlite3VdbeAddOp2(v, OP_Goto, 0, sqlite3VdbeCurrentAddr(v)+2);
sqlite3VdbeJumpHere(v, addrIsNull);
sqlite3VdbeAddOp2(v, OP_Null, 0, target);
+ VdbeComment((v, "short-circut value"));
}
break;
}