aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <>2022-02-02 16:24:01 +0000
committerdrh <>2022-02-02 16:24:01 +0000
commit3d7a69e5ef1c94a74ef01de2a817e7544abcf2a8 (patch)
treeab8fa49ca1fe6fc9847ba769a292167a94fe9c9d /src
parent38d1e443501f41f895c34a38dfa247d2ec6d4359 (diff)
downloadsqlite-3d7a69e5ef1c94a74ef01de2a817e7544abcf2a8.tar.gz
sqlite-3d7a69e5ef1c94a74ef01de2a817e7544abcf2a8.zip
Relax the restriction that the RHS of the IN operator must be a list in order
for sqlite3_vtab_in() to work. Change an unreachable branch into an assert(). FossilOrigin-Name: 3bf2153440dce0e8c0572c4fd39e6b9f34ead75ccab2cea80a646d4ff9d19146
Diffstat (limited to 'src')
-rw-r--r--src/vdbeapi.c3
-rw-r--r--src/where.c4
2 files changed, 3 insertions, 4 deletions
diff --git a/src/vdbeapi.c b/src/vdbeapi.c
index 95fb72c3c..9cc200298 100644
--- a/src/vdbeapi.c
+++ b/src/vdbeapi.c
@@ -867,7 +867,8 @@ static int valueFromValueList(
}else{
int dummy = 0;
rc = sqlite3BtreeFirst(pRhs->pCsr, &dummy);
- if( rc==SQLITE_OK && sqlite3BtreeEof(pRhs->pCsr) ) rc = SQLITE_DONE;
+ assert( rc==SQLITE_OK || sqlite3BtreeEof(pRhs->pCsr) );
+ if( sqlite3BtreeEof(pRhs->pCsr) ) rc = SQLITE_DONE;
}
if( rc==SQLITE_OK ){
u32 sz; /* Size of current row in bytes */
diff --git a/src/where.c b/src/where.c
index 169c4ccf1..11eae60e6 100644
--- a/src/where.c
+++ b/src/where.c
@@ -1243,9 +1243,7 @@ static sqlite3_index_info *allocateIndexInfo(
pIdxCons[j].iTermOffset = i;
op = pTerm->eOperator & WO_ALL;
if( op==WO_IN ){
- if( ExprHasProperty(pTerm->pExpr, EP_xIsSelect)==0 ){
- pHidden->mIn |= SMASKBIT32(j);
- }
+ pHidden->mIn |= SMASKBIT32(j);
op = WO_EQ;
}
if( op==WO_AUX ){