Lines Matching refs:pItem

326 void sqlite3SrcItemColumnUsed(SrcItem *pItem, int iCol){  in sqlite3SrcItemColumnUsed()  argument
327 assert( pItem!=0 ); in sqlite3SrcItemColumnUsed()
328 assert( (int)pItem->fg.isNestedFrom == IsNestedFrom(pItem->pSelect) ); in sqlite3SrcItemColumnUsed()
329 if( pItem->fg.isNestedFrom ){ in sqlite3SrcItemColumnUsed()
331 assert( pItem->pSelect!=0 ); in sqlite3SrcItemColumnUsed()
332 pResults = pItem->pSelect->pEList; in sqlite3SrcItemColumnUsed()
1029 struct ExprList_item *pItem = &pEList->a[i]; in selectExprDefer() local
1030 if( pItem->u.x.iOrderByCol==0 ){ in selectExprDefer()
1031 Expr *pExpr = pItem->pExpr; in selectExprDefer()
1071 pItem->fg.bSorterRef = 1; in selectExprDefer()
1558 struct ExprList_item *pItem; in sqlite3KeyInfoFromExprList() local
1566 for(i=iStart, pItem=pList->a+iStart; i<nExpr; i++, pItem++){ in sqlite3KeyInfoFromExprList()
1567 pInfo->aColl[i-iStart] = sqlite3ExprNNCollSeq(pParse, pItem->pExpr); in sqlite3KeyInfoFromExprList()
1568 pInfo->aSortFlags[i-iStart] = pItem->fg.sortFlags; in sqlite3KeyInfoFromExprList()
2495 struct ExprList_item *pItem = &pOrderBy->a[i]; in multiSelectOrderByKeyInfo() local
2496 Expr *pTerm = pItem->pExpr; in multiSelectOrderByKeyInfo()
2502 pColl = multiSelectCollSeq(pParse, p, pItem->u.x.iOrderByCol-1); in multiSelectOrderByKeyInfo()
3461 struct ExprList_item *pItem; in multiSelectOrderBy() local
3462 for(j=0, pItem=pOrderBy->a; j<nOrderBy; j++, pItem++){ in multiSelectOrderBy()
3463 assert( pItem!=0 ); in multiSelectOrderBy()
3464 assert( pItem->u.x.iOrderByCol>0 ); in multiSelectOrderBy()
3465 if( pItem->u.x.iOrderByCol==i ) break; in multiSelectOrderBy()
3487 struct ExprList_item *pItem; in multiSelectOrderBy() local
3489 for(i=1, pItem=pOrderBy->a; i<=nOrderBy; i++, pItem++){ in multiSelectOrderBy()
3490 assert( pItem!=0 ); in multiSelectOrderBy()
3491 assert( pItem->u.x.iOrderByCol>0 ); in multiSelectOrderBy()
3492 assert( pItem->u.x.iOrderByCol<=p->pEList->nExpr ); in multiSelectOrderBy()
3493 aPermute[i] = pItem->u.x.iOrderByCol - 1; in multiSelectOrderBy()
3891 SrcItem *pItem; in substSelect() local
3902 for(i=pSrc->nSrc, pItem=pSrc->a; i>0; i--, pItem++){ in substSelect()
3903 substSelect(pSubst, pItem->pSelect, 1); in substSelect()
3904 if( pItem->fg.isTabFunc ){ in substSelect()
3905 substExprList(pSubst, pItem->u1.pFuncArg); in substSelect()
3921 SrcItem *pItem; in recomputeColumnsUsedExpr() local
3923 pItem = pWalker->u.pSrcItem; in recomputeColumnsUsedExpr()
3924 if( pItem->iCursor!=pExpr->iTable ) return WRC_Continue; in recomputeColumnsUsedExpr()
3926 pItem->colUsed |= sqlite3ExprColUsed(pExpr); in recomputeColumnsUsedExpr()
3965 SrcItem *pItem; in srclistRenumberCursors() local
3966 for(i=0, pItem=pSrc->a; i<pSrc->nSrc; i++, pItem++){ in srclistRenumberCursors()
3969 assert( pItem->iCursor < aCsrMap[0] ); in srclistRenumberCursors()
3970 if( !pItem->fg.isRecursive || aCsrMap[pItem->iCursor+1]==0 ){ in srclistRenumberCursors()
3971 aCsrMap[pItem->iCursor+1] = pParse->nTab++; in srclistRenumberCursors()
3973 pItem->iCursor = aCsrMap[pItem->iCursor+1]; in srclistRenumberCursors()
3974 for(p=pItem->pSelect; p; p=p->pPrior){ in srclistRenumberCursors()
4561 SrcItem *pItem = &pSrc->a[i+iFrom]; in flattenSubquery() local
4562 if( pItem->fg.isUsing ) sqlite3IdListDelete(db, pItem->u3.pUsing); in flattenSubquery()
4563 assert( pItem->fg.isTabFunc==0 ); in flattenSubquery()
4564 *pItem = pSubSrc->a[i]; in flattenSubquery()
4565 pItem->fg.jointype |= ltorj; in flattenSubquery()
5376 SrcItem *pItem, /* FROM clause element to resolve */ in searchWith() argument
5379 const char *zName = pItem->zName; in searchWith()
5381 assert( pItem->zDatabase==0 ); in searchWith()
5541 SrcItem *pItem = &pSrc->a[i]; in resolveFromTermToCte() local
5542 if( pItem->zDatabase==0 in resolveFromTermToCte()
5543 && pItem->zName!=0 in resolveFromTermToCte()
5544 && 0==sqlite3StrICmp(pItem->zName, pCte->zName) in resolveFromTermToCte()
5546 pItem->pTab = pTab; in resolveFromTermToCte()
5548 pItem->fg.isRecursive = 1; in resolveFromTermToCte()
5557 pItem->iCursor = iRecTab; in resolveFromTermToCte()
6345 struct ExprList_item *pItem; in updateAccumulator() local
6348 for(j=0, pItem=pList->a; !pColl && j<nArg; j++, pItem++){ in updateAccumulator()
6349 pColl = sqlite3ExprCollSeq(pParse, pItem->pExpr); in updateAccumulator()
6483 SrcItem *pItem; in isSelfJoinView() local
6486 for(pItem = pTabList->a; pItem<pThis; pItem++){ in isSelfJoinView()
6488 if( pItem->pSelect==0 ) continue; in isSelfJoinView()
6489 if( pItem->fg.viaCoroutine ) continue; in isSelfJoinView()
6490 if( pItem->zName==0 ) continue; in isSelfJoinView()
6491 assert( pItem->pTab!=0 ); in isSelfJoinView()
6493 if( pItem->pTab->pSchema!=pThis->pTab->pSchema ) continue; in isSelfJoinView()
6494 if( sqlite3_stricmp(pItem->zName, pThis->zName)!=0 ) continue; in isSelfJoinView()
6495 pS1 = pItem->pSelect; in isSelfJoinView()
6496 if( pItem->pTab->pSchema==0 && pThis->pSelect->selId!=pS1->selId ){ in isSelfJoinView()
6501 if( pItem->pSelect->selFlags & SF_PushDown ){ in isSelfJoinView()
6506 return pItem; in isSelfJoinView()
6777 SrcItem *pItem = &pTabList->a[i]; in sqlite3Select() local
6778 Select *pSub = pItem->pSelect; in sqlite3Select()
6779 Table *pTab = pItem->pTab; in sqlite3Select()
6789 if( (pItem->fg.jointype & (JT_LEFT|JT_RIGHT))==JT_LEFT in sqlite3Select()
6790 && sqlite3ExprImpliesNonNullRow(p->pWhere, pItem->iCursor) in sqlite3Select()
6795 pItem->fg.jointype &= ~(JT_LEFT|JT_OUTER); in sqlite3Select()
6796 assert( pItem->iCursor>=0 ); in sqlite3Select()
6797 unsetJoinExpr(p->pWhere, pItem->iCursor, in sqlite3Select()
6949 SrcItem *pItem = &pTabList->a[i]; in sqlite3Select() local
6973 if( pItem->colUsed==0 && pItem->zName!=0 ){ in sqlite3Select()
6974 sqlite3AuthCheck(pParse, SQLITE_READ, pItem->zName, "", pItem->zDatabase); in sqlite3Select()
6980 pSub = pItem->pSelect; in sqlite3Select()
6984 assert( pItem->addrFillSub==0 ); in sqlite3Select()
6999 && (pItem->fg.isCte==0 in sqlite3Select()
7000 || (pItem->u2.pCteUse->eM10d!=M10d_Yes && pItem->u2.pCteUse->nUse<2)) in sqlite3Select()
7001 && pushDownWhereTerms(pParse, pSub, p->pWhere, pItem) in sqlite3Select()
7010 assert( pItem->pSelect && (pItem->pSelect->selFlags & SF_PushDown)!=0 ); in sqlite3Select()
7016 pParse->zAuthContext = pItem->zName; in sqlite3Select()
7031 && (pItem->fg.isCte==0 || pItem->u2.pCteUse->eM10d!=M10d_Yes) /* (2) */ in sqlite3Select()
7039 pItem->regReturn = ++pParse->nMem; in sqlite3Select()
7040 sqlite3VdbeAddOp3(v, OP_InitCoroutine, pItem->regReturn, 0, addrTop); in sqlite3Select()
7041 VdbeComment((v, "%!S", pItem)); in sqlite3Select()
7042 pItem->addrFillSub = addrTop; in sqlite3Select()
7043 sqlite3SelectDestInit(&dest, SRT_Coroutine, pItem->regReturn); in sqlite3Select()
7044 ExplainQueryPlan((pParse, 1, "CO-ROUTINE %!S", pItem)); in sqlite3Select()
7046 pItem->pTab->nRowLogEst = pSub->nSelectRow; in sqlite3Select()
7047 pItem->fg.viaCoroutine = 1; in sqlite3Select()
7048 pItem->regResult = dest.iSdst; in sqlite3Select()
7049 sqlite3VdbeEndCoroutine(v, pItem->regReturn); in sqlite3Select()
7052 }else if( pItem->fg.isCte && pItem->u2.pCteUse->addrM9e>0 ){ in sqlite3Select()
7057 CteUse *pCteUse = pItem->u2.pCteUse; in sqlite3Select()
7059 if( pItem->iCursor!=pCteUse->iCur ){ in sqlite3Select()
7060 sqlite3VdbeAddOp2(v, OP_OpenDup, pItem->iCursor, pCteUse->iCur); in sqlite3Select()
7061 VdbeComment((v, "%!S", pItem)); in sqlite3Select()
7064 }else if( (pPrior = isSelfJoinView(pTabList, pItem))!=0 ){ in sqlite3Select()
7070 sqlite3VdbeAddOp2(v, OP_OpenDup, pItem->iCursor, pPrior->iCursor); in sqlite3Select()
7079 pItem->regReturn = ++pParse->nMem; in sqlite3Select()
7081 pItem->addrFillSub = topAddr+1; in sqlite3Select()
7082 pItem->fg.isMaterialized = 1; in sqlite3Select()
7083 if( pItem->fg.isCorrelated==0 ){ in sqlite3Select()
7088 VdbeComment((v, "materialize %!S", pItem)); in sqlite3Select()
7090 VdbeNoopComment((v, "materialize %!S", pItem)); in sqlite3Select()
7092 sqlite3SelectDestInit(&dest, SRT_EphemTab, pItem->iCursor); in sqlite3Select()
7093 ExplainQueryPlan((pParse, 1, "MATERIALIZE %!S", pItem)); in sqlite3Select()
7094 dest.zAffSdst = sqlite3TableAffinityStr(db, pItem->pTab); in sqlite3Select()
7098 pItem->pTab->nRowLogEst = pSub->nSelectRow; in sqlite3Select()
7100 sqlite3VdbeAddOp2(v, OP_Return, pItem->regReturn, topAddr+1); in sqlite3Select()
7101 VdbeComment((v, "end %!S", pItem)); in sqlite3Select()
7104 if( pItem->fg.isCte && pItem->fg.isCorrelated==0 ){ in sqlite3Select()
7105 CteUse *pCteUse = pItem->u2.pCteUse; in sqlite3Select()
7106 pCteUse->addrM9e = pItem->addrFillSub; in sqlite3Select()
7107 pCteUse->regRtn = pItem->regReturn; in sqlite3Select()
7108 pCteUse->iCur = pItem->iCursor; in sqlite3Select()
7331 struct ExprList_item *pItem; /* For looping over expression in a list */ in sqlite3Select() local
7333 for(k=p->pEList->nExpr, pItem=p->pEList->a; k>0; k--, pItem++){ in sqlite3Select()
7334 pItem->u.x.iAlias = 0; in sqlite3Select()
7336 for(k=pGroupBy->nExpr, pItem=pGroupBy->a; k>0; k--, pItem++){ in sqlite3Select()
7337 pItem->u.x.iAlias = 0; in sqlite3Select()