aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordan <Dan Kennedy>2023-09-25 11:12:39 +0000
committerdan <Dan Kennedy>2023-09-25 11:12:39 +0000
commit873849b81e159b53b9f40f8434c2951c4113ca71 (patch)
tree79df77615afe7c6b3a3da1e2b7d8cc2e55d2a888 /src
parentaf7cce98c5bc304e69ab332bf0f6aeafa7f2215d (diff)
downloadsqlite-873849b81e159b53b9f40f8434c2951c4113ca71.tar.gz
sqlite-873849b81e159b53b9f40f8434c2951c4113ca71.zip
Fix a bad interaction between LEFT JOIN, bloom filters and partial indexes.
FossilOrigin-Name: 5775f92b31f0539c66d37e50689bec17a82c0e857a781331c03e34bc18157087
Diffstat (limited to 'src')
-rw-r--r--src/where.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/where.c b/src/where.c
index 777e49854..2a0f07f27 100644
--- a/src/where.c
+++ b/src/where.c
@@ -1142,9 +1142,12 @@ static SQLITE_NOINLINE void sqlite3ConstructBloomFilter(
WhereLoop *pLoop = pLevel->pWLoop; /* The loop being coded */
int iCur; /* Cursor for table getting the filter */
IndexedExpr *saved_pIdxEpr; /* saved copy of Parse.pIdxEpr */
+ IndexedExpr *saved_pIdxPartExpr; /* saved copy of Parse.pIdxPartExpr */
saved_pIdxEpr = pParse->pIdxEpr;
+ saved_pIdxPartExpr = pParse->pIdxPartExpr;
pParse->pIdxEpr = 0;
+ pParse->pIdxPartExpr = 0;
assert( pLoop!=0 );
assert( v!=0 );
@@ -1239,6 +1242,7 @@ static SQLITE_NOINLINE void sqlite3ConstructBloomFilter(
}while( iLevel < pWInfo->nLevel );
sqlite3VdbeJumpHere(v, addrOnce);
pParse->pIdxEpr = saved_pIdxEpr;
+ pParse->pIdxPartExpr = saved_pIdxPartExpr;
}