summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAdam Kocoloski <adam@cloudant.com>2010-07-02 14:21:40 -0400
committerAdam Kocoloski <adam@cloudant.com>2010-07-02 14:22:57 -0400
commit6e6d8021855cb797e0312164d27b9e00b3c29411 (patch)
treeb7688db6376b824fd6ce78e3c5e9f5e3c664073a /src
parent07cc904637aedf1ba0577a2aaa4574f593ef0007 (diff)
convenience function to reset DB validation functions
Diffstat (limited to 'src')
-rw-r--r--src/fabric.erl6
-rw-r--r--src/fabric_rpc.erl10
2 files changed, 14 insertions, 2 deletions
diff --git a/src/fabric.erl b/src/fabric.erl
index b233677b..9545e729 100644
--- a/src/fabric.erl
+++ b/src/fabric.erl
@@ -13,7 +13,7 @@
get_view_group_info/2]).
% miscellany
--export([db_path/2, design_docs/1]).
+-export([db_path/2, design_docs/1, reset_validation_funs/1]).
-include("fabric.hrl").
@@ -120,6 +120,10 @@ design_docs(DbName) ->
end,
fabric:all_docs(dbname(DbName), QueryArgs, Callback, []).
+reset_validation_funs(DbName) ->
+ [rexi:cast(Node, {fabric_rpc, reset_validation_funs, [Name]}) ||
+ #shard{node=Node, name=Name} <- mem3:shards(DbName)].
+
%% some simple type validation and transcoding
dbname(DbName) when is_list(DbName) ->
diff --git a/src/fabric_rpc.erl b/src/fabric_rpc.erl
index 948bc54b..2baaf49a 100644
--- a/src/fabric_rpc.erl
+++ b/src/fabric_rpc.erl
@@ -3,7 +3,7 @@
-export([get_db_info/1, get_doc_count/1, get_update_seq/1]).
-export([open_doc/3, open_revs/4, get_missing_revs/2, update_docs/3]).
-export([all_docs/2, changes/3, map_view/4, reduce_view/4, group_info/2]).
--export([create_db/3, delete_db/3]).
+-export([create_db/3, delete_db/3, reset_validation_funs/1]).
-include("fabric.hrl").
@@ -196,6 +196,14 @@ group_info(DbName, Group0) ->
{ok, Pid} = gen_server:call(couch_view, {get_group_server, DbName, Group0}),
rexi:reply(couch_view_group:request_group_info(Pid)).
+reset_validation_funs(DbName) ->
+ case couch_db:open(DbName, []) of
+ {ok, Db} ->
+ gen_server:cast(Db#db.update_pid, {load_validation_funs, undefined});
+ _ ->
+ ok
+ end.
+
%%
%% internal
%%