[
https://issues.apache.org/jira/browse/COUCHDB-605?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13088260#comment-13088260
]
Benjamin Young commented on COUCHDB-605:
----------------------------------------
I see this as part of the benefit/usefulness of _update--that you can, as
needed, ignore the MVCC pattern and update a doc regardless of matching _rev's.
However, it should be possible to implement this by comparing a "rev" query
param to the doc._rev if an existing ID is used. Sadly, (due to issue
COUCHDB-648) it's not possible to send 409 Conflict error "by hand" (or any
other developer chosen status code).
Basically, _update handlers seem to need a bit more love before they'll be
completely useful for stand-along apps or APIs built on top of CouchDB.
> _update handler doesn't conflict for existing document
> ------------------------------------------------------
>
> Key: COUCHDB-605
> URL: https://issues.apache.org/jira/browse/COUCHDB-605
> Project: CouchDB
> Issue Type: Bug
> Affects Versions: 0.10
> Environment: Ubuntu Karmic, in particular it's CouchDB version
> 0.10.0-0ubuntu3
> Reporter: Sergey Shepelev
> Assignee: Chris Anderson
>
> design doc:
> "updates": {
> "hello": "function(doc, req) { doc.value = 100500; return [doc, 'foo
> bar']; }"
> }
> $ curl -X PUT --data-binary @- http://localhost:5984/shkaf/client:foo << EOF
> > {"_id":"client:foo"}
> > EOF
> {"ok":true,"id":"client:foo","rev":"1-967a00dff5e02add41819138abb3284d"}
> $ curl -X PUT --data-binary @-
> http://localhost:5984/shkaf/_design/client/_update/hello/client:foo?A=B << EOF
> > {"_id": "client:foo"}
> > EOF
> foo bar
> And it really updated the document.
> What i expected here is error: conflict because document with such _id
> already existed and i didn't provide _rev to _update handler.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira