| 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. |