-C Only\scontinue\san\sORDER\sBY\soptimization\sinto\sinner\sloops\sif\sthe\sequality\nconstraints\son\sthe\sinner\sloop\smatch\sterms\sof\san\souter\sordered\sindex\sthat\nare\sactually\sused\sby\sthe\sORDER\sBY\sclause.
-D 2012-10-02T14:11:29.949
+C More\slenient\shandling\sof\sORDER\sBY\soptimization\sin\sjoins\swith\smixed\sASC/DESC.\nThis\sis\sa\sbetter\sand\sless\srestrictive\sfix\sfor\sthe\sproblem\saddressed\sby\nthe\sprevious\scheck-in.
+D 2012-10-02T15:19:19.625
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 5f4f26109f9d80829122e0e09f9cda008fa065fb
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
F src/wal.c e1fe8f92a0ea0fef8faa87ec43a127a478589d22
F src/wal.h 29c197540b19044e6cd73487017e5e47a1d3dac6
F src/walker.c 3d75ba73de15e0f8cd0737643badbeb0e002f07b
-F src/where.c d40f2fa13bbda673cc681a2baeb490fe7a22f17e
+F src/where.c 69398e95e9c1012ae07ce9ea00f21b0e7bab8df1
F test/8_3_names.test 631ea964a3edb091cf73c3b540f6bcfdb36ce823
F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
F test/aggnested.test 0be144b453e0622a085fae8665c32f5676708e00
F test/notnull.test cc7c78340328e6112a13c3e311a9ab3127114347
F test/null.test a8b09b8ed87852742343b33441a9240022108993
F test/openv2.test 0d3040974bf402e19b7df4b783e447289d7ab394
-F test/orderby1.test 1f7e942aec6074725d823edfff258e9187dd255f
+F test/orderby1.test 4875a2a0a87d81920f3600a3405dc42f233b8c82
F test/orderby2.test d8fa5991d8948ae1f335c2f91d751e955bfee815
F test/oserror.test 50417780d0e0d7cd23cf12a8277bb44024765df3
F test/pager1.test 2163c6ef119f497a71a84137c957c63763e640ab
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
F tool/win/sqlite.vsix 67d8a99aceb56384a81b3f30d6c71743146d2cc9
-P 545bb33688663066cf3f09e4cdc4d5cfe59fb8db
-R 0244ec6263deff2d19e204ecc996e53d
+P b0e7b4df6c2a8c479f8d210bde50c737eaa248f0
+R a1842b2ba16ad28b21201e48479c524d
U drh
-Z 17cee407676b72dedd8bc51219c654fe
+Z 4c91eefd164f9f4e974324de15060f38
sortOrder = 0;
testcase( (pLevel->plan.wsFlags & WHERE_REVERSE)!=0 );
}else{
- int n = pLevel->plan.nOBSat;
- if( p->i>=2 ) n -= pLevel[-1].plan.nOBSat;
- assert( n<=pIdx->nColumn );
+ int n = pIdx->nColumn;
for(j=0; j<n; j++){
if( iCol==pIdx->aiColumn[j] ) break;
}
}else{
if( nEqCol==0 ) return nPriorSat;
sortOrder = bOuterRev;
- nEqOneRow = 0;
+ nEqOneRow = -1;
}
pOrderBy = p->pOrderBy;
assert( pOrderBy!=0 );
if( i>nEqOneRow ){
if( termSortOrder!=sortOrder ){
/* Indices can only be used if all ORDER BY terms past the
- ** equality constraints are all either DESC or ASC. */
+ ** equality constraints have the correct DESC or ASC. */
break;
}
}else{
EXPLAIN QUERY PLAN
SELECT name FROM album JOIN track USING (aid) ORDER BY title, tn
}
-} {/ORDER BY/} ;# ORDER BY required because of missing aid term in ORDER BY
+} {~/ORDER BY/} ;# ORDER BY optimized out
do_test 2.1c {
db eval {
EXPLAIN QUERY PLAN
SELECT name FROM album JOIN track USING (aid) ORDER BY title DESC, tn DESC
}
-} {/ORDER BY/} ;# ORDER BY required
+} {~/ORDER BY/} ;# ORDER BY optimized out
# Generate another test dataset, but this time using mixed ASC/DESC indices.