diff options
-rw-r--r-- | src/chttpd/src/chttpd_db.erl | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/chttpd/src/chttpd_db.erl b/src/chttpd/src/chttpd_db.erl index 27a564be8..e107e009c 100644 --- a/src/chttpd/src/chttpd_db.erl +++ b/src/chttpd/src/chttpd_db.erl @@ -919,7 +919,7 @@ db_doc_req(#httpd{method='DELETE'}=Req, Db, DocId) -> db_doc_req(#httpd{method='GET', mochi_req=MochiReq}=Req, Db, DocId) -> #doc_query_args{ - rev = Rev, + rev = Rev0, open_revs = Revs, options = Options0, atts_since = AttsSince @@ -932,6 +932,12 @@ db_doc_req(#httpd{method='GET', mochi_req=MochiReq}=Req, Db, DocId) -> [{atts_since, AttsSince}, attachments | Options]; true -> Options end, + Rev = case lists:member(latest, Options) of + % couch_doc_open will open the winning rev despite of a rev passed + % https://docs.couchdb.org/en/stable/api/document/common.html?highlight=latest#get--db-docid + true -> nil; + false -> Rev0 + end, Doc = couch_doc_open(Db, DocId, Rev, Options2), send_doc(Req, Doc, Options2); _ -> |