diff options
author | drh <> | 2025-07-01 20:32:45 +0000 |
---|---|---|
committer | drh <> | 2025-07-01 20:32:45 +0000 |
commit | 46bfcc1a2171a4c6d1eec034d2f96181f987801d (patch) | |
tree | c91ce303b667bdca75ce15ff1c305e39a2349c69 /src/expr.c | |
parent | 5e71497404b8a03d25b324b14dafa0496dc665c7 (diff) | |
download | sqlite-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.c | 9 |
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; } |