1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-12 13:01:09 +03:00

Minor simplification to internal function generateSortTail().

FossilOrigin-Name: f32cdb41ca213cfcfe0bb5bfe56930d43e55525fa5640274b00f1ccce7f69634
This commit is contained in:
dan
2018-04-11 14:11:53 +00:00
parent 8384e43c18
commit d6189eafa4
3 changed files with 11 additions and 14 deletions

View File

@@ -1,5 +1,5 @@
C Include\sthe\s'sqlite3rebaser_'\sAPIs\sin\sthe\sWindows\s'.def'\sfile. C Minor\ssimplification\sto\sinternal\sfunction\sgenerateSortTail().
D 2018-04-10T18:56:21.837 D 2018-04-11T14:11:53.499
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F Makefile.in 7016fc56c6b9bfe5daac4f34be8be38d8c0b5fab79ccbfb764d3b23bf1c6fff3 F Makefile.in 7016fc56c6b9bfe5daac4f34be8be38d8c0b5fab79ccbfb764d3b23bf1c6fff3
@@ -491,7 +491,7 @@ F src/printf.c d3b7844ddeb11fbbdd38dd84d09c9c1ac171d21fb038473c3aa97981201cc660
F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384 F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
F src/resolve.c 66c73fcb7719b8ff0e841b58338f13604ff3e2b50a723f9b8f383595735262f6 F src/resolve.c 66c73fcb7719b8ff0e841b58338f13604ff3e2b50a723f9b8f383595735262f6
F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac
F src/select.c dfcd77a9bec9d2bcb221ed93c153cb38cc609faa6404e2dc0ae9491aac110112 F src/select.c 41e857c107be5fb972b87a4cbb948c8b1191f339c1e32a65742581573932e119
F src/shell.c.in cc960721e56ebc1a78773bb5d2f5608b54275f945cbe49e4afe919d6888062a7 F src/shell.c.in cc960721e56ebc1a78773bb5d2f5608b54275f945cbe49e4afe919d6888062a7
F src/sqlite.h.in e0be726ea6e4e6571724d39d242472ecd8bd1ba6f84ade88e1641bde98a6d02b F src/sqlite.h.in e0be726ea6e4e6571724d39d242472ecd8bd1ba6f84ade88e1641bde98a6d02b
F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
@@ -1717,7 +1717,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
P 4bb2294022060e61de7da5c227a69ccd846ba330e31626ebcd59a94efd148b3b P 56e4965f7ac850c59596120878434f5ef023e77919ef9416d20812eac764bac1
R cf8331c45ba4583fd3f926761aab3520 R 48bda25c5666e906d4ef80813706fd24
U mistachkin U dan
Z 052337a7502d1a648ca59d978c462084 Z 085cbe7783541af0757121e42293d25a

View File

@@ -1 +1 @@
56e4965f7ac850c59596120878434f5ef023e77919ef9416d20812eac764bac1 f32cdb41ca213cfcfe0bb5bfe56930d43e55525fa5640274b00f1ccce7f69634

View File

@@ -1247,7 +1247,6 @@ static void generateSortTail(
int iCol; int iCol;
int nKey; int nKey;
int iSortTab; /* Sorter cursor to read from */ int iSortTab; /* Sorter cursor to read from */
int nSortData; /* Trailing values to read from sorter */
int i; int i;
int bSeq; /* True if sorter record includes seq. no. */ int bSeq; /* True if sorter record includes seq. no. */
struct ExprList_item *aOutEx = p->pEList->a; struct ExprList_item *aOutEx = p->pEList->a;
@@ -1262,11 +1261,9 @@ static void generateSortTail(
if( eDest==SRT_Output || eDest==SRT_Coroutine || eDest==SRT_Mem ){ if( eDest==SRT_Output || eDest==SRT_Coroutine || eDest==SRT_Mem ){
regRowid = 0; regRowid = 0;
regRow = pDest->iSdst; regRow = pDest->iSdst;
nSortData = nColumn;
}else{ }else{
regRowid = sqlite3GetTempReg(pParse); regRowid = sqlite3GetTempReg(pParse);
regRow = sqlite3GetTempRange(pParse, nColumn); regRow = sqlite3GetTempRange(pParse, nColumn);
nSortData = nColumn;
} }
nKey = pOrderBy->nExpr - pSort->nOBSat; nKey = pOrderBy->nExpr - pSort->nOBSat;
if( pSort->sortFlags & SORTFLAG_UseSorter ){ if( pSort->sortFlags & SORTFLAG_UseSorter ){
@@ -1275,7 +1272,7 @@ static void generateSortTail(
if( pSort->labelBkOut ){ if( pSort->labelBkOut ){
addrOnce = sqlite3VdbeAddOp0(v, OP_Once); VdbeCoverage(v); addrOnce = sqlite3VdbeAddOp0(v, OP_Once); VdbeCoverage(v);
} }
sqlite3VdbeAddOp3(v, OP_OpenPseudo, iSortTab, regSortOut, nKey+1+nSortData); sqlite3VdbeAddOp3(v, OP_OpenPseudo, iSortTab, regSortOut, nKey+1+nColumn);
if( addrOnce ) sqlite3VdbeJumpHere(v, addrOnce); if( addrOnce ) sqlite3VdbeJumpHere(v, addrOnce);
addr = 1 + sqlite3VdbeAddOp2(v, OP_SorterSort, iTab, addrBreak); addr = 1 + sqlite3VdbeAddOp2(v, OP_SorterSort, iTab, addrBreak);
VdbeCoverage(v); VdbeCoverage(v);
@@ -1288,10 +1285,10 @@ static void generateSortTail(
iSortTab = iTab; iSortTab = iTab;
bSeq = 1; bSeq = 1;
} }
for(i=0, iCol=nKey+bSeq-1; i<nSortData; i++){ for(i=0, iCol=nKey+bSeq-1; i<nColumn; i++){
if( aOutEx[i].u.x.iOrderByCol==0 ) iCol++; if( aOutEx[i].u.x.iOrderByCol==0 ) iCol++;
} }
for(i=nSortData-1; i>=0; i--){ for(i=nColumn-1; i>=0; i--){
int iRead; int iRead;
if( aOutEx[i].u.x.iOrderByCol ){ if( aOutEx[i].u.x.iOrderByCol ){
iRead = aOutEx[i].u.x.iOrderByCol-1; iRead = aOutEx[i].u.x.iOrderByCol-1;