summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjiahuili <Jiahui.Li@ibm.com>2022-01-24 17:25:00 -0600
committerNick Vatamaniuc <nickva@users.noreply.github.com>2022-01-25 00:44:33 -0500
commit9b7fb372608a1bef30cf6ade73a3c523148adbc4 (patch)
treeaefb03aa79b713a24e77042ce39bee6c3bc05d97
parent55d8278ac405883d494f3f9dca46073035c8e308 (diff)
downloadcouchdb-9b7fb372608a1bef30cf6ade73a3c523148adbc4.tar.gz
fixup get _dbs_info corner case
-rw-r--r--src/chttpd/src/chttpd_misc.erl26
1 files changed, 15 insertions, 11 deletions
diff --git a/src/chttpd/src/chttpd_misc.erl b/src/chttpd/src/chttpd_misc.erl
index 4340823b4..492706f70 100644
--- a/src/chttpd/src/chttpd_misc.erl
+++ b/src/chttpd/src/chttpd_misc.erl
@@ -155,17 +155,21 @@ all_dbs_info_callback({row, Row}, #vacc{resp = Resp0} = Acc) when
Acc#vacc.req#httpd.path_parts =:= [<<"_dbs_info">>]
->
Prepend = couch_mrview_http:prepend_val(Acc),
- DbName = couch_util:get_value(id, Row),
- case chttpd_util:get_db_info(DbName) of
- {ok, DbInfo} ->
- Chunk = [Prepend, ?JSON_ENCODE({[{key, DbName}, {info, {DbInfo}}]})],
- {ok, Resp1} = chttpd:send_delayed_chunk(Resp0, Chunk),
- {ok, Acc#vacc{prepend = ",", resp = Resp1}};
- {error, database_does_not_exist} ->
- {ok, Acc#vacc{resp = Resp0}};
- {error, Reason} ->
- {ok, Resp1} = chttpd:send_delayed_error(Resp0, Reason),
- {stop, Acc#vacc{resp = Resp1}}
+ case couch_util:get_value(id, Row) of
+ <<"_design", _/binary>> ->
+ {ok, Acc};
+ DbName ->
+ case chttpd_util:get_db_info(DbName) of
+ {ok, DbInfo} ->
+ Chunk = [Prepend, ?JSON_ENCODE({[{key, DbName}, {info, {DbInfo}}]})],
+ {ok, Resp1} = chttpd:send_delayed_chunk(Resp0, Chunk),
+ {ok, Acc#vacc{prepend = ",", resp = Resp1}};
+ {error, database_does_not_exist} ->
+ {ok, Acc#vacc{resp = Resp0}};
+ {error, Reason} ->
+ {ok, Resp1} = chttpd:send_delayed_error(Resp0, Reason),
+ {stop, Acc#vacc{resp = Resp1}}
+ end
end;
all_dbs_info_callback(complete, #vacc{resp = Resp0} = Acc) ->
{ok, Resp1} = chttpd:send_delayed_chunk(Resp0, "]"),