/ Check-in [9805f6f8]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Changes so that some assert()s in the virtual table query planner are correct even following an OOM error.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 9805f6f85211dcb5a0ab3ceca204e6f2e48530ea
User & Date: drh 2016-03-08 00:39:58
Context
2016-03-08
01:11
Add a NEVER() to the code generator. Change the parameter name "mExtra" to "mPrereq" in the query planner, to more closely reflect its meaning. check-in: 721ae51e user: drh tags: trunk
00:39
Changes so that some assert()s in the virtual table query planner are correct even following an OOM error. check-in: 9805f6f8 user: drh tags: trunk
2016-03-07
20:14
Update fts3/4 so that the 'merge=X,0' command merges X pages from all segments of the first level in the fts index that contains 2 or more segments. check-in: cddf69db user: dan tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to src/wherecode.c.

   911    911           VdbeOp *pOp;     /* Opcode to access the value of the IN constraint */
   912    912   
   913    913           /* Reload the constraint value into reg[iReg+j+2].  The same value
   914    914           ** was loaded into the same register prior to the OP_VFilter, but
   915    915           ** the xFilter implementation might have changed the datatype or
   916    916           ** encoding of the value in the register, so it *must* be reloaded. */
   917    917           assert( pLevel->u.in.aInLoop!=0 || db->mallocFailed );
   918         -        if( pLevel->u.in.aInLoop!=0 ){
          918  +        if( !db->mallocFailed ){
   919    919             assert( iIn>0 );
   920    920             pOp = sqlite3VdbeGetOp(v, pLevel->u.in.aInLoop[--iIn].addrInTop);
   921    921             assert( pOp->opcode==OP_Column || pOp->opcode==OP_Rowid );
   922    922             assert( pOp->opcode!=OP_Column || pOp->p3==iReg+j+2 );
   923    923             assert( pOp->opcode!=OP_Rowid || pOp->p2==iReg+j+2 );
   924    924             testcase( pOp->opcode==OP_Rowid );
   925    925             sqlite3VdbeAddOp3(v, pOp->opcode, pOp->p1, pOp->p2, pOp->p3);