Lines Matching refs:pSub
4234 Select *pSub; /* The inner query or "subquery" */ in flattenSubquery() local
4257 pSub = pSubitem->pSelect; in flattenSubquery()
4258 assert( pSub!=0 ); in flattenSubquery()
4261 if( p->pWin || pSub->pWin ) return 0; /* Restriction (25) */ in flattenSubquery()
4264 pSubSrc = pSub->pSrc; in flattenSubquery()
4271 if( pSub->pLimit && p->pLimit ) return 0; /* Restriction (13) */ in flattenSubquery()
4272 if( pSub->pLimit && pSub->pLimit->pRight ) return 0; /* Restriction (14) */ in flattenSubquery()
4273 if( (p->selFlags & SF_Compound)!=0 && pSub->pLimit ){ in flattenSubquery()
4277 if( pSub->selFlags & SF_Distinct ) return 0; /* Restriction (4) */ in flattenSubquery()
4278 if( pSub->pLimit && (pSrc->nSrc>1 || isAgg) ){ in flattenSubquery()
4281 if( p->pOrderBy && pSub->pOrderBy ){ in flattenSubquery()
4284 if( isAgg && pSub->pOrderBy ) return 0; /* Restriction (16) */ in flattenSubquery()
4285 if( pSub->pLimit && p->pWhere ) return 0; /* Restriction (19) */ in flattenSubquery()
4286 if( pSub->pLimit && (p->selFlags & SF_Distinct)!=0 ){ in flattenSubquery()
4289 if( pSub->selFlags & (SF_Recursive) ){ in flattenSubquery()
4332 if( pSub->pPrior ){ in flattenSubquery()
4334 if( pSub->pOrderBy ){ in flattenSubquery()
4340 for(pSub1=pSub; pSub1; pSub1=pSub1->pPrior){ in flattenSubquery()
4343 assert( pSub->pSrc!=0 ); in flattenSubquery()
4344 assert( (pSub->selFlags & SF_Recursive)==0 ); in flattenSubquery()
4345 assert( pSub->pEList->nExpr==pSub1->pEList->nExpr ); in flattenSubquery()
4375 for(ii=0; ii<pSub->pEList->nExpr; ii++){ in flattenSubquery()
4377 assert( pSub->pEList->a[ii].pExpr!=0 ); in flattenSubquery()
4378 aff = sqlite3ExprAffinity(pSub->pEList->a[ii].pExpr); in flattenSubquery()
4379 for(pSub1=pSub->pPrior; pSub1; pSub1=pSub1->pPrior){ in flattenSubquery()
4399 pSub->selId, pSub, iFrom)); in flattenSubquery()
4451 for(pSub=pSub->pPrior; pSub; pSub=pSub->pPrior){ in flattenSubquery()
4522 pSub = pSub1; in flattenSubquery()
4523 for(pParent=p; pParent; pParent=pParent->pPrior, pSub=pSub->pPrior){ in flattenSubquery()
4527 assert( pSub!=0 ); in flattenSubquery()
4528 pSubSrc = pSub->pSrc; /* FROM clause of subquery */ in flattenSubquery()
4584 if( pSub->pOrderBy && (pParent->selFlags & SF_NoopOrderBy)==0 ){ in flattenSubquery()
4595 ExprList *pOrderBy = pSub->pOrderBy; in flattenSubquery()
4601 pSub->pOrderBy = 0; in flattenSubquery()
4603 pWhere = pSub->pWhere; in flattenSubquery()
4604 pSub->pWhere = 0; in flattenSubquery()
4621 x.pEList = pSub->pEList; in flattenSubquery()
4622 x.pCList = findLeftmostExprlist(pSub); in flattenSubquery()
4628 pParent->selFlags |= pSub->selFlags & SF_Compound; in flattenSubquery()
4629 assert( (pSub->selFlags & SF_Distinct)==0 ); /* restriction (17b) */ in flattenSubquery()
4637 if( pSub->pLimit ){ in flattenSubquery()
4638 pParent->pLimit = pSub->pLimit; in flattenSubquery()
4639 pSub->pLimit = 0; in flattenSubquery()
6541 Select *pSub, *pPrior; in countOfViewOptimization() local
6556 pSub = p->pSrc->a[0].pSelect; in countOfViewOptimization()
6557 if( pSub==0 ) return 0; /* The FROM is a subquery */ in countOfViewOptimization()
6558 if( pSub->pPrior==0 ) return 0; /* Must be a compound ry */ in countOfViewOptimization()
6560 if( pSub->op!=TK_ALL && pSub->pPrior ) return 0; /* Must be UNION ALL */ in countOfViewOptimization()
6561 if( pSub->pWhere ) return 0; /* No WHERE clause */ in countOfViewOptimization()
6562 if( pSub->pLimit ) return 0; /* No LIMIT clause */ in countOfViewOptimization()
6563 if( pSub->selFlags & SF_Aggregate ) return 0; /* Not an aggregate */ in countOfViewOptimization()
6564 pSub = pSub->pPrior; /* Repeat over compound */ in countOfViewOptimization()
6565 }while( pSub ); in countOfViewOptimization()
6572 pSub = p->pSrc->a[0].pSelect; in countOfViewOptimization()
6576 while( pSub ){ in countOfViewOptimization()
6578 pPrior = pSub->pPrior; in countOfViewOptimization()
6579 pSub->pPrior = 0; in countOfViewOptimization()
6580 pSub->pNext = 0; in countOfViewOptimization()
6581 pSub->selFlags |= SF_Aggregate; in countOfViewOptimization()
6582 pSub->selFlags &= ~SF_Compound; in countOfViewOptimization()
6583 pSub->nSelectRow = 0; in countOfViewOptimization()
6584 sqlite3ExprListDelete(db, pSub->pEList); in countOfViewOptimization()
6586 pSub->pEList = sqlite3ExprListAppend(pParse, 0, pTerm); in countOfViewOptimization()
6588 sqlite3PExprAddSelect(pParse, pTerm, pSub); in countOfViewOptimization()
6594 pSub = pPrior; in countOfViewOptimization()
6778 Select *pSub = pItem->pSelect; in sqlite3Select() local
6802 if( pSub==0 ) continue; in sqlite3Select()
6806 if( pTab->nCol!=pSub->pEList->nExpr ){ in sqlite3Select()
6808 pTab->nCol, pTab->zName, pSub->pEList->nExpr); in sqlite3Select()
6819 if( (pSub->selFlags & SF_Aggregate)!=0 ) continue; in sqlite3Select()
6820 assert( pSub->pGroupBy==0 ); in sqlite3Select()
6842 if( pSub->pOrderBy!=0 in sqlite3Select()
6844 && pSub->pLimit==0 /* Condition (1) */ in sqlite3Select()
6845 && (pSub->selFlags & SF_OrderByReqd)==0 /* Condition (2) */ in sqlite3Select()
6853 pSub->pOrderBy); in sqlite3Select()
6854 pSub->pOrderBy = 0; in sqlite3Select()
6875 if( pSub->pOrderBy!=0 in sqlite3Select()
6952 Select *pSub; in sqlite3Select() local
6980 pSub = pItem->pSelect; in sqlite3Select()
6981 if( pSub==0 ) continue; in sqlite3Select()
7001 && pushDownWhereTerms(pParse, pSub, p->pWhere, pItem) in sqlite3Select()
7006 ("After WHERE-clause push-down into subquery %d:\n", pSub->selId)); in sqlite3Select()
7045 sqlite3Select(pParse, pSub, &dest); in sqlite3Select()
7046 pItem->pTab->nRowLogEst = pSub->nSelectRow; in sqlite3Select()
7063 pSub->nSelectRow = pCteUse->nRowEst; in sqlite3Select()
7071 pSub->nSelectRow = pPrior->pSelect->nSelectRow; in sqlite3Select()
7095 sqlite3Select(pParse, pSub, &dest); in sqlite3Select()
7098 pItem->pTab->nRowLogEst = pSub->nSelectRow; in sqlite3Select()
7109 pCteUse->nRowEst = pSub->nSelectRow; in sqlite3Select()