/ Check-in [fd2bbcf8]
Login

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

Overview
Comment:Fix an assert() so that it works correctly with SQLITE_TEMP_STORE=3. (CVS 6167)
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: fd2bbcf8d8d03eecd4614636ae787331a8e99816
User & Date: drh 2009-01-11 17:00:02
Context
2009-01-11
18:24
Sometimes a single byte is written to the main database file. Make sure that journaltest knows this. (CVS 6168) check-in: e0af5a43 user: drh tags: trunk
17:00
Fix an assert() so that it works correctly with SQLITE_TEMP_STORE=3. (CVS 6167) check-in: fd2bbcf8 user: drh tags: trunk
05:54
Fix jrnlmode.test so that it does not run tests involving in-memory journals during the "journaltest" permutation. (CVS 6166) check-in: b47ddefc user: danielk1977 tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/pager.c.

14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
....
4164
4165
4166
4167
4168
4169
4170
4171

4172

4173
4174
4175
4176
4177
4178
4179
** The pager is used to access a database disk file.  It implements
** atomic commit and rollback through the use of a journal file that
** is separate from the database file.  The pager also implements file
** locking to prevent two processes from writing the same database
** file simultaneously, or one process from reading the database while
** another is writing.
**
** @(#) $Id: pager.c,v 1.547 2009/01/10 17:57:49 danielk1977 Exp $
*/
#ifndef SQLITE_OMIT_DISKIO
#include "sqliteInt.h"

/*
** Macros for troubleshooting.  Normally turned off
*/
................................................................................
int sqlite3PagerOpenSavepoint(Pager *pPager, int nSavepoint){
  int rc = SQLITE_OK;

  if( nSavepoint>pPager->nSavepoint && pPager->useJournal ){
    int ii;
    PagerSavepoint *aNew;

    /* Either the sub-journal is open or there are no active savepoints. */

    assert( pPager->nSavepoint==0 || pPager->sjfd->pMethods );


    /* Grow the Pager.aSavepoint array using realloc(). Return SQLITE_NOMEM
    ** if the allocation fails. Otherwise, zero the new portion in case a 
    ** malloc failure occurs while populating it in the for(...) loop below.
    */
    aNew = (PagerSavepoint *)sqlite3Realloc(
        pPager->aSavepoint, sizeof(PagerSavepoint)*nSavepoint







|







 







|
>
|
>







14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
....
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
** The pager is used to access a database disk file.  It implements
** atomic commit and rollback through the use of a journal file that
** is separate from the database file.  The pager also implements file
** locking to prevent two processes from writing the same database
** file simultaneously, or one process from reading the database while
** another is writing.
**
** @(#) $Id: pager.c,v 1.548 2009/01/11 17:00:02 drh Exp $
*/
#ifndef SQLITE_OMIT_DISKIO
#include "sqliteInt.h"

/*
** Macros for troubleshooting.  Normally turned off
*/
................................................................................
int sqlite3PagerOpenSavepoint(Pager *pPager, int nSavepoint){
  int rc = SQLITE_OK;

  if( nSavepoint>pPager->nSavepoint && pPager->useJournal ){
    int ii;
    PagerSavepoint *aNew;

    /* Either there is no active journal or the sub-journal is open or 
    ** the journal is always stored in memory */
    assert( pPager->nSavepoint==0 || pPager->sjfd->pMethods ||
            pPager->journalMode==PAGER_JOURNALMODE_MEMORY );

    /* Grow the Pager.aSavepoint array using realloc(). Return SQLITE_NOMEM
    ** if the allocation fails. Otherwise, zero the new portion in case a 
    ** malloc failure occurs while populating it in the for(...) loop below.
    */
    aNew = (PagerSavepoint *)sqlite3Realloc(
        pPager->aSavepoint, sizeof(PagerSavepoint)*nSavepoint