SQLite

Check-in [5990a1bdb4]
Login

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

Overview
Comment:Slight size reduction and performance increase in sqlite3VdbeHalt().
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 5990a1bdb4a0734ff23015ada71cf02d0cb1381f
User & Date: drh 2016-09-15 00:32:42.176
References
2016-09-18
16:08
Revise the implementation of OP_Once so that it is smaller, faster, and uses less memory. This also fixes an obscure bug introduced 3 days ago by check-in [5990a1bdb4a073]. (check-in: 6bf5ba10d2 user: drh tags: trunk)
Context
2016-09-15
05:47
Fix a typo in a comment in sqlite.h.in. No changes to code. (check-in: 12df715210 user: dan tags: trunk)
00:32
Slight size reduction and performance increase in sqlite3VdbeHalt(). (check-in: 5990a1bdb4 user: drh tags: trunk)
00:04
Optimization to vdbeRecordCompareInt() makes it slightly smaller and faster. (check-in: 5a2a7712cb user: drh tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/vdbeaux.c.
2565
2566
2567
2568
2569
2570
2571

2572
2573
2574
2575

2576
2577
2578
2579
2580
2581
2582
  **     SQLITE_INTERRUPT
  **
  ** Then the internal cache might have been left in an inconsistent
  ** state.  We need to rollback the statement transaction, if there is
  ** one, or the complete transaction if there is no statement transaction.
  */


  if( db->mallocFailed ){
    p->rc = SQLITE_NOMEM_BKPT;
  }
  if( p->aOnceFlag ) memset(p->aOnceFlag, 0, p->nOnceFlag);

  closeAllCursors(p);
  if( p->magic!=VDBE_MAGIC_RUN ){
    return SQLITE_OK;
  }
  checkActiveVdbeCnt(db);

  /* No commit or rollback needed if the program never started or if the







>


|
|
>







2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
  **     SQLITE_INTERRUPT
  **
  ** Then the internal cache might have been left in an inconsistent
  ** state.  We need to rollback the statement transaction, if there is
  ** one, or the complete transaction if there is no statement transaction.
  */

  assert( p->aOnceFlag!=0 || db->mallocFailed );
  if( db->mallocFailed ){
    p->rc = SQLITE_NOMEM_BKPT;
  }else{
    memset(p->aOnceFlag, 0, p->nOnceFlag);
  }
  closeAllCursors(p);
  if( p->magic!=VDBE_MAGIC_RUN ){
    return SQLITE_OK;
  }
  checkActiveVdbeCnt(db);

  /* No commit or rollback needed if the program never started or if the