Index: misc/althttpd.c ================================================================== --- misc/althttpd.c +++ misc/althttpd.c @@ -212,10 +212,11 @@ static char *zHttpHost = 0; /* Name according to the web browser */ static char *zRealPort = 0; /* The real TCP port when running as daemon */ static char *zRemoteAddr = 0; /* IP address of the request */ static char *zReferer = 0; /* Name of the page that refered to us */ static char *zAccept = 0; /* What formats will be accepted */ +static char *zAcceptEncoding =0; /* gzip or default */ static char *zContentLength = 0; /* Content length reported in the header */ static char *zContentType = 0; /* Content type reported in the header */ static char *zQuerySuffix = 0; /* The part of the URL after the first ? */ static char *zAuthType = 0; /* Authorization type (basic or digest) */ static char *zAuthArg = 0; /* Authorization values */ @@ -1124,10 +1125,12 @@ RemoveNewline(zVal); if( strcasecmp(zFieldName,"User-Agent:")==0 ){ zAgent = StrDup(zVal); }else if( strcasecmp(zFieldName,"Accept:")==0 ){ zAccept = StrDup(zVal); + }else if( strcasecmp(zFieldName,"Accept-Encoding:")==0 ){ + zAcceptEncoding = StrDup(zVal); }else if( strcasecmp(zFieldName,"Content-length:")==0 ){ zContentLength = StrDup(zVal); }else if( strcasecmp(zFieldName,"Content-type:")==0 ){ zContentType = StrDup(zVal); }else if( strcasecmp(zFieldName,"Referer:")==0 ){ @@ -1418,10 +1421,11 @@ { "CONTENT_LENGTH", &zContentLength }, { "CONTENT_TYPE", &zContentType }, { "DOCUMENT_ROOT", &zHome }, { "GATEWAY_INTERFACE", &gateway_interface }, { "HTTP_ACCEPT", &zAccept }, + { "HTTP_ACCEPT_ENCODING", &zAcceptEncoding }, { "HTTP_COOKIE", &zCookie }, { "HTTP_HOST", &zHttpHost }, { "HTTP_REFERER", &zReferer }, { "HTTP_USER_AGENT", &zAgent }, { "PATH", &default_path }, Index: pages/changes.in ================================================================== --- pages/changes.in +++ pages/changes.in @@ -15,10 +15,63 @@ proc chng {date desc {options {}}} { global nChng aChng set aChng($nChng) [list $date $desc $options] incr nChng } + +chng {2014-12-09 (3.8.7.4)} { +
Performance Enhancements:
$txt" hd_puts "
SQLite [version 3.8.7.4] an unscheduled bug-fix release. Changes from + the previous release and from [version 3.8.7] are minimal. + +
This release fixes adds in a mutex that is required by the changes of + the 3.8.7.3 patch but was accidently omitted. The mutex was not required + by any of the internal SQLite tests, but Firefox crashes without it. + Test cases have been added to ensure that mutex is never again missed. +} + +newsitem {2014-12-06} {Release 3.8.7.3} { +
SQLite [version 3.8.7.3] an unscheduled bug-fix release. Changes from + the previous release and from [version 3.8.7] are minimal. + +
This release fixes two obscure bugs that can result in incorrect + query results and/or application crashes, but not (as far as we can + tell) security vulnerabilities. Both bugs have been latent in the + code across multiple prior releases and have never before been encountered, + so they are unlikely to cause problems. Nevertheless + it seems prudent to publish fixes for them both. See the + change log for details. +} + +newsitem {2014-11-19} {Release 3.8.7.2} { +
SQLite [version 3.8.7.2] is a patch and bug-fix release. Changes from + the previous release are minimal. + +
The primary reason for this release is to enhance the [ROLLBACK] command + so that it allows running queries on the same database connection to + continue running as long as the ROLLBACK does not change the schema. + In all previous versions of SQLite, a ROLLBACK would cause pending + queries to stop immediately and return [SQLITE_ABORT] or + [SQLITE_ABORT_ROLLBACK]. Pending queries still abort if the ROLLBACK + changes the database schema, but as of this patch release, the queries + are allowed to continue running if the schema is unmodified. + +
In addition to the ROLLBACK enhancement, this patch release also + includes fixes for three obscure bugs. See the + [version 3.8.7.2|change log] for details. +} + +newsitem {2014-10-30} {Release 3.8.7.1} { +
SQLite [version 3.8.7.1] is a bug-fix release. + +
The primary reason for this bug-fix release is to address a problem with + updating the value of fields at the end of a table that were added + using [ALTER TABLE|ALTER TABLE ADD COLUMN]. This problem + [https://www.sqlite.org/src/info/43107840f1c02|1] first appeared in the + 3.8.7 release. + +
Another minor annoyance in the 3.8.7 release was the fact that the + Android build tried to use the strchrnul() function from the standard + C library but that function is not available on Android. Android builds + had to add -DHAVE_STRCHRNUL=0 to work around the problem. This patch + fixes that so that Android builds should now work without any changes. + +
The operation of [PRAGMA journal_mode=TRUNCATE] has been enhanced so that + it invokes fsync() after truncating the journal file when + [PRAGMA synchronous=FULL]. This helps to preserve transaction durability + in the case of a power loss occurring shortly after commit. + +
Finally, a couple of long-standing and obscure problems associated with run + UPDATE and DELETE on VIEWs were fixed. + +
The [https://www.sqlite.org/src/vdiff?from=e4ab094f8afce0817f4074e823fabe59fc29ebb4&to=83afe23e553e802c0947c80d0ffdd120423e7c52&sbs=1|changes from 3.8.7] are minimal. +} newsitem {2014-10-17} {Release 3.8.7} {
SQLite [version 3.8.7] is a regularly scheduled maintenance release. Upgrading from all prior versions is recommended. Index: pages/rescode.in ================================================================== --- pages/rescode.in +++ pages/rescode.in @@ -491,23 +491,23 @@ for [SQLITE_IOERR] indicating that the xDelete method on the [sqlite3_vfs] object failed because the file being deleted does not exist. } RESCODE SQLITE_IOERR_MMAP {SQLITE_IOERR | (24<<8)} { - The SQLITE_IOERR_SEEK error code is an [ext-v-prim|extended error code] + The SQLITE_IOERR_MMAP error code is an [ext-v-prim|extended error code] for [SQLITE_IOERR] indicating an I/O error within the xFetch or xUnfetch methods on the [sqlite3_io_methods] object while trying to map or unmap part of the database file into the process address space. } RESCODE SQLITE_IOERR_GETTEMPPATH {SQLITE_IOERR | (25<<8)} { - The SQLITE_IOERR_SEEK error code is an [ext-v-prim|extended error code] + The SQLITE_IOERR_GETTEMPPATH error code is an [ext-v-prim|extended error code] for [SQLITE_IOERR] indicating that the [VFS] is unable to determine a suitable directory in which to place temporary files. } RESCODE SQLITE_IOERR_CONVPATH {SQLITE_IOERR | (26<<8)} { - The SQLITE_IOERR_SEEK error code is an [ext-v-prim|extended error code] + The SQLITE_IOERR_CONVPATH error code is an [ext-v-prim|extended error code] for [SQLITE_IOERR] used only by Cygwin [VFS] and indicating that the cygwin_conv_path() system call failed. See also: [SQLITE_CANTOPEN_CONVPATH] } RESCODE SQLITE_LOCKED_SHAREDCACHE {SQLITE_LOCKED | (1<<8)} { @@ -569,11 +569,11 @@ The SQLITE_CANTOPEN_FULLPATH error code is an [ext-v-prim|extended error code] for [SQLITE_CANTOPEN] indicating that a file open operation failed because the operating system was unable to convert the filename into a full pathname. } RESCODE SQLITE_CANTOPEN_CONVPATH {SQLITE_CANTOPEN | (4<<8)} { - The SQLITE_CANTOPEN_SEEK error code is an [ext-v-prim|extended error code] + The SQLITE_CANTOPEN_CONVPATH error code is an [ext-v-prim|extended error code] for [SQLITE_CANTOPEN] used only by Cygwin [VFS] and indicating that the cygwin_conv_path() system call failed while trying to open a file. See also: [SQLITE_IOERR_CONVPATH] } RESCODE SQLITE_CORRUPT_VTAB {SQLITE_CORRUPT | (1<<8)} { Index: pages/support.in ================================================================== --- pages/support.in +++ pages/support.in @@ -59,31 +59,31 @@
Three separate mailing lists have been established to help support SQLite:
Most users of SQLite will want to join the - + sqlite-announce list and many will want to join the - + sqlite-users list. The - + sqlite-dev list is more specialized and appeals to a narrower audience. Off-site archives of the - + sqlite-users list are available at:
[http://www.mail-archive.com/sqlite-users%40sqlite.org/]
Index: pages/syntaxdiagrams.in ================================================================== --- pages/syntaxdiagrams.in +++ pages/syntaxdiagrams.in @@ -5,10 +5,11 @@foreach name $syntax_order { # hd_fragment $name *$name "$name syntax diagram" + hd_puts "" hd_puts " $name:
" hd_puts "\n" hd_puts "
" foreach {cx px} $syntax_linkage($name) break if {[llength $px]>0} { Index: pages/whentouse.in ================================================================== --- pages/whentouse.in +++ pages/whentouse.in @@ -39,12 +39,12 @@ SQLite has been used with great success as the on-disk file format for desktop applications such as version control systems, financial analysis tools, media cataloging and editing suites, CAD packages, record keeping programs, and so forth. The traditional File/Open operation calls sqlite3_open() to attach to the database -file. Updates happen atomically as application content is revised -so the File/Save menu option become superfluous. The File/Save_As +file. Updates happen automatically as application content is revised +so the File/Save menu option becomes superfluous. The File/Save_As menu option can be implemented using the [backup API].There are many advantages to using SQLite as an application file format, Index: search/search.tcl ================================================================== --- search/search.tcl +++ search/search.tcl @@ -394,11 +394,11 @@ News Support
-Index: wrap.tcl ================================================================== --- wrap.tcl +++ wrap.tcl @@ -525,11 +525,11 @@ } } if {1} { putsin4 $fd { -