]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge trunk changes into experimental branch.
authordan <dan@noemail.net>
Tue, 3 Aug 2010 18:29:04 +0000 (18:29 +0000)
committerdan <dan@noemail.net>
Tue, 3 Aug 2010 18:29:04 +0000 (18:29 +0000)
FossilOrigin-Name: 15368a9f8523d5fb611cd576080daed2cf2f1500

1  2 
manifest
manifest.uuid
src/pager.c
test/wal2.test

diff --cc manifest
index 056d09ed0241282151503671cd88eb49514b3597,40213f163947e98ae602032a24350479ef281dc1..b0af40bea56401fb03f83ac2e17b01cd6c706141
+++ b/manifest
@@@ -1,5 -1,8 +1,5 @@@
- C Set\sthe\sPager.eState\svariable\sto\sPAGER_ERROR\swhenever\sthe\spager\senters\sthe\serror\sstate.
- D 2010-08-03T18:18:42
 ------BEGIN PGP SIGNED MESSAGE-----
 -Hash: SHA1
 -
 -C Fix\sdisabled\simplementation-mark\scomments\sin\sfunc.c.
 -D 2010-08-03T18:06:25
++C Merge\strunk\schanges\sinto\sexperimental\sbranch.
++D 2010-08-03T18:29:05
  F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
  F Makefile.in ec08dc838fd8110fe24c92e5130bcd91cbb1ff2e
  F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@@ -154,9 -157,9 +154,9 @@@ F src/os.c 60178f518c4d6c0dcb59f7292232
  F src/os.h 9dbed8c2b9c1f2f2ebabc09e49829d4777c26bf9
  F src/os_common.h a8f95b81eca8a1ab8593d23e94f8a35f35d4078f
  F src/os_os2.c 72d0b2e562952a2464308c4ce5f7913ac10bef3e
 -F src/os_unix.c 3109e0e5a0d5551bab2e8c7322b20a3b8b171248
 -F src/os_win.c 1f8b0a1a5bcf6289e7754d0d3c16cec16d4c93ab
 -F src/pager.c 202e3dcb3f36c858d4339c0f6fa3d04d67258127
 +F src/os_unix.c ae5ca8a6031380708f3fec7be325233d49944914
 +F src/os_win.c 51cb62f76262d961ea4249489383d714501315a7
- F src/pager.c b48eb75d41fd1bce0e9911209785aef4381258ef
++F src/pager.c a5f55fb219e53bd064a81ccf697da30285ba2cc6
  F src/pager.h 80726162dc3942f59ab27b738fb667b9ba0a89d5
  F src/parse.y 12b7ebd61ea54f0e1b1083ff69cc2c8ce9353d58
  F src/pcache.c 1e9aa2dbc0845b52e1b51cc39753b6d1e041cb07
@@@ -176,8 -179,8 +176,8 @@@ F src/sqliteInt.h a9be6badc6cd6a3c1ae54
  F src/sqliteLimit.h 196e2f83c3b444c4548fc1874f52f84fdbda40f3
  F src/status.c 496913d4e8441195f6f2a75b1c95993a45b9b30b
  F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e
- F src/tclsqlite.c ae1e4fb653c91ddad7e2534d209711a12604ccc4
+ F src/tclsqlite.c 5cd96419fb6c771006f064196ccc70c29d01bec7
 -F src/test1.c ff3b4533fc4d78d1bff2ef831a5791db55096ed3
 +F src/test1.c 0bfcda72f9f8ab5c0e90fac05cc22c1c21131ddf
  F src/test2.c e3f564ab1e9fd0b47b0c9e23e7054e38bf0836cf
  F src/test3.c 4c21700c73a890a47fc685c1097bfb661346ac94
  F src/test4.c 0528360b5025688002a5feb6be906ddce52eaaee
@@@ -222,13 -225,13 +222,13 @@@ F src/vdbe.c cefff41564b68a412e65e6a101
  F src/vdbe.h 4de0efb4b0fdaaa900cf419b35c458933ef1c6d2
  F src/vdbeInt.h ffd68c4d4229227a5089bec53a1c635146177abc
  F src/vdbeapi.c d0f4407e465f261780ad725c1caece7d66a6aa35
- F src/vdbeaux.c 8a443e73760ca65ffdfda3e26df4c8c90eeefa11
+ F src/vdbeaux.c e18a42d0bdac405565f2d258a82457fd10db133d
  F src/vdbeblob.c 258a6010ba7a82b72b327fb24c55790655689256
- F src/vdbemem.c 5e579abf6532001dfbee0e640dc34eae897a9807
+ F src/vdbemem.c e5673f81a2381b35c60e73ef0a8502be2ab1041e
  F src/vdbetrace.c 864cef96919323482ebd9986f2132435115e9cc2
  F src/vtab.c 82200af3881fa4e1c9cf07cf31d98c09d437e3ab
 -F src/wal.c 0925601f3299c2941a67c9cfff41ee710f70ca82
 -F src/wal.h 906c85760598b18584921fe08008435aa4eeeeb2
 +F src/wal.c 6e04bccccd75acf86725cc8cb4b107cd245e018c
 +F src/wal.h 96669b645e27cd5a111ba59f0cae7743a207bc3c
  F src/walker.c 3112bb3afe1d85dc52317cb1d752055e9a781f8f
  F src/where.c 79202ca81e740eeb1f54512147e29b6c518d84ca
  F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
@@@ -782,8 -784,8 +782,8 @@@ F test/vtab_alter.test 9e374885248f69e2
  F test/vtab_err.test 0d4d8eb4def1d053ac7c5050df3024fd47a3fbd8
  F test/vtab_shared.test 0eff9ce4f19facbe0a3e693f6c14b80711a4222d
  F test/wal.test 1891e6f72dd437a1c2a48091aa9182ba17a8f780
- F test/wal2.test 8581b133ef58d48f24c56f645a20d6527723557c
 -F test/wal2.test 8dcebda41587e0b2b57194d03fd8700e01e85656
 -F test/wal3.test d2ae7e66f973bd6b58ce49e546b2c00f44fe0485
++F test/wal2.test 223f3e14d475730af772a7f5862d4bcfa7565c3a
 +F test/wal3.test 695ea0f6c516423c611891df9a285aacd33344e3
  F test/wal4.test 3404b048fa5e10605facaf70384e6d2943412e30
  F test/wal_common.tcl 895d76138043b86bdccf36494054bdabcf65837b
  F test/walbak.test 4df1c7369da0301caeb9a48fa45997fd592380e4
@@@ -841,7 -844,14 +842,7 @@@ F tool/speedtest2.tcl ee2149167303ba8e9
  F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
  F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
  F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
- P fde4c59782e98366792e1552fd122e7d80a277ff
- R dd009cdb2bebe6c9ea312f79af5244c4
 -P 4e157b774764b8bafc9fabb88decf54f178b5ff5
 -R 2ffda3ab686430275e530bf434e41e4c
 -U drh
 -Z 636446afbb2581f1ac8c757ae258a4e0
 ------BEGIN PGP SIGNATURE-----
 -Version: GnuPG v1.4.6 (GNU/Linux)
 -
 -iD8DBQFMWFqkoxKgR168RlERAoOBAKCD0AqnZ6ZzbybLHgm4lZfoGX3cfgCfa6ef
 -C79lcWSk6pzbtaW4+fqCLFQ=
 -=jbsY
 ------END PGP SIGNATURE-----
++P 4d384761d27425b71555f4f3262778277a955835 57c0960038b8ce97f9d6665f15e7f6ec310c681f
++R a5e53c42c5ef67b21638e39c5b136ceb
 +U dan
- Z 18695678602885240568b79d8561ccf5
++Z c69428969280d297bd2cfd79a9c3f85e
diff --cc manifest.uuid
index 9923f3bbac47f22252ae9d1555756612d0c29216,fce696df9676d6fd33de4cbc192d885b28f80034..bf9ed997d3e841216b88967cc1a9725604240284
@@@ -1,1 -1,1 +1,1 @@@
- 4d384761d27425b71555f4f3262778277a955835
 -57c0960038b8ce97f9d6665f15e7f6ec310c681f
++15368a9f8523d5fb611cd576080daed2cf2f1500
diff --cc src/pager.c
index e3f73d953f33eca9229698541f9926826dfac577,5f8a90c58a88e6b1b867ddd86412492c1eddb173..52065f1f39a4680a4ac5f614d00675267781ae91
@@@ -5548,20 -5244,14 +5548,20 @@@ int sqlite3PagerCommitPhaseOne
        rc = writeMasterJournal(pPager, zMaster);
        if( rc!=SQLITE_OK ) goto commit_phase_one_exit;
    
 -      /* Sync the journal file. If the atomic-update optimization is being
 -      ** used, this call will not create the journal file or perform any
 -      ** real IO.
 +      /* Sync the journal file and write all dirty pages to the database.
 +      ** If the atomic-update optimization is being used, this sync will not 
 +      ** create the journal file or perform any real IO.
 +      **
 +      ** Because the change-counter page was just modified, unless the
 +      ** atomic-update optimization is used it is almost certain that the
 +      ** journal requires a sync here. However, in locking_mode=exclusive
 +      ** on a system under memory pressure it is just possible that this is 
 +      ** not the case. In this case it is likely enough that the redundant
 +      ** xSync() call will be changed to a no-op by the OS anyhow. 
        */
 -      rc = syncJournal(pPager);
 +      rc = syncJournal(pPager, 0);
        if( rc!=SQLITE_OK ) goto commit_phase_one_exit;
+   
 -      /* Write all dirty pages to the database file. */
        rc = pager_write_pagelist(pPager,sqlite3PcacheDirtyList(pPager->pPCache));
        if( rc!=SQLITE_OK ){
          assert( rc!=SQLITE_IOERR_BLOCKED );
diff --cc test/wal2.test
index 0b6f24a3e44c19590adcea2399b7a55911acc62c,1aad19ab2308db38b3b3484db88364bccae0d0a4..03c0018f498200eca6b483d55ef6033a190563f7
@@@ -980,30 -980,32 +980,32 @@@ do_test wal2-11.1.1 
    execsql { SELECT name FROM sqlite_master } db2
  } {t1}
  
- # Set all zeroed slots in the first hash table to invalid values.
- #
- set blob [string range [tvfs shm $::filename] 0 16383]
- set I [string range [tvfs shm $::filename] 16384 end]
- binary scan $I t* L
- set I [list]
- foreach p $L {
-   lappend I [expr $p ? $p : 400]
+ if {$::tcl_version>=8.5} {
+   # Set all zeroed slots in the first hash table to invalid values.
+   #
+   set blob [string range [tvfs shm $::filename] 0 16383]
+   set I [string range [tvfs shm $::filename] 16384 end]
+   binary scan $I t* L
+   set I [list]
+   foreach p $L {
+     lappend I [expr $p ? $p : 400]
+   }
+   append blob [binary format t* $I]
+   tvfs shm $::filename $blob
+   do_test wal2-11.2 {
+     catchsql { INSERT INTO t1 VALUES(10, 11, 12) }
+   } {1 {database disk image is malformed}}
+   
+   # Fill up the hash table on the first page of shared memory with 0x55 bytes.
+   #
+   set blob [string range [tvfs shm $::filename] 0 16383]
+   append blob [string repeat [binary format c 55] 16384]
+   tvfs shm $::filename $blob
+   do_test wal2-11.3 {
+     catchsql { SELECT * FROM t1 } db2
+   } {1 {database disk image is malformed}}
  }
- append blob [binary format t* $I]
- tvfs shm $::filename $blob
- do_test wal2-11.2 {
-   catchsql { INSERT INTO t1 VALUES(10, 11, 12) }
- } {1 {database disk image is malformed}}
- # Fill up the hash table on the first page of shared memory with 0x55 bytes.
- #
- set blob [string range [tvfs shm $::filename] 0 16383]
- append blob [string repeat [binary format c 55] 16384]
- tvfs shm $::filename $blob
- do_test wal2-11.3 {
-   catchsql { SELECT * FROM t1 } db2
- } {1 {database disk image is malformed}}
 -  
 +
  db close
  db2 close
  tvfs delete