Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add a comment to help clarify the EP_FromJoin hack in exprCodeBetween(). |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
6df7c5747e0247b14bf015ef4320ddcf |
User & Date: | drh 2016-11-25 14:30:42.666 |
Context
2016-11-25
| ||
15:11 | Performance improvement in sqlite3StrAccumFinish() for the common case where no memory allocation is required. (check-in: b6acf5d4ef user: drh tags: trunk) | |
14:30 | Add a comment to help clarify the EP_FromJoin hack in exprCodeBetween(). (check-in: 6df7c5747e user: drh tags: trunk) | |
2016-11-23
| ||
23:18 | Fix the error message for invalid ".mode" arguments in the command-line shell, so that it mentions the new "quote" mode. (check-in: 9a603a18ef user: drh tags: trunk) | |
Changes
Changes to src/expr.c.
︙ | ︙ | |||
4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 | compRight.op = TK_LE; compRight.pLeft = &exprX; compRight.pRight = pExpr->x.pList->a[1].pExpr; exprToRegister(&exprX, exprCodeVector(pParse, &exprX, ®Free1)); if( xJump ){ xJump(pParse, &exprAnd, dest, jumpIfNull); }else{ exprX.flags |= EP_FromJoin; sqlite3ExprCodeTarget(pParse, &exprAnd, dest); } sqlite3ReleaseTempReg(pParse, regFree1); /* Ensure adequate test coverage */ testcase( xJump==sqlite3ExprIfTrue && jumpIfNull==0 && regFree1==0 ); | > > > > > | 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 | compRight.op = TK_LE; compRight.pLeft = &exprX; compRight.pRight = pExpr->x.pList->a[1].pExpr; exprToRegister(&exprX, exprCodeVector(pParse, &exprX, ®Free1)); if( xJump ){ xJump(pParse, &exprAnd, dest, jumpIfNull); }else{ /* Mark the expression is being from the ON or USING clause of a join ** so that the sqlite3ExprCodeTarget() routine will not attempt to move ** it into the Parse.pConstExpr list. We should use a new bit for this, ** for clarity, but we are out of bits in the Expr.flags field so we ** have to reuse the EP_FromJoin bit. Bummer. */ exprX.flags |= EP_FromJoin; sqlite3ExprCodeTarget(pParse, &exprAnd, dest); } sqlite3ReleaseTempReg(pParse, regFree1); /* Ensure adequate test coverage */ testcase( xJump==sqlite3ExprIfTrue && jumpIfNull==0 && regFree1==0 ); |
︙ | ︙ |