From bf20191780079c81fc487c3e3dd52e51651adea5 Mon Sep 17 00:00:00 2001 From: John Christopher Anderson Date: Fri, 1 Oct 2010 23:05:30 +0000 Subject: close db handles after using them to get view groups git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@1003701 13f79535-47bb-0310-9956-ffa450edef68 --- src/couchdb/couch_view.erl | 8 ++------ src/couchdb/couch_view_group.erl | 7 ++++--- 2 files changed, 6 insertions(+), 9 deletions(-) (limited to 'src/couchdb') diff --git a/src/couchdb/couch_view.erl b/src/couchdb/couch_view.erl index 35bc80b6..e3ec0ed8 100644 --- a/src/couchdb/couch_view.erl +++ b/src/couchdb/couch_view.erl @@ -29,9 +29,7 @@ start_link() -> gen_server:start_link({local, couch_view}, couch_view, [], []). get_temp_updater(DbName, Language, DesignOptions, MapSrc, RedSrc) -> - % make temp group - % do we need to close this db? - {ok, _Db, Group} = + {ok, Group} = couch_view_group:open_temp_group(DbName, Language, DesignOptions, MapSrc, RedSrc), case gen_server:call(couch_view, {get_group_server, DbName, Group}) of {ok, Pid} -> @@ -41,10 +39,8 @@ get_temp_updater(DbName, Language, DesignOptions, MapSrc, RedSrc) -> end. get_group_server(DbName, GroupId) -> - % get signature for group case couch_view_group:open_db_group(DbName, GroupId) of - % do we need to close this db? - {ok, _Db, Group} -> + {ok, Group} -> case gen_server:call(couch_view, {get_group_server, DbName, Group}) of {ok, Pid} -> Pid; diff --git a/src/couchdb/couch_view_group.erl b/src/couchdb/couch_view_group.erl index 2f59f8e3..aefcb188 100644 --- a/src/couchdb/couch_view_group.erl +++ b/src/couchdb/couch_view_group.erl @@ -445,8 +445,8 @@ open_temp_group(DbName, Language, DesignOptions, MapSrc, RedSrc) -> def=MapSrc, reduce_funs= if RedSrc==[] -> []; true -> [{<<"_temp">>, RedSrc}] end, options=DesignOptions}, - - {ok, Db, set_view_sig(#group{name = <<"_temp">>,lib={[]}, db=Db, views=[View], + couch_db:close(Db), + {ok, set_view_sig(#group{name = <<"_temp">>,lib={[]}, db=Db, views=[View], def_lang=Language, design_options=DesignOptions})}; Error -> Error @@ -480,7 +480,8 @@ open_db_group(DbName, GroupId) -> {ok, Db} -> case couch_db:open_doc(Db, GroupId) of {ok, Doc} -> - {ok, Db, design_doc_to_view_group(Doc)}; + couch_db:close(Db), + {ok, design_doc_to_view_group(Doc)}; Else -> couch_db:close(Db), Else -- cgit v1.2.3