summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn Christopher Anderson <jchris@apache.org>2010-10-01 23:05:30 +0000
committerJohn Christopher Anderson <jchris@apache.org>2010-10-01 23:05:30 +0000
commitbf20191780079c81fc487c3e3dd52e51651adea5 (patch)
tree52be76246cfda435cb38e56704d343532d37f98a /src
parentb669bb9ea92cd4a9b9a7218d1e73a9b1d056a16a (diff)
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
Diffstat (limited to 'src')
-rw-r--r--src/couchdb/couch_view.erl8
-rw-r--r--src/couchdb/couch_view_group.erl7
2 files changed, 6 insertions, 9 deletions
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