diff options
author | jiahuili <Jiahui.Li@ibm.com> | 2022-01-24 17:25:00 -0600 |
---|---|---|
committer | Nick Vatamaniuc <nickva@users.noreply.github.com> | 2022-01-25 00:44:33 -0500 |
commit | 9b7fb372608a1bef30cf6ade73a3c523148adbc4 (patch) | |
tree | aefb03aa79b713a24e77042ce39bee6c3bc05d97 | |
parent | 55d8278ac405883d494f3f9dca46073035c8e308 (diff) | |
download | couchdb-9b7fb372608a1bef30cf6ade73a3c523148adbc4.tar.gz |
fixup get _dbs_info corner case
-rw-r--r-- | src/chttpd/src/chttpd_misc.erl | 26 |
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, "]"), |