]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Small performance improvement and size reduction in the expression
authordrh <drh@noemail.net>
Wed, 27 May 2020 12:44:28 +0000 (12:44 +0000)
committerdrh <drh@noemail.net>
Wed, 27 May 2020 12:44:28 +0000 (12:44 +0000)
code generator.

FossilOrigin-Name: eeb53e219551d8a05a87f1de9a7cd9af295d08a296f1f435a8509ea1252ccdcc

manifest
manifest.uuid
src/expr.c

index 031fcc653896f5b6eb532b8768db38a0a17af0aa..b3792caebee8743f658e012414224395a868c332 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Change\sa\sdatatype\sfrom\si16\sto\sint\sto\sappease\sConverity\sand\shelp\seliminate\na\sfalse-positive.
-D 2020-05-27T00:02:07.312
+C Small\sperformance\simprovement\sand\ssize\sreduction\sin\sthe\sexpression\ncode\sgenerator.
+D 2020-05-27T12:44:28.447
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -485,7 +485,7 @@ F src/date.c b29b349d277e3d579dcc295b24c0a2caed83fd8f090a9f7cbe6070c0fd662384
 F src/dbpage.c 8a01e865bf8bc6d7b1844b4314443a6436c07c3efe1d488ed89e81719047833a
 F src/dbstat.c 793deaf88a0904f88285d93d6713c636d55ede0ffd9f08d10f4ea825531d367f
 F src/delete.c 88047c8e59878c920fce14582bc1dde4d81157d1ca5ffdf36c2907e6d41996c4
-F src/expr.c 4d5ca337ac207a15e647a1db2356d14282647afc8edca5ff577601048c88ceb4
+F src/expr.c 4750c6b63419eefb24c8a6158b9287dea2a9714b4e6e297e25805505c9f73b6c
 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
 F src/fkey.c 4b575423b0a5d4898b1a7868ce985cf1a8ad91c741c9abbb108ff02536d20f41
 F src/func.c 2333eb4277f55a5efdc12ef754e7d7ec9105d257b2fd00301d23ce1e8fa67dc0
@@ -1866,7 +1866,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 d5cdd57150db914b61b8b9c61c6caac9690fe7b647ee2c003e75b9b62be62752
-R e25f872a3296dd9d4a4620f30c7f47be
+P 5b560ec49041d89c87ea3315d8fc17f7fb0e03a82091934be7373b290183f82e
+R 49a1e2497fcf7da09e39544b00e72660
 U drh
-Z 7d2d03c71662193ff9282263dd7aee70
+Z 247f47fe4deb86e087e29547910405d2
index 1bb3e87e66ba558a0716a1f0d8c9c1a59174cdf9..4069128f8b428e8c8904327b44e564266488148f 100644 (file)
@@ -1 +1 @@
-5b560ec49041d89c87ea3315d8fc17f7fb0e03a82091934be7373b290183f82e
\ No newline at end of file
+eeb53e219551d8a05a87f1de9a7cd9af295d08a296f1f435a8509ea1252ccdcc
\ No newline at end of file
index 663c15e49265afe58495a8ed29a0d8b873b4f211..496177a5c71c7a0a9b20d51ba14e058c646a20d4 100644 (file)
@@ -3797,10 +3797,7 @@ int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target){
   int p5 = 0;
 
   assert( target>0 && target<=pParse->nMem );
-  if( v==0 ){
-    assert( pParse->db->mallocFailed );
-    return 0;
-  }
+  assert( v!=0 );
 
 expr_code_doover:
   if( pExpr==0 ){
@@ -4630,9 +4627,10 @@ void sqlite3ExprCode(Parse *pParse, Expr *pExpr, int target){
 
   assert( pExpr==0 || !ExprHasVVAProperty(pExpr,EP_Immutable) );
   assert( target>0 && target<=pParse->nMem );
-  inReg = sqlite3ExprCodeTarget(pParse, pExpr, target);
   assert( pParse->pVdbe!=0 || pParse->db->mallocFailed );
-  if( inReg!=target && pParse->pVdbe ){
+  if( pParse->pVdbe==0 ) return;
+  inReg = sqlite3ExprCodeTarget(pParse, pExpr, target);
+  if( inReg!=target ){
     u8 op;
     if( ExprHasProperty(pExpr,EP_Subquery) ){
       op = OP_Copy;