Index: pages/changes.in
==================================================================
--- pages/changes.in
+++ pages/changes.in
@@ -39,10 +39,16 @@
}
hd_close_aux
hd_enable_main 1
}
}
+
+chng {2011 May 19 (3.7.6.3)} {
+
SQLITE_SOURCE_ID:
Index: pages/download.in
==================================================================
--- pages/download.in
+++ pages/download.in
@@ -270,19 +270,19 @@
version of Tcl, is required in order to
build from the canonical sources.
http://www.sqlite.org/cgi/src (Dallas)
-http://www2.sqlite.org/cgi/src (Atlanta)
+http://www2.sqlite.org/cgi/src (Newark)
http://www3.sqlite.org/cgi/src (Fremont)
The documentation is maintained in separate
[http://www.fossil-scm.org/ | Fossil] repositories located
at:
http://www.sqlite.org/cgi/docsrc (Dallas)
-http://www2.sqlite.org/cgi/docsrc (Atlanta)
+http://www2.sqlite.org/cgi/docsrc (Newark)
http://www3.sqlite.org/cgi/docsrc (Fremont)
Index: pages/index.in
==================================================================
--- pages/index.in
+++ pages/index.in
@@ -85,14 +85,13 @@
| | |
Current Status
-- Version 3.7.6.2
+
- Version 3.7.6.3
of SQLite is recommended for all new development.
-Upgrading from version 3.7.5 is optional.
-Upgrading from all SQLite versions prior to 3.7.5 is recommended.
+Upgrading from all SQLite versions is recommended.
Common Links
Index: pages/news.in
==================================================================
--- pages/news.in
+++ pages/news.in
@@ -13,13 +13,59 @@
}
hd_puts "$date - $title"
regsub -all "\n( *\n)+" $text "\n\n" txt
regsub -all {[Tt]icket #(\d+)} $txt \
{\0} txt
- hd_resolve " $txt "
+ hd_resolve "$txt "
hd_puts " "
}
+
+newsitem {2011-May-19} {Version 3.7.6.3} {
+ SQLite [version 3.7.6.3] is a patch release that fixes a
+ [http://www.sqlite.org/src/info/2d1a5c67df | single bug]
+ associated with [WAL mode]. The bug has been in SQLite ever since WAL
+ was added, but the problem is very obscure and so nobody has noticed
+ before now. Nevertheless, all users are encouraged to upgrade to
+ version 3.7.6.3 or later.
+
+ The bug is this:
+ If the [cache_size] is set very small (less than 10) and SQLite comes
+ under memory pressure and if a multi-statement transaction is started
+ in which the last statement prior to COMMIT is a SELECT statement and if
+ a [checkpoint] occurs right after the transaction commit, then
+ it might happen that the transaction will be silently rolled back instead
+ of being committed.
+
+ The default setting for [cache_size] is 2000. So in most situations, this
+ bug will never appear. But sometimes programmers set [cache_size] to
+ very small values on gadgets and other low-memory devices in order to
+ save memory space. Such applications are vulnerable.
+ Note that this bug does not cause database corruption. It is
+ as if [ROLLBACK] were being run instead of [COMMIT] in some cases.
+
+ Bug Details
+
+ Transactions commit in WAL mode by adding a record onto the end of
+ the WAL (the write-ahead log) that contains a "commit" flag. So to
+ commit a transaction, SQLite takes all the pages that have changed
+ during that transaction, appends them to the WAL, and sets the commit
+ flag on the last page. Now, if SQLite comes under memory pressure, it
+ might try to free up memory space by writing changed pages to the WAL
+ prior to the commit. We call this "spilling" the cache to WAL. There
+ is nothing wrong with spilling cache to WAL. But if the
+ memory pressure is severe, it might be that by the time [COMMIT] is run,
+ all changed pages for the transaction have already been spilled to WAL
+ and there are no pages left to be written to WAL.
+ And with no unwritten pages, there was nothing to put the commit flag
+ on. And without a commit flag, the transaction would end up being
+ rolled back.
+
+ The fix to this problem was that if all changed pages has already
+ been written to the WAL when the commit was started, then page 1 of
+ the database will be written to the WAL again, so that there will always
+ be a page available on which to set the commit flag.
+}
newsitem {2011-April-17} {Version 3.7.6.2} {
SQLite [version 3.7.6.2] adds a one-line bug fix to 3.7.6.1 that enables
pthreads to work correctly on NetBSD. The problem was a faulty function
signature for the open system call. The problem does not appear to have
@@ -203,58 +249,8 @@
SQLite version 3.7.0 also contains some query planner enhancements and
a few obscure bug fixes, but the only really big change is the addition
of WAL mode.
}
-newsitem {2010-Mar-30} {Version 3.6.23.1} {
- SQLite [version 3.6.23.1] is a patch release to fix a bug in the
- offsets() function of [FTS3] at the request of the Mozilla.
-}
-
-newsitem {2010-Mar-09} {Version 3.6.23} {
- SQLite [version 3.6.23] is a regular bimonthly release of SQLite.
- Upgrading from the prior release is purely optional.
-
- This release contains new pragmas: the [secure_delete pragma], and
- the [compile_options pragma].
- There are a new SQL functions: [sqlite_compileoption_used()]
- and [sqlite_compileoption_get()].
- New C/C++ interfaces: [sqlite3_compileoption_used()],
- [sqlite3_compileoption_get()], [SQLITE_CONFIG_LOG], and
- [sqlite3_log()].
-
- This release also includes several minor bug fixes and performance
- improvements. Support for [SQLITE_OMIT_FLOATING_POINT] is enhanced.
- There are on-going improvements to [FTS3].
-
- The ".genfkey" command in the [Command Line Interface] has been
- removed. SQLite has supported standard SQL [foreign key constraints]
- since [version 3.6.19] and so the ".genfkey" command was seen as
- an anachronism.
-}
-
-newsitem {2010-Jan-06} {Version 3.6.22} {
- SQLite [version 3.6.22] is a bug-fix release. Two bugs have been fixed
- that might cause incorrect query results.
-
- - Ticket [http://www.sqlite.org/src/info/31338dca7e | 31338dca7e]
- describes a
- problem with queries that have a WHERE clause of the form (x AND y) OR z
- where x and z come from one table of a join and y comes from a different
- table.
-
- Ticket [http://www.sqlite.org/src/info/eb5548a849 | eb5548a849]
- describes
- a problem where the use of the CAST operator in the WHERE clause can lead
- to incorrect results if the column being cast to a new datatype is also
- used in the same WHERE clause without being cast.
-
- Both bugs are obscure,
- but because they could arise in an application after deployment, it is
- recommended that all applications upgrade SQLite to version 3.6.22.
-
- This release also includes other minor bug fixes and performance
- enhancements, especially in the [FTS3] extension.
-}
-
Old news...
Index: pages/oldnews.in
==================================================================
--- pages/oldnews.in
+++ pages/oldnews.in
@@ -5,14 +5,65 @@
proc newsitem {date title text} {
regsub -all {[^a-z0-9]} $date _ tag
hd_puts ""
hd_puts "$date - $title"
regsub -all "\n( *\n)+" $text "\n\n" txt
- hd_resolve " $txt "
+ hd_resolve "$txt "
hd_puts " "
}
+
+newsitem {2010-Mar-30} {Version 3.6.23.1} {
+ SQLite [version 3.6.23.1] is a patch release to fix a bug in the
+ offsets() function of [FTS3] at the request of the Mozilla.
+}
+
+newsitem {2010-Mar-09} {Version 3.6.23} {
+ SQLite [version 3.6.23] is a regular bimonthly release of SQLite.
+ Upgrading from the prior release is purely optional.
+
+ This release contains new pragmas: the [secure_delete pragma], and
+ the [compile_options pragma].
+ There are a new SQL functions: [sqlite_compileoption_used()]
+ and [sqlite_compileoption_get()].
+ New C/C++ interfaces: [sqlite3_compileoption_used()],
+ [sqlite3_compileoption_get()], [SQLITE_CONFIG_LOG], and
+ [sqlite3_log()].
+
+ This release also includes several minor bug fixes and performance
+ improvements. Support for [SQLITE_OMIT_FLOATING_POINT] is enhanced.
+ There are on-going improvements to [FTS3].
+
+ The ".genfkey" command in the [Command Line Interface] has been
+ removed. SQLite has supported standard SQL [foreign key constraints]
+ since [version 3.6.19] and so the ".genfkey" command was seen as
+ an anachronism.
+}
+
+newsitem {2010-Jan-06} {Version 3.6.22} {
+ SQLite [version 3.6.22] is a bug-fix release. Two bugs have been fixed
+ that might cause incorrect query results.
+
+ - Ticket [http://www.sqlite.org/src/info/31338dca7e | 31338dca7e]
+ describes a
+ problem with queries that have a WHERE clause of the form (x AND y) OR z
+ where x and z come from one table of a join and y comes from a different
+ table.
+
- Ticket [http://www.sqlite.org/src/info/eb5548a849 | eb5548a849]
+ describes
+ a problem where the use of the CAST operator in the WHERE clause can lead
+ to incorrect results if the column being cast to a new datatype is also
+ used in the same WHERE clause without being cast.
+
+ Both bugs are obscure,
+ but because they could arise in an application after deployment, it is
+ recommended that all applications upgrade SQLite to version 3.6.22.
+
+ This release also includes other minor bug fixes and performance
+ enhancements, especially in the [FTS3] extension.
+}
+
newsitem {2009-Dec-07} {Version 3.6.21} {
SQLite [version 3.6.21] focuses on performance optimization. For
a certain set of traces, this version uses 12% fewer CPU instructions
than the previous release (as measured by Valgrind). In addition, the
Index: pages/wal.in
==================================================================
--- pages/wal.in
+++ pages/wal.in
@@ -1,7 +1,7 @@
Write-Ahead Logging
-hd_keywords {WAL} {write-ahead log}
+hd_keywords {WAL} {write-ahead log} {WAL mode}
Write-Ahead Logging
The default method by which SQLite implements
[atomic commit | atomic commit and rollback] is a [rollback journal].
Index: remove_carets.sh
==================================================================
--- remove_carets.sh
+++ remove_carets.sh
@@ -13,8 +13,8 @@
# ^
#
echo 'Removing ^ characters '
find $1 -name '*.html' -print | grep -v matrix | while read file
do
- mv $file x.html
- sed -e 's/\^(//g' -e 's/)^//g' -e 's/\^//g' x.html >$file
+ mv "$file" x.html
+ sed -e 's/\^(//g' -e 's/)^//g' -e 's/\^//g' x.html >"$file"
done
|