-C Improvements\sto\sthe\sparser\sto\sincrease\scoverage.\s\sFix\sthe\sparser\sso\sthat\nat\sleast\sone\sexpresssion\sis\srequired\safter\sPARTITION\sBY\sand\swithin\sthe\nlist\sof\sexpressions\son\sVALUES().
-D 2018-07-27T23:33:16.472
+C Add\sassert()\sstatements\sto\ssqlite3ExprDelete()\sthat\sprove\svarious\ssymmetry\nproperties\sof\sthe\sExpr\sobject\sthat\smight\sbe\sexploited\sto\smake\sthe\sExpr\sobject\nsmaller\sand\sfaster.
+D 2018-07-28T01:30:43.176
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F Makefile.in 0a3a6c81e6fcb969ff9106e882f0a08547014ba463cb6beca4c4efaecc924ee6
F src/dbpage.c 4aa7f26198934dbd002e69418220eae3dbc71b010bbac32bd78faf86b52ce6c3
F src/dbstat.c edabb82611143727511a45ca0859b8cd037851ebe756ae3db289859dd18b6f91
F src/delete.c 4c8c7604277a2041647f96b78f4b9a47858e9217e4fb333d35e7b5ab32c5b57f
-F src/expr.c 907d7de6cac23e55e32f22133a4fa8ca1558d7fe7c9a37e01feebb1106416fe7
+F src/expr.c eeb14df211a01166a107dee3af221bff2145391cead4189bfed7e21839decbfa
F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
F src/fkey.c f59253c0be4b1e9dfcb073b6d6d6ab83090ae50c08b5c113b76013c4b157cd6a
F src/func.c 7c288b4ce309b5a8b8473514b88e1f8e69a80134509a8c0db8e39c858e367e7f
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 7efdba2bbc8547ee9292a1bbd1e61d38b40d7aabc0860ceba188bdec539f5114
-R 471a9deda4100ce593be82a25e7c7930
+P 02204f8b246c868846f39bd44f2e3bc0fab0275aa09ef3a0e5a8e3d58f484ca8
+R 310262b835cd592d636879692e903d61
+T *branch * expr-simplify
+T *sym-expr-simplify *
+T -sym-trunk *
U drh
-Z 49ba2c803564fb9ad5a228c53691471f
+Z 2ccd694ba875056547f326b1b678ff15
assert( p->pRight==0 );
assert( p->x.pSelect==0 );
}
+ if( !ExprHasProperty(p, EP_TokenOnly) ){
+ assert( p->op!=TK_FUNCTION || p->pLeft==0 );
+ assert( p->pRight==0 || p->x.pSelect==0 );
+ }
+ if( !ExprHasProperty(p, (EP_TokenOnly|EP_Reduced)) ){
+ assert( p->pWin==0 || p->pLeft==0 );
+ assert( p->pWin==0 || p->pTab==0 );
+ assert( p->pWin==0 || p->op==TK_FUNCTION );
+ assert( p->pWin==0 || !ExprHasProperty(p, EP_xIsSelect) );
+ assert( p->pTab==0 || (p->pRight==0 && p->x.pSelect==0) );
+ }
#endif
if( !ExprHasProperty(p, (EP_TokenOnly|EP_Leaf)) ){
/* The Expr.x union is never used at the same time as Expr.pRight */