pSort 106956 ext/sqlite3/libsqlite/sqlite3.c SortCtx *pSort, /* Information about the ORDER BY clause */ pSort 106963 ext/sqlite3/libsqlite/sqlite3.c int bSeq = ((pSort->sortFlags & SORTFLAG_UseSorter)==0); pSort 106964 ext/sqlite3/libsqlite/sqlite3.c int nExpr = pSort->pOrderBy->nExpr; /* No. of ORDER BY terms */ pSort 106968 ext/sqlite3/libsqlite/sqlite3.c int nOBSat = pSort->nOBSat; /* ORDER BY terms to skip */ pSort 106979 ext/sqlite3/libsqlite/sqlite3.c sqlite3ExprCodeExprList(pParse, pSort->pOrderBy, regBase, SQLITE_ECEL_DUP); pSort 106981 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp2(v, OP_Sequence, pSort->iECursor, regBase+nExpr); pSort 106997 ext/sqlite3/libsqlite/sqlite3.c pParse->nMem += pSort->nOBSat; pSort 106998 ext/sqlite3/libsqlite/sqlite3.c nKey = nExpr - pSort->nOBSat + bSeq; pSort 107002 ext/sqlite3/libsqlite/sqlite3.c addrFirst = sqlite3VdbeAddOp1(v, OP_SequenceTest, pSort->iECursor); pSort 107005 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp3(v, OP_Compare, regPrevKey, regBase, pSort->nOBSat); pSort 107006 ext/sqlite3/libsqlite/sqlite3.c pOp = sqlite3VdbeGetOp(v, pSort->addrSortIndex); pSort 107013 ext/sqlite3/libsqlite/sqlite3.c pOp->p4.pKeyInfo = keyInfoFromExprList(pParse, pSort->pOrderBy, nOBSat, pSort 107017 ext/sqlite3/libsqlite/sqlite3.c pSort->labelBkOut = sqlite3VdbeMakeLabel(v); pSort 107018 ext/sqlite3/libsqlite/sqlite3.c pSort->regReturn = ++pParse->nMem; pSort 107019 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp2(v, OP_Gosub, pSort->regReturn, pSort->labelBkOut); pSort 107020 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp1(v, OP_ResetSorter, pSort->iECursor); pSort 107022 ext/sqlite3/libsqlite/sqlite3.c sqlite3ExprCodeMove(pParse, regBase, regPrevKey, pSort->nOBSat); pSort 107025 ext/sqlite3/libsqlite/sqlite3.c if( pSort->sortFlags & SORTFLAG_UseSorter ){ pSort 107030 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp2(v, op, pSort->iECursor, regRecord); pSort 107040 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp1(v, OP_Last, pSort->iECursor); pSort 107041 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp1(v, OP_Delete, pSort->iECursor); pSort 107128 ext/sqlite3/libsqlite/sqlite3.c SortCtx *pSort, /* If not NULL, info on how to process ORDER BY */ pSort 107146 ext/sqlite3/libsqlite/sqlite3.c if( pSort && pSort->pOrderBy==0 ) pSort = 0; pSort 107147 ext/sqlite3/libsqlite/sqlite3.c if( pSort==0 && !hasDistinct ){ pSort 107157 ext/sqlite3/libsqlite/sqlite3.c if( pSort ){ pSort 107158 ext/sqlite3/libsqlite/sqlite3.c nPrefixReg = pSort->pOrderBy->nExpr; pSort 107159 ext/sqlite3/libsqlite/sqlite3.c if( !(pSort->sortFlags & SORTFLAG_UseSorter) ) nPrefixReg++; pSort 107243 ext/sqlite3/libsqlite/sqlite3.c if( pSort==0 ){ pSort 107292 ext/sqlite3/libsqlite/sqlite3.c assert( pSort==0 ); pSort 107295 ext/sqlite3/libsqlite/sqlite3.c if( pSort ){ pSort 107296 ext/sqlite3/libsqlite/sqlite3.c pushOntoSorter(pParse, pSort, p, r1+nPrefixReg, 1, nPrefixReg); pSort 107317 ext/sqlite3/libsqlite/sqlite3.c if( pSort ){ pSort 107322 ext/sqlite3/libsqlite/sqlite3.c pushOntoSorter(pParse, pSort, p, regResult, 1, nPrefixReg); pSort 107347 ext/sqlite3/libsqlite/sqlite3.c if( pSort ){ pSort 107348 ext/sqlite3/libsqlite/sqlite3.c pushOntoSorter(pParse, pSort, p, regResult, 1, nPrefixReg); pSort 107361 ext/sqlite3/libsqlite/sqlite3.c if( pSort ){ pSort 107362 ext/sqlite3/libsqlite/sqlite3.c pushOntoSorter(pParse, pSort, p, regResult, nResultCol, nPrefixReg); pSort 107438 ext/sqlite3/libsqlite/sqlite3.c if( pSort==0 && p->iLimit ){ pSort 107632 ext/sqlite3/libsqlite/sqlite3.c SortCtx *pSort, /* Information on the ORDER BY clause */ pSort 107642 ext/sqlite3/libsqlite/sqlite3.c ExprList *pOrderBy = pSort->pOrderBy; pSort 107656 ext/sqlite3/libsqlite/sqlite3.c if( pSort->labelBkOut ){ pSort 107657 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp2(v, OP_Gosub, pSort->regReturn, pSort->labelBkOut); pSort 107659 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeResolveLabel(v, pSort->labelBkOut); pSort 107661 ext/sqlite3/libsqlite/sqlite3.c iTab = pSort->iECursor; pSort 107671 ext/sqlite3/libsqlite/sqlite3.c nKey = pOrderBy->nExpr - pSort->nOBSat; pSort 107672 ext/sqlite3/libsqlite/sqlite3.c if( pSort->sortFlags & SORTFLAG_UseSorter ){ pSort 107675 ext/sqlite3/libsqlite/sqlite3.c if( pSort->labelBkOut ){ pSort 107741 ext/sqlite3/libsqlite/sqlite3.c if( pSort->sortFlags & SORTFLAG_UseSorter ){ pSort 107746 ext/sqlite3/libsqlite/sqlite3.c if( pSort->regReturn ) sqlite3VdbeAddOp1(v, OP_Return, pSort->regReturn);