Index: VERSION ================================================================== --- VERSION +++ VERSION @@ -1,1 +1,1 @@ -3.7.5 +3.7.5.1 Index: configure ================================================================== --- configure +++ configure @@ -1,8 +1,8 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.62 for sqlite 3.7.5. +# Generated by GNU Autoconf 2.62 for sqlite 3.7.5.1. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. @@ -741,12 +741,12 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='sqlite' PACKAGE_TARNAME='sqlite' -PACKAGE_VERSION='3.7.5' -PACKAGE_STRING='sqlite 3.7.5' +PACKAGE_VERSION='3.7.5.1' +PACKAGE_STRING='sqlite 3.7.5.1' PACKAGE_BUGREPORT='' # Factoring default headers for most tests. ac_includes_default="\ #include @@ -1483,11 +1483,11 @@ # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures sqlite 3.7.5 to adapt to many kinds of systems. +\`configure' configures sqlite 3.7.5.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. @@ -1548,11 +1548,11 @@ _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of sqlite 3.7.5:";; + short | recursive ) echo "Configuration of sqlite 3.7.5.1:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options @@ -1664,11 +1664,11 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -sqlite configure 3.7.5 +sqlite configure 3.7.5.1 generated by GNU Autoconf 2.62 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation @@ -1678,11 +1678,11 @@ fi cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by sqlite $as_me 3.7.5, which was +It was created by sqlite $as_me 3.7.5.1, which was generated by GNU Autoconf 2.62. Invocation command line was $ $0 $@ _ACEOF @@ -13940,11 +13940,11 @@ # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by sqlite $as_me 3.7.5, which was +This file was extended by sqlite $as_me 3.7.5.1, which was generated by GNU Autoconf 2.62. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS @@ -13993,11 +13993,11 @@ Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -sqlite config.status 3.7.5 +sqlite config.status 3.7.5.1 configured by $0, generated by GNU Autoconf 2.62, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2008 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation Index: src/pager.c ================================================================== --- src/pager.c +++ src/pager.c @@ -4166,17 +4166,16 @@ return SQLITE_OK; } pPg->pDirty = 0; if( pagerUseWal(pPager) ){ - /* Write a single frame for this page to the log. */ - if( subjRequiresPage(pPg) ){ - rc = subjournalPage(pPg); - } - if( rc==SQLITE_OK ){ - rc = pagerWalFrames(pPager, pPg, 0, 0, 0); - } + /* Never spill when in WAL mode. The entire transaction must + ** remain in cache. This is an alternative fix to ticket + ** [2d1a5c67dfc2] "Data loss on COMMIT in WAL mode". It also + ** prevents huge WAL files when a large transaction starts + ** thrashing the cache. */ + return SQLITE_OK; }else{ /* Sync the journal file if required. */ if( pPg->flags&PGHDR_NEED_SYNC || pPager->eState==PAGER_WRITER_CACHEMOD Index: test/walcrash2.test ================================================================== --- test/walcrash2.test +++ test/walcrash2.test @@ -67,10 +67,12 @@ CREATE TABLE t7(x); COMMIT; } file size test.db-wal } [wal_file_size 8 1024] + +if 0 { # WAL no longer spills transaction for {set nEntry 8} {$nEntry < 8192} {incr nEntry 8} { do_test walcrash2-1.2.[expr $nEntry/8] { set C [launch_testfixture] testfixture $C { sqlite3 db test.db @@ -86,14 +88,14 @@ } } close $C file size test.db-wal } [wal_file_size 16 1024] +} } do_test walcrash2-1.3 { sqlite3 db2 test.db execsql { SELECT count(*) FROM t1 } db2 } {0} catch { db2 close } finish_test - Index: tool/shell1.test ================================================================== --- tool/shell1.test +++ tool/shell1.test @@ -198,11 +198,11 @@ } {1 1} # -version show SQLite version do_test shell1-1.16.1 { catchcmd "-version test.db" "" -} {0 3.7.5} +} {0 3.7.5.1} #---------------------------------------------------------------------------- # Test cases shell1-2.*: Basic "dot" command token parsing. #