]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Remove one unreachable branch and add asserts() to dupedExprStructSize().
authordrh <drh@noemail.net>
Fri, 13 Sep 2013 18:15:15 +0000 (18:15 +0000)
committerdrh <drh@noemail.net>
Fri, 13 Sep 2013 18:15:15 +0000 (18:15 +0000)
New asserts verify that removed branch is unused and that constants that are
ORed together in the output do not overlap.

FossilOrigin-Name: 86ad358b5a7567857f2f998fbb8266b7de9ec87e

manifest
manifest.uuid
src/expr.c

index 6f7f939043a7a2e34601d81ad1cf79239293add6..1591bc38d260473cf52d0e7e24dd2ca2d7fe1177 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Adjust\sthe\squery\splanner\sto\stake\sinto\saccount\sWHERE\sclause\sterms\sthat\sdo\snot\ndrive\sindices.\s\sAdd\sthe\sunlikely()\sand\slikelihood()\sfunctions\sused\sto\sgive\nhints\sto\sthe\squery\splanner\sabout\sthe\sselectivity\sof\sWHERE\sclause\sterms.
-D 2013-09-13T17:47:57.412
+C Remove\sone\sunreachable\sbranch\sand\sadd\sasserts()\sto\sdupedExprStructSize().\nNew\sasserts\sverify\sthat\sremoved\sbranch\sis\sunused\sand\sthat\sconstants\sthat\sare\nORed\stogether\sin\sthe\soutput\sdo\snot\soverlap.
+D 2013-09-13T18:15:15.913
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 5e41da95d92656a5004b03d3576e8b226858a28e
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -172,7 +172,7 @@ F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac
 F src/ctime.c ea4b7f3623a0fcb1146e7f245d7410033e86859c
 F src/date.c 067a81c9942c497aafd2c260e13add8a7d0c7dd4
 F src/delete.c 2dc64ca360b7d7da481183ea920a813a0c203c97
-F src/expr.c 58ffffbb83d2bbf59c6a7a080cf6622a1ddbf264
+F src/expr.c 1017f482217e093ecdaca91e8666681e83733252
 F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
 F src/fkey.c be866cd8c4fa6cae98ba33109578fd1a3311ee5b
 F src/func.c 2c47b65e6e00e3e9374942f28254faf8adafe398
@@ -1114,7 +1114,7 @@ F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
 F tool/wherecosttest.c f407dc4c79786982a475261866a161cd007947ae
 F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
-P ca05205050752b5d5f583421b7813fba62f5085c 695aee46e9bdf15159ab52db7f522b30c91aed0f
-R 980cfef5e90de5b8a20e59163235b5ab
+P bc446449a19171c0fa0681973b06bc80d3c0517f
+R 2a7e8895716b04ac9288946bb94fe77e
 U drh
-Z 7155733e1fc2738b458062a357e01575
+Z e8d5908c10ef1b110b03b09629cf2011
index 6c1b6e74c33522d22e8cd29b3b4f117d5f5e21ed..d72e7d2f560386d74c63cefca9d1886ae6c82f0a 100644 (file)
@@ -1 +1 @@
-bc446449a19171c0fa0681973b06bc80d3c0517f
\ No newline at end of file
+86ad358b5a7567857f2f998fbb8266b7de9ec87e
\ No newline at end of file
index da8499a60824905e94c1c122f4f033e5a2086f36..b8b0eb731358c768e7568334d868f364ef4ee6d0 100644 (file)
@@ -739,6 +739,8 @@ static int exprStructSize(Expr *p){
 static int dupedExprStructSize(Expr *p, int flags){
   int nSize;
   assert( flags==EXPRDUP_REDUCE || flags==0 ); /* Only one flag value allowed */
+  assert( EXPR_FULLSIZE<=0xfff );
+  assert( (0xfff & (EP_Reduced|EP_TokenOnly))==0 );
   if( 0==(flags&EXPRDUP_REDUCE) ){
     nSize = EXPR_FULLSIZE;
   }else{
@@ -746,9 +748,10 @@ static int dupedExprStructSize(Expr *p, int flags){
     assert( !ExprHasProperty(p, EP_FromJoin) ); 
     assert( !ExprHasProperty(p, EP_MemToken) );
     assert( !ExprHasProperty(p, EP_NoReduce) );
-    if( p->pLeft || p->pRight || p->x.pList ){
+    if( p->pLeft || p->x.pList ){
       nSize = EXPR_REDUCEDSIZE | EP_Reduced;
     }else{
+      assert( p->pRight==0 );
       nSize = EXPR_TOKENONLYSIZE | EP_TokenOnly;
     }
   }