Branch Coverage

select.c
Criterion Covered Total %
branch 321 782 41.0


line true false branch
37 0 138 if( pNew==0 ){
45 0 138 if( pEList==0 ){
101 0 0 for(i=0; i<3 && apAll[i]; i++){
0 0 for(i=0; i<3 && apAll[i]; i++){
103 0 0 for(j=0; j
104 0 0 if( p->n==keywords[j].nChar
105 0 0 && sqliteStrNICmp(p->z, keywords[j].zKeyword, p->n)==0 ){
110 0 0 if( j>=sizeof(keywords)/sizeof(keywords[0]) ){
115 0 0 if(
116 0 0 (jointype & (JT_INNER|JT_OUTER))==(JT_INNER|JT_OUTER) ||
121 0 0 if( pB==0 ){ pB = &dummy; zSp1 = 0; }
122 0 0 if( pC==0 ){ pC = &dummy; zSp2 = 0; }
127 0 0 }else if( jointype & JT_RIGHT ){
141 0 0 for(i=0; inCol; i++){
142 0 0 if( sqliteStrICmp(pTab->aCol[i].zName, zCol)==0 ) return i;
177 0 0 if( *ppExpr ){
195 0 0 while( p ){
213 1 141 for(i=0; inSrc-1; i++){
217 1 0 if( pTerm->pTab==0 || pOther->pTab==0 ) continue;
0 1 if( pTerm->pTab==0 || pOther->pTab==0 ) continue;
222 0 1 if( pTerm->jointype & JT_NATURAL ){
224 0 0 if( pTerm->pOn || pTerm->pUsing ){
0 0 if( pTerm->pOn || pTerm->pUsing ){
230 0 0 for(j=0; jnCol; j++){
231 0 0 if( columnIndex(pOther->pTab, pTab->aCol[j].zName)>=0 ){
239 0 1 if( pTerm->pOn && pTerm->pUsing ){
0 0 if( pTerm->pOn && pTerm->pUsing ){
248 0 1 if( pTerm->pOn ){
250 0 0 if( p->pWhere==0 ){
265 0 1 if( pTerm->pUsing ){
270 0 0 for(j=0; jnId; j++){
288 1134 138 if( p==0 ) return;
318 0 5 if( zSortOrder==0 ) return;
319 11 5 for(i=0; inExpr; i++){
323 0 11 if( (order & SQLITE_SO_TYPEMASK)==SQLITE_SO_TEXT ){
325 0 11 }else if( (order & SQLITE_SO_TYPEMASK)==SQLITE_SO_NUM ){
327 11 0 }else if( pParse->db->file_format>=4 ){
332 10 1 if( (order & SQLITE_SO_DIRMASK)==SQLITE_SO_ASC ){
333 3 7 c = type==SQLITE_SO_TEXT ? 'A' : '+';
335 0 1 c = type==SQLITE_SO_TEXT ? 'D' : '-';
359 0 2 if( zType==0 ) return;
360 2 2 for(i=0; i
361 2 0 zType[i] = sqliteExprType(pEList->a[i].pExpr)==SQLITE_SO_NUM ? 'n' : 't';
377 0 135 if( p->iOffset>=0 ){
379 0 0 if( nPop>0 ) addr++;
381 0 0 if( nPop>0 ){
386 0 135 if( p->iLimit>=0 ){
417 0 135 if( v==0 ) return 0;
423 0 135 hasDistinct = distinct>=0 && pEList && pEList->nExpr>0;
0 0 hasDistinct = distinct>=0 && pEList && pEList->nExpr>0;
0 0 hasDistinct = distinct>=0 && pEList && pEList->nExpr>0;
424 130 5 if( pOrderBy==0 && !hasDistinct ){
130 0 if( pOrderBy==0 && !hasDistinct ){
430 0 135 if( nColumn>0 ){
431 0 0 for(i=0; i
436 431 135 for(i=0; inExpr; i++){
445 0 135 if( hasDistinct ){
450 0 0 if( pParse->db->file_format>=4 ) sqliteAddKeyType(v, pEList);
456 0 0 if( pOrderBy==0 ){
477 0 12 if( pOrderBy ){
510 0 0 if( pOrderBy ){
526 0 0 if( pOrderBy ){
539 5 118 if( pOrderBy ){
553 0 0 if( pOrderBy ){
592 0 5 if( eDest==SRT_Sorter ) return;
625 0 0 for(i=0; i
666 395 123 for(i=0; inExpr; i++){
669 0 395 if( p==0 ) continue;
670 299 96 if( p->op==TK_COLUMN && pTabList ){
299 0 if( p->op==TK_COLUMN && pTabList ){
673 300 0 for(j=0; jnSrc && pTabList->a[j].iCursor!=p->iTable; j++){}
1 299 for(j=0; jnSrc && pTabList->a[j].iCursor!=p->iTable; j++){}
676 0 299 if( iCol<0 ) iCol = pTab->iPKey;
678 0 299 if( iCol<0 ){
684 9 87 if( sqliteExprType(p)==SQLITE_SO_TEXT ){
710 123 0 if( pParse->colNamesSet || v==0 || sqlite_malloc_failed ) return;
123 0 if( pParse->colNamesSet || v==0 || sqlite_malloc_failed ) return;
0 123 if( pParse->colNamesSet || v==0 || sqlite_malloc_failed ) return;
714 395 123 for(i=0; inExpr; i++){
718 0 395 if( p==0 ) continue;
719 3 392 if( pEList->a[i].zName ){
724 306 86 if( p->op==TK_COLUMN && pTabList ){
306 0 if( p->op==TK_COLUMN && pTabList ){
728 306 0 for(j=0; jnSrc && pTabList->a[j].iCursor!=p->iTable; j++){}
0 306 for(j=0; jnSrc && pTabList->a[j].iCursor!=p->iTable; j++){}
731 0 306 if( iCol<0 ) iCol = pTab->iPKey;
733 0 306 if( iCol<0 ){
738 306 0 if( !shortNames && !fullNames && p->span.z && p->span.z[0] ){
306 0 if( !shortNames && !fullNames && p->span.z && p->span.z[0] ){
306 0 if( !shortNames && !fullNames && p->span.z && p->span.z[0] ){
306 0 if( !shortNames && !fullNames && p->span.z && p->span.z[0] ){
741 0 0 }else if( fullNames || (!shortNames && pTabList->nSrc>1) ){
0 0 }else if( fullNames || (!shortNames && pTabList->nSrc>1) ){
0 0 }else if( fullNames || (!shortNames && pTabList->nSrc>1) ){
746 0 0 if( fullNames || zTab==0 ) zTab = pTab->zName;
0 0 if( fullNames || zTab==0 ) zTab = pTab->zName;
752 86 0 }else if( p->span.z && p->span.z[0] ){
86 0 }else if( p->span.z && p->span.z[0] ){
793 0 6 if( fillInColumnList(pParse, pSelect) ){
797 0 6 if( pTab==0 ){
800 6 0 pTab->zName = zTabName ? sqliteStrDup(zTabName) : 0;
805 27 6 for(i=0; inCol; i++){
807 24 3 if( pEList->a[i].zName ){
809 0 3 }else if( (p=pEList->a[i].pExpr)->op==TK_DOT
810 0 0 && (pR=p->pRight)!=0 && pR->token.z && pR->token.z[0] ){
0 0 && (pR=p->pRight)!=0 && pR->token.z && pR->token.z[0] ){
0 0 && (pR=p->pRight)!=0 && pR->token.z && pR->token.z[0] ){
813 0 0 for(j=cnt=0; j
814 0 0 if( sqliteStrICmp(aCol[j].zName, aCol[i].zName)==0 ){
823 3 0 }else if( p->span.z && p->span.z[0] ){
3 0 }else if( p->span.z && p->span.z[0] ){
864 144 0 if( p==0 || p->pSrc==0 ) return 1;
0 144 if( p==0 || p->pSrc==0 ) return 1;
870 119 141 for(i=0; inSrc; i++){
871 3 116 if( pTabList->a[i].pTab ){
875 6 110 if( pTabList->a[i].zName==0 ){
878 6 0 if( pTabList->a[i].zAlias==0 ){
887 0 6 if( pTab==0 ){
899 0 110 if( pTab==0 ){
902 0 110 if( pTab->pSelect ){
904 0 0 if( sqliteViewGetColumnNames(pParse, pTab) ){
912 0 0 if( pTabList->a[i].pSelect==0 ){
921 0 141 if( sqliteProcessJoin(pParse, p) ) return 1;
933 411 113 for(k=0; knExpr; k++){
935 27 384 if( pE->op==TK_ALL ) break;
936 4 380 if( pE->op==TK_DOT && pE->pRight && pE->pRight->op==TK_ALL
4 0 if( pE->op==TK_DOT && pE->pRight && pE->pRight->op==TK_ALL
1 3 if( pE->op==TK_DOT && pE->pRight && pE->pRight->op==TK_ALL
937 1 0 && pE->pLeft && pE->pLeft->op==TK_ID ) break;
1 0 && pE->pLeft && pE->pLeft->op==TK_ID ) break;
940 28 113 if( knExpr ){
948 29 28 for(k=0; knExpr; k++){
950 2 27 if( pE->op!=TK_ALL &&
2 0 if( pE->op!=TK_ALL &&
951 2 0 (pE->op!=TK_DOT || pE->pRight==0 || pE->pRight->op!=TK_ALL) ){
1 1 (pE->op!=TK_DOT || pE->pRight==0 || pE->pRight->op!=TK_ALL) ){
963 1 27 if( pE->op==TK_DOT && pE->pLeft ){
1 0 if( pE->op==TK_DOT && pE->pLeft ){
968 28 28 for(i=0; inSrc; i++){
971 3 25 if( zTabName==0 || zTabName[0]==0 ){
0 3 if( zTabName==0 || zTabName[0]==0 ){
974 1 27 if( zTName && (zTabName==0 || zTabName[0]==0 ||
1 0 if( zTName && (zTabName==0 || zTabName[0]==0 ||
979 75 28 for(j=0; jnCol; j++){
983 0 75 if( i>0 && (pTabList->a[i-1].jointype & JT_NATURAL)!=0 &&
989 0 75 if( i>0 && sqliteIdListIndex(pTabList->a[i-1].pUsing, zName)>=0 ){
0 0 if( i>0 && sqliteIdListIndex(pTabList->a[i-1].pUsing, zName)>=0 ){
995 0 75 if( pRight==0 ) break;
999 75 0 if( zTabName && pTabList->nSrc>1 ){
0 75 if( zTabName && pTabList->nSrc>1 ){
1002 0 0 if( pExpr==0 ) break;
1019 0 28 if( !tableSeen ){
1020 0 0 if( zTName ){
1053 0 0 if( p==0 ) return;
1054 0 0 for(i=0; inSrc; i++){
1055 0 0 if( (pTab = pSrc->a[i].pTab)!=0 ){
1056 0 0 if( pTab->isTransient ){
1060 0 0 if( pSrc->a[i].pSelect ){
1098 0 0 if( pSelect==0 || pOrderBy==0 ) return 1;
0 0 if( pSelect==0 || pOrderBy==0 ) return 1;
1099 0 0 if( mustComplete ){
1100 0 0 for(i=0; inExpr; i++){ pOrderBy->a[i].done = 0; }
1102 0 0 if( fillInColumnList(pParse, pSelect) ){
1105 0 0 if( pSelect->pPrior ){
1106 0 0 if( matchOrderbyToColumn(pParse, pSelect->pPrior, pOrderBy, iTable, 0) ){
1111 0 0 for(i=0; inExpr; i++){
1114 0 0 if( pOrderBy->a[i].done ) continue;
1115 0 0 if( sqliteExprIsInteger(pE, &iCol) ){
1116 0 0 if( iCol<=0 || iCol>pEList->nExpr ){
0 0 if( iCol<=0 || iCol>pEList->nExpr ){
1123 0 0 if( !mustComplete ) continue;
1126 0 0 for(j=0; iCol<0 && jnExpr; j++){
0 0 for(j=0; iCol<0 && jnExpr; j++){
1127 0 0 if( pEList->a[j].zName && (pE->op==TK_ID || pE->op==TK_STRING) ){
0 0 if( pEList->a[j].zName && (pE->op==TK_ID || pE->op==TK_STRING) ){
0 0 if( pEList->a[j].zName && (pE->op==TK_ID || pE->op==TK_STRING) ){
1133 0 0 if( sqliteStrICmp(zName, zLabel)==0 ){
1138 0 0 if( iCol<0 && sqliteExprCompare(pE, pEList->a[j].pExpr) ){
0 0 if( iCol<0 && sqliteExprCompare(pE, pEList->a[j].pExpr) ){
1142 0 0 if( iCol>=0 ){
1148 0 0 if( iCol<0 && mustComplete ){
0 0 if( iCol<0 && mustComplete ){
1164 348 745 if( v==0 ){
1200 0 0 if( pOrderBy==0 ) return;
1201 0 0 if( p==0 ){
1202 0 0 for(i=0; inExpr; i++){
1209 0 0 for(i=0; inExpr; i++){
1211 0 0 if( pE->dataType==SQLITE_SO_NUM ) continue;
1213 0 0 if( pEList->nExpr>pE->iColumn ){
1247 0 135 if( p->nLimit>=0 ){
1250 0 0 if( v==0 ) return;
1255 0 135 if( p->nOffset>0 ){
1258 0 0 if( v==0 ) return;
1303 9 0 if( p==0 || p->pPrior==0 ) return 1;
0 9 if( p==0 || p->pPrior==0 ) return 1;
1305 0 9 if( pPrior->pOrderBy ){
1310 9 0 if( pPrior->nLimit>=0 || pPrior->nOffset>0 ){
0 9 if( pPrior->nLimit>=0 || pPrior->nOffset>0 ){
1319 0 9 if( v==0 ) return 1;
1323 3 6 if( eDest==SRT_TempTable ){
1332 9 0 if( p->pOrderBy==0 ){
1336 0 9 if( rc ) return rc;
1344 0 9 if( rc ) return rc;
1357 0 0 priorOp = p->op==TK_ALL ? SRT_Table : SRT_Union;
1358 0 0 if( eDest==priorOp && p->pOrderBy==0 && p->nLimit<0 && p->nOffset==0 ){
0 0 if( eDest==priorOp && p->pOrderBy==0 && p->nLimit<0 && p->nOffset==0 ){
0 0 if( eDest==priorOp && p->pOrderBy==0 && p->nLimit<0 && p->nOffset==0 ){
0 0 if( eDest==priorOp && p->pOrderBy==0 && p->nLimit<0 && p->nOffset==0 ){
1368 0 0 if( p->pOrderBy
1369 0 0 && matchOrderbyToColumn(pParse, p, p->pOrderBy, unionTab, 1) ){
1372 0 0 if( p->op!=TK_ALL ){
1383 0 0 if( rc ) return rc;
1404 0 0 if( rc ) return rc;
1409 0 0 if( eDest!=priorOp || unionTab!=iParm ){
0 0 if( eDest!=priorOp || unionTab!=iParm ){
1412 0 0 if( eDest==SRT_Callback ){
1425 0 0 if( rc ) return 1;
1430 0 0 if( p->pOrderBy ){
1447 0 0 if( p->pOrderBy && matchOrderbyToColumn(pParse,p,p->pOrderBy,tab1,1) ){
0 0 if( p->pOrderBy && matchOrderbyToColumn(pParse,p,p->pOrderBy,tab1,1) ){
1456 0 0 if( rc ) return rc;
1471 0 0 if( rc ) return rc;
1477 0 0 if( eDest==SRT_Callback ){
1491 0 0 if( rc ) return 1;
1497 0 0 if( p->pOrderBy ){
1504 0 9 if( p->pEList->nExpr!=pPrior->pEList->nExpr ){
1527 12 36 if( pExpr==0 ) return;
1528 30 6 if( pExpr->op==TK_COLUMN && pExpr->iTable==iTable ){
30 0 if( pExpr->op==TK_COLUMN && pExpr->iTable==iTable ){
1529 0 30 if( pExpr->iColumn<0 ){
1560 3 9 if( pList==0 ) return;
1561 33 9 for(i=0; inExpr; i++){
1652 0 3 if( p==0 ) return 0;
1657 0 3 if( isAgg && subqueryIsAgg ) return 0;
0 0 if( isAgg && subqueryIsAgg ) return 0;
1658 0 3 if( subqueryIsAgg && pSrc->nSrc>1 ) return 0;
0 0 if( subqueryIsAgg && pSrc->nSrc>1 ) return 0;
1661 0 3 if( pSubSrc->nSrc==0 ) return 0;
1662 3 0 if( (pSub->isDistinct || pSub->nLimit>=0) && (pSrc->nSrc>1 || isAgg) ){
0 3 if( (pSub->isDistinct || pSub->nLimit>=0) && (pSrc->nSrc>1 || isAgg) ){
0 0 if( (pSub->isDistinct || pSub->nLimit>=0) && (pSrc->nSrc>1 || isAgg) ){
0 0 if( (pSub->isDistinct || pSub->nLimit>=0) && (pSrc->nSrc>1 || isAgg) ){
1665 3 0 if( (p->isDistinct || p->nLimit>=0) && subqueryIsAgg ) return 0;
0 3 if( (p->isDistinct || p->nLimit>=0) && subqueryIsAgg ) return 0;
0 0 if( (p->isDistinct || p->nLimit>=0) && subqueryIsAgg ) return 0;
1666 3 0 if( p->pOrderBy && pSub->pOrderBy ) return 0;
0 3 if( p->pOrderBy && pSub->pOrderBy ) return 0;
1680 0 3 if( pSubSrc->nSrc>1 && iFrom>0 && (pSrc->a[iFrom-1].jointype & JT_OUTER)!=0 ){
0 0 if( pSubSrc->nSrc>1 && iFrom>0 && (pSrc->a[iFrom-1].jointype & JT_OUTER)!=0 ){
0 0 if( pSubSrc->nSrc>1 && iFrom>0 && (pSrc->a[iFrom-1].jointype & JT_OUTER)!=0 ){
1697 0 3 if( iFrom>0 && (pSrc->a[iFrom-1].jointype & JT_OUTER)!=0
0 0 if( iFrom>0 && (pSrc->a[iFrom-1].jointype & JT_OUTER)!=0
1698 0 0 && pSub->pWhere!=0 ){
1719 3 0 if( pSrc->a[iFrom].pTab && pSrc->a[iFrom].pTab->isTransient ){
3 0 if( pSrc->a[iFrom].pTab && pSrc->a[iFrom].pTab->isTransient ){
1725 0 3 if( nSubSrc>1 ){
1727 0 0 for(i=1; i
1731 0 0 for(i=pSrc->nSrc-1; i-extra>=iFrom; i--){
1735 3 3 for(i=0; i
1756 18 3 for(i=0; inExpr; i++){
1758 18 0 if( pList->a[i].zName==0 && (pExpr = pList->a[i].pExpr)->span.z!=0 ){
18 0 if( pList->a[i].zName==0 && (pExpr = pList->a[i].pExpr)->span.z!=0 ){
1762 0 3 if( isAgg ){
1766 0 3 if( pSub->pOrderBy ){
1770 3 0 }else if( p->pOrderBy ){
1773 0 3 if( pSub->pWhere ){
1778 0 3 if( subqueryIsAgg ){
1783 0 0 if( pSub->pHaving ){
1785 0 0 if( p->pHaving ){
1793 0 3 }else if( p->pWhere==0 ){
1797 0 3 if( pWhere ){
1805 3 0 p->isDistinct = p->isDistinct || pSub->isDistinct;
0 3 p->isDistinct = p->isDistinct || pSub->isDistinct;
1810 0 3 if( pSub->nLimit>=0 ){
1811 0 0 if( p->nLimit<0 ){
1813 0 0 }else if( p->nLimit+p->nOffset > pSub->nLimit+pSub->nOffset ){
1863 136 2 if( p->pGroupBy || p->pHaving || p->pWhere ) return 0;
136 0 if( p->pGroupBy || p->pHaving || p->pWhere ) return 0;
26 110 if( p->pGroupBy || p->pHaving || p->pWhere ) return 0;
1865 23 87 if( pSrc->nSrc!=1 ) return 0;
1867 73 14 if( pEList->nExpr!=1 ) return 0;
1869 1 13 if( pExpr->op!=TK_AGG_FUNCTION ) return 0;
1871 13 0 if( pList==0 || pList->nExpr!=1 ) return 0;
9 4 if( pList==0 || pList->nExpr!=1 ) return 0;
1872 4 0 if( pExpr->token.n!=3 ) return 0;
1873 0 0 if( sqliteStrNICmp(pExpr->token.z,"min",3)==0 ){
1875 0 0 }else if( sqliteStrNICmp(pExpr->token.z,"max",3)==0 ){
1881 0 0 if( pExpr->op!=TK_COLUMN ) return 0;
1891 0 0 if( iCol<0 ){
1894 0 0 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
1896 0 0 if( pIdx->aiColumn[0]==iCol ) break;
1898 0 0 if( pIdx==0 ) return 0;
1906 0 0 if( v==0 ) return 0;
1907 0 0 if( eDest==SRT_Callback ){
1913 0 0 if( eDest==SRT_TempTable ){
1925 0 0 if( pSrc->a[0].pSelect==0 ){
1930 0 0 if( pIdx==0 ){
1935 0 0 if( seekOp==OP_Rewind ){
2032 147 0 if( sqlite_malloc_failed || pParse->nErr || p==0 ) return 1;
147 0 if( sqlite_malloc_failed || pParse->nErr || p==0 ) return 1;
0 147 if( sqlite_malloc_failed || pParse->nErr || p==0 ) return 1;
2033 0 147 if( sqliteAuthCheck(pParse, SQLITE_SELECT, 0, 0, 0) ) return 1;
2037 9 138 if( p->pPrior ){
2058 0 138 if( pParse->nErr>0 ) goto select_end;
2064 0 138 if( fillInColumnList(pParse, p) ){
2069 0 138 if( pEList==0 ) goto select_end;
2074 138 0 if( (eDest==SRT_Mem || eDest==SRT_Set) && pEList->nExpr>1 ){
0 138 if( (eDest==SRT_Mem || eDest==SRT_Set) && pEList->nExpr>1 ){
0 0 if( (eDest==SRT_Mem || eDest==SRT_Set) && pEList->nExpr>1 ){
2082 0 138 switch( eDest ){
2097 449 138 for(i=0; inExpr; i++){
2098 0 449 if( sqliteExprResolveIds(pParse, pTabList, 0, pEList->a[i].pExpr) ){
2101 0 449 if( sqliteExprCheck(pParse, pEList->a[i].pExpr, 1, &isAgg) ){
2105 27 111 if( pWhere ){
2106 0 27 if( sqliteExprResolveIds(pParse, pTabList, pEList, pWhere) ){
2109 0 27 if( sqliteExprCheck(pParse, pWhere, 0, 0) ){
2113 0 138 if( pHaving ){
2114 0 0 if( pGroupBy==0 ){
2118 0 0 if( sqliteExprResolveIds(pParse, pTabList, pEList, pHaving) ){
2121 0 0 if( sqliteExprCheck(pParse, pHaving, 1, &isAgg) ){
2125 5 133 if( pOrderBy ){
2126 11 5 for(i=0; inExpr; i++){
2129 0 11 if( sqliteExprIsInteger(pE, &iCol) && iCol>0 && iCol<=pEList->nExpr ){
0 0 if( sqliteExprIsInteger(pE, &iCol) && iCol>0 && iCol<=pEList->nExpr ){
0 0 if( sqliteExprIsInteger(pE, &iCol) && iCol>0 && iCol<=pEList->nExpr ){
2133 0 11 if( sqliteExprResolveIds(pParse, pTabList, pEList, pE) ){
2136 0 11 if( sqliteExprCheck(pParse, pE, isAgg, 0) ){
2139 0 11 if( sqliteExprIsConstant(pE) ){
2140 0 0 if( sqliteExprIsInteger(pE, &iCol)==0 ){
2144 0 0 }else if( iCol<=0 || iCol>pEList->nExpr ){
0 0 }else if( iCol<=0 || iCol>pEList->nExpr ){
2153 2 136 if( pGroupBy ){
2154 2 2 for(i=0; inExpr; i++){
2157 0 2 if( sqliteExprIsInteger(pE, &iCol) && iCol>0 && iCol<=pEList->nExpr ){
0 0 if( sqliteExprIsInteger(pE, &iCol) && iCol>0 && iCol<=pEList->nExpr ){
0 0 if( sqliteExprIsInteger(pE, &iCol) && iCol>0 && iCol<=pEList->nExpr ){
2161 0 2 if( sqliteExprResolveIds(pParse, pTabList, pEList, pE) ){
2164 0 2 if( sqliteExprCheck(pParse, pE, isAgg, 0) ){
2167 0 2 if( sqliteExprIsConstant(pE) ){
2168 0 0 if( sqliteExprIsInteger(pE, &iCol)==0 ){
2172 0 0 }else if( iCol<=0 || iCol>pEList->nExpr ){
0 0 }else if( iCol<=0 || iCol>pEList->nExpr ){
2185 0 138 if( v==0 ) goto select_end;
2190 123 15 if( eDest==SRT_Callback ){
2196 116 138 for(i=0; inSrc; i++){
2200 110 6 if( pTabList->a[i].pSelect==0 ) continue;
2201 0 6 if( pTabList->a[i].zName!=0 ){
2210 0 6 if( needRestoreContext ){
2215 6 0 if( eDest!=SRT_Union && eDest!=SRT_Except && eDest!=SRT_Discard ){
6 0 if( eDest!=SRT_Union && eDest!=SRT_Except && eDest!=SRT_Discard ){
6 0 if( eDest!=SRT_Union && eDest!=SRT_Except && eDest!=SRT_Discard ){
2226 0 138 if( simpleMinMaxQuery(pParse, p, eDest, iParm) ){
2234 3 135 if( pParent && pParentAgg &&
2236 0 3 if( isAgg ) *pParentAgg = 1;
2253 123 12 if( eDest==SRT_Callback ){
2259 0 135 if( eDest==SRT_TempTable ){
2266 120 15 if( isAgg || pGroupBy ){
0 120 if( isAgg || pGroupBy ){
2269 17 15 for(i=0; inExpr; i++){
2270 0 17 if( sqliteExprAnalyzeAggregates(pParse, pEList->a[i].pExpr) ){
2274 2 13 if( pGroupBy ){
2275 2 2 for(i=0; inExpr; i++){
2276 0 2 if( sqliteExprAnalyzeAggregates(pParse, pGroupBy->a[i].pExpr) ){
2281 0 15 if( pHaving && sqliteExprAnalyzeAggregates(pParse, pHaving) ){
0 0 if( pHaving && sqliteExprAnalyzeAggregates(pParse, pHaving) ){
2284 1 14 if( pOrderBy ){
2285 1 1 for(i=0; inExpr; i++){
2286 0 1 if( sqliteExprAnalyzeAggregates(pParse, pOrderBy->a[i].pExpr) ){
2295 15 120 if( isAgg ){
2297 18 15 for(i=0; inAgg; i++){
2299 15 3 if( (pFunc = pParse->aAgg[i].pFunc)!=0 && pFunc->xFinalize!=0 ){
15 0 if( (pFunc = pParse->aAgg[i].pFunc)!=0 && pFunc->xFinalize!=0 ){
2303 13 2 if( pGroupBy==0 ){
2311 0 135 if( eDest==SRT_Mem ){
2318 0 135 if( isDistinct ){
2327 133 2 pWInfo = sqliteWhereBegin(pParse, pTabList, pWhere, 0,
2329 0 135 if( pWInfo==0 ) goto select_end;
2334 120 15 if( !isAgg ){
2335 0 120 if( selectInnerLoop(pParse, p, pEList, 0, 0, pOrderBy, distinct, eDest,
2346 2 13 if( pGroupBy ){
2348 2 2 for(i=0; inExpr; i++){
2352 2 0 if( pParse->db->file_format>=4 ) sqliteAddKeyType(v, pGroupBy);
2355 5 2 for(i=0, pAgg=pParse->aAgg; inAgg; i++, pAgg++){
2356 2 3 if( pAgg->isAgg ) continue;
2362 18 15 for(i=0, pAgg=pParse->aAgg; inAgg; i++, pAgg++){
2366 3 15 if( !pAgg->isAgg ) continue;
2386 15 120 if( isAgg ){
2391 0 15 if( pHaving ){
2394 0 15 if( selectInnerLoop(pParse, p, pEList, 0, 0, pOrderBy, distinct, eDest,
2407 5 130 if( pOrderBy ){
2416 0 135 if( pParent ){