anchor.diff:      set_revs_limit/3, create_shard_db_doc/2, delete_shard_db_doc/2]).
   -export([get_all_security/2]).
   
  +-export([get_db_info/2, get_doc_count/2, get_update_seq/2,
  +         changes/4, map_view/5, reduce_view/5, group_info/3]).
  +
   -include_lib("fabric/include/fabric.hrl").
   -include_lib("couch/include/couch_db.hrl").
   -include_lib("couch_mrview/include/couch_mrview.hrl").
  
positive.code:     Docs = make_att_readers(Docs0),
      with_db(DbName, Options, {couch_db, update_docs, [Docs, Options, X]}).
  
  group_info(DbName, DDocId) ->
      with_db(DbName, [], {couch_mrview, get_info, [DDocId]}).
  
  reset_validation_funs(DbName) ->
      case get_or_create_db(DbName, []) of
  
negative.code: delete_shard_db_doc(_, DocId) ->
      rexi:reply(mem3_util:delete_db_doc(DocId)).
  
  %% @equiv get_db_info(DbName, [])
  get_db_info(DbName) ->
      get_db_info(DbName, []).
  
  get_db_info(DbName, DbOptions) ->
      with_db(DbName, DbOptions, {couch_db, get_db_info, []}).
  
  %% equiv get_doc_count(DbName, [])
  get_doc_count(DbName) ->
      get_doc_count(DbName, []).
  
  get_doc_count(DbName, DbOptions) ->
      with_db(DbName, DbOptions, {couch_db, get_doc_count, []}).
  
  %% equiv get_update_seq(DbName, [])
  get_update_seq(DbName) ->
      get_update_seq(DbName, []).
  
  get_update_seq(DbName, DbOptions) ->
      with_db(DbName, DbOptions, {couch_db, get_update_seq, []}).
  
  set_security(DbName, SecObj, Options) ->
      with_db(DbName, Options, {couch_db, set_security, [SecObj]}).
  