Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Clear the Pager.dbModified flag when unlocking the database. Assert that it is clear when locking the database. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
d17ec16b7c5051c904c09580a856593b |
User & Date: | dan 2009-12-02 14:44:33.000 |
Context
2009-12-02
| ||
16:09 | Modify a test in fts3b.test to reflect the fact that the docid field may now be updated. (check-in: ef5b745029 user: dan tags: trunk) | |
14:44 | Clear the Pager.dbModified flag when unlocking the database. Assert that it is clear when locking the database. (check-in: d17ec16b7c user: dan tags: trunk) | |
02:49 | Make sure a variable is cleared before use in the where8.test script. (check-in: b34365296d user: drh tags: trunk) | |
Changes
Changes to ext/fts3/fts3_write.c.
︙ | ︙ | |||
556 557 558 559 560 561 562 | */ static int fts3InsertData( Fts3Table *p, /* Full-text table */ sqlite3_value **apVal, /* Array of values to insert */ sqlite3_int64 *piDocid /* OUT: Docid for row just inserted */ ){ int rc; /* Return code */ | < | 556 557 558 559 560 561 562 563 564 565 566 567 568 569 | */ static int fts3InsertData( Fts3Table *p, /* Full-text table */ sqlite3_value **apVal, /* Array of values to insert */ sqlite3_int64 *piDocid /* OUT: Docid for row just inserted */ ){ int rc; /* Return code */ sqlite3_stmt *pContentInsert; /* INSERT INTO %_content VALUES(...) */ /* Locate the statement handle used to insert data into the %_content ** table. The SQL for this statement is: ** ** INSERT INTO %_content VALUES(?, ?, ?, ...) ** |
︙ | ︙ | |||
876 877 878 879 880 881 882 | if( nExtra ){ /* The entire segment is stored in the root node. */ pReader->aNode = (char *)&pReader[1]; pReader->nNode = nRoot; memcpy(pReader->aNode, zRoot, nRoot); }else{ | < < | 875 876 877 878 879 880 881 882 883 884 885 886 887 888 | if( nExtra ){ /* The entire segment is stored in the root node. */ pReader->aNode = (char *)&pReader[1]; pReader->nNode = nRoot; memcpy(pReader->aNode, zRoot, nRoot); }else{ /* If the text of the SQL statement to iterate through a contiguous ** set of entries in the %_segments table has not yet been composed, ** compose it now. */ if( !p->zSelectLeaves ){ p->zSelectLeaves = sqlite3_mprintf( "SELECT block FROM %Q.'%q_segments' WHERE blockid BETWEEN ? AND ? " |
︙ | ︙ |
Changes to src/pager.c.
︙ | ︙ | |||
1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 | pPager->errCode = SQLITE_OK; } pager_reset(pPager); } pPager->changeCountDone = 0; pPager->state = PAGER_UNLOCK; } } /* ** This function should be called when an IOERR, CORRUPT or FULL error ** may have occurred. The first argument is a pointer to the pager ** structure, the second the error-code about to be returned by a pager | > | 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 | pPager->errCode = SQLITE_OK; } pager_reset(pPager); } pPager->changeCountDone = 0; pPager->state = PAGER_UNLOCK; pPager->dbModified = 0; } } /* ** This function should be called when an IOERR, CORRUPT or FULL error ** may have occurred. The first argument is a pointer to the pager ** structure, the second the error-code about to be returned by a pager |
︙ | ︙ | |||
2519 2520 2521 2522 2523 2524 2525 | int rc; /* Return code */ /* The OS lock values must be the same as the Pager lock values */ assert( PAGER_SHARED==SHARED_LOCK ); assert( PAGER_RESERVED==RESERVED_LOCK ); assert( PAGER_EXCLUSIVE==EXCLUSIVE_LOCK ); | | > > > | 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 | int rc; /* Return code */ /* The OS lock values must be the same as the Pager lock values */ assert( PAGER_SHARED==SHARED_LOCK ); assert( PAGER_RESERVED==RESERVED_LOCK ); assert( PAGER_EXCLUSIVE==EXCLUSIVE_LOCK ); /* If the file is currently unlocked then the size must be unknown. It ** must not have been modified at this point. */ assert( pPager->state>=PAGER_SHARED || pPager->dbSizeValid==0 ); assert( pPager->state>=PAGER_SHARED || pPager->dbModified==0 ); /* Check that this is either a no-op (because the requested lock is ** already held, or one of the transistions that the busy-handler ** may be invoked during, according to the comment above ** sqlite3PagerSetBusyhandler(). */ assert( (pPager->state>=locktype) |
︙ | ︙ |