aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
diff options
context:
space:
mode:
authordrh <>2022-09-20 16:57:49 +0000
committerdrh <>2022-09-20 16:57:49 +0000
commit40c9becc812947508c453d44b9ed1846db228eff (patch)
tree7fc4396ae1642c6e25d3a1bc933e781b401054d9 /src/expr.c
parentb22b493338b65044b5d8eb4f161cc551eb6156b0 (diff)
downloadsqlite-40c9becc812947508c453d44b9ed1846db228eff.tar.gz
sqlite-40c9becc812947508c453d44b9ed1846db228eff.zip
Is the query flattener restriction 29 (do not allow both EP_InnerON and
EP_OuterON constraints on the same FROM clause term) really necessary? This branch explores what happens if we omit that restriction. This is an effort to address the performance regression reported by [forum:/forumpost/96b9e5709cf47cda|forum post 96b9e5709cf47cda] that is caused by flattener restriction 29. FossilOrigin-Name: 19270577ad1d08c9e6e5f0600396b8a1ccda9df1e67a0df845aee6b60437f379
Diffstat (limited to 'src/expr.c')
-rw-r--r--src/expr.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/expr.c b/src/expr.c
index 857251292..064e78fde 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -3223,6 +3223,7 @@ void sqlite3CodeRhsOfIN(
sqlite3VdbeChangeP4(v, addr, (void *)pKeyInfo, P4_KEYINFO);
}
if( addrOnce ){
+ sqlite3VdbeAddOp2(v, OP_Rewind, iTab, sqlite3VdbeCurrentAddr(v)+1);
sqlite3VdbeJumpHere(v, addrOnce);
/* Subroutine return */
assert( ExprUseYSub(pExpr) );