]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Performance optimization in sqlite3ExprAssignVarNumber().
authordrh <drh@noemail.net>
Tue, 31 Jan 2017 03:52:34 +0000 (03:52 +0000)
committerdrh <drh@noemail.net>
Tue, 31 Jan 2017 03:52:34 +0000 (03:52 +0000)
FossilOrigin-Name: 5987ca1ff94ed3c1666f783bb15b16158aa7e1db

manifest
manifest.uuid
src/expr.c

index 229623bcc51eb95c8be29000cd9d579178366455..96a31247b7e4258de744444b4fe1eb1f2deb87fe 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sbuilding\swith\sSQLITE_OMIT_FOREIGN_KEY\sdefined.
-D 2017-01-30T11:38:19.468
+C Performance\soptimization\sin\ssqlite3ExprAssignVarNumber().
+D 2017-01-31T03:52:34.839
 F Makefile.in 5f415e7867296d678fed2e6779aea10c1318b4bc
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc b8ca53350ae545e3562403d5da2a69cec79308da
@@ -344,7 +344,7 @@ F src/ctime.c 9f2296a4e5d26ebf0e0d95a0af4628f1ea694e7a
 F src/date.c dc3f1391d9297f8c748132813aaffcb117090d6e
 F src/dbstat.c 19ee7a4e89979d4df8e44cfac7a8f905ec89b77d
 F src/delete.c 0d9d5549d42e79ce4d82ff1db1e6c81e36d2f67c
-F src/expr.c f06f41e5e5daca10fb090e70a2502dcc0dbc992b
+F src/expr.c 27ac552489a34fc85202084dda32d0a2a0664bfb
 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
 F src/fkey.c 2e9aabe1aee76273aff8a84ee92c464e095400ae
 F src/func.c c67273e1ec08abbdcc14c189892a3ff6eeece86b
@@ -1548,7 +1548,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 4fe879d4b5da6ae0688a7a99004683a234966597
-R c0ed5c24fdff676195cd77401e89700b
-U dan
-Z 6d1b138d17ccacee0c622f2ed331ca89
+P e93d2c49a44af994ff10cc9cc7eafacd5a4f73ab
+R e1972f457267c7c1c09dde68002ccdbd
+U drh
+Z 4723986ca78be7a36581ca020c177062
index eec33fc0a4a047270b6fe43386b3f4d6db4c1687..5663814ec33f66669abecf185c77499f202c598c 100644 (file)
@@ -1 +1 @@
-e93d2c49a44af994ff10cc9cc7eafacd5a4f73ab
\ No newline at end of file
+5987ca1ff94ed3c1666f783bb15b16158aa7e1db
\ No newline at end of file
index 154d078ff7a74c7c80d0b2ad1f154bfe449a1a1a..9bf893676551efbfc67b428c2cdd35191e176755 100644 (file)
@@ -967,7 +967,13 @@ void sqlite3ExprAssignVarNumber(Parse *pParse, Expr *pExpr, u32 n){
       /* Wildcard of the form "?nnn".  Convert "nnn" to an integer and
       ** use it as the variable number */
       i64 i;
-      int bOk = 0==sqlite3Atoi64(&z[1], &i, n-1, SQLITE_UTF8);
+      int bOk;
+      if( n==2 ){ /*OPTIMIZATION-IF-TRUE*/
+        i = z[1]-'0';  /* The common case of ?N for a single digit N */
+        bOk = 1;
+      }else{
+        bOk = 0==sqlite3Atoi64(&z[1], &i, n-1, SQLITE_UTF8);
+      }
       x = (ynVar)i;
       testcase( i==0 );
       testcase( i==1 );