Author: jchris Date: Sat Oct 2 00:05:59 2010 New Revision: 1003718 URL: http://svn.apache.org/viewvc?rev=1003718&view=rev Log: backport r1003701 (fix db file ref count in view generation
Modified: couchdb/branches/1.0.x/src/couchdb/couch_view.erl couchdb/branches/1.0.x/src/couchdb/couch_view_group.erl Modified: couchdb/branches/1.0.x/src/couchdb/couch_view.erl URL: http://svn.apache.org/viewvc/couchdb/branches/1.0.x/src/couchdb/couch_view.erl?rev=1003718&r1=1003717&r2=1003718&view=diff ============================================================================== --- couchdb/branches/1.0.x/src/couchdb/couch_view.erl (original) +++ couchdb/branches/1.0.x/src/couchdb/couch_view.erl Sat Oct 2 00:05:59 2010 @@ -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, Desig 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; Modified: couchdb/branches/1.0.x/src/couchdb/couch_view_group.erl URL: http://svn.apache.org/viewvc/couchdb/branches/1.0.x/src/couchdb/couch_view_group.erl?rev=1003718&r1=1003717&r2=1003718&view=diff ============================================================================== --- couchdb/branches/1.0.x/src/couchdb/couch_view_group.erl (original) +++ couchdb/branches/1.0.x/src/couchdb/couch_view_group.erl Sat Oct 2 00:05:59 2010 @@ -445,8 +445,8 @@ open_temp_group(DbName, Language, Design def=MapSrc, reduce_funs= if RedSrc==[] -> []; true -> [{<<"_temp">>, RedSrc}] end, options=DesignOptions}, - - {ok, Db, set_view_sig(#group{name = <<"_temp">>, db=Db, views=[View], + couch_db:close(Db), + {ok, set_view_sig(#group{name = <<"_temp">>, views=[View], def_lang=Language, design_options=DesignOptions})}; Error -> Error @@ -463,7 +463,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