Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add assert() statements to sqlite3ExprDelete() that prove various symmetry properties of the Expr object that might be exploited to make the Expr object smaller and faster. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | expr-simplify |
Files: | files | file ages | folders |
SHA3-256: |
81f25d5c84e4d2d0cd3c6a7c105c7c93 |
User & Date: | drh 2018-07-28 01:30:43.176 |
Context
2018-09-18
| ||
18:08 | Merge all recent trunk enhancements. (check-in: 655f065404 user: drh tags: expr-simplify) | |
2018-07-28
| ||
13:37 | An early attempt at refactoring Expr (Closed-Leaf check-in: fc90a53de7 user: drh tags: expr-simplify-branch1) | |
01:30 | Add assert() statements to sqlite3ExprDelete() that prove various symmetry properties of the Expr object that might be exploited to make the Expr object smaller and faster. (check-in: 81f25d5c84 user: drh tags: expr-simplify) | |
2018-07-27
| ||
23:33 | Improvements to the parser to increase coverage. Fix the parser so that at least one expresssion is required after PARTITION BY and within the list of expressions on VALUES(). (check-in: 02204f8b24 user: drh tags: trunk) | |
Changes
Changes to src/expr.c.
︙ | ︙ | |||
1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 | assert( !ExprHasProperty(p, EP_IntValue) || p->u.iValue>=0 ); #ifdef SQLITE_DEBUG if( ExprHasProperty(p, EP_Leaf) && !ExprHasProperty(p, EP_TokenOnly) ){ assert( p->pLeft==0 ); assert( p->pRight==0 ); assert( 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 */ assert( p->x.pList==0 || p->pRight==0 ); if( p->pLeft && p->op!=TK_SELECT_COLUMN ) sqlite3ExprDeleteNN(db, p->pLeft); if( p->pRight ){ sqlite3ExprDeleteNN(db, p->pRight); | > > > > > > > > > > > | 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 | assert( !ExprHasProperty(p, EP_IntValue) || p->u.iValue>=0 ); #ifdef SQLITE_DEBUG if( ExprHasProperty(p, EP_Leaf) && !ExprHasProperty(p, EP_TokenOnly) ){ assert( p->pLeft==0 ); 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 */ assert( p->x.pList==0 || p->pRight==0 ); if( p->pLeft && p->op!=TK_SELECT_COLUMN ) sqlite3ExprDeleteNN(db, p->pLeft); if( p->pRight ){ sqlite3ExprDeleteNN(db, p->pRight); |
︙ | ︙ |