]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
The IN-early-out optimization: When doing a look-up on a multi-column index
authordrh <drh@noemail.net>
Thu, 7 Jun 2018 18:13:49 +0000 (18:13 +0000)
committerdrh <drh@noemail.net>
Thu, 7 Jun 2018 18:13:49 +0000 (18:13 +0000)
and an IN operator is used on a column other than the left-most column, then
if no rows match against the first IN value, check to make sure there exist
rows that match the columns to the right before continuing with the next IN
value.

FossilOrigin-Name: 09fffbdf9f2f6ce31a22d5a6df7a45f19a16628da622f12d6e33171cce09fb21

1  2 
manifest
manifest.uuid

diff --cc manifest
index ae7fdac9376cfb54fab9b77a7828fdfd45e00b3f,660acafd9adb42f9d912f1e6776656592187bfad..f31ac5a47bb76cee1046065b6dce4795b76c9923
+++ b/manifest
@@@ -1,5 -1,5 +1,5 @@@
- C Avoid\susing\sa\sprepared\sstatement\sfor\s".stats\son"\safter\sit\shas\sbeen\sclosed\nby\sthe\s".eqp\sfull"\slogic.\s\sFix\sfor\sticket\s[7be932dfa60a8a6b3b26bcf76].
- D 2018-06-07T15:23:43.571
 -C Fix\sthe\sassert()s\sin\sthe\sbyte-code\sengine\sthat\sprove\sthat\scursors\nare\sunidirectional.
 -D 2018-06-07T18:01:21.263
++C The\sIN-early-out\soptimization:\s\sWhen\sdoing\sa\slook-up\son\sa\smulti-column\sindex\nand\san\sIN\soperator\sis\sused\son\sa\scolumn\sother\sthan\sthe\sleft-most\scolumn,\sthen\nif\sno\srows\smatch\sagainst\sthe\sfirst\sIN\svalue,\scheck\sto\smake\ssure\sthere\sexist\nrows\sthat\smatch\sthe\scolumns\sto\sthe\sright\sbefore\scontinuing\swith\sthe\snext\sIN\nvalue.
++D 2018-06-07T18:13:49.091
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
  F Makefile.in bfc40f350586923e0419d2ea4b559c37ec10ee4b6e210e08c14401f8e340f0da
@@@ -1730,7 -1731,7 +1731,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 71f97f0f82b3abfb07feb78d64a182fc50ff396e85d6f5aac479dbf58ba4d00a
- R 88b349f4995942bbb83ef8407ed20dc3
 -P 439c8162272795b422a0e01b01b832fbc12b39914c9632a674162af8bdecff98
++P bb87c054b1b76959e46258ac66b24027f468b390a4148ac67f208a1fbeda4060 4b0b4e14039469b656662312a5f80f086ede293e9ad04c7bc99a202b683a1e55
+ R fe7d026f8be3134e2723fc39eeec5ed5
++T +closed 4b0b4e14039469b656662312a5f80f086ede293e9ad04c7bc99a202b683a1e55
  U drh
- Z 107f8808affc9ffe8154c296896c4113
 -Z 8c642b57392b756fd19e94b953870085
++Z 8a623af2a2288d1935dd9b3507daa5d8
diff --cc manifest.uuid
index c4bf873456af5c8361430382ef46c57cf997d546,9c15183170e832e99d7a465b642c0ffee3e64667..9bc93f1fe039621cf3bf7daf6beadc94e8277033
@@@ -1,1 -1,1 +1,1 @@@
- bb87c054b1b76959e46258ac66b24027f468b390a4148ac67f208a1fbeda4060
 -4b0b4e14039469b656662312a5f80f086ede293e9ad04c7bc99a202b683a1e55
++09fffbdf9f2f6ce31a22d5a6df7a45f19a16628da622f12d6e33171cce09fb21