diff --git a/manifest b/manifest index 6f7f939043..1591bc38d2 100644 --- 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 diff --git a/manifest.uuid b/manifest.uuid index 6c1b6e74c3..d72e7d2f56 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -bc446449a19171c0fa0681973b06bc80d3c0517f \ No newline at end of file +86ad358b5a7567857f2f998fbb8266b7de9ec87e \ No newline at end of file diff --git a/src/expr.c b/src/expr.c index da8499a608..b8b0eb7313 100644 --- a/src/expr.c +++ b/src/expr.c @@ -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; } }