Lines Matching refs:pFrom
5248 int sqlite3IndexedByLookup(Parse *pParse, SrcItem *pFrom){ in sqlite3IndexedByLookup() argument
5249 Table *pTab = pFrom->pTab; in sqlite3IndexedByLookup()
5250 char *zIndexedBy = pFrom->u1.zIndexedBy; in sqlite3IndexedByLookup()
5253 assert( pFrom->fg.isIndexedBy!=0 ); in sqlite3IndexedByLookup()
5264 assert( pFrom->fg.isCte==0 ); in sqlite3IndexedByLookup()
5265 pFrom->u2.pIBIndex = pIdx; in sqlite3IndexedByLookup()
5355 static int cannotBeFunction(Parse *pParse, SrcItem *pFrom){ in cannotBeFunction() argument
5356 if( pFrom->fg.isTabFunc ){ in cannotBeFunction()
5357 sqlite3ErrorMsg(pParse, "'%s' is not a function", pFrom->zName); in cannotBeFunction()
5447 SrcItem *pFrom /* The FROM clause term to check */ in resolveFromTermToCte() argument
5452 assert( pFrom->pTab==0 ); in resolveFromTermToCte()
5462 if( pFrom->zDatabase!=0 ){ in resolveFromTermToCte()
5467 if( pFrom->fg.notCte ){ in resolveFromTermToCte()
5475 pCte = searchWith(pParse->pWith, pFrom, &pWith); in resolveFromTermToCte()
5496 if( cannotBeFunction(pParse, pFrom) ) return 2; in resolveFromTermToCte()
5498 assert( pFrom->pTab==0 ); in resolveFromTermToCte()
5512 pFrom->pTab = pTab; in resolveFromTermToCte()
5518 pFrom->pSelect = sqlite3SelectDup(db, pCte->pSelect, 0); in resolveFromTermToCte()
5520 pFrom->pSelect->selFlags |= SF_CopyCte; in resolveFromTermToCte()
5521 assert( pFrom->pSelect ); in resolveFromTermToCte()
5522 if( pFrom->fg.isIndexedBy ){ in resolveFromTermToCte()
5523 sqlite3ErrorMsg(pParse, "no such index: \"%s\"", pFrom->u1.zIndexedBy); in resolveFromTermToCte()
5526 pFrom->fg.isCte = 1; in resolveFromTermToCte()
5527 pFrom->u2.pCteUse = pCteUse; in resolveFromTermToCte()
5534 pRecTerm = pSel = pFrom->pSelect; in resolveFromTermToCte()
5647 int sqlite3ExpandSubquery(Parse *pParse, SrcItem *pFrom){ in sqlite3ExpandSubquery() argument
5648 Select *pSel = pFrom->pSelect; in sqlite3ExpandSubquery()
5652 pFrom->pTab = pTab = sqlite3DbMallocZero(pParse->db, sizeof(Table)); in sqlite3ExpandSubquery()
5655 if( pFrom->zAlias ){ in sqlite3ExpandSubquery()
5656 pTab->zName = sqlite3DbStrDup(pParse->db, pFrom->zAlias); in sqlite3ExpandSubquery()
5658 pTab->zName = sqlite3MPrintf(pParse->db, "%!S", pFrom); in sqlite3ExpandSubquery()
5728 SrcItem *pFrom; in selectExpander() local
5768 for(i=0, pFrom=pTabList->a; i<pTabList->nSrc; i++, pFrom++){ in selectExpander()
5770 assert( pFrom->fg.isRecursive==0 || pFrom->pTab!=0 ); in selectExpander()
5771 if( pFrom->pTab ) continue; in selectExpander()
5772 assert( pFrom->fg.isRecursive==0 ); in selectExpander()
5773 if( pFrom->zName==0 ){ in selectExpander()
5775 Select *pSel = pFrom->pSelect; in selectExpander()
5778 assert( pFrom->pTab==0 ); in selectExpander()
5780 if( sqlite3ExpandSubquery(pParse, pFrom) ) return WRC_Abort; in selectExpander()
5783 }else if( (rc = resolveFromTermToCte(pParse, pWalker, pFrom))!=0 ){ in selectExpander()
5785 pTab = pFrom->pTab; in selectExpander()
5790 assert( pFrom->pTab==0 ); in selectExpander()
5791 pFrom->pTab = pTab = sqlite3LocateTableItem(pParse, 0, pFrom); in selectExpander()
5796 pFrom->pTab = 0; in selectExpander()
5800 if( !IsVirtual(pTab) && cannotBeFunction(pParse, pFrom) ){ in selectExpander()
5808 assert( pFrom->pSelect==0 ); in selectExpander()
5816 pFrom->pSelect = sqlite3SelectDup(db, pTab->u.view.pSelect, 0); in selectExpander()
5820 && pFrom->fg.fromDDL in selectExpander()
5832 sqlite3WalkSelect(pWalker, pFrom->pSelect); in selectExpander()
5840 if( pFrom->fg.isIndexedBy && sqlite3IndexedByLookup(pParse, pFrom) ){ in selectExpander()
5910 for(i=0, pFrom=pTabList->a; i<pTabList->nSrc; i++, pFrom++){ in selectExpander()
5911 Table *pTab = pFrom->pTab; /* Table for this data source */ in selectExpander()
5918 if( (zTabName = pFrom->zAlias)==0 ){ in selectExpander()
5922 assert( (int)pFrom->fg.isNestedFrom == IsNestedFrom(pFrom->pSelect) ); in selectExpander()
5923 if( pFrom->fg.isNestedFrom ){ in selectExpander()
5924 assert( pFrom->pSelect!=0 ); in selectExpander()
5925 pNestedFrom = pFrom->pSelect->pEList; in selectExpander()
5937 && pFrom[1].fg.isUsing in selectExpander()
5941 pUsing = pFrom[1].u3.pUsing; in selectExpander()
5987 if( pFrom->fg.isUsing in selectExpander()
5988 && sqlite3IdListIndex(pFrom->u3.pUsing, zName)>=0 in selectExpander()
5997 && ( (pFrom->fg.jointype & JT_LTORJ)==0 in selectExpander()
5999 || !inAnyUsingClause(zName,pFrom,pTabList->nSrc-i-1) in selectExpander()
6033 if( (pFrom->fg.isUsing in selectExpander()
6034 && sqlite3IdListIndex(pFrom->u3.pUsing, zName)>=0) in selectExpander()
6136 SrcItem *pFrom; in selectAddSubqueryTypeInfo() local
6143 for(i=0, pFrom=pTabList->a; i<pTabList->nSrc; i++, pFrom++){ in selectAddSubqueryTypeInfo()
6144 Table *pTab = pFrom->pTab; in selectAddSubqueryTypeInfo()
6148 Select *pSel = pFrom->pSelect; in selectAddSubqueryTypeInfo()