summaryrefslogtreecommitdiff
path: root/CHANGES
blob: d59d5f1a7c6242759d3c84e653643a265bca7a4b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
Apache CouchDB CHANGES
======================

Version 0.8.0
(?? Jun 2008, from /incubator/couchdb/branches/0.8.x)
-------------------------------------------------------------------------------

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.