aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
diff options
context:
space:
mode:
authordrh <>2023-03-20 00:53:56 +0000
committerdrh <>2023-03-20 00:53:56 +0000
commit715963f1ba3c173a7145858e5ee2461fc8431660 (patch)
treeb65abb79dd0142306ea0f38ddf75fe95feae8b3a /src/expr.c
parent0d53e8ed543e9501026b895b8a02a7822d333b99 (diff)
downloadsqlite-715963f1ba3c173a7145858e5ee2461fc8431660.tar.gz
sqlite-715963f1ba3c173a7145858e5ee2461fc8431660.zip
Expression errors in generated columns should not generate non-negative
sqlite3_error_offset() returns. Second of two defenses against [33aa4c0de8a62e33]. FossilOrigin-Name: 2adb4e0dda471ffc9b2a5cbad01b6c2bc6091b7526a8c8b19944cb2d4a5111e7
Diffstat (limited to 'src/expr.c')
-rw-r--r--src/expr.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/expr.c b/src/expr.c
index 223ebf1cb..ac6f53872 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -3841,6 +3841,7 @@ void sqlite3ExprCodeGeneratedColumn(
Vdbe *v = pParse->pVdbe;
assert( v!=0 );
assert( pParse->iSelfTab!=0 );
+ if( pParse->nErr ) return;
if( pParse->iSelfTab>0 ){
iAddr = sqlite3VdbeAddOp3(v, OP_IfNullRow, pParse->iSelfTab-1, 0, regOut);
}else{
@@ -3851,6 +3852,7 @@ void sqlite3ExprCodeGeneratedColumn(
sqlite3VdbeAddOp4(v, OP_Affinity, regOut, 1, 0, &pCol->affinity, 1);
}
if( iAddr ) sqlite3VdbeJumpHere(v, iAddr);
+ pParse->db->errByteOffset = -1;
}
#endif /* SQLITE_OMIT_GENERATED_COLUMNS */