diff options
author | Jan Lehnardt <jan@apache.org> | 2021-03-14 17:56:41 +0100 |
---|---|---|
committer | Jan Lehnardt <jan@apache.org> | 2021-07-12 10:39:11 +0200 |
commit | 95d49bc6846280b312944ec6c0da94cccf5e9fff (patch) | |
tree | 9810bf0c0730158f07784577c109656a167757bd | |
parent | c05fd08308bee5c7c44a7596bb406dadb9981617 (diff) | |
download | couchdb-95d49bc6846280b312944ec6c0da94cccf5e9fff.tar.gz |
fix badmatch when fetching latest rev
Closes #3362
-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 8e528b5f2..312adaed4 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); _ -> |