]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Undo some unhelpful changes to skip-scan scoring that were added
authordrh <drh@noemail.net>
Fri, 29 Jul 2016 01:32:36 +0000 (01:32 +0000)
committerdrh <drh@noemail.net>
Fri, 29 Jul 2016 01:32:36 +0000 (01:32 +0000)
by the check-in [9e2b2681] that improved scoring of index scan.

FossilOrigin-Name: c7d51934a4f30d096bb79fc509fc9dd0df5d89a4

manifest
manifest.uuid
src/where.c
test/scanstatus.test
test/skipscan1.test

index 4df76977b0643901dba3c5669329de61303f5fff..fdc9dbc32a8d9c5ccb73c5dfd5b6fa1d0ed416ab 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C The\s'sqlite3ext.h'\scontent\sshould\sbe\sprocessed\sbefore\sbeing\sincluded\sin\sthe\samalgamation.
-D 2016-07-28T19:28:35.475
+C Undo\ssome\sunhelpful\schanges\sto\sskip-scan\sscoring\sthat\swere\sadded\nby\sthe\scheck-in\s[9e2b2681]\sthat\simproved\sscoring\sof\sindex\sscan.
+D 2016-07-29T01:32:36.387
 F Makefile.in 6c20d44f72d4564f11652b26291a214c8367e5db
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc eefec7a26bf73bb04f2241058e23a3ec8a43f656
@@ -463,7 +463,7 @@ F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
 F src/wal.c 02eeecc265f6ffd0597378f5d8ae9070b62a406a
 F src/wal.h 6dd221ed384afdc204bc61e25c23ef7fd5a511f2
 F src/walker.c 0f142b5bd3ed2041fc52d773880748b212e63354
-F src/where.c 8ccc01f9227d41bfaf09360f108583be4a36d3b1
+F src/where.c fcaa38d19c2a7bb450cc57810bdc3d4eb36e00b0
 F src/whereInt.h e5b939701a7ceffc5a3a8188a37f9746416ebcd0
 F src/wherecode.c 99707d11907c71d289ee9553d2d1a22f1fd8ba41
 F src/whereexpr.c d7dcbf14ce1b5876c1f76496162c30fcba669563
@@ -1027,7 +1027,7 @@ F test/savepoint5.test 0735db177e0ebbaedc39812c8d065075d563c4fd
 F test/savepoint6.test f41279c5e137139fa5c21485773332c7adb98cd7
 F test/savepoint7.test cde525ea3075283eb950cdcdefe23ead4f700daa
 F test/savepointfault.test f044eac64b59f09746c7020ee261734de82bf9b2
-F test/scanstatus.test 030acbbdcea6a3fc676fee99edc84f6f16c0cf92
+F test/scanstatus.test 5253c219e331318a437f436268e0e82345700285
 F test/schema.test 8f7999be894260f151adf15c2c7540f1c6d6a481
 F test/schema2.test 906408621ea881fdb496d878b1822572a34e32c5
 F test/schema3.test 1bc1008e1f8cb5654b248c55f27249366eb7ed38
@@ -1074,7 +1074,7 @@ F test/shortread1.test bb591ef20f0fd9ed26d0d12e80eee6d7ac8897a3
 F test/show_speedtest1_rtree.tcl 32e6c5f073d7426148a6936a0408f4b5b169aba5
 F test/shrink.test 1b4330b1fd9e818c04726d45cb28db73087535ce
 F test/sidedelete.test f0ad71abe6233e3b153100f3b8d679b19a488329
-F test/skipscan1.test d37a75b4be4eb9dedeb69b4f38b1d0a74b5021d7
+F test/skipscan1.test f2d4482f195f018c3732374d3985fc34bcc3ae1a
 F test/skipscan2.test d1d1450952b7275f0b0a3a981f0230532743951a
 F test/skipscan3.test ec5bab3f81c7038b43450e7b3062e04a198bdbb5
 F test/skipscan5.test 67817a4b6857c47e0e33ba3e506da6f23ef68de2
@@ -1508,7 +1508,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 fd784887e125bf95f4799ad09cbcba6795173487
-R 159053f8c66afb3fed693021893388d2
-U mistachkin
-Z 1fc3620b6fdad23d7ecfea7d673497bf
+P cbe1de4799df4d512bc175f51ed99c6ec6d5a4d1
+R 69cbd4ac65697876502fdf627dd430d9
+U drh
+Z b3c6b81889b1e6498dbf215474f399c6
index ad3e416aac53176977581caa29c5e478cd6476e6..e200b2ca41b87e6d6af84ce0524ed2833e40ca1a 100644 (file)
@@ -1 +1 @@
-cbe1de4799df4d512bc175f51ed99c6ec6d5a4d1
\ No newline at end of file
+c7d51934a4f30d096bb79fc509fc9dd0df5d89a4
\ No newline at end of file
index ca406a817210a66b6e9fbfe36cae4df517de7096..da41c142fa66f9f52223cf431aaab53dcfebc6cb 100644 (file)
@@ -2478,11 +2478,11 @@ static int whereLoopAddBtreeIndex(
     pNew->nSkip++;
     pNew->aLTerm[pNew->nLTerm++] = 0;
     pNew->wsFlags |= WHERE_SKIPSCAN;
-    nIter = pProbe->aiRowLogEst[saved_nEq]+1 - pProbe->aiRowLogEst[saved_nEq+1];
+    nIter = pProbe->aiRowLogEst[saved_nEq] - pProbe->aiRowLogEst[saved_nEq+1];
     pNew->nOut -= nIter;
     /* TUNING:  Because uncertainties in the estimates for skip-scan queries,
     ** add a 1.375 fudge factor to make skip-scan slightly less likely. */
-    nIter += 4;
+    nIter += 5;
     whereLoopAddBtreeIndex(pBuilder, pSrc, pProbe, nIter + nInMul);
     pNew->nOut = saved_nOut;
     pNew->u.btree.nEq = saved_nEq;
index 48365a8794134a120d492111161e07117d52e46a..ed24d9743710cff66b630a3f796e9ff9bd3504a5 100644 (file)
@@ -333,7 +333,7 @@ do_execsql_test 5.3.2 {
   SELECT count(*) FROM t2 WHERE y = 'j';
 } {19}
 do_scanstatus_test 5.3.3 { 
-  nLoop 1 nVisit 19 nEst 52.0 zName t2xy zExplain
+  nLoop 1 nVisit 19 nEst 56.0 zName t2xy zExplain
   {SEARCH TABLE t2 USING COVERING INDEX t2xy (ANY(x) AND y=?)}
 }
 
@@ -349,7 +349,7 @@ do_execsql_test 5.4.2 {
 do_scanstatus_test 5.4.3 { 
   nLoop 1 nVisit 10 nEst 10.0 zName t1bc 
   zExplain {SCAN TABLE t1 USING COVERING INDEX t1bc}
-  nLoop 10 nVisit 200 nEst 52.0 zName t2xy 
+  nLoop 10 nVisit 200 nEst 56.0 zName t2xy 
   zExplain {SEARCH TABLE t2 USING COVERING INDEX t2xy (ANY(x) AND y=?)}
 }
 
index ac26711603bb1c1b515a2d6e757e40860967186c..6d77e634988d85f1f1b4143b6992d98b57d1286d 100644 (file)
@@ -43,23 +43,23 @@ do_execsql_test skipscan1-1.2 {
 } {abc 345 7 8 | def 345 9 10 |}
 do_execsql_test skipscan1-1.2eqp {
   EXPLAIN QUERY PLAN
-  SELECT a,b,c,d,'|' FROM t1 WHERE b=345 ORDER BY a;
+  SELECT a,b,c,d,'|' FROM t1 WHERE d<>99 AND b=345 ORDER BY a;
 } {/* USING INDEX t1abc (ANY(a) AND b=?)*/}
 do_execsql_test skipscan1-1.2sort {
   EXPLAIN QUERY PLAN
-  SELECT a,b,c,d,'|' FROM t1 WHERE b=345 ORDER BY a;
+  SELECT a,b,c,d,'|' FROM t1 WHERE d<>99 AND b=345 ORDER BY a;
 } {~/*ORDER BY*/}
 
 do_execsql_test skipscan1-1.3 {
-  SELECT a,b,c,d,'|' FROM t1 WHERE b=345 ORDER BY a DESC;
+  SELECT a,b,c,d,'|' FROM t1 WHERE d<>99 AND b=345 ORDER BY a DESC;
 } {def 345 9 10 | abc 345 7 8 |}
 do_execsql_test skipscan1-1.3eqp {
   EXPLAIN QUERY PLAN
-  SELECT a,b,c,d,'|' FROM t1 WHERE b=345 ORDER BY a;
+  SELECT a,b,c,d,'|' FROM t1 WHERE d<>99 AND b=345 ORDER BY a DESC;
 } {/* USING INDEX t1abc (ANY(a) AND b=?)*/}
 do_execsql_test skipscan1-1.3sort {
   EXPLAIN QUERY PLAN
-  SELECT a,b,c,d,'|' FROM t1 WHERE b=345 ORDER BY a;
+  SELECT a,b,c,d,'|' FROM t1 WHERE d<>99 AND b=345 ORDER BY a DESC;
 } {~/*ORDER BY*/}
 
 do_execsql_test skipscan1-1.4 {
@@ -150,15 +150,15 @@ do_execsql_test skipscan1-2.1 {
 } {}
 
 do_execsql_test skipscan1-2.2 {
-  SELECT a,b,c,d,'|' FROM t2 WHERE b=345 ORDER BY a;
+  SELECT a,b,c,d,'|' FROM t2 WHERE d<>99 AND b=345 ORDER BY a;
 } {abc 345 7 8 | def 345 9 10 |}
 do_execsql_test skipscan1-2.2eqp {
   EXPLAIN QUERY PLAN
-  SELECT a,b,c,d,'|' FROM t2 WHERE b=345 ORDER BY a;
+  SELECT a,b,c,d,'|' FROM t2 WHERE d<>99 AND b=345 ORDER BY a;
 } {/* USING INDEX sqlite_autoindex_t2_1 (ANY(a) AND b=?)*/}
 do_execsql_test skipscan1-2.2sort {
   EXPLAIN QUERY PLAN
-  SELECT a,b,c,d,'|' FROM t2 WHERE b=345 ORDER BY a;
+  SELECT a,b,c,d,'|' FROM t2 WHERE d<>99 AND b=345 ORDER BY a;
 } {~/*ORDER BY*/}