]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
When doing an UPDATE or DELETE using a multi-column index where only a few
authordrh <drh@noemail.net>
Fri, 14 Aug 2020 21:51:02 +0000 (21:51 +0000)
committerdrh <drh@noemail.net>
Fri, 14 Aug 2020 21:51:02 +0000 (21:51 +0000)
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

1  2 
manifest
manifest.uuid

diff --cc manifest
index bdf8aea8695de826dcd03426b754aef2c192bea8,b1f787fcdf1d37db86e4ca1568071ce3de73fba7..9ccd5651378f2d1e84db395b267ba810f983da57
+++ 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 3698b1361b993d928e067e1f7b73ab220e23b7bf,b2a145b0f4813f51d08cd56a3a50d2ee4a34b895..44b1baae1f1800482d4d0e1bc0f5b7d2c6bad7a6
@@@ -1,1 -1,1 +1,1 @@@
- 70f34f3df5358d36c8578afbc05756450c46da36b8dce339ed87fc0b9d4057cb
 -611b640442025e57b8e161f8ddac1f19bd3be9a3d5266f4cef287595c3ed9257
++7fee0b1075d622835dc6828c061be516102da9e2809f52d9ab7c4bbef7dfb871