/ Check-in [cf569f9f]
Login

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

Overview
Comment:Incorrect version of build.c checked in at [87e5f5a6c60e3] (because I neglected to press the "Save" button on the text editor). There is no change to the logic, just improved presentation.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: cf569f9f2fab1828e4bfced111fd9a6ee23ea8c0
User & Date: drh 2016-04-05 15:59:23
Context
2016-04-05
19:46
Remove superfluous directories from the Makefile clean targets. check-in: 0bf9926c user: mistachkin tags: trunk
17:59
Merge updates from trunk. check-in: 00990020 user: mistachkin tags: winCeLocalTime
17:50
Add the SQLITE_DBCONFIG_REQUIRE_TXN argument for sqlite3_dbconfig() which when set requires an explicit transaction before updating the database. check-in: b7570ac1 user: drh tags: require-write-txn
15:59
Incorrect version of build.c checked in at [87e5f5a6c60e3] (because I neglected to press the "Save" button on the text editor). There is no change to the logic, just improved presentation. check-in: cf569f9f user: drh tags: trunk
14:02
Make sure "0" intended as a NULL pointer is cast to a pointer when used in a varargs functions parameter. check-in: ed128e8b user: drh tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to src/build.c.

  2758   2758     if( v==0 ) return;
  2759   2759     if( memRootPage>=0 ){
  2760   2760       tnum = memRootPage;
  2761   2761     }else{
  2762   2762       tnum = pIndex->tnum;
  2763   2763     }
  2764   2764     pKey = sqlite3KeyInfoOfIndex(pParse, pIndex);
         2765  +  assert( pKey!=0 || db->mallocFailed || pParse->nErr );
  2765   2766   
  2766   2767     /* Open the sorter cursor if we are to use one. */
  2767   2768     iSorter = pParse->nTab++;
  2768   2769     sqlite3VdbeAddOp4(v, OP_SorterOpen, iSorter, 0, pIndex->nKeyCol, (char*)
  2769   2770                       sqlite3KeyInfoRef(pKey), P4_KEYINFO);
  2770   2771   
  2771   2772     /* Open the table. Loop through all rows of the table, inserting index
................................................................................
  2781   2782     sqlite3VdbeJumpHere(v, addr1);
  2782   2783     if( memRootPage<0 ) sqlite3VdbeAddOp2(v, OP_Clear, tnum, iDb);
  2783   2784     sqlite3VdbeAddOp4(v, OP_OpenWrite, iIdx, tnum, iDb, 
  2784   2785                       (char *)pKey, P4_KEYINFO);
  2785   2786     sqlite3VdbeChangeP5(v, OPFLAG_BULKCSR|((memRootPage>=0)?OPFLAG_P2ISREG:0));
  2786   2787   
  2787   2788     addr1 = sqlite3VdbeAddOp2(v, OP_SorterSort, iSorter, 0); VdbeCoverage(v);
  2788         -  assert( pKey!=0 || db->mallocFailed || pParse->nErr );
  2789         -  if( IsUniqueIndex(pIndex) /*&& pKey!=0*/ ){
         2789  +  if( IsUniqueIndex(pIndex) ){
  2790   2790       int j2 = sqlite3VdbeCurrentAddr(v) + 3;
  2791   2791       sqlite3VdbeGoto(v, j2);
  2792   2792       addr2 = sqlite3VdbeCurrentAddr(v);
  2793   2793       sqlite3VdbeAddOp4Int(v, OP_SorterCompare, iSorter, j2, regRecord,
  2794   2794                            pIndex->nKeyCol); VdbeCoverage(v);
  2795   2795       sqlite3UniqueConstraint(pParse, OE_Abort, pIndex);
  2796   2796     }else{