]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge with latest trunk changes.
authordan <dan@noemail.net>
Thu, 18 Nov 2010 16:32:53 +0000 (16:32 +0000)
committerdan <dan@noemail.net>
Thu, 18 Nov 2010 16:32:53 +0000 (16:32 +0000)
FossilOrigin-Name: e376480f0855c598c91529abacbd73e31d9f4713

1  2 
manifest
manifest.uuid
src/sqlite.h.in
src/vdbe.c
test/wal5.test

diff --cc manifest
index d01e3580e29f1c4341bfe65e857e8fe649937099,3cb5c587f0ec8e115e2f6a8be636e2b2b6883ab1..d497725beb62aab56fab99ba7be76f1eb44db9a2
+++ b/manifest
@@@ -1,5 -1,5 +1,5 @@@
- C Update\stest\scases\sto\saccount\sfor\sthe\schange\sin\sthe\sprevious\scommit.
- D 2010-11-18T16:14:24
 -C Added\ssome\stests\sto\scheck\sthat\sumlaut\scharacters\sare\ssupported\sin\sfilenames.
 -D 2010-11-18T15:44:59
++C Merge\swith\slatest\strunk\schanges.
++D 2010-11-18T16:32:54
  F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
  F Makefile.in e7a59672eaeb04408d1fa8501618d7501a3c5e39
  F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@@ -176,9 -176,9 +176,9 @@@ F src/resolve.c 1c0f32b64f8e3f555fe1f73
  F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697
  F src/select.c 550d67688f5e8bc8022faf6d014838afba1415af
  F src/shell.c 8517fc1f9c59ae4007e6cc8b9af91ab231ea2056
- F src/sqlite.h.in 4645a3bddf4481fcc9422ba41acf4e71c1c81e22
 -F src/sqlite.h.in 74768e9a569d65a62c99f3d383b37904b4ed7f66
++F src/sqlite.h.in 0dc08ed5d4decf11002e5fee2be0d6ef87798960
  F src/sqlite3ext.h c90bd5507099f62043832d73f6425d8d5c5da754
 -F src/sqliteInt.h dd28f6138c74cf4833e032a989b6ff7885798cf6
 +F src/sqliteInt.h 4e7045f17606296bc8e7898d69567fc3cd06b761
  F src/sqliteLimit.h a17dcd3fb775d63b64a43a55c54cb282f9726f44
  F src/status.c 496913d4e8441195f6f2a75b1c95993a45b9b30b
  F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e
@@@ -227,19 -227,19 +227,19 @@@ F src/update.c 227e6cd512108b84f69421fc
  F src/utf.c 1baeeac91707a4df97ccc6141ec0f808278af685
  F src/util.c cd78524566fe45671863eee78685969a4bfd4e4c
  F src/vacuum.c 924bd1bcee2dfb05376f79845bd3b4cec7b54b2f
- F src/vdbe.c 4bec828e70654c698ef843c29b557bee2c8a0a00
 -F src/vdbe.c 63bb1e56a035bc65b20d6f9c7d7c876f19b4605f
++F src/vdbe.c 06f868b6daff465cd805d09b43661d0e0bee62a7
  F src/vdbe.h 4de0efb4b0fdaaa900cf419b35c458933ef1c6d2
  F src/vdbeInt.h 7f4cf1b2b69bef3a432b1f23dfebef57275436b4
- F src/vdbeapi.c 5368714fa750270cf6430160287c21adff44582d
+ F src/vdbeapi.c fb0036185b3c56e15916a5ee96309cd4acf6818f
  F src/vdbeaux.c 762c2b146cf5fe7a7f743af1bbfed4a966aa937a
  F src/vdbeblob.c e0ce3c54cc0c183af2ec67b63a289acf92251df4
  F src/vdbemem.c 23723a12cd3ba7ab3099193094cbb2eb78956aa9
  F src/vdbetrace.c 864cef96919323482ebd9986f2132435115e9cc2
  F src/vtab.c b297e8fa656ab5e66244ab15680d68db0adbec30
 -F src/wal.c f26b8d297bd11cb792e609917f9d4c6718ac8e0e
 -F src/wal.h c1aac6593a0b02b15dc625987e619edeab39292e
 +F src/wal.c 8eca619a28a70a667c913e5927131250836377a2
 +F src/wal.h 7a5fbb00114b7f2cd40c7e1003d4c41ce9d26840
  F src/walker.c 3112bb3afe1d85dc52317cb1d752055e9a781f8f
- F src/where.c d5cc65f51661a038a2c6a663a945d5cf4c277b81
+ F src/where.c fa22d45b2577c77146f2e894d58011d472d64103
  F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
  F test/alias.test 4529fbc152f190268a15f9384a5651bbbabc9d87
  F test/all.test 6745008c144bd2956d58864d21f7b304689c1cce
@@@ -823,12 -824,11 +824,12 @@@ F test/vtabE.test 7c4693638d7797ce2eda1
  F test/vtab_alter.test 9e374885248f69e251bdaacf480b04a197f125e5
  F test/vtab_err.test 0d4d8eb4def1d053ac7c5050df3024fd47a3fbd8
  F test/vtab_shared.test 0eff9ce4f19facbe0a3e693f6c14b80711a4222d
 -F test/wal.test 70227190e713b3e7eb2a7d5ec3510b66db01f327
 -F test/wal2.test c794b8b257af54190bb913678ad3984cbf3311b9
 -F test/wal3.test 957a5f2a8fe8a6ff01de1a15285ecf2f376fcaf8
 +F test/wal.test dea22218fd68c61fe206f53d508a0552894144b7
 +F test/wal2.test 894d55dda774340fe7bebe239bed9b6130ff23d7
 +F test/wal3.test 55529a3fbf0a04670558dbf0b06f04a2f3508db4
  F test/wal4.test 3404b048fa5e10605facaf70384e6d2943412e30
- F test/wal5.test 4e2854d7584dd97a73e7ce0f47bcbbe5c592fe29
 -F test/wal_common.tcl 895d76138043b86bdccf36494054bdabcf65837b
++F test/wal5.test e5330471fc284d9ae62a2a18c9dfd10b6605d8b6
 +F test/wal_common.tcl a98f17fba96206122eff624db0ab13ec377be4fe
  F test/walbak.test 4df1c7369da0301caeb9a48fa45997fd592380e4
  F test/walbig.test e882bc1d014afffbfa2b6ba36e0f07d30a633ad0
  F test/walcksum.test a37b36375c595e61bdb7e1ec49b5f0979b6fc7ce
@@@ -887,7 -887,7 +888,7 @@@ F tool/speedtest2.tcl ee2149167303ba8e9
  F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
  F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
  F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
- P 72787c010c8944e8fcf9c98aa4482f129142d8e9
- R e8b8625daa4f884d804e2c6d9b55ed2e
 -P 76681870a4705179f78976e7fda638a6fea0b9f9
 -R 919bf4eab147c8998416dfbf378b675b
 -U shaneh
 -Z aafd80be2caa03cdbfe5df1baca3e3f0
++P ae089ec881beb1c2d278303ba964aaeffad1afe4 c36f275d70ec8f6dead6adac02885026fdff9666
++R dda1122b35baa4cce662182aeeace1c2
 +U dan
- Z f89794a71de2f3c0c0dca2ba94548ae2
++Z ba40359d70663cc285a38d5d7d7027de
diff --cc manifest.uuid
index 109db3b96b77c2028ae1d1cc1ad505135696e520,749e222b90acb03ef0920bf158bc7f5e4372e4db..dba8fdc8407e470dd21975412cba8e72267a29b7
@@@ -1,1 -1,1 +1,1 @@@
- ae089ec881beb1c2d278303ba964aaeffad1afe4
 -c36f275d70ec8f6dead6adac02885026fdff9666
++e376480f0855c598c91529abacbd73e31d9f4713
diff --cc src/sqlite.h.in
Simple merge
diff --cc src/vdbe.c
Simple merge
diff --cc test/wal5.test
index aa2014760c23ec763d57a9d04e6b0da9795e160d,0000000000000000000000000000000000000000..49cd8397616d1ca616a604eccee8b66b4a8e0e04
mode 100644,000000..100644
--- /dev/null
@@@ -1,119 -1,0 +1,118 @@@
- breakpoint
 +# 2010 April 13
 +#
 +# 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.
 +#
 +#***********************************************************************
 +# This file implements regression tests for SQLite library.  The
 +# focus of this file is testing the operation of "blocking-checkpoint"
 +# operations.
 +#
 +
 +set testdir [file dirname $argv0]
 +source $testdir/tester.tcl
 +source $testdir/lock_common.tcl
 +source $testdir/wal_common.tcl
 +ifcapable !wal {finish_test ; return }
 +
 +set testprefix wal5
 +
 +do_multiclient_test tn {
 +
 +  proc db_page_count  {} { expr [file size test.db] / 1024 }
 +  proc wal_page_count {} { wal_frame_count test.db-wal 1024 }
 +
 +  set ::nBusyHandler 0
 +  set ::busy_handler_script ""
 +  proc busyhandler {n} {
 +    incr ::nBusyHandler 
 +    eval $::busy_handler_script
 +    return 0
 +  }
 +
 +  proc reopen_all {} {
 +    code1 {db close}
 +    code2 {db2 close}
 +    code3 {db3 close}
 +    code1 {sqlite3 db test.db}
 +    code2 {sqlite3 db2 test.db}
 +    code3 {sqlite3 db3 test.db}
 +    sql1  { PRAGMA synchronous = NORMAL }
 +    code1 { db busy busyhandler }
 +  }
 +
 +  do_test 1.$tn.1 {
 +    reopen_all
 +    sql1 {
 +      PRAGMA page_size = 1024;
 +      PRAGMA auto_vacuum = 0;
 +      CREATE TABLE t1(x, y);
 +      PRAGMA journal_mode = WAL;
 +      INSERT INTO t1 VALUES(1, zeroblob(1200));
 +      INSERT INTO t1 VALUES(2, zeroblob(1200));
 +      INSERT INTO t1 VALUES(3, zeroblob(1200));
 +    }
 +    expr [file size test.db] / 1024
 +  } {2}
 +
 +  # Have connection 2 grab a read-lock on the current snapshot.
 +  do_test 1.$tn.2 { sql2 { BEGIN; SELECT x FROM t1 } } {1 2 3}
 +
 +  # Attempt a checkpoint.
 +  do_test 1.$tn.3 {
 +    sql1 { PRAGMA wal_checkpoint }
 +    list [db_page_count] [wal_page_count]
 +  } {5 9}
 +
 +  # Write to the db again. The log cannot wrap because of the lock still
 +  # held by connection 2. The busy-handler has not yet been invoked.
 +  do_test 1.$tn.4 {
 +    sql1 { INSERT INTO t1 VALUES(4, zeroblob(1200)) }
 +    list [db_page_count] [wal_page_count] $::nBusyHandler
 +  } {5 12 0}
 +
 +  # Now do a blocking-checkpoint. Set the busy-handler up so that connection
 +  # 2 releases its lock on the 6th invocation. The checkpointer should then
 +  # proceed to checkpoint the entire log file. Next write should go to the 
 +  # start of the log file.
 +  #
 +  set ::busy_handler_script { if {$n==5} { sql2 COMMIT } }
 +  do_test 1.$tn.5 {
 +    sql1 { PRAGMA wal_checkpoint = RESTART }
 +    list [db_page_count] [wal_page_count] $::nBusyHandler
 +  } {6 12 6}
 +  do_test 1.$tn.6 {
 +    set ::nBusyHandler 0
 +    sql1 { INSERT INTO t1 VALUES(5, zeroblob(1200)) }
 +    list [db_page_count] [wal_page_count] $::nBusyHandler
 +  } {6 12 0}
 +
 +  do_test 1.$tn.7 {
 +    reopen_all
 +    list [db_page_count] [wal_page_count] $::nBusyHandler
 +  } {7 0 0}
 +
 +  do_test 1.$tn.8  { sql2 { BEGIN ; SELECT x FROM t1 } } {1 2 3 4 5}
 +  do_test 1.$tn.9  {
 +    sql1 { INSERT INTO t1 VALUES(6, zeroblob(1200)) }
 +    list [db_page_count] [wal_page_count] $::nBusyHandler
 +  } {7 5 0}
 +  do_test 1.$tn.10 { sql3 { BEGIN ; SELECT x FROM t1 } } {1 2 3 4 5 6}
 +
 +  set ::busy_handler_script { 
 +    if {$n==5} { sql2 COMMIT } 
 +    if {$n==6} { set ::db_file_size [db_page_count] }
 +    if {$n==7} { sql3 COMMIT }
 +  }
 +  do_test 1.$tn.11 {
 +    sql1 { PRAGMA wal_checkpoint = RESTART }
 +    list [db_page_count] [wal_page_count] $::nBusyHandler
 +  } {10 5 8}
 +  do_test 1.$tn.12 { set ::db_file_size } 10
 +}
 +
 +finish_test