incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jens Alfke <j...@mooseyard.com>
Subject Re: View Returns Inconsistent Data on CouchDB 1.1
Date Wed, 29 Jun 2011 18:13:04 GMT

On Jun 29, 2011, at 8:02 AM, Robert Newson wrote:

> This is deliberate ("COUCHDB-799 - More granular ETags for views." --
> "ETags for views now only change when their underlying view index
> changes due to indexing or purges. ETags are also specific to each
> view.")
> 
> The view is updated if and only if the emitted data actually changes.

Interesting. So the implication is that one shouldn’t combine the ?include_docs option with
conditional GETs, because it won’t report changes in the document contents.

Unfortunately this means that CouchDB is now returning incorrect Etag: headers. This semantic
change means that the view’s ETag is now a “weak validator”, since it may stay the same
even though the literal response body changes. That means that it must be preceded with “W/“
according to the HTTP 1.1 spec.

So for example, I do this:

$ curl -I http://localhost:5984/demo-addresses/_all_docs
HTTP/1.1 200 OK
Server: CouchDB/1.2.0a-ed63a4d-git (Erlang OTP/R14B01)
Etag: "9XKYFE3OM8ZSWLNSEI4QPFB9L"
Date: Wed, 29 Jun 2011 18:10:49 GMT
Content-Type: text/plain;charset=utf-8
Content-Length: 0
Cache-Control: must-revalidate

The “Etag:” header should read
	Etag: W/"9XKYFE3OM8ZSWLNSEI4QPFB9L"

—Jens
Mime
View raw message