-C Modify\slock.test\sto\saccount\sfor\s"PRAGMA\slock_status"\sreturning\s"unknown"\sfor\sin-memory\sdatabases.\s(CVS\s6287)
-D 2009-02-12T09:36:16
+C Fix\ssome\sedge\scases\swith\sbacking\sup\sdatabases\sthat\sare\sexactly\sPENDING_BYTE\sbytes\sin\ssize,\sor\sjust\sslightly\slarger.\s(CVS\s6288)
+D 2009-02-12T17:01:50
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in c7a5a30fb6852bd7839b1024e1661da8549878ee
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
F src/analyze.c c86fd6a1425b22b3a46ce72ad403e4280026364f
F src/attach.c 81d37d1948f409146a7b22b96998fd90649d1fd3
F src/auth.c c8b2ab5c8bad4bd90ed7c294694f48269162c627
-F src/backup.c 7aff2b795c4a001716c40fff7e3928750e2f6b8f
+F src/backup.c 0fb3c8d9ba8345c06d8c8fa2bd753babf443e091
F src/bitvec.c 44f7059ac1f874d364b34af31b9617e52223ba75
F src/btmutex.c 63c5cc4ad5715690767ffcb741e185d7bc35ec1a
F src/btree.c 71f30e74389aa7ae51421592dfaf69511152677c
F src/os_os2.c bed77dc26e3a95ce4a204936b9a1ca6fe612fcc5
F src/os_unix.c 4e916cafbf5ec0166213ac62d680ebbe12b8c5a7
F src/os_win.c 45cb430884da7e9360a55a0fcd5c2c44c22dd79d
-F src/pager.c 57665d91e54da810df27176093936bdee02256b9
+F src/pager.c d8d10a4108d0657b7355a2a9e06a4d6d1dea2b95
F src/pager.h 0c9f3520c00d8a3b8e792ca56c9a11b6b02b4b0f
F src/parse.y 4f4d16aee0d11f69fec2adb77dac88878043ed8d
F src/pcache.c fcf7738c83c4d3e9d45836b2334c8a368cc41274
F test/autovacuum.test 61260e25744189ff766f61ca3df23c1eeec0060e
F test/autovacuum_ioerr2.test 598b0663074d3673a9c1bc9a16e80971313bafe6
F test/avtrans.test 1e901d8102706b63534dbd2bdd4d8f16c4082650
-F test/backup.test 6ab95bf9ff6067f09c37172977f2463972e82fd9
+F test/backup.test 9542691cb9199b1d27051756377ef12e27404cd5
F test/backup2.test 04b84c97b4b5d63b6756592c6d7afe578b52c3cf
F test/backup_ioerr.test a9b8084e488154341719833783ac9db321e14284
F test/backup_malloc.test 1e063c6d75143d0d6e0ae77971dd690070369387
F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
-P 315a6692f9a03a470871cce4f74567683546f343
-R 1abda3a7b35e49a2059fb89335dadc90
+P 9a6e558ba6fe0b38376a85a6c1e2cea5570ea283
+R c29b76c7d0882570dd5d4b31c9bb2e6f
U danielk1977
-Z c133c9a064c489558fdd1f698bbbb675
+Z a3d6d2ad2218627e8108430b2434ce04
-9a6e558ba6fe0b38376a85a6c1e2cea5570ea283
\ No newline at end of file
+2fc450e8e60248d6111d0b0d2b8f2344f5b89bca
\ No newline at end of file
** This file contains the implementation of the sqlite3_backup_XXX()
** API functions and the related features.
**
-** $Id: backup.c,v 1.9 2009/02/09 18:55:46 danielk1977 Exp $
+** $Id: backup.c,v 1.10 2009/02/12 17:01:50 danielk1977 Exp $
*/
#include "sqliteInt.h"
#include "btreeInt.h"
if( nSrcPagesize<nDestPagesize ){
int ratio = nDestPagesize/nSrcPagesize;
nDestTruncate = (nSrcPage+ratio-1)/ratio;
+ if( nDestTruncate==PENDING_BYTE_PAGE(p->pDest->pBt) ){
+ nDestTruncate--;
+ }
}else{
nDestTruncate = nSrcPage * (nSrcPagesize/nDestPagesize);
}
sqlite3_file * const pFile = sqlite3PagerFile(pDestPager);
assert( pFile );
- assert( (i64)nDestTruncate*(i64)nDestPagesize >= iSize );
+ assert( (i64)nDestTruncate*(i64)nDestPagesize >= iSize || (
+ nDestTruncate==(PENDING_BYTE_PAGE(p->pDest->pBt)-1)
+ && iSize>=PENDING_BYTE && iSize<=PENDING_BYTE+nDestPagesize
+ ));
if( SQLITE_OK==(rc = sqlite3PagerCommitPhaseOne(pDestPager, 0, 1))
&& SQLITE_OK==(rc = backupTruncateFile(pFile, iSize))
&& SQLITE_OK==(rc = sqlite3PagerSync(pDestPager))
** file simultaneously, or one process from reading the database while
** another is writing.
**
-** @(#) $Id: pager.c,v 1.567 2009/02/12 09:11:56 danielk1977 Exp $
+** @(#) $Id: pager.c,v 1.568 2009/02/12 17:01:50 danielk1977 Exp $
*/
#ifndef SQLITE_OMIT_DISKIO
#include "sqliteInt.h"
assert( pPager->state>=PAGER_SHARED );
if( pPager->dbSize<pPg->pgno ){
pPager->dbSize = pPg->pgno;
- if( pPager->dbSize==(PAGER_MJ_PGNO(pPager)-1) ){
- pPager->dbSize++;
- }
}
return rc;
}
# This file implements regression tests for SQLite library. The
# focus of this file is testing the sqlite3_backup_XXX API.
#
-# $Id: backup.test,v 1.7 2009/02/11 16:06:19 shane Exp $
+# $Id: backup.test,v 1.8 2009/02/12 17:01:50 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
}
}
}
+
+#--------------------------------------------------------------------
+do_test backup-3.$iTest.1 {
+ catch { file delete -force test.db }
+ catch { file delete -force test2.db }
+ sqlite3 db test.db
+ set iTab 1
+
+ db eval { PRAGMA page_size = 512 }
+ while {[file size test.db] <= $::sqlite_pending_byte} {
+ db eval "CREATE TABLE t${iTab}(a, b, c)"
+ incr iTab
+ }
+
+ sqlite3 db2 test2.db
+ db2 eval { PRAGMA page_size = 4096 }
+ while {[file size test2.db] < $::sqlite_pending_byte} {
+ db2 eval "CREATE TABLE t${iTab}(a, b, c)"
+ incr iTab
+ }
+
+ sqlite3_backup B db2 main db main
+ B step -1
+} {SQLITE_DONE}
+
+do_test backup-3.$iTest.2 {
+ B finish
+} {SQLITE_OK}
+
#
# End of backup-3.* tests.
#---------------------------------------------------------------------