Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix a problem in sqlite3PagerMovepage() when working on a temp table for which pages have been spilled. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
20cf8811caf705b482be100baecb3ef7 |
User & Date: | drh 2016-05-10 20:03:08.453 |
Context
2016-05-10
| ||
20:16 | Add another test case to temptable3.test. (check-in: 223640243e user: dan tags: trunk) | |
20:03 | Fix a problem in sqlite3PagerMovepage() when working on a temp table for which pages have been spilled. (check-in: 20cf8811ca user: drh tags: trunk) | |
2016-05-09
| ||
23:11 | Fixes to requirements marks. No changes to code. (check-in: 79ecd0ef20 user: drh tags: trunk) | |
Changes
Changes to src/pager.c.
︙ | ︙ | |||
6922 6923 6924 6925 6926 6927 6928 | sqlite3PcacheMove(pPg, pgno); sqlite3PcacheMakeDirty(pPg); /* For an in-memory database, make sure the original page continues ** to exist, in case the transaction needs to roll back. Use pPgOld ** as the original page since it has already been allocated. */ | | < | 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 | sqlite3PcacheMove(pPg, pgno); sqlite3PcacheMakeDirty(pPg); /* For an in-memory database, make sure the original page continues ** to exist, in case the transaction needs to roll back. Use pPgOld ** as the original page since it has already been allocated. */ if( pPager->tempFile && pPgOld ){ sqlite3PcacheMove(pPgOld, origPgno); sqlite3PagerUnrefNotNull(pPgOld); } if( needSyncPgno ){ /* If needSyncPgno is non-zero, then the journal file needs to be ** sync()ed before any data is written to database file page needSyncPgno. |
︙ | ︙ |
Added test/temptable3.test.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | # 2016-05-10 # # The author disclaims copyright to this source code. In place of # a legal notice, here is a blessing: # # May you do good and not evil. # May you find forgiveness for yourself and forgive others. # May you share freely, never taking more than you give. # #*********************************************************************** set testdir [file dirname $argv0] source $testdir/tester.tcl set testprefix temptable3 db close sqlite3 db {} do_execsql_test 1.1 { PRAGMA cache_size = 1; PRAGMA page_size = 1024; PRAGMA auto_vacuum = 2; CREATE TABLE t1(x); INSERT INTO t1 VALUES( randomblob(800) ); INSERT INTO t1 VALUES( randomblob(800) ); CREATE TABLE t2(x); PRAGMA integrity_check; } {ok} finish_test |