]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Performance improvement: Avoid using sqlite3WalkerSelectExpr() ticket-f09fcd17810f
authordrh <drh@noemail.net>
Thu, 6 Dec 2018 22:12:18 +0000 (22:12 +0000)
committerdrh <drh@noemail.net>
Thu, 6 Dec 2018 22:12:18 +0000 (22:12 +0000)
and sqlite3WalkerSelectFrom() twice, so that the compiler will in-line their
implementation.

FossilOrigin-Name: 2b9258b8b0342330ebe8c22b59ec276fd042a05547d15b24fdf29e16280868de

manifest
manifest.uuid
src/expr.c

index 73d09476761a44ea631458999b2a09561bdb4867..4b2190f9c819d15ba4e73e0a5a2dde6a1ca12838 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sthe\ssqlite3ExprDup()\sroutine\sso\sthat\sit\smakes\scomplete\sduplications\sof\nsubqueries\scontaining\swindow\sfunctions.
-D 2018-12-06T22:04:19.327
+C Performance\simprovement:\s\sAvoid\susing\ssqlite3WalkerSelectExpr()\nand\ssqlite3WalkerSelectFrom()\stwice,\sso\sthat\sthe\scompiler\swill\sin-line\stheir\nimplementation.
+D 2018-12-06T22:12:18.890
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F Makefile.in 68d0ba0f0b533d5bc84c78c13a6ce84ee81183a67014caa47a969e67f028fa1c
@@ -459,7 +459,7 @@ F src/date.c ebe1dc7c8a347117bb02570f1a931c62dd78f4a2b1b516f4837d45b7d6426957
 F src/dbpage.c 135eb3b5e74f9ef74bde5cec2571192c90c86984fa534c88bf4a055076fa19b7
 F src/dbstat.c 3c8bd4e77f0244fd2bd7cc90acf116ad2f8e82d70e536637f35ac2bc99b726f9
 F src/delete.c f7938125847e8ef485448db5fbad29acb2991381a02887dd854c1617315ab9fb
-F src/expr.c 348e3877784d3e3a8b053a6b2e32d00b986fc4420ab484a41bf38e6d31e3b84b
+F src/expr.c b83e2056086e364293ce741509d885d1646a32d62727fe3169b23231c7e4f62f
 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
 F src/fkey.c 972a4ba14296bef2303a0abbad1e3d82bc3c61f9e6ce4e8e9528bdee68748812
 F src/func.c 7c288b4ce309b5a8b8473514b88e1f8e69a80134509a8c0db8e39c858e367e7f
@@ -1782,7 +1782,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P a9a3b532643b5f106509bb29c3e6bc9d41ec5b2da5a0cd4067898f376eb626a2
-R 24973ceb08f0bf40a95db4b2c4fd154c
+P 940174543e87184a0278fcd02e8a096a11510174d9c1d65d21878819790ddaff
+R 49ae07edd1762ce880f34b83601e0b9e
 U drh
-Z f52863a824efeb9518162f1a9aff57dd
+Z bcb12cb10c9264efa5baeffb2512d3d5
index 282cc9c5e5860eef4f7761963defc4cc5f343f31..40b4d9a6d6f7ab191bb9cd98447436aadc77e458 100644 (file)
@@ -1 +1 @@
-940174543e87184a0278fcd02e8a096a11510174d9c1d65d21878819790ddaff
\ No newline at end of file
+2b9258b8b0342330ebe8c22b59ec276fd042a05547d15b24fdf29e16280868de
\ No newline at end of file
index a6bb441d56c5b297124ba98f026987f49005e036..6886d30b2d5a048fd11efd178b191bb1e716590b 100644 (file)
@@ -1345,13 +1345,16 @@ static int gatherSelectWindowsCallback(Walker *pWalker, Expr *pExpr){
   }
   return WRC_Continue;
 }
+static int gatherSelectWindowsSelectCallback(Walker *pWalker, Select *p){
+  return p==pWalker->u.pSelect ? WRC_Continue : WRC_Prune;
+}
 static void gatherSelectWindows(Select *p){
   Walker w;
   w.xExprCallback = gatherSelectWindowsCallback;
-  w.xSelectCallback = 0;
+  w.xSelectCallback = gatherSelectWindowsSelectCallback;
+  w.xSelectCallback2 = 0;
   w.u.pSelect = p;
-  sqlite3WalkSelectExpr(&w, p);
-  sqlite3WalkSelectFrom(&w, p);
+  sqlite3WalkSelect(&w, p);
 }
 #endif