Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Improvements to commits. No code changes. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | vector-compare |
Files: | files | file ages | folders |
SHA1: |
18f5a3bee4f870be4644a6042a20081c |
User & Date: | drh 2016-08-13 13:03:46.411 |
Context
2016-08-13
| ||
14:17 | Remove an unnecessary stack variable from sqlite3VdbeExec(). (Closed-Leaf check-in: c54bd9c82d user: drh tags: vector-compare) | |
13:03 | Improvements to commits. No code changes. (check-in: 18f5a3bee4 user: drh tags: vector-compare) | |
12:37 | Fix to the vector less-than operator. All legacy tests passing now. (check-in: ec70a67ebc user: drh tags: vector-compare) | |
Changes
Changes to src/vdbe.c.
︙ | ︙ | |||
2000 2001 2002 2003 2004 2005 2006 | assert( pOp->opcode==OP_Eq || pOp->opcode==OP_Ne ); assert( (flags1 & MEM_Cleared)==0 ); assert( (pOp->p5 & SQLITE_JUMPIFNULL)==0 ); if( (flags1&MEM_Null)!=0 && (flags3&MEM_Null)!=0 && (flags3&MEM_Cleared)==0 ){ | | | | | 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 | assert( pOp->opcode==OP_Eq || pOp->opcode==OP_Ne ); assert( (flags1 & MEM_Cleared)==0 ); assert( (pOp->p5 & SQLITE_JUMPIFNULL)==0 ); if( (flags1&MEM_Null)!=0 && (flags3&MEM_Null)!=0 && (flags3&MEM_Cleared)==0 ){ cmpRes = 0; /* Operands are equal */ }else{ cmpRes = 1; /* Operands are not equal */ } }else{ /* SQLITE_NULLEQ is clear and at least one operand is NULL, ** then the result is always NULL. ** The jump is taken if the SQLITE_JUMPIFNULL bit is set. */ cmpRes = 1; /* Operands are not equal */ if( pOp->p5 & SQLITE_STOREP2 ){ pOut = &aMem[pOp->p2]; memAboutToChange(p, pOut); MemSetTypeFlag(pOut, MEM_Null); REGISTER_TRACE(pOp->p2, pOut); }else{ VdbeBranchTaken(2,3); |
︙ | ︙ | |||
2104 2105 2106 2107 2108 2109 2110 | } break; } /* Opcode: ElseNotEq * P2 * * * ** ** This opcode must immediately follow an Lt or Gt comparison operator. | | > | | | 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 | } break; } /* Opcode: ElseNotEq * P2 * * * ** ** This opcode must immediately follow an Lt or Gt comparison operator. ** If the operands in that previous comparison had been used with an Eq ** operator and if the result of that Eq would be NULL or false (0), then ** then jump to P2. If the result of comparing the two previous operands ** using Eq would have been true (1), then fall through. */ case OP_ElseNotEq: { /* same as TK_ESCAPE, jump */ assert( pOp>aOp ); assert( pOp[-1].opcode==OP_Lt || pOp[-1].opcode==OP_Gt ); VdbeBranchTaken(cmpRes!=0, 2); if( cmpRes!=0 ) goto jump_to_p2; break; |
︙ | ︙ |