/ Check-in [2acbeac1]
Login

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

Overview
Comment:Update the sessions branch for version 3.8.6.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | sessions
Files: files | file ages | folders
SHA1: 2acbeac1fd9b9feb26e1c24d4ae50ce79f17a3f8
User & Date: drh 2014-08-15 15:10:46
Context
2014-08-15
20:15
Begin adding the sqlite3session_patchset() API to the sessions extension. This is an interim commit. check-in: 60a4565a user: dan tags: sessions
15:10
Update the sessions branch for version 3.8.6. check-in: 2acbeac1 user: drh tags: sessions
11:46
Version 3.8.6 check-in: 9491ba7d user: drh tags: trunk, release, version-3.8.6
2014-08-13
14:43
Merge the trunk changes for 3.8.6 beta3 into the sessions branch. check-in: d49455d9 user: drh tags: sessions
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to src/btree.c.

  5737   5737     int cellOffset;   /* Address of first cell pointer in data[] */
  5738   5738     u8 *data;         /* The content of the whole page */
  5739   5739     int nSkip = (iChild ? 4 : 0);
  5740   5740   
  5741   5741     if( *pRC ) return;
  5742   5742   
  5743   5743     assert( i>=0 && i<=pPage->nCell+pPage->nOverflow );
  5744         -  assert( pPage->nCell<=MX_CELL(pPage->pBt) && MX_CELL(pPage->pBt)<=10921 );
         5744  +  assert( MX_CELL(pPage->pBt)<=10921 );
         5745  +  assert( pPage->nCell<=MX_CELL(pPage->pBt) || CORRUPT_DB );
  5745   5746     assert( pPage->nOverflow<=ArraySize(pPage->apOvfl) );
  5746   5747     assert( ArraySize(pPage->apOvfl)==ArraySize(pPage->aiOvfl) );
  5747   5748     assert( sqlite3_mutex_held(pPage->pBt->mutex) );
  5748   5749     /* The cell should normally be sized correctly.  However, when moving a
  5749   5750     ** malformed cell from a leaf page to an interior page, if the cell size
  5750   5751     ** wanted to be less than 4 but got rounded up to 4 on the leaf, then size
  5751   5752     ** might be less than 8 (leaf-size + pointer) on the interior node.  Hence

Changes to src/sqlite3.rc.

    31     31    */
    32     32   
    33     33   #if defined(_WIN32)
    34     34   LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
    35     35   #pragma code_page(1252)
    36     36   #endif /* defined(_WIN32) */
    37     37   
           38  +/*
           39  + * Icon
           40  + */
           41  +
           42  +#define IDI_SQLITE 101
           43  +
           44  +IDI_SQLITE ICON "..\\art\\sqlite370.ico"
           45  +
    38     46   /*
    39     47    * Version
    40     48    */
    41     49   
    42     50   VS_VERSION_INFO VERSIONINFO
    43     51     FILEVERSION SQLITE_RESOURCE_VERSION
    44     52     PRODUCTVERSION SQLITE_RESOURCE_VERSION

Changes to src/vdbe.c.

  3537   3537   ** that are used as an unpacked index key. 
  3538   3538   **
  3539   3539   ** Reposition cursor P1 so that  it points to the smallest entry that 
  3540   3540   ** is greater than the key value. If there are no records greater than 
  3541   3541   ** the key and P2 is not zero, then jump to P2.
  3542   3542   **
  3543   3543   ** This opcode leaves the cursor configured to move in forward order,
  3544         -** from the begining toward the end.  In other words, the cursor is
         3544  +** from the beginning toward the end.  In other words, the cursor is
  3545   3545   ** configured to use Next, not Prev.
  3546   3546   **
  3547   3547   ** See also: Found, NotFound, SeekLt, SeekGe, SeekLe
  3548   3548   */
  3549   3549   /* Opcode: SeekLT P1 P2 P3 P4 * 
  3550   3550   ** Synopsis: key=r[P3@P4]
  3551   3551   **
................................................................................
  4605   4605   ** The next use of the Rowid or Column or Next instruction for P1 
  4606   4606   ** will refer to the first entry in the database table or index.
  4607   4607   ** If the table or index is empty and P2>0, then jump immediately to P2.
  4608   4608   ** If P2 is 0 or if the table or index is not empty, fall through
  4609   4609   ** to the following instruction.
  4610   4610   **
  4611   4611   ** This opcode leaves the cursor configured to move in forward order,
  4612         -** from the begining toward the end.  In other words, the cursor is
         4612  +** from the beginning toward the end.  In other words, the cursor is
  4613   4613   ** configured to use Next, not Prev.
  4614   4614   */
  4615   4615   case OP_Rewind: {        /* jump */
  4616   4616     VdbeCursor *pC;
  4617   4617     BtCursor *pCrsr;
  4618   4618     int res;
  4619   4619   

Changes to test/corruptI.test.

    71     71     catchsql { SELECT * FROM r WHERE x >= 10.0 }
    72     72   } {1 {database disk image is malformed}}
    73     73   
    74     74   do_test 2.2 {
    75     75     catchsql { SELECT * FROM r WHERE x >= 10 }
    76     76   } {1 {database disk image is malformed}}
    77     77   
           78  +reset_db
           79  +
           80  +do_execsql_test 3.1 {
           81  +  PRAGMA page_size = 512;
           82  +  CREATE TABLE t1(a INTEGER PRIMARY KEY, b);
           83  +  WITH s(a, b) AS (
           84  +    SELECT 2, 'abcdefghij'
           85  +    UNION ALL
           86  +    SELECT a+2, b FROM s WHERe a < 40
           87  +  )
           88  +  INSERT INTO t1 SELECT * FROM s;
           89  +} {}
           90  +
           91  +do_test 3.2 {
           92  +  hexio_write test.db [expr 512+3] 0054
           93  +  db close
           94  +  sqlite3 db test.db
           95  +  execsql { INSERT INTO t1 VALUES(5, 'klmnopqrst') }
           96  +  execsql { INSERT INTO t1 VALUES(7, 'klmnopqrst') }
           97  +} {}
           98  +
           99  +db close
          100  +sqlite3 db test.db
          101  +do_catchsql_test 3.2 {
          102  +  INSERT INTO t1 VALUES(9, 'klmnopqrst');
          103  +} {1 {database disk image is malformed}}
    78    104   
    79    105   finish_test