Lines Matching defs:pItem
31982 SrcItem *pItem;
31984 pItem = va_arg(ap, SrcItem*);
31986 if( pItem->zAlias && !flag_altform2 ){
31987 sqlite3_str_appendall(pAccum, pItem->zAlias);
31988 }else if( pItem->zName ){
31989 if( pItem->zDatabase ){
31990 sqlite3_str_appendall(pAccum, pItem->zDatabase);
31993 sqlite3_str_appendall(pAccum, pItem->zName);
31994 }else if( pItem->zAlias ){
31995 sqlite3_str_appendall(pAccum, pItem->zAlias);
31997 Select *pSel = pItem->pSelect;
32002 assert( !pItem->fg.isTabFunc && !pItem->fg.isIndexedBy );
32004 pItem->u1.nRow);
32773 const SrcItem *pItem = &pSrc->a[i];
32779 sqlite3_str_appendf(&x, "{%d:*} %!S", pItem->iCursor, pItem);
32780 if( pItem->pTab ){
32782 pItem->pTab->zName, pItem->pTab->nCol, pItem->pTab,
32783 pItem->colUsed,
32784 pItem->fg.rowidUsed ? "+rowid" : "");
32786 if( (pItem->fg.jointype & (JT_LEFT|JT_RIGHT))==(JT_LEFT|JT_RIGHT) ){
32788 }else if( pItem->fg.jointype & JT_LEFT ){
32790 }else if( pItem->fg.jointype & JT_RIGHT ){
32792 }else if( pItem->fg.jointype & JT_CROSS ){
32795 if( pItem->fg.jointype & JT_LTORJ ){
32798 if( pItem->fg.fromDDL ){
32801 if( pItem->fg.isCte ){
32802 sqlite3_str_appendf(&x, " CteUse=0x%p", pItem->u2.pCteUse);
32804 if( pItem->fg.isOn || (pItem->fg.isUsing==0 && pItem->u3.pOn!=0) ){
32807 if( pItem->fg.isTabFunc ) sqlite3_str_appendf(&x, " isTabFunc");
32808 if( pItem->fg.isCorrelated ) sqlite3_str_appendf(&x, " isCorrelated");
32809 if( pItem->fg.isMaterialized ) sqlite3_str_appendf(&x, " isMaterialized");
32810 if( pItem->fg.viaCoroutine ) sqlite3_str_appendf(&x, " viaCoroutine");
32811 if( pItem->fg.notCte ) sqlite3_str_appendf(&x, " notCte");
32812 if( pItem->fg.isNestedFrom ) sqlite3_str_appendf(&x, " isNestedFrom");
32817 if( pItem->pSelect ) n++;
32818 if( pItem->fg.isTabFunc ) n++;
32819 if( pItem->fg.isUsing ) n++;
32820 if( pItem->fg.isUsing ){
32821 sqlite3TreeViewIdList(pView, pItem->u3.pUsing, (--n)>0, "USING");
32823 if( pItem->pSelect ){
32825 if( pItem->pTab ){
32826 Table *pTab = pItem->pTab;
32829 assert( (int)pItem->fg.isNestedFrom == IsNestedFrom(pItem->pSelect) );
32830 sqlite3TreeViewSelect(pView, pItem->pSelect, (--n)>0);
32833 if( pItem->fg.isTabFunc ){
32834 sqlite3TreeViewExprList(pView, pItem->u1.pFuncArg, 0, "func-args:");
106570 struct ExprList_item *pItem;
106572 for(i=p->nExpr, pItem=p->a; i>0; i--, pItem++){
106573 if( sqlite3WalkExpr(pWalker, pItem->pExpr) ) return WRC_Abort;
106631 SrcItem *pItem;
106635 for(i=pSrc->nSrc, pItem=pSrc->a; i>0; i--, pItem++){
106636 if( pItem->pSelect && sqlite3WalkSelect(pWalker, pItem->pSelect) ){
106639 if( pItem->fg.isTabFunc
106640 && sqlite3WalkExprList(pWalker, pItem->u1.pFuncArg)
106845 ** and setting zSpan to "DATABASE.TABLE.<rowid-alias>". This type of pItem
106850 const struct ExprList_item *pItem,
106858 int eEName = pItem->fg.eEName;
106863 zSpan = pItem->zEName;
107015 SrcItem *pItem; /* Use for looping over pSrcList items */
107071 for(i=0, pItem=pSrcList->a; i<pSrcList->nSrc; i++, pItem++){
107073 pTab = pItem->pTab;
107076 assert( (int)pItem->fg.isNestedFrom == IsNestedFrom(pItem->pSelect) );
107077 if( pItem->fg.isNestedFrom ){
107078 /* In this case, pItem is a subquery that has been formed from a
107082 ** This pItem -------------^
107085 assert( pItem->pSelect!=0 );
107086 pEList = pItem->pSelect->pEList;
107096 if( pItem->fg.isUsing==0
107097 || sqlite3IdListIndex(pItem->u3.pUsing, zCol)<0
107105 if( (pItem->fg.jointype & JT_RIGHT)==0 ){
107109 if( (pItem->fg.jointype & JT_LEFT)==0 ){
107127 pMatch = pItem;
107143 if( pItem->zAlias!=0 ){
107144 if( sqlite3StrICmp(zTab, pItem->zAlias)!=0 ){
107152 if( IN_RENAME_OBJECT && pItem->zAlias ){
107162 if( pItem->fg.isUsing==0
107163 || sqlite3IdListIndex(pItem->u3.pUsing, zCol)<0
107171 if( (pItem->fg.jointype & JT_RIGHT)==0 ){
107175 if( (pItem->fg.jointype & JT_LEFT)==0 ){
107186 pMatch = pItem;
107189 if( pItem->fg.isNestedFrom ){
107190 sqlite3SrcItemColumnUsed(pItem, j);
107215 pMatch = pItem;
107225 pMatch = pItem;
107595 SrcItem *pItem = &pSrc->a[iSrc];
107598 pTab = p->y.pTab = pItem->pTab;
107599 p->iTable = pItem->iCursor;
107609 pItem->colUsed = pTab->nCol>=64 ? ALLBITS : MASKBIT(pTab->nCol)-1;
107613 pItem->colUsed |= ((Bitmask)1)<<(iCol>=BMS ? BMS-1 : iCol);
107712 SrcItem *pItem;
107714 pItem = pSrcList->a;
107717 pExpr->y.pTab = pItem->pTab;
107718 pExpr->iTable = pItem->iCursor;
108321 struct ExprList_item *pItem;
108325 for(i=0, pItem=pOrderBy->a; i<pOrderBy->nExpr; i++, pItem++){
108328 if( pItem->fg.done ) continue;
108329 pE = sqlite3ExprSkipCollateAndLikely(pItem->pExpr);
108369 if( pItem->pExpr==pE ){
108370 pItem->pExpr = pNew;
108372 Expr *pParent = pItem->pExpr;
108379 pItem->u.x.iOrderByCol = (u16)iCol;
108381 pItem->fg.done = 1;
108417 struct ExprList_item *pItem;
108426 for(i=0, pItem=pOrderBy->a; i<pOrderBy->nExpr; i++, pItem++){
108427 if( pItem->u.x.iOrderByCol ){
108428 if( pItem->u.x.iOrderByCol>pEList->nExpr ){
108432 resolveAlias(pParse, pEList, pItem->u.x.iOrderByCol-1, pItem->pExpr,0);
108494 struct ExprList_item *pItem; /* A term of the ORDER BY clause */
108501 for(i=0, pItem=pOrderBy->a; i<pOrderBy->nExpr; i++, pItem++){
108502 Expr *pE = pItem->pExpr;
108512 pItem->u.x.iOrderByCol = (u16)iCol;
108524 pItem->u.x.iOrderByCol = (u16)iCol;
108529 pItem->u.x.iOrderByCol = 0;
108539 pItem->u.x.iOrderByCol = j+1;
108618 SrcItem *pItem = &p->pSrc->a[i];
108619 assert( pItem->zName!=0 || pItem->pSelect!=0 );/* Test of tag-20240424-1*/
108620 if( pItem->pSelect && (pItem->pSelect->selFlags & SF_Resolved)==0 ){
108624 if( pItem->zName ) pParse->zAuthContext = pItem->zName;
108625 sqlite3ResolveSelectNames(pParse, pItem->pSelect, pOuterNC);
108637 assert( pItem->fg.isCorrelated==0 && pOuterNC->nRef>=nRef );
108638 pItem->fg.isCorrelated = (pOuterNC->nRef>nRef);
108694 SrcItem *pItem = &p->pSrc->a[i];
108695 if( pItem->fg.isTabFunc
108696 && sqlite3ResolveExprListNames(&sNC, pItem->u1.pFuncArg)
108757 struct ExprList_item *pItem;
108762 for(i=0, pItem=pGroupBy->a; i<pGroupBy->nExpr; i++, pItem++){
108763 if( ExprHasProperty(pItem->pExpr, EP_Agg) ){
110825 struct ExprList_item *pItem;
110836 pItem = pNew->a;
110838 for(i=0; i<p->nExpr; i++, pItem++, pOldItem++){
110841 pItem->pExpr = sqlite3ExprDup(db, pOldExpr, flags);
110844 && (pNewExpr = pItem->pExpr)!=0
110859 pItem->zEName = sqlite3DbStrDup(db, pOldItem->zEName);
110860 pItem->fg = pOldItem->fg;
110861 pItem->fg.done = 0;
110862 pItem->u = pOldItem->u;
111015 struct ExprList_item *pItem;
111025 pItem = &pList->a[0];
111026 *pItem = zeroItem;
111027 pItem->pExpr = pExpr;
111035 struct ExprList_item *pItem;
111047 pItem = &pList->a[pList->nExpr++];
111048 *pItem = zeroItem;
111049 pItem->pExpr = pExpr;
111057 struct ExprList_item *pItem;
111064 pItem = &pList->a[pList->nExpr++];
111065 *pItem = zeroItem;
111066 pItem->pExpr = pExpr;
111144 struct ExprList_item *pItem;
111158 pItem = &p->a[p->nExpr-1];
111159 assert( pItem->fg.bNulls==0 );
111163 pItem->fg.sortFlags = (u8)iSortOrder;
111166 pItem->fg.bNulls = 1;
111168 pItem->fg.sortFlags |= KEYINFO_ORDER_BIGNULL;
111190 struct ExprList_item *pItem;
111192 pItem = &pList->a[pList->nExpr-1];
111193 assert( pItem->zEName==0 );
111194 assert( pItem->fg.eEName==ENAME_NAME );
111195 pItem->zEName = sqlite3DbStrNDup(pParse->db, pName->z, pName->n);
111200 sqlite3Dequote(pItem->zEName);
111202 sqlite3RenameTokenMap(pParse, (const void*)pItem->zEName, pName);
111225 struct ExprList_item *pItem = &pList->a[pList->nExpr-1];
111227 if( pItem->zEName==0 ){
111228 pItem->zEName = sqlite3DbSpanDup(db, zStart, zEnd);
111229 pItem->fg.eEName = ENAME_SPAN;
111256 struct ExprList_item *pItem = pList->a;
111260 sqlite3ExprDelete(db, pItem->pExpr);
111261 if( pItem->zEName ) sqlite3DbNNFreeNN(db, pItem->zEName);
111262 pItem++;
112559 struct ExprList_item *pItem;
112575 for(i=pList->nExpr, pItem=pList->a; i>0; i--, pItem++){
112576 Expr *pE2 = pItem->pExpr;
114365 struct ExprList_item *pItem;
114367 for(pItem=p->a, i=p->nExpr; i>0; pItem++, i--){
114368 if( pItem->fg.reusable
114369 && sqlite3ExprCompare(0,pItem->pExpr,pExpr,-1)==0
114371 return pItem->u.iConstExprReg;
114392 struct ExprList_item *pItem = &p->a[p->nExpr-1];
114393 pItem->fg.reusable = regDest<0;
114395 pItem->u.iConstExprReg = regDest;
114519 struct ExprList_item *pItem;
114528 for(pItem=pList->a, i=0; i<n; i++, pItem++){
114529 Expr *pExpr = pItem->pExpr;
114531 if( pItem->fg.bSorterRef ){
114536 if( (flags & SQLITE_ECEL_REF)!=0 && (j = pItem->u.x.iOrderByCol)>0 ){
115886 SrcItem *pItem = pSrcList->a;
115887 for(i=0; i<pSrcList->nSrc; i++, pItem++){
115889 if( pExpr->iTable==pItem->iCursor ){
115892 } /* endif pExpr->iTable==pItem->iCursor */
115905 struct AggInfo_func *pItem = pAggInfo->aFunc;
115906 for(i=0; i<pAggInfo->nFunc; i++, pItem++){
115907 if( NEVER(pItem->pFExpr==pExpr) ) break;
115908 if( sqlite3ExprCompare(0, pItem->pFExpr, pExpr, -1)==0 ){
115920 pItem = &pAggInfo->aFunc[i];
115921 pItem->pFExpr = pExpr;
115924 pItem->pFunc = sqlite3FindFunction(pParse->db,
115926 assert( pItem->bOBUnique==0 );
115928 && (pItem->pFunc->funcFlags & SQLITE_FUNC_NEEDCOLL)==0
115936 pItem->iOBTab = pParse->nTab++;
115939 assert( pItem->bOBUnique==0 );
115945 pItem->bOBPayload = 0;
115946 pItem->bOBUnique = ExprHasProperty(pExpr, EP_Distinct);
115948 pItem->bOBPayload = 1;
115950 pItem->bUseSubtype =
115951 (pItem->pFunc->funcFlags & SQLITE_SUBTYPE)!=0;
115953 pItem->iOBTab = -1;
115955 if( ExprHasProperty(pExpr, EP_Distinct) && !pItem->bOBUnique ){
115956 pItem->iDistinct = pParse->nTab++;
115958 pItem->iDistinct = -1;
116005 struct ExprList_item *pItem;
116008 for(pItem=pList->a, i=0; i<pList->nExpr; i++, pItem++){
116009 sqlite3ExprAnalyzeAggregates(pNC, pItem->pExpr);
117827 SrcItem *pItem = &pSrc->a[i];
117828 if( pItem->pTab==p->pTab ){
117829 renameTokenFind(pWalker->pParse, p, pItem->zName);
117972 SrcItem *pItem = &pStep->pFrom->a[i];
117973 if( 0==sqlite3_stricmp(pItem->zName, zOld) ){
117974 renameTokenFind(&sParse, &sCtx, pItem->zName);
120951 SrcItem *pItem;
120957 for(i=0, pItem=pList->a; i<pList->nSrc; i++, pItem++){
120959 if( pItem->zDatabase ){
120960 if( iDb!=sqlite3FindDbName(db, pItem->zDatabase) ){
120963 pFix->zType, pFix->pName, pItem->zDatabase);
120966 sqlite3DbFree(db, pItem->zDatabase);
120967 pItem->zDatabase = 0;
120968 pItem->fg.notCte = 1;
120970 pItem->pSchema = pFix->pSchema;
120971 pItem->fg.fromDDL = 1;
126235 SrcItem *pItem;
126257 pItem = &pList->a[pList->nSrc-1];
126262 pItem->zName = sqlite3NameFromToken(db, pDatabase);
126263 pItem->zDatabase = sqlite3NameFromToken(db, pTable);
126265 pItem->zName = sqlite3NameFromToken(db, pTable);
126266 pItem->zDatabase = 0;
126276 SrcItem *pItem;
126279 for(i=0, pItem=pList->a; i<pList->nSrc; i++, pItem++){
126280 if( pItem->iCursor>=0 ) continue;
126281 pItem->iCursor = pParse->nTab++;
126282 if( pItem->pSelect ){
126283 sqlite3SrcListAssignCursors(pParse, pItem->pSelect->pSrc);
126294 SrcItem *pItem;
126297 for(pItem=pList->a, i=0; i<pList->nSrc; i++, pItem++){
126298 if( pItem->zDatabase ) sqlite3DbNNFreeNN(db, pItem->zDatabase);
126299 if( pItem->zName ) sqlite3DbNNFreeNN(db, pItem->zName);
126300 if( pItem->zAlias ) sqlite3DbNNFreeNN(db, pItem->zAlias);
126301 if( pItem->fg.isIndexedBy ) sqlite3DbFree(db, pItem->u1.zIndexedBy);
126302 if( pItem->fg.isTabFunc ) sqlite3ExprListDelete(db, pItem->u1.pFuncArg);
126303 sqlite3DeleteTable(db, pItem->pTab);
126304 if( pItem->pSelect ) sqlite3SelectDelete(db, pItem->pSelect);
126305 if( pItem->fg.isUsing ){
126306 sqlite3IdListDelete(db, pItem->u3.pUsing);
126307 }else if( pItem->u3.pOn ){
126308 sqlite3ExprDelete(db, pItem->u3.pOn);
126339 SrcItem *pItem;
126352 pItem = &p->a[p->nSrc-1];
126354 assert( pItem->zName==0 || pDatabase!=0 );
126355 if( IN_RENAME_OBJECT && pItem->zName ){
126357 sqlite3RenameTokenMap(pParse, pItem->zName, pToken);
126361 pItem->zAlias = sqlite3NameFromToken(db, pAlias);
126364 pItem->pSelect = pSubquery;
126366 pItem->fg.isNestedFrom = 1;
126370 assert( pItem->fg.isUsing==0 );
126372 pItem->u3.pOn = 0;
126374 pItem->fg.isUsing = 1;
126375 pItem->u3.pUsing = pOnUsing->pUsing;
126377 pItem->u3.pOn = pOnUsing->pOn;
126395 SrcItem *pItem;
126397 pItem = &p->a[p->nSrc-1];
126398 assert( pItem->fg.notIndexed==0 );
126399 assert( pItem->fg.isIndexedBy==0 );
126400 assert( pItem->fg.isTabFunc==0 );
126404 pItem->fg.notIndexed = 1;
126406 pItem->u1.zIndexedBy = sqlite3NameFromToken(pParse->db, pIndexedBy);
126407 pItem->fg.isIndexedBy = 1;
126408 assert( pItem->fg.isCte==0 ); /* No collision on union u2 */
126440 SrcItem *pItem = &p->a[p->nSrc-1];
126441 assert( pItem->fg.notIndexed==0 );
126442 assert( pItem->fg.isIndexedBy==0 );
126443 assert( pItem->fg.isTabFunc==0 );
126444 pItem->u1.pFuncArg = pList;
126445 pItem->fg.isTabFunc = 1;
127649 SrcItem *pItem = pSrc->a;
127651 assert( pItem && pSrc->nSrc>=1 );
127652 pTab = sqlite3LocateTableItem(pParse, 0, pItem);
127653 if( pItem->pTab ) sqlite3DeleteTable(pParse->db, pItem->pTab);
127654 pItem->pTab = pTab;
127655 pItem->fg.notCte = 1;
127658 if( pItem->fg.isIndexedBy && sqlite3IndexedByLookup(pParse, pItem) ){
132453 SrcItem *pItem = pSrc->a;
132454 pItem->pTab = pFKey->pFrom;
132455 pItem->zName = pFKey->pFrom->zName;
132456 pItem->pTab->nTabRef++;
132457 pItem->iCursor = pParse->nTab++;
132488 pItem->zName = 0;
133480 SrcItem *pItem = &pVal->pSrc->a[0];
133481 sqlite3VdbeEndCoroutine(pParse->pVdbe, pItem->regReturn);
133482 sqlite3VdbeJumpHere(pParse->pVdbe, pItem->addrFillSub - 1);
134005 SrcItem *pItem = &pSelect->pSrc->a[0];
134006 dest.iSDParm = pItem->regReturn;
134007 regFromSelect = pItem->regResult;
134008 nColumn = pItem->pSelect->pEList->nExpr;
134009 ExplainQueryPlan((pParse, 0, "SCAN %S", pItem));
135896 SrcItem *pItem; /* An element of pSelect->pSrc */
135965 pItem = pSelect->pSrc->a;
135966 pSrc = sqlite3LocateTableItem(pParse, 0, pItem);
143224 SQLITE_PRIVATE void sqlite3SrcItemColumnUsed(SrcItem *pItem, int iCol){
143225 assert( pItem!=0 );
143226 assert( (int)pItem->fg.isNestedFrom == IsNestedFrom(pItem->pSelect) );
143227 if( pItem->fg.isNestedFrom ){
143229 assert( pItem->pSelect!=0 );
143230 pResults = pItem->pSelect->pEList;
143935 struct ExprList_item *pItem = &pEList->a[i];
143936 if( pItem->u.x.iOrderByCol==0 ){
143937 Expr *pExpr = pItem->pExpr;
143977 pItem->fg.bSorterRef = 1;
144471 struct ExprList_item *pItem;
144479 for(i=iStart, pItem=pList->a+iStart; i<nExpr; i++, pItem++){
144480 pInfo->aColl[i-iStart] = sqlite3ExprNNCollSeq(pParse, pItem->pExpr);
144481 pInfo->aSortFlags[i-iStart] = pItem->fg.sortFlags;
145456 struct ExprList_item *pItem = &pOrderBy->a[i];
145457 Expr *pTerm = pItem->pExpr;
145463 pColl = multiSelectCollSeq(pParse, p, pItem->u.x.iOrderByCol-1);
146420 struct ExprList_item *pItem;
146421 for(j=0, pItem=pOrderBy->a; j<nOrderBy; j++, pItem++){
146422 assert( pItem!=0 );
146423 assert( pItem->u.x.iOrderByCol>0 );
146424 if( pItem->u.x.iOrderByCol==i ) break;
146446 struct ExprList_item *pItem;
146448 for(i=1, pItem=pOrderBy->a; i<=nOrderBy; i++, pItem++){
146449 assert( pItem!=0 );
146450 assert( pItem->u.x.iOrderByCol>0 );
146451 assert( pItem->u.x.iOrderByCol<=p->pEList->nExpr );
146452 aPermute[i] = pItem->u.x.iOrderByCol - 1;
146854 SrcItem *pItem;
146865 for(i=pSrc->nSrc, pItem=pSrc->a; i>0; i--, pItem++){
146866 substSelect(pSubst, pItem->pSelect, 1);
146867 if( pItem->fg.isTabFunc ){
146868 substExprList(pSubst, pItem->u1.pFuncArg);
146884 SrcItem *pItem;
146886 pItem = pWalker->u.pSrcItem;
146887 if( pItem->iCursor!=pExpr->iTable ) return WRC_Continue;
146889 pItem->colUsed |= sqlite3ExprColUsed(pExpr);
146928 SrcItem *pItem;
146929 for(i=0, pItem=pSrc->a; i<pSrc->nSrc; i++, pItem++){
146932 assert( pItem->iCursor < aCsrMap[0] );
146933 if( !pItem->fg.isRecursive || aCsrMap[pItem->iCursor+1]==0 ){
146934 aCsrMap[pItem->iCursor+1] = pParse->nTab++;
146936 pItem->iCursor = aCsrMap[pItem->iCursor+1];
146937 for(p=pItem->pSelect; p; p=p->pPrior){
147539 SrcItem *pItem = &pSrc->a[i+iFrom];
147540 if( pItem->fg.isUsing ) sqlite3IdListDelete(db, pItem->u3.pUsing);
147541 assert( pItem->fg.isTabFunc==0 );
147542 *pItem = pSubSrc->a[i];
147543 pItem->fg.jointype |= ltorj;
148211 static int disableUnusedSubqueryResultColumns(SrcItem *pItem){
148220 assert( pItem!=0 );
148221 if( pItem->fg.isCorrelated || pItem->fg.isCte ){
148224 assert( pItem->pTab!=0 );
148225 pTab = pItem->pTab;
148226 assert( pItem->pSelect!=0 );
148227 pSub = pItem->pSelect;
148248 colUsed = pItem->colUsed;
148505 ** FROM clause element pItem is really a common-table-expression (CTE)
148514 SrcItem *pItem, /* FROM clause element to resolve */
148517 const char *zName = pItem->zName;
148519 assert( pItem->zDatabase==0 );
148675 SrcItem *pItem = &pSrc->a[i];
148676 if( pItem->zDatabase==0
148677 && pItem->zName!=0
148678 && 0==sqlite3StrICmp(pItem->zName, pCte->zName)
148680 pItem->pTab = pTab;
148682 pItem->fg.isRecursive = 1;
148691 pItem->iCursor = iRecTab;
149817 struct ExprList_item *pItem;
149820 for(j=0, pItem=pList->a; !pColl && j<nArg; j++, pItem++){
149821 pColl = sqlite3ExprCollSeq(pParse, pItem->pExpr);
149961 SrcItem *pItem;
149966 pItem = &pTabList->a[iFirst++];
149967 if( pItem->pSelect==0 ) continue;
149968 if( pItem->fg.viaCoroutine ) continue;
149969 if( pItem->zName==0 ) continue;
149970 assert( pItem->pTab!=0 );
149972 if( pItem->pTab->pSchema!=pThis->pTab->pSchema ) continue;
149973 if( sqlite3_stricmp(pItem->zName, pThis->zName)!=0 ) continue;
149974 pS1 = pItem->pSelect;
149975 if( pItem->pTab->pSchema==0 && pThis->pSelect->selId!=pS1->selId ){
149980 if( pItem->pSelect->selFlags & SF_PushDown ){
149985 return pItem;
150149 SrcItem *pItem = &pTabList->a[i];
150150 if( pItem->fg.isCte ){
150151 const CteUse *pCteUse = pItem->u2.pCteUse;
150157 if( isSelfJoinView(pTabList, pItem, i+1, pTabList->nSrc)!=0 ){
150168 if( pItem->fg.jointype & (JT_OUTER|JT_CROSS) ) return 0; /* (1c-ii) */
150171 pItem--;
150172 if( pItem->pSelect!=0 ) return 0; /* (1c-i) */
150321 SrcItem *pItem = &pTabList->a[i];
150322 Select *pSub = pItem->pSelect;
150323 Table *pTab = pItem->pTab;
150341 if( (pItem->fg.jointype & (JT_LEFT|JT_LTORJ))!=0
150342 && sqlite3ExprImpliesNonNullRow(p->pWhere, pItem->iCursor,
150343 pItem->fg.jointype & JT_LTORJ)
150346 if( pItem->fg.jointype & JT_LEFT ){
150347 if( pItem->fg.jointype & JT_RIGHT ){
150350 pItem->fg.jointype &= ~JT_LEFT;
150354 pItem->fg.jointype &= ~(JT_LEFT|JT_OUTER);
150355 unsetJoinExpr(p->pWhere, pItem->iCursor, 0);
150358 if( pItem->fg.jointype & JT_LTORJ ){
150396 if( pItem->fg.isCte && pItem->u2.pCteUse->eM10d==M10d_Yes ){
150535 SrcItem *pItem = &pTabList->a[i];
150559 if( pItem->colUsed==0 && pItem->zName!=0 ){
150560 sqlite3AuthCheck(pParse, SQLITE_READ, pItem->zName, "", pItem->zDatabase);
150566 pSub = pItem->pSelect;
150567 if( pSub==0 || pItem->addrFillSub!=0 ) continue;
150570 assert( pItem->addrFillSub==0 );
150585 && (pItem->fg.isCte==0
150586 || (pItem->u2.pCteUse->eM10d!=M10d_Yes && pItem->u2.pCteUse->nUse<2))
150596 assert( pItem->pSelect && (pItem->pSelect->selFlags & SF_PushDown)!=0 );
150605 && disableUnusedSubqueryResultColumns(pItem)
150618 pParse->zAuthContext = pItem->zName;
150628 pItem->regReturn = ++pParse->nMem;
150629 sqlite3VdbeAddOp3(v, OP_InitCoroutine, pItem->regReturn, 0, addrTop);
150630 VdbeComment((v, "%!S", pItem));
150631 pItem->addrFillSub = addrTop;
150632 sqlite3SelectDestInit(&dest, SRT_Coroutine, pItem->regReturn);
150633 ExplainQueryPlan((pParse, 1, "CO-ROUTINE %!S", pItem));
150635 pItem->pTab->nRowLogEst = pSub->nSelectRow;
150636 pItem->fg.viaCoroutine = 1;
150637 pItem->regResult = dest.iSdst;
150638 sqlite3VdbeEndCoroutine(v, pItem->regReturn);
150641 }else if( pItem->fg.isCte && pItem->u2.pCteUse->addrM9e>0 ){
150644 ** the make the pItem->iCursor be a copy of the ephemeral table that
150646 CteUse *pCteUse = pItem->u2.pCteUse;
150648 if( pItem->iCursor!=pCteUse->iCur ){
150649 sqlite3VdbeAddOp2(v, OP_OpenDup, pItem->iCursor, pCteUse->iCur);
150650 VdbeComment((v, "%!S", pItem));
150653 }else if( (pPrior = isSelfJoinView(pTabList, pItem, 0, i))!=0 ){
150659 sqlite3VdbeAddOp2(v, OP_OpenDup, pItem->iCursor, pPrior->iCursor);
150671 pItem->regReturn = ++pParse->nMem;
150673 pItem->addrFillSub = topAddr+1;
150674 pItem->fg.isMaterialized = 1;
150675 if( pItem->fg.isCorrelated==0 ){
150680 VdbeComment((v, "materialize %!S", pItem));
150682 VdbeNoopComment((v, "materialize %!S", pItem));
150684 sqlite3SelectDestInit(&dest, SRT_EphemTab, pItem->iCursor);
150686 ExplainQueryPlan2(addrExplain, (pParse, 1, "MATERIALIZE %!S", pItem));
150688 pItem->pTab->nRowLogEst = pSub->nSelectRow;
150690 sqlite3VdbeAddOp2(v, OP_Return, pItem->regReturn, topAddr+1);
150691 VdbeComment((v, "end %!S", pItem));
150695 if( pItem->fg.isCte && pItem->fg.isCorrelated==0 ){
150696 CteUse *pCteUse = pItem->u2.pCteUse;
150697 pCteUse->addrM9e = pItem->addrFillSub;
150698 pCteUse->regRtn = pItem->regReturn;
150699 pCteUse->iCur = pItem->iCursor;
150922 struct ExprList_item *pItem; /* For looping over expression in a list */
150924 for(k=p->pEList->nExpr, pItem=p->pEList->a; k>0; k--, pItem++){
150925 pItem->u.x.iAlias = 0;
150927 for(k=pGroupBy->nExpr, pItem=pGroupBy->a; k>0; k--, pItem++){
150928 pItem->u.x.iAlias = 0;
152648 struct ExprList_item *pItem = &pNew->a[pNew->nExpr-1];
152649 pItem->zEName = sqlite3DbStrDup(db, pTab->aCol[jj].zCnName);
152650 pItem->fg.eEName = ENAME_NAME;
152657 struct ExprList_item *pItem = &pNew->a[pNew->nExpr-1];
152658 pItem->zEName = sqlite3DbStrDup(db, pList->a[i].zEName);
152659 pItem->fg.eEName = pList->a[i].fg.eEName;
157543 SrcItem *pItem = &pTabList->a[pLevel->iFrom];
157563 sqlite3_str_appendf(&str, "%s %S", isSearch ? "SEARCH" : "SCAN", pItem);
157571 if( !HasRowid(pItem->pTab) && IsPrimaryKeyIndex(pIdx) ){
157592 const Table *pTab = pItem->pTab;
157618 if( pItem->fg.jointype & JT_LEFT ){
157653 SrcItem *pItem = &pWInfo->pTabList->a[pLevel->iFrom];
157664 sqlite3_str_appendf(&str, "BLOOM FILTER ON %S (", pItem);
157667 const Table *pTab = pItem->pTab;
162071 SrcItem *pItem, /* The FROM clause term to process */
162079 if( pItem->fg.isTabFunc==0 ) return;
162080 pTab = pItem->pTab;
162082 pArgs = pItem->u1.pFuncArg;
162095 pColRef->iTable = pItem->iCursor;
162099 pItem->colUsed |= sqlite3ExprColUsed(pColRef);
162103 if( pItem->fg.jointype & (JT_LEFT|JT_RIGHT) ){
162104 testcase( pItem->fg.jointype & JT_LEFT ); /* testtag-20230227a */
162105 testcase( pItem->fg.jointype & JT_RIGHT ); /* testtag-20230227b */
162108 testcase( pItem->fg.jointype & JT_LTORJ ); /* testtag-20230227c */
162111 sqlite3SetJoinExpr(pTerm, pItem->iCursor, joinType);
163339 const SrcItem *pItem;
163358 pItem = &pTabList->a[iSrc];
163359 assert( pItem!=0 );
163360 pTab = pItem->pTab;
163391 assert( pIdx->pTable==pItem->pTab );
164434 SrcItem *pItem = pWInfo->pTabList->a + p->iTab;
164435 Table *pTab = pItem->pTab;
164440 pItem->zAlias ? pItem->zAlias : pTab->zName);
165773 ** If argument pItem is NULL, then pMask must not be NULL. In this case this
165779 ** Otherwise, if pItem is not NULL, then this function is being called
165790 SrcItem *pItem /* The FROM clause entry for the table */
165792 assert( pItem==0 || (pItem->fg.jointype & JT_RIGHT)==0 );
165793 assert( (pItem==0 || pMask==0) && (pMask!=0 || pItem!=0) );
165796 wherePartIdxExpr(pParse, pIdx, pPart->pRight, pMask, iIdxCur, pItem);
165811 if( pItem ){
165815 int bNullRow = (pItem->fg.jointype&(JT_LEFT|JT_LTORJ))!=0;
165817 p->iDataCur = pItem->iCursor;
166685 SrcItem *pItem;
166691 pItem = pWInfo->pTabList->a + pNew->iTab;
166692 iCur = pItem->iCursor;
166695 if( pItem->fg.jointype & JT_RIGHT ) return SQLITE_OK;
166734 if( IsVirtual(pItem->pTab) ){
166804 SrcItem *pItem;
166823 for(iTab=0, pItem=pTabList->a; pItem<pEnd; iTab++, pItem++){
166827 pNew->maskSelf = sqlite3WhereGetMask(&pWInfo->sMaskSet, pItem->iCursor);
166829 || (pItem->fg.jointype & (JT_OUTER|JT_CROSS|JT_LTORJ))!=0
166841 if( pItem->fg.jointype & JT_LTORJ ) hasRightJoin = 1;
166843 bFirstPastRJ = (pItem->fg.jointype & JT_RIGHT)!=0;
166848 if( IsVirtual(pItem->pTab) ){
166850 for(p=&pItem[1]; p<pEnd; p++){
167815 SrcItem *pItem;
167828 pItem = pWInfo->pTabList->a;
167829 pTab = pItem->pTab;
167831 if( pItem->fg.isIndexedBy || pItem->fg.notIndexed ){
167832 testcase( pItem->fg.isIndexedBy );
167833 testcase( pItem->fg.notIndexed );
167836 iCur = pItem->iCursor;
167869 if( pIdx->isCovering || (pItem->colUsed & pIdx->colNotIdxed)==0 ){
168017 SrcItem *pItem;
168020 pItem = &pWInfo->pTabList->a[pLoop->iTab];
168021 if( (pItem->fg.jointype & (JT_LEFT|JT_RIGHT))!=JT_LEFT ) continue;
168032 || pTerm->pExpr->w.iJoin!=pItem->iCursor
168039 && pTerm->pExpr->w.iJoin==pItem->iCursor
168091 SrcItem *pItem = &pWInfo->pTabList->a[pLoop->iTab];
168092 Table *pTab = pItem->pTab;
168101 testcase( pItem->fg.jointype & JT_LEFT );
168245 SrcItem *pItem = &pWInfo->pTabList->a[ii];
168246 if( !pItem->fg.isCte
168247 || pItem->u2.pCteUse->eM10d!=M10d_Yes
168248 || NEVER(pItem->pSelect==0)
168249 || pItem->pSelect->pOrderBy==0