You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by "Benjamin Young (JIRA)" <ji...@apache.org> on 2011/08/20 22:22:27 UTC

[jira] [Commented] (COUCHDB-605) _update handler doesn't conflict for existing document

    [ 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