]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Use a loop to avoid recursion in the heightOfSelect() function.
authordan <dan@noemail.net>
Thu, 18 Jan 2018 19:00:54 +0000 (19:00 +0000)
committerdan <dan@noemail.net>
Thu, 18 Jan 2018 19:00:54 +0000 (19:00 +0000)
FossilOrigin-Name: 86de43595cb2ecebd680fe654affcfb9fbcfff6575c893293ae298124a357bfe

manifest
manifest.uuid
src/expr.c

index 6d304786715ad02663dfc72f5c085b61545bcf5b..46d6df3929831985f8a3583c6cfa4f31f5893e0d 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Check\sfor\sboth\szlib.h\sand\s-lz\sbefore\senabling\szlib\ssupport\sin\sthe\samalgamation\nconfigure\sscript.
-D 2018-01-18T17:46:08.702
+C Use\sa\sloop\sto\savoid\srecursion\sin\sthe\sheightOfSelect()\sfunction.
+D 2018-01-18T19:00:54.739
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F Makefile.in 38f84f301cbef443b2d269f67a74b8cc536469831f70df7c3e912acc04932cc2
@@ -439,7 +439,7 @@ F src/date.c ebe1dc7c8a347117bb02570f1a931c62dd78f4a2b1b516f4837d45b7d6426957
 F src/dbpage.c 8db4c97f630e7d83f884ea75caf1ffd0988c160e9d530194d93721c80821e0f6
 F src/dbstat.c 7a4ba8518b6369ef3600c49cf9c918ad979acba610b2aebef1b656d649b96720
 F src/delete.c 20c8788451dc737a967c87ea53ad43544d617f5b57d32ccce8bd52a0daf9e89b
-F src/expr.c 46a7d73d5579feaee7a7274fac0efea0bbae71dd5b107a569501d89e0280c762
+F src/expr.c 9e06de431c09f144438aa6895ea4d4290fa3c6875bfcc3ba331012ca78deadf0
 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
 F src/fkey.c d617daf66b5515e2b42c1405b2b4984c30ca50fb705ab164271a9bf66c69e331
 F src/func.c bd528d5ed68ce5cbf78a762e3b735fa75009f7197ff07fab07fd771f35ebaa1b
@@ -1700,7 +1700,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 41bfb6b8d61699d09a7e67d2289149abfbb9ce8e75e6ff8560546cad0d2e3f2b
-R 6ef8367290b0a71ac4c6dc7b9f60b8d6
+P 8ecd13a1b38e58d4464585c388c1aa27d1f056dba0db239316623e81d3eb5284
+R 9a4e211a827ab99465bb99e30ad64851
 U dan
-Z 5d28bdaaa8634c1e4ea00e17fbeb8b59
+Z e6a246820ca47f13d6230f5df19d2f34
index 7dab0d2ef49f963de4bb8128973a303487b3d3da..27f50bd5dac2b5ed4c20a49b1514cc4aa742b641 100644 (file)
@@ -1 +1 @@
-8ecd13a1b38e58d4464585c388c1aa27d1f056dba0db239316623e81d3eb5284
\ No newline at end of file
+86de43595cb2ecebd680fe654affcfb9fbcfff6575c893293ae298124a357bfe
\ No newline at end of file
index a63de5d9fc249c0bfc01b8e16bb245648249e016..1b877349238def1741a0f4050d1a288af44838e0 100644 (file)
@@ -658,15 +658,15 @@ static void heightOfExprList(ExprList *p, int *pnHeight){
     }
   }
 }
-static void heightOfSelect(Select *p, int *pnHeight){
-  if( p ){
+static void heightOfSelect(Select *pSelect, int *pnHeight){
+  Select *p;
+  for(p=pSelect; p; p=p->pPrior){
     heightOfExpr(p->pWhere, pnHeight);
     heightOfExpr(p->pHaving, pnHeight);
     heightOfExpr(p->pLimit, pnHeight);
     heightOfExprList(p->pEList, pnHeight);
     heightOfExprList(p->pGroupBy, pnHeight);
     heightOfExprList(p->pOrderBy, pnHeight);
-    heightOfSelect(p->pPrior, pnHeight);
   }
 }