SQLite

Check-in [d5ea75a0]
Login

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

Overview
Comment:Do not allow VACUUM to resize the page_size to 512 if the reserve_byte value is 31 or greater. forum post e807885dc5.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: d5ea75a09d4bf61262cead2604e35d8331b727c504807592d09f5d9e01ce794a
User & Date: drh 2021-01-21 21:36:25
Context
2021-01-22
21:23
Enhance the query planner to enable it to use an index for IS NOT NULL constraints, even if STAT4 is not enabled. (check-in: 7b2a7c73 user: drh tags: trunk)
20:28
Merge fixes from trunk. Omit a conditional in sqlite3IsLikeFunction() that was made unreachable by this enhancement. (Closed-Leaf check-in: 0b42f9eb user: drh tags: isnotnull-opt)
2021-01-21
21:36
Do not allow VACUUM to resize the page_size to 512 if the reserve_byte value is 31 or greater. forum post e807885dc5. (check-in: d5ea75a0 user: drh tags: trunk)
16:02
Fix a problem caused by using an SQL variable in an OVER clause within a trigger program. Edit: The problem appears to have existed ever since window functions landed on trunk (check-in [17198a1206e2fbc9]) on 2018-06-30, version 3.25.0. (check-in: 02264ab6 user: dan tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/btree.c.
2897
2898
2899
2900
2901
2902
2903

2904
2905
2906
2907
2908
2909
2910
    return SQLITE_READONLY;
  }
  assert( nReserve>=0 && nReserve<=255 );
  if( pageSize>=512 && pageSize<=SQLITE_MAX_PAGE_SIZE &&
        ((pageSize-1)&pageSize)==0 ){
    assert( (pageSize & 7)==0 );
    assert( !pBt->pCursor );

    pBt->pageSize = (u32)pageSize;
    freeTempSpace(pBt);
  }
  rc = sqlite3PagerSetPagesize(pBt->pPager, &pBt->pageSize, nReserve);
  pBt->usableSize = pBt->pageSize - (u16)nReserve;
  if( iFix ) pBt->btsFlags |= BTS_PAGESIZE_FIXED;
  sqlite3BtreeLeave(p);







>







2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
    return SQLITE_READONLY;
  }
  assert( nReserve>=0 && nReserve<=255 );
  if( pageSize>=512 && pageSize<=SQLITE_MAX_PAGE_SIZE &&
        ((pageSize-1)&pageSize)==0 ){
    assert( (pageSize & 7)==0 );
    assert( !pBt->pCursor );
    if( nReserve>32 && pageSize==512 ) pageSize = 1024;
    pBt->pageSize = (u32)pageSize;
    freeTempSpace(pBt);
  }
  rc = sqlite3PagerSetPagesize(pBt->pPager, &pBt->pageSize, nReserve);
  pBt->usableSize = pBt->pageSize - (u16)nReserve;
  if( iFix ) pBt->btsFlags |= BTS_PAGESIZE_FIXED;
  sqlite3BtreeLeave(p);