1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-12 13:01:09 +03:00

Remove one unreachable branch and add asserts() to dupedExprStructSize().

New asserts verify that removed branch is unused and that constants that are
ORed together in the output do not overlap.

FossilOrigin-Name: 86ad358b5a7567857f2f998fbb8266b7de9ec87e
This commit is contained in:
drh
2013-09-13 18:15:15 +00:00
parent a496fa7c02
commit aecd80215c
3 changed files with 11 additions and 8 deletions

View File

@@ -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. 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-13T17:47:57.412 D 2013-09-13T18:15:15.913
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 5e41da95d92656a5004b03d3576e8b226858a28e F Makefile.in 5e41da95d92656a5004b03d3576e8b226858a28e
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -172,7 +172,7 @@ F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac
F src/ctime.c ea4b7f3623a0fcb1146e7f245d7410033e86859c F src/ctime.c ea4b7f3623a0fcb1146e7f245d7410033e86859c
F src/date.c 067a81c9942c497aafd2c260e13add8a7d0c7dd4 F src/date.c 067a81c9942c497aafd2c260e13add8a7d0c7dd4
F src/delete.c 2dc64ca360b7d7da481183ea920a813a0c203c97 F src/delete.c 2dc64ca360b7d7da481183ea920a813a0c203c97
F src/expr.c 58ffffbb83d2bbf59c6a7a080cf6622a1ddbf264 F src/expr.c 1017f482217e093ecdaca91e8666681e83733252
F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
F src/fkey.c be866cd8c4fa6cae98ba33109578fd1a3311ee5b F src/fkey.c be866cd8c4fa6cae98ba33109578fd1a3311ee5b
F src/func.c 2c47b65e6e00e3e9374942f28254faf8adafe398 F src/func.c 2c47b65e6e00e3e9374942f28254faf8adafe398
@@ -1114,7 +1114,7 @@ F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
F tool/wherecosttest.c f407dc4c79786982a475261866a161cd007947ae F tool/wherecosttest.c f407dc4c79786982a475261866a161cd007947ae
F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
P ca05205050752b5d5f583421b7813fba62f5085c 695aee46e9bdf15159ab52db7f522b30c91aed0f P bc446449a19171c0fa0681973b06bc80d3c0517f
R 980cfef5e90de5b8a20e59163235b5ab R 2a7e8895716b04ac9288946bb94fe77e
U drh U drh
Z 7155733e1fc2738b458062a357e01575 Z e8d5908c10ef1b110b03b09629cf2011

View File

@@ -1 +1 @@
bc446449a19171c0fa0681973b06bc80d3c0517f 86ad358b5a7567857f2f998fbb8266b7de9ec87e

View File

@@ -739,6 +739,8 @@ static int exprStructSize(Expr *p){
static int dupedExprStructSize(Expr *p, int flags){ static int dupedExprStructSize(Expr *p, int flags){
int nSize; int nSize;
assert( flags==EXPRDUP_REDUCE || flags==0 ); /* Only one flag value allowed */ 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) ){ if( 0==(flags&EXPRDUP_REDUCE) ){
nSize = EXPR_FULLSIZE; nSize = EXPR_FULLSIZE;
}else{ }else{
@@ -746,9 +748,10 @@ static int dupedExprStructSize(Expr *p, int flags){
assert( !ExprHasProperty(p, EP_FromJoin) ); assert( !ExprHasProperty(p, EP_FromJoin) );
assert( !ExprHasProperty(p, EP_MemToken) ); assert( !ExprHasProperty(p, EP_MemToken) );
assert( !ExprHasProperty(p, EP_NoReduce) ); assert( !ExprHasProperty(p, EP_NoReduce) );
if( p->pLeft || p->pRight || p->x.pList ){ if( p->pLeft || p->x.pList ){
nSize = EXPR_REDUCEDSIZE | EP_Reduced; nSize = EXPR_REDUCEDSIZE | EP_Reduced;
}else{ }else{
assert( p->pRight==0 );
nSize = EXPR_TOKENONLYSIZE | EP_TokenOnly; nSize = EXPR_TOKENONLYSIZE | EP_TokenOnly;
} }
} }