blob: c26e20adf3d7904926132d9566078f946c5c1915 [file] [log] [blame]
Apache CouchDB CHANGES
======================
Version 0.8.0-incubating
------------------------
Database Core:
* The view engine has been completely decoupled from the storage engine. Index
data is now stored in separate files, and the format of the main database
file has changed.
* Databases can now be compacted to reclaim space used for deleted documents
and old document revisions.
* Support for incremental map/reduce views has been added.
* To support map/reduce, the structure of design documents has changed. View
values are now JSON objects containing at least a "map" member, and
optionally a "reduce" member.
* View servers are now identified by name (for example "javascript") instead of
by MIME type.
* Automatically generated document IDs are now based on proper UUID generation
using the crypto module.
* The field "content-type" in the JSON representation of attachments has been
renamed to "content_type" (underscore).
HTTP Interface:
* CouchDB now uses MochiWeb instead of inets for the HTTP server
implementation. Among other things, this means that the extra configuration
files needed for inets (such as couch_httpd.conf) are no longer used.
* The HTTP interface now completely supports the HEAD method. (COUCHDB-3)
* Improved compliance of Etag handling with the HTTP specification.
(COUCHDB-13)
* Etags are no longer included in responses to document GET requests that
include query string parameters causing the JSON response to change without
the revision or the URI having changed.
* The bulk document update API has changed slightly on both the request and the
response side. In addition, bulk updates are now atomic.
* CouchDB now uses TCP_NODELAY to fix performance problems with persistent
connections on some platforms due to nagling.
* Including a `?descending=false` query string parameter in requests to views
no longer raises an error.
* Requests to unknown top-level reserved URLs (anything with a leading
underscore) now return a "unknown_private_path" error instead of the
confusing "illegal_database_name".
* The Temporary view handling now expects a JSON request body, where the JSON
is an object with at least a "map" member, and optional "reduce" and
"language" members.
* Temporary views no longer determine the view server based on the Content-Type
header of the POST request, but rather by looking for a "language" member in
the JSON body of the request.
* The status code of responses to DELETE requests is now 200 to reflect that
that the deletion is performed synchronously.
Javascript View Server:
* SpiderMonkey is no longer included with CouchDB, but rather treated as a
normal external dependency. A simple C program (_couchjs) is provided that
links against an existing SpiderMonkey installation and uses the interpreter
embedding API.
* View functions using the default Javascript view server can now do logging
using the global `log(message)` function. Log messages are directed into the
CouchDB log at INFO level. (COUCHDB-59)
* The global `map(key, value)` function made available to view code has been
renamed to `emit(key, value)`.
* Fixed handling of exceptions raised by view functions.
Packaging and System Integration:
* CouchDB can automatically respawn following a server crash.
* Database server no longer refuses to start with a stale PID file.
* System logrotate configuration provided.
* Improved handling of ICU shared libraries.
* The `couchdb` script now automatically enables SMP support in Erlang.
* The `couchdb` and `couchjs` scripts have been improved for portability.
* The build and install system has been improved for portability.
Futon Utility Client:
* When adding a field to a document, Futon now just adds a field with an
autogenerated name instead of prompting for the name with a dialog. The name
is automatically put into edit mode so that it can be changed immediately.
* Fields are now sorted alphabetically by name when a document is displayed.
* Futon can be used to create and update permanent views.
* The maximum number of rows to display per page on the database page can now
be adjusted.
* Futon now uses the XMLHTTPRequest API asynchronously to communicate with the
CouchDB HTTP server, so that most operations no longer block the browser.
* View results sorting can now be switched between ascending and descending by
clicking on the "Key" column header.
* Fixed a bug where documents that contained a "@" character could not be
viewed. (COUCHDB-12)
* The database page now provides a "Compact" button to trigger database
compaction. (COUCHDB-38)
* Fixed portential double encoding of document IDs and other URI segments in
many instances. (COUCHDB-39)
* Improved display of attachments.
* The Javascript Shell has been removed due to unresolved licensing issues.