]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
More size and speed improvements in the expression name resolver.
authordrh <drh@noemail.net>
Tue, 7 Mar 2017 03:40:48 +0000 (03:40 +0000)
committerdrh <drh@noemail.net>
Tue, 7 Mar 2017 03:40:48 +0000 (03:40 +0000)
FossilOrigin-Name: e0a3d39f51a50420bae97e2bc9a8c01a5b0d3db8

manifest
manifest.uuid
src/resolve.c

index 7a5b12b81fb8683ed97a45c8441ef0f7cd26fbb8..e3370f8805133f783661c5683e6e2de86e8d0f48 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Small\ssize\sreduction\sand\sperformance\sincrease\sin\sthe\sname\sresolver\sroutine\nfor\sexpressions.
-D 2017-03-07T03:25:52.677
+C More\ssize\sand\sspeed\simprovements\sin\sthe\sexpression\sname\sresolver.
+D 2017-03-07T03:40:48.199
 F Makefile.in edb6bcdd37748d2b1c3422ff727c748df7ffe918
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc a89ea37ab5928026001569f056973b9059492fe2
@@ -395,7 +395,7 @@ F src/pragma.h c9c763958fec92b04125571472c9500b351c5f7f
 F src/prepare.c b1140c3d0cf59bc85ace00ce363153041b424b7a
 F src/printf.c 67427bbee66d891fc6f6f5aada857e9cdb368c1c
 F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
-F src/resolve.c 3fd6fdb3666f24bbcc15039031d0b19a5e53c901
+F src/resolve.c 3e518b962d932a997fae373366880fc028c75706
 F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac
 F src/select.c d12f3539f80db38b09015561b569e0eb1c4b6c5f
 F src/shell.c 27d2b31099fd2cd749e44d025ef9b54ca26692cb
@@ -1562,7 +1562,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 73019a8bba29fd07f73559cd00d5346fa822b439
-R 1209553f688221f7757a0938ef904e6c
+P 1a3554e1d71b666325ff377fae5329d79ce5c05f
+R 5deac8a39ddd88b8493847a75a8da44a
 U drh
-Z 582428290c16e3af0ac541cc18ae2bc9
+Z bf228925fa0c3d0f27c143e7173a6889
index 7407f18c83a97309d9beaf268afb72fd976b9671..9f3f1bbd0ad29bdbd15f5f8702d21205d19a5cbf 100644 (file)
@@ -1 +1 @@
-1a3554e1d71b666325ff377fae5329d79ce5c05f
\ No newline at end of file
+e0a3d39f51a50420bae97e2bc9a8c01a5b0d3db8
\ No newline at end of file
index 59157996c551e73adc2381c58ad9ae104c6c084c..6b3caa625a64acf00e234b82a46ed0e1fc1667e1 100644 (file)
@@ -229,7 +229,8 @@ static int lookupName(
   }
 
   /* Start at the inner-most context and move outward until a match is found */
-  while( pNC && cnt==0 ){
+  assert( pNC && cnt==0 );
+  do{
     ExprList *pEList;
     SrcList *pSrcList = pNC->pSrcList;
 
@@ -414,11 +415,11 @@ static int lookupName(
     /* Advance to the next name context.  The loop will exit when either
     ** we have a match (cnt>0) or when we run out of name contexts.
     */
-    if( cnt==0 ){
-      pNC = pNC->pNext;
-      nSubquery++;
-    }
-  }
+    if( cnt ) break;
+    pNC = pNC->pNext;
+    nSubquery++;
+  }while( pNC );
+
 
   /*
   ** If X and Y are NULL (in other words if only the column name Z is