diff options
author | drh <> | 2024-08-20 23:11:28 +0000 |
---|---|---|
committer | drh <> | 2024-08-20 23:11:28 +0000 |
commit | 5648d717b15c1722ff19e7af1e55d68d1d172f1d (patch) | |
tree | 971f2c19f00ab2073124d4ecedaa7df3f0b42509 /src/walker.c | |
parent | 781163aa9dce91608ba33af479564f83dda1bd40 (diff) | |
parent | a0651b370706e58f9014453c5f36124ca8a738c9 (diff) | |
download | sqlite-5648d717b15c1722ff19e7af1e55d68d1d172f1d.tar.gz sqlite-5648d717b15c1722ff19e7af1e55d68d1d172f1d.zip |
Refactor the SrcItem object to move fields associated with subqueries out
into a separate object named Subquery. This reduces the size of the SrcItem
object by about 1/3rd and provides improved performance.
FossilOrigin-Name: 484bcd75bc95491d8540c791c1c4d40d996cb465839564662e14f98739699bf1
Diffstat (limited to 'src/walker.c')
-rw-r--r-- | src/walker.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/walker.c b/src/walker.c index 0fe4a1d37..c8735e39b 100644 --- a/src/walker.c +++ b/src/walker.c @@ -171,7 +171,9 @@ int sqlite3WalkSelectFrom(Walker *pWalker, Select *p){ pSrc = p->pSrc; if( ALWAYS(pSrc) ){ for(i=pSrc->nSrc, pItem=pSrc->a; i>0; i--, pItem++){ - if( pItem->pSelect && sqlite3WalkSelect(pWalker, pItem->pSelect) ){ + if( pItem->fg.isSubquery + && sqlite3WalkSelect(pWalker, pItem->u4.pSubq->pSelect) + ){ return WRC_Abort; } if( pItem->fg.isTabFunc |