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/treeview.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/treeview.c')
-rw-r--r-- | src/treeview.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/treeview.c b/src/treeview.c index 3960d2859..dbd54b346 100644 --- a/src/treeview.c +++ b/src/treeview.c @@ -193,9 +193,9 @@ void sqlite3TreeViewSrcList(TreeView *pView, const SrcList *pSrc){ sqlite3StrAccumInit(&x, 0, zLine, sizeof(zLine), 0); x.printfFlags |= SQLITE_PRINTF_INTERNAL; sqlite3_str_appendf(&x, "{%d:*} %!S", pItem->iCursor, pItem); - if( pItem->pTab ){ + if( pItem->pSTab ){ sqlite3_str_appendf(&x, " tab=%Q nCol=%d ptr=%p used=%llx%s", - pItem->pTab->zName, pItem->pTab->nCol, pItem->pTab, + pItem->pSTab->zName, pItem->pSTab->nCol, pItem->pSTab, pItem->colUsed, pItem->fg.rowidUsed ? "+rowid" : ""); } @@ -230,19 +230,19 @@ void sqlite3TreeViewSrcList(TreeView *pView, const SrcList *pSrc){ sqlite3StrAccumFinish(&x); sqlite3TreeViewItem(pView, zLine, i<pSrc->nSrc-1); n = 0; - if( pItem->pSelect ) n++; + if( pItem->fg.isSubquery ) n++; if( pItem->fg.isTabFunc ) n++; if( pItem->fg.isUsing ) n++; if( pItem->fg.isUsing ){ sqlite3TreeViewIdList(pView, pItem->u3.pUsing, (--n)>0, "USING"); } - if( pItem->pSelect ){ - if( pItem->pTab ){ - Table *pTab = pItem->pTab; + if( pItem->fg.isSubquery ){ + if( pItem->pSTab ){ + Table *pTab = pItem->pSTab; sqlite3TreeViewColumnList(pView, pTab->aCol, pTab->nCol, 1); } - assert( (int)pItem->fg.isNestedFrom == IsNestedFrom(pItem->pSelect) ); - sqlite3TreeViewSelect(pView, pItem->pSelect, (--n)>0); + assert( (int)pItem->fg.isNestedFrom == IsNestedFrom(pItem) ); + sqlite3TreeViewSelect(pView, pItem->u4.pSubq->pSelect, (--n)>0); } if( pItem->fg.isTabFunc ){ sqlite3TreeViewExprList(pView, pItem->u1.pFuncArg, 0, "func-args:"); |