[ 
https://issues.apache.org/jira/browse/COUCHDB-3264?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15794684#comment-15794684
 ] 

ASF GitHub Bot commented on COUCHDB-3264:
-----------------------------------------

GitHub user willholley opened a pull request:

    https://github.com/apache/couchdb-fabric/pull/81

    Include conflicts parameter in doc_options

    When a keys array is passed to _all_docs, fabric translates this
    to individual open_doc calls. The conflicts=true query parameter is
    specified as a view-level option and is not, by default, parsed as
    an option that should be passed to open_doc.
    
    As a workaround, explicitly copy the view-level conflict parameter into
    the document options before open_doc is called.
    
    An alternative approach would be to address this when the query
    parameters are parsed, setting conflicts=true in both #mrargs and
    detail of fabric, I elected to make the change here instead.
    
    Fixes #COUCHDB-3264

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/willholley/couchdb-fabric 
3264-alldocs-keys-conflicts

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/couchdb-fabric/pull/81.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #81
    
----
commit 22f6a3e7d58548b156a01f7321a41ae8aea739ec
Author: Will Holley <willhol...@gmail.com>
Date:   2017-01-03T09:54:30Z

    Include conflicts parameter in doc_options
    
    When a keys array is passed to _all_docs, fabric translates this
    to individual open_doc calls. The conflicts=true query parameter is
    specified as a view-level option and is not, by default, parsed as
    an option that should be passed to open_doc.
    
    As a workaround, explicitly copy the view-level conflict parameter into
    the document options before open_doc is called.
    
    An alternative approach would be to address this when the query
    parameters are parsed, setting conflicts=true in both #mrargs and
    detail of fabric, I elected to make the change here instead.
    
    Fixes #COUCHDB-3264

----


> POST to _all_docs does not respect conflicts=true
> -------------------------------------------------
>
>                 Key: COUCHDB-3264
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-3264
>             Project: CouchDB
>          Issue Type: Bug
>          Components: Database Core
>    Affects Versions: 2.0.1
>            Reporter: Will Holley
>
> In CouchDB 2.0, POST to _all_docs with ids specified in the keys field does 
> not respect the conflicts=true parameter.
> In CouchDB 1.6.1:
> {code}
> $ curl -X PUT http://127.0.0.1:5984/test
> {"ok":true}
> $ curl -X POST http://127.0.0.1:5984/test/_bulk_docs -H 
> 'Content-type:application/json' -d '{ "docs":[{"_id":"foo","_rev": 
> "1-a1"},{"_id":"foo","_rev": "1-a2"}], "new_edits":false}'
> []
> $ curl -X GET 
> 'http://127.0.0.1:5984/test/_all_docs?include_docs=true&conflicts=true'
> {"total_rows":1,"offset":0,"rows":[
> {"id":"foo","key":"foo","value":{"rev":"1-a2"},"doc":{"_id":"foo","_rev":"1-a2","_conflicts":["1-a1"]}}
> ]}
> $ curl -X POST 
> 'http://127.0.0.1:5984/test/_all_docs?include_docs=true&conflicts=true' -H 
> 'Content-type:application/json' -d '{"keys":["foo"]}'
> {"total_rows":1,"offset":0,"rows":[
> {"id":"foo","key":"foo","value":{"rev":"1-a2"},"doc":{"_id":"foo","_rev":"1-a2","_conflicts":["1-a1"]}}
> ]}
> {code}
> In CouchDB 2.0:
> {code}
> $ curl -X PUT http://127.0.0.1:15984/test
> {"ok":true}
> $ curl -X POST http://127.0.0.1:15984/test/_bulk_docs -H 
> 'Content-type:application/json' -d '{ "docs":[{"_id":"foo","_rev": 
> "1-a1"},{"_id":"foo","_rev": "1-a2"}], "new_edits":false}'
> []
> $ curl -X GET 
> 'http://127.0.0.1:15984/test/_all_docs?include_docs=true&conflicts=true'
> {"total_rows":1,"offset":0,"rows":[
> {"id":"foo","key":"foo","value":{"rev":"1-a2"},"doc":{"_id":"foo","_rev":"1-a2","_conflicts":["1-a1"]}}
> ]}
> $ curl -X POST 
> 'http://127.0.0.1:15984/test/_all_docs?include_docs=true&conflicts=true' -H 
> 'Content-type:application/json' -d '{"keys":["foo"]}'
> {"total_rows":1,"rows":[
> {"id":"foo","key":"foo","value":{"rev":"1-a2"},"doc":{"_id":"foo","_rev":"1-a2"}}
> ]}
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to