From: drh Date: Mon, 10 Jul 2017 17:00:31 +0000 (+0000) Subject: When multiple constraints need to be evaluated for a row, do any constraints X-Git-Tag: version-3.20.0~96 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=90e39ec34904055d7bcd967d01b4d2dd31d6bd58;p=thirdparty%2Fsqlite.git When multiple constraints need to be evaluated for a row, do any constraints that involve correlated subqueries last. Hence, the priority is index-covered constraints first, correlated subquery constraints last, and all others in the middle. This is a follow-on and improvement to the push-down optimization of check-in [d7bb79ed]. FossilOrigin-Name: c4cb90487f34937605732c3959891075e2aabfb0bd05e55c44565d65867093ea --- 90e39ec34904055d7bcd967d01b4d2dd31d6bd58 diff --cc manifest index e4b8deb363,d7121fcc18..5e78844516 --- a/manifest +++ b/manifest @@@ -1,5 -1,5 +1,5 @@@ - C For\ssqlite3TreeView()\sdebugging\soutput,\sshow\sthe\sExpr.flags\sfield\son\nscalar\ssubqueries. - D 2017-07-10T13:24:58.019 -C Additional\sdebugging\sNoop-comment\sin\sthe\sconstraint\sgenerator\swhen\nwheretrace\sis\senabled. -D 2017-07-10T16:38:14.687 ++C When\smultiple\sconstraints\sneed\sto\sbe\sevaluated\sfor\sa\srow,\sdo\sany\sconstraints\nthat\sinvolve\scorrelated\ssubqueries\slast.\s\sHence,\sthe\spriority\sis\sindex-covered\nconstraints\sfirst,\scorrelated\ssubquery\sconstraints\slast,\sand\sall\sothers\sin\nthe\smiddle.\s\sThis\sis\sa\nfollow-on\sand\simprovement\sto\sthe\spush-down\soptimization\sof\scheck-in\s[d7bb79ed]. ++D 2017-07-10T17:00:31.898 F Makefile.in 081e48dfe7f995d57ce1a88ddf4d2917b4349158648a6cd45b42beae30de3a12 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc 20850e3e8d4d4791e0531955852d768eb06f24138214870d543abb1a47346fba @@@ -1628,7 -1628,7 +1628,8 @@@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a9 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 - P f27b6370407842e2c175ea4aa9ce018723c57eaac0cccc1f8399bc20f33324be - R fcaff20edc67c3421a07c8a2f98bc875 -P 38edc6770e54e456500e77389d42fdf39e9a7ed258a4e1fed3c6dd8fdf4dfcb7 ++P dc857a96b00f13ffdf77bc222bc5acbbe14a36ca51e5368b568b3177d1be737a 0ca7474f05e9f27f53f8c71f5a3ff99963ffef9be9c147869e096246d552d6f1 + R 6bf4c162edf7ff6903aaf314bb0ae2fb ++T +closed 0ca7474f05e9f27f53f8c71f5a3ff99963ffef9be9c147869e096246d552d6f1 U drh - Z 4c32d3cf2874c5b6c91c344882e30f5e -Z 38d25901c93de0cd7a8af907f32d80a9 ++Z acda2b95cccbca8a55a4e5255bd0a430 diff --cc manifest.uuid index 2957a08a1c,fea24416b7..71dc779008 --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - dc857a96b00f13ffdf77bc222bc5acbbe14a36ca51e5368b568b3177d1be737a -0ca7474f05e9f27f53f8c71f5a3ff99963ffef9be9c147869e096246d552d6f1 ++c4cb90487f34937605732c3959891075e2aabfb0bd05e55c44565d65867093ea