Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | More aggressive use of EP_Leaf on expression nodes, to help prune searches. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
c1a1d68c8219c8072e60af5c46a30849 |
User & Date: | drh 2017-07-07 12:43:57.009 |
Context
2017-07-07
| ||
12:58 | More efficient and compact implementation of walkExpr(). (check-in: 115d4b8339 user: drh tags: trunk) | |
12:43 | More aggressive use of EP_Leaf on expression nodes, to help prune searches. (check-in: c1a1d68c82 user: drh tags: trunk) | |
11:49 | Very slightly smaller and faster sqlite3WalkSelect(). (check-in: 9bc65635b2 user: drh tags: trunk) | |
Changes
Changes to src/expr.c.
︙ | ︙ | |||
740 741 742 743 744 745 746 | pNew = sqlite3DbMallocRawNN(db, sizeof(Expr)+nExtra); if( pNew ){ memset(pNew, 0, sizeof(Expr)); pNew->op = (u8)op; pNew->iAgg = -1; if( pToken ){ if( nExtra==0 ){ | | | 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 | pNew = sqlite3DbMallocRawNN(db, sizeof(Expr)+nExtra); if( pNew ){ memset(pNew, 0, sizeof(Expr)); pNew->op = (u8)op; pNew->iAgg = -1; if( pToken ){ if( nExtra==0 ){ pNew->flags |= EP_IntValue|EP_Leaf; pNew->u.iValue = iValue; }else{ pNew->u.zToken = (char*)&pNew[1]; assert( pToken->z!=0 || pToken->n==0 ); if( pToken->n ) memcpy(pNew->u.zToken, pToken->z, pToken->n); pNew->u.zToken[pToken->n] = 0; if( dequote && sqlite3Isquote(pNew->u.zToken[0]) ){ |
︙ | ︙ |
Changes to src/resolve.c.
︙ | ︙ | |||
474 475 476 477 478 479 480 481 482 483 484 485 486 487 | /* Clean up and return */ sqlite3ExprDelete(db, pExpr->pLeft); pExpr->pLeft = 0; sqlite3ExprDelete(db, pExpr->pRight); pExpr->pRight = 0; pExpr->op = (isTrigger ? TK_TRIGGER : TK_COLUMN); lookupname_end: if( cnt==1 ){ assert( pNC!=0 ); if( !ExprHasProperty(pExpr, EP_Alias) ){ sqlite3AuthRead(pParse, pExpr, pSchema, pNC->pSrcList); } /* Increment the nRef value on all name contexts from TopNC up to | > | 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 | /* Clean up and return */ sqlite3ExprDelete(db, pExpr->pLeft); pExpr->pLeft = 0; sqlite3ExprDelete(db, pExpr->pRight); pExpr->pRight = 0; pExpr->op = (isTrigger ? TK_TRIGGER : TK_COLUMN); ExprSetProperty(pExpr, EP_Leaf); lookupname_end: if( cnt==1 ){ assert( pNC!=0 ); if( !ExprHasProperty(pExpr, EP_Alias) ){ sqlite3AuthRead(pParse, pExpr, pSchema, pNC->pSrcList); } /* Increment the nRef value on all name contexts from TopNC up to |
︙ | ︙ |