]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix to the decision logic for when to use the skip-ahead-distinct optimization. skip-ahead-distinct
authordrh <drh@noemail.net>
Fri, 14 Apr 2017 22:41:27 +0000 (22:41 +0000)
committerdrh <drh@noemail.net>
Fri, 14 Apr 2017 22:41:27 +0000 (22:41 +0000)
FossilOrigin-Name: e50fd48969f99bc988389c53ff46714603b1d11de12c71b55c00cbee037f073c

manifest
manifest.uuid
src/where.c

index 91fde0d9988fe6f9024eb9cb4e4fe6a2283f91d3..3cdb0e259c1eba8cd7dee598538289b0675e9f7c 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\scouple\sof\sunreachable\sbranches.
-D 2017-04-14T00:45:51.643
+C Fix\sto\sthe\sdecision\slogic\sfor\swhen\sto\suse\sthe\sskip-ahead-distinct\soptimization.
+D 2017-04-14T22:41:27.127
 F Makefile.in 1cc758ce3374a32425e4d130c2fe7b026b20de5b8843243de75f087c0a2661fb
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc a4c0613a18663bda56d8cf76079ab6590a7c3602e54befb4bbdef76bcaa38b6a
@@ -482,7 +482,7 @@ F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
 F src/wal.c 40c543f0a2195d1b0dc88ef12142bea690009344
 F src/wal.h 06b2a0b599cc0f53ea97f497cf8c6b758c999f71
 F src/walker.c b71a992b413b3a022572eccf29ef4b4890223791
-F src/where.c 98388bf42ca2d23f4c227bd5cf24f15b43a83d2caac32ca8a75a4d04018a1f9b
+F src/where.c 10ae856aa4bcf7c6be39b6b53422fc94e713ab8a19383b4cf525bc05ae70d872
 F src/whereInt.h 2a4b634d63ce488b46d4b0da8f2eaa8f9aeab202bc25ef76f007de5e3fba1f20
 F src/wherecode.c 943e32e9dccd0af802e0683ae11071c8bd808364e5908a5fb66758bd404c8681
 F src/whereexpr.c e913aaa7b73ffcce66abcea5f197e2c538d48b5df78d0b7bba8ff4d73cc2e745
@@ -1572,7 +1572,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P ce1e2b88777e00a82c04abe5ba35eec81b5f324e462f099cd00b21054f369688
-R 0ca9ecc0c2f53a31b4c154be4d5df4e8
+P 1aa0ea8db7580aff8bed2f78117ed50019e5545cef48cab782f512a2599fd0c5
+R 3d9cb85ec554ef29a594152d50b939c6
 U drh
-Z ac554ac9c4b24b721f6e08016943d6a5
+Z 8239a5dd23689b99a8a3e25f527fe60a
index bf75741857ed5f854c8999ec7acb2acd9daad3b8..cb2613c629f8870186a906441ae75376df7a1227 100644 (file)
@@ -1 +1 @@
-1aa0ea8db7580aff8bed2f78117ed50019e5545cef48cab782f512a2599fd0c5
\ No newline at end of file
+e50fd48969f99bc988389c53ff46714603b1d11de12c71b55c00cbee037f073c
\ No newline at end of file
index b626562a89f2a9afc071d68069e2ac25073c0b21..50e4d7ce45981b6329d49f685a120b2235238284 100644 (file)
@@ -4858,7 +4858,8 @@ void sqlite3WhereEnd(WhereInfo *pWInfo){
       if( pWInfo->eDistinct==WHERE_DISTINCT_ORDERED
        && (pLoop->wsFlags & WHERE_INDEXED)!=0
        && (pIdx = pLoop->u.btree.pIndex)->hasStat1
-       && pIdx->aiRowLogEst[(n = pLoop->u.btree.nIdxCol)-1]>=36
+       && (n = pLoop->u.btree.nIdxCol)>0
+       && pIdx->aiRowLogEst[n]>=36
       ){
         int r1 = pParse->nMem+1;
         int j, op;