1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-27 20:41:58 +03:00

Fix a problem with vector range constraints involving the rowid column. And other issues.

FossilOrigin-Name: 3ef75d45ebcd8ede91596d69e55fe7d685008a60
This commit is contained in:
dan
2016-08-01 20:14:31 +00:00
parent 870a0705fe
commit 553168c706
7 changed files with 106 additions and 52 deletions

View File

@ -950,6 +950,15 @@ static void codeDeferredSeek(
}
}
/*
** If the expression passed as the second argument is a vector, generate
** code to write the first nReg elements of the vector into an array
** of registers starting with iReg.
**
** If the expression is not a vector, then nReg must be passed 1. In
** this case, generate code to evaluate the expression and leave the
** result in register iReg.
*/
static void codeExprOrVector(Parse *pParse, Expr *p, int iReg, int nReg){
assert( nReg>0 );
if( sqlite3ExprIsVector(p) ){
@ -1238,7 +1247,9 @@ Bitmask sqlite3WhereCodeOneLoopStart(
}else{
testOp = bRev ? OP_Lt : OP_Gt;
}
disableTerm(pLevel, pEnd);
if( 0==sqlite3ExprIsVector(pX->pRight) ){
disableTerm(pLevel, pEnd);
}
}
start = sqlite3VdbeCurrentAddr(v);
pLevel->op = bRev ? OP_Prev : OP_Next;