Lines Matching refs:pSort
129427 SortCtx *pSort,
129432 int nOBSat = pSort->nOBSat;
129435 if( pSort->pDeferredRowLoad ){
129436 innerLoopLoadRow(pParse, pSelect, pSort->pDeferredRowLoad);
129448 SortCtx *pSort, /* Information about the ORDER BY clause */
129456 int bSeq = ((pSort->sortFlags & SORTFLAG_UseSorter)==0);
129457 int nExpr = pSort->pOrderBy->nExpr; /* No. of ORDER BY terms */
129461 int nOBSat = pSort->nOBSat; /* ORDER BY terms to skip */
129492 pSort->labelDone = sqlite3VdbeMakeLabel(pParse);
129493 sqlite3ExprCodeExprList(pParse, pSort->pOrderBy, regBase, regOrigData,
129496 sqlite3VdbeAddOp2(v, OP_Sequence, pSort->iECursor, regBase+nExpr);
129509 regRecord = makeSorterRecord(pParse, pSort, pSelect, regBase, nBase);
129511 pParse->nMem += pSort->nOBSat;
129512 nKey = nExpr - pSort->nOBSat + bSeq;
129516 addrFirst = sqlite3VdbeAddOp1(v, OP_SequenceTest, pSort->iECursor);
129519 sqlite3VdbeAddOp3(v, OP_Compare, regPrevKey, regBase, pSort->nOBSat);
129520 pOp = sqlite3VdbeGetOp(v, pSort->addrSortIndex);
129527 pOp->p4.pKeyInfo = sqlite3KeyInfoFromExprList(pParse,pSort->pOrderBy,nOBSat,
129532 pSort->labelBkOut = sqlite3VdbeMakeLabel(pParse);
129533 pSort->regReturn = ++pParse->nMem;
129534 sqlite3VdbeAddOp2(v, OP_Gosub, pSort->regReturn, pSort->labelBkOut);
129535 sqlite3VdbeAddOp1(v, OP_ResetSorter, pSort->iECursor);
129537 sqlite3VdbeAddOp2(v, OP_IfNot, iLimit, pSort->labelDone);
129541 sqlite3ExprCodeMove(pParse, regBase, regPrevKey, pSort->nOBSat);
129560 int iCsr = pSort->iECursor;
129570 regRecord = makeSorterRecord(pParse, pSort, pSelect, regBase, nBase);
129572 if( pSort->sortFlags & SORTFLAG_UseSorter ){
129577 sqlite3VdbeAddOp4Int(v, op, pSort->iECursor, regRecord,
129581 pSort->labelOBLopt ? pSort->labelOBLopt : sqlite3VdbeCurrentAddr(v));
129654 SortCtx *pSort, /* Sorter context */
129671 if( pSort->aDefer[j].iCsr==pExpr->iTable ) break;
129674 if( nDefer==ArraySize(pSort->aDefer) ){
129693 pSort->aDefer[nDefer].pTab = pExpr->y.pTab;
129694 pSort->aDefer[nDefer].iCsr = pExpr->iTable;
129695 pSort->aDefer[nDefer].nKey = nKey;
129703 pSort->nDefer = (u8)nDefer;
129721 SortCtx *pSort, /* If not NULL, info on how to process ORDER BY */
129747 if( pSort && pSort->pOrderBy==0 ) pSort = 0;
129748 if( pSort==0 && !hasDistinct ){
129758 if( pSort ){
129759 nPrefixReg = pSort->pOrderBy->nExpr;
129760 if( !(pSort->sortFlags & SORTFLAG_UseSorter) ) nPrefixReg++;
129794 if( pSort && hasDistinct==0 && eDest!=SRT_EphemTab && eDest!=SRT_Table ){
129803 for(i=pSort->nOBSat; i<pSort->pOrderBy->nExpr; i++){
129805 if( (j = pSort->pOrderBy->a[i].u.x.iOrderByCol)>0 ){
129806 p->pEList->a[j-1].u.x.iOrderByCol = i+1-pSort->nOBSat;
129810 selectExprDefer(pParse, pSort, p->pEList, &pExtra);
129817 VdbeOp *pOp = sqlite3VdbeGetOp(v, pSort->addrSortIndex);
129818 pOp->p2 += (pExtra->nExpr - pSort->nDefer);
129819 pOp->p4.pKeyInfo->nAllField += (pExtra->nExpr - pSort->nDefer);
129857 assert( pSort!=0 );
129859 pSort->pDeferredRowLoad = &sRowLoadInfo;
129924 if( pSort==0 ){
129976 assert( pSort==0 );
129979 if( pSort ){
129981 pushOntoSorter(pParse, pSort, p, r1+nPrefixReg, regOrig, 1, nPrefixReg);
129999 if( pSort ){
130005 pParse, pSort, p, regResult, regOrig, nResultCol, nPrefixReg);
130030 if( pSort ){
130033 pParse, pSort, p, regResult, regOrig, nResultCol, nPrefixReg);
130047 if( pSort ){
130048 pushOntoSorter(pParse, pSort, p, regResult, regOrig, nResultCol,
130124 if( pSort==0 && p->iLimit ){
130274 SortCtx *pSort, /* Information on the ORDER BY clause */
130279 int addrBreak = pSort->labelDone; /* Jump here to exit loop */
130284 ExprList *pOrderBy = pSort->pOrderBy;
130298 if( pSort->labelBkOut ){
130299 sqlite3VdbeAddOp2(v, OP_Gosub, pSort->regReturn, pSort->labelBkOut);
130301 sqlite3VdbeResolveLabel(v, pSort->labelBkOut);
130306 for(i=0; i<pSort->nDefer; i++){
130307 Table *pTab = pSort->aDefer[i].pTab;
130309 sqlite3OpenTable(pParse, pSort->aDefer[i].iCsr, iDb, pTab, OP_OpenRead);
130310 nRefKey = MAX(nRefKey, pSort->aDefer[i].nKey);
130314 iTab = pSort->iECursor;
130327 nKey = pOrderBy->nExpr - pSort->nOBSat;
130328 if( pSort->sortFlags & SORTFLAG_UseSorter ){
130331 if( pSort->labelBkOut ){
130355 if( pSort->nDefer ){
130359 for(i=0; i<pSort->nDefer; i++){
130360 int iCsr = pSort->aDefer[i].iCsr;
130361 Table *pTab = pSort->aDefer[i].pTab;
130362 int nKey = pSort->aDefer[i].nKey;
130447 if( pSort->sortFlags & SORTFLAG_UseSorter ){
130452 if( pSort->regReturn ) sqlite3VdbeAddOp1(v, OP_Return, pSort->regReturn);
151316 ExprList *pSort = 0;
151339 pSort = exprListAppendList(pParse, 0, pMWin->pPartition, 1);
151340 pSort = exprListAppendList(pParse, pSort, pMWin->pOrderBy, 1);
151341 if( pSort && p->pOrderBy && p->pOrderBy->nExpr<=pSort->nExpr ){
151342 int nSave = pSort->nExpr;
151343 pSort->nExpr = p->pOrderBy->nExpr;
151344 if( sqlite3ExprListCompare(pSort, p->pOrderBy, -1)==0 ){
151348 pSort->nExpr = nSave;
151403 pParse, pSublist, pSrc, pWhere, pGroupBy, pHaving, pSort, 0, 0