aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
diff options
context:
space:
mode:
authordrh <>2021-05-24 11:35:16 +0000
committerdrh <>2021-05-24 11:35:16 +0000
commitbf7f3a005e1cf4573af2c74f3c3fdb721961ad4d (patch)
treea835bdd352ea9270031b794487c185dc12a9efd3 /src/expr.c
parent0542812726e199388fa06e8bdea8a75bb3688721 (diff)
downloadsqlite-bf7f3a005e1cf4573af2c74f3c3fdb721961ad4d.tar.gz
sqlite-bf7f3a005e1cf4573af2c74f3c3fdb721961ad4d.zip
Fix the TreeView module so that it works with the TK_ERROR exprssion.
Also fix an assert() that was failing due to the recent TK_ERROR addition. FossilOrigin-Name: dd56fbe0cfb0f7848190ce097b378321dd25ae509c7edf93682b091014824fc6
Diffstat (limited to 'src/expr.c')
-rw-r--r--src/expr.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/expr.c b/src/expr.c
index 93da25ec4..fbfba759f 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -445,7 +445,7 @@ int sqlite3ExprVectorSize(Expr *pExpr){
** been positioned.
*/
Expr *sqlite3VectorFieldSubexpr(Expr *pVector, int i){
- assert( i<sqlite3ExprVectorSize(pVector) );
+ assert( i<sqlite3ExprVectorSize(pVector) || pVector->op==TK_ERROR );
if( sqlite3ExprIsVector(pVector) ){
assert( pVector->op2==0 || pVector->op==TK_REGISTER );
if( pVector->op==TK_SELECT || pVector->op2==TK_SELECT ){
@@ -3178,7 +3178,10 @@ int sqlite3CodeSubselect(Parse *pParse, Expr *pExpr){
}
pSel->iLimit = 0;
if( sqlite3Select(pParse, pSel, &dest) ){
- if( pParse->nErr ) pExpr->op = TK_ERROR;
+ if( pParse->nErr ){
+ pExpr->op2 = pExpr->op;
+ pExpr->op = TK_ERROR;
+ }
return 0;
}
pExpr->iTable = rReg = dest.iSDParm;