summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Lehnardt <jan@apache.org>2021-03-14 17:56:41 +0100
committerJan Lehnardt <jan@apache.org>2021-03-14 17:57:36 +0100
commit9d96a0e8c559a9c865b24397e40a65936c77460c (patch)
treef1fed73682be4855f5a27a26dc8fe87c6d37596e
parent2624a8bd46fbbebcf7fe8a233209e624510d9a92 (diff)
downloadcouchdb-fix/3362/latest-conflicts.tar.gz
fix badmatch when fetching latest revfix/3362/latest-conflicts
Closes #3362
-rw-r--r--src/chttpd/src/chttpd_db.erl8
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);
_ ->