]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
In ORDER BY LIMIT queries, try to evaluate the ORDER BY terms first, and it
authordrh <drh@noemail.net>
Thu, 3 May 2018 23:20:06 +0000 (23:20 +0000)
committerdrh <drh@noemail.net>
Thu, 3 May 2018 23:20:06 +0000 (23:20 +0000)
it becomes clear that the row will not come in under the LIMIT, then skip
evaluation of the other columns.

FossilOrigin-Name: c381f0ea57002a264fd958b28e4921cb9c9e73a10fb592f6bb64e6bc9bd16d39

1  2 
manifest
manifest.uuid
src/select.c
src/sqliteInt.h

diff --cc manifest
index 6986fa5d3f4a68e21db362362a45c4f0c396c0e1,82041749775e7fcb6ddbdef71a2ee1faf903a911..10dd58464e34168c1631275e62e8febeb0c8531c
+++ b/manifest
@@@ -1,5 -1,5 +1,5 @@@
- C Fix\sa\sbranch\sthat\shas\sbecome\sunreachable\sdue\sto\srecent\senhancements.
- D 2018-05-03T22:52:56.038
 -C Defer\sloading\sresult\scolumn\svalues\sinto\sregisters\son\san\sORDER\sBY\sLIMIT\suntil\nwe\sknow\sthat\sthe\sLIMIT\sdoes\snot\sexclude\sthe\scurrent\srow.
 -D 2018-04-30T19:32:49.040
++C In\sORDER\sBY\sLIMIT\squeries,\stry\sto\sevaluate\sthe\sORDER\sBY\sterms\sfirst,\sand\sit\nit\sbecomes\sclear\sthat\sthe\srow\swill\snot\scome\sin\sunder\sthe\sLIMIT,\sthen\sskip\nevaluation\sof\sthe\sother\scolumns.
++D 2018-05-03T23:20:06.057
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
  F Makefile.in 5ce9343cba9c189046f1afe6d2bcc1f68079439febc05267b98aec6ecc752439
@@@ -493,12 -493,12 +493,12 @@@ F src/printf.c d3b7844ddeb11fbbdd38dd84
  F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
  F src/resolve.c 6415381a0e9d22c0e7cba33ca4a53f81474190862f5d4838190f5eb5b0b47bc9
  F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac
- F src/select.c c937eb1fc32417fb0be022ab8372dd27ff8138242a8d377724996d817258bd8a
 -F src/select.c 170834c5b9710676b192fc9b0fe0cf7970250b1a72b396435deb923f3670a58f
 -F src/shell.c.in 54b902ab7d840f60ddfabc13124c85d4980342c88aff7679f2cc25f67c21ade7
 -F src/sqlite.h.in d669de545f18f2f01362de02e309cd7f15185958c71bac8f53cd5438b46d2bea
++F src/select.c bf9185f40cbb98a1342c0149f66dff3fbadf262081305519927523b4ec7b876e
 +F src/shell.c.in 29309f2ab656c8817fbc3b7910b9af8464557b91cba75277a03669399c8e2730
 +F src/sqlite.h.in 469aed42e75193b7f5d88d812befa961c04746869475f96fcf434c9f67079f66
  F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
  F src/sqlite3ext.h 83a3c4ce93d650bedfd1aa558cb85a516bd6d094445ee989740827d0d944368d
- F src/sqliteInt.h 7fbd839f07d873a877375138f2681453232e2e2de8f48be65888e295cd05ced3
 -F src/sqliteInt.h 3e354edb3090e31b51593e21ae54c541330987cfd87d69d86adf6e4d186408ca
++F src/sqliteInt.h 4b98a37f27033ca887f2027f9a60636625fb2a4a9ef1b96c17f0db8fd951891f
  F src/sqliteLimit.h 1513bfb7b20378aa0041e7022d04acb73525de35b80b252f1b83fedb4de6a76b
  F src/status.c 46e7aec11f79dad50965a5ca5fa9de009f7d6bde08be2156f1538a0a296d4d0e
  F src/table.c b46ad567748f24a326d9de40e5b9659f96ffff34
@@@ -1727,7 -1727,10 +1727,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 260fc696538b195e8decabaab46771f664fb829b539efa86fb0b8170db01fa0a
- R 9efc9c5b7f70976e1122ef5263d6cddb
 -P 08665a9e2e50a0a1e62529884cf65f8090debe89a306a3904b53268729ab5ad5
 -R 4667c6ddbdfa5ae61d508da23236434a
 -T *branch * faster-order-by-limit
 -T *sym-faster-order-by-limit *
 -T -sym-trunk *
++P 81ab5e0d106fb9f2de80d17c8167d8542c6721b8d7ec69c43e1571c2dcadeddd ce4ef46058f4aaea6623a41255a2e4b69bb24f16a287391df48f6bacdb4c4989
++R df0ac85de3cdeeeca99ef241c3f826a6
++T +closed ce4ef46058f4aaea6623a41255a2e4b69bb24f16a287391df48f6bacdb4c4989
  U drh
- Z f48c0146f4c18019bae878d6a3510a09
 -Z 8bfebc9ee79b135d90912539998ba9b3
++Z e934c97462a3a7876abf79aae9b0d67e
diff --cc manifest.uuid
index dbcc29393ed48411da91e5c5b88bac0461d8077f,29819001239b660c3f5ea1bdc35cf66a62272bf1..7d6d9e2a0060a171c50f3db471a78d107de85f58
@@@ -1,1 -1,1 +1,1 @@@
- 81ab5e0d106fb9f2de80d17c8167d8542c6721b8d7ec69c43e1571c2dcadeddd
 -ce4ef46058f4aaea6623a41255a2e4b69bb24f16a287391df48f6bacdb4c4989
++c381f0ea57002a264fd958b28e4921cb9c9e73a10fb592f6bb64e6bc9bd16d39
diff --cc src/select.c
Simple merge
diff --cc src/sqliteInt.h
Simple merge