From: drh Date: Fri, 14 Aug 2020 21:51:02 +0000 (+0000) Subject: When doing an UPDATE or DELETE using a multi-column index where only a few X-Git-Tag: version-3.34.0~146 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=861889e4f8e63e5f9f7508419fe01fe5de8ccb49;p=thirdparty%2Fsqlite.git When doing an UPDATE or DELETE using a multi-column index where only a few of the earlier columns of the index are useful for the index lookup, postpone doing the main table seek until after all WHERE clause constraints have been evaluated, in case those constraints can be covered by unused later terms of the index, thus avoiding unnecessary main table seeks. FossilOrigin-Name: 7fee0b1075d622835dc6828c061be516102da9e2809f52d9ab7c4bbef7dfb871 --- 861889e4f8e63e5f9f7508419fe01fe5de8ccb49 diff --cc manifest index bdf8aea869,b1f787fcdf..9ccd565137 --- a/manifest +++ b/manifest @@@ -1,5 -1,5 +1,5 @@@ - C Update\sthe\sversion\snumber\sto\s3.34.0\sfor\sthe\snext\sdevelopment\scycle. - D 2020-08-14T21:37:32.306 -C Optimizations\sto\sthe\slogic\sthat\sconverts\smain\stable\saccesses\sinto\sequivalent\nindex\saccesses.\s\sCode\sis\snow\sslightly\ssmaller\sand\sfaster\sthan\strunk. -D 2020-08-14T21:32:16.882 ++C When\sdoing\san\sUPDATE\sor\sDELETE\susing\sa\smulti-column\sindex\swhere\sonly\sa\sfew\nof\sthe\searlier\scolumns\sof\sthe\sindex\sare\suseful\sfor\sthe\sindex\slookup,\npostpone\sdoing\sthe\smain\stable\sseek\suntil\safter\sall\sWHERE\sclause\sconstraints\nhave\sbeen\sevaluated,\sin\scase\sthose\sconstraints\scan\sbe\scovered\sby\sunused\nlater\sterms\sof\sthe\sindex,\sthus\savoiding\sunnecessary\smain\stable\sseeks. ++D 2020-08-14T21:51:02.627 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@@ -1879,7 -1879,7 +1879,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 613fb5c2525be77e48bad0a74e8b7bf53489365060fb9c7713a0caddb1820c71 - R 7059606023c2b57d0babed42e5e9e33d -P a495f60d315e34b1a1bc5fb1336e05047add52c8fb2710b577c97b10a5e734f6 -R 54b8b0b6f00b6cfab28e2e5a52014ff6 ++P 70f34f3df5358d36c8578afbc05756450c46da36b8dce339ed87fc0b9d4057cb 611b640442025e57b8e161f8ddac1f19bd3be9a3d5266f4cef287595c3ed9257 ++R fd23b928eb9c7a62b3f6e9653824ff24 ++T +closed 611b640442025e57b8e161f8ddac1f19bd3be9a3d5266f4cef287595c3ed9257 U drh - Z e2c81a93805f9b05654ffbbe167428db -Z a854ac35ef1e1fa9d5bc731176f5cbf6 ++Z 5d0dae315c2c275d1ce9160adcb43cdc diff --cc manifest.uuid index 3698b1361b,b2a145b0f4..44b1baae1f --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - 70f34f3df5358d36c8578afbc05756450c46da36b8dce339ed87fc0b9d4057cb -611b640442025e57b8e161f8ddac1f19bd3be9a3d5266f4cef287595c3ed9257 ++7fee0b1075d622835dc6828c061be516102da9e2809f52d9ab7c4bbef7dfb871