diff --git a/mnesia/ggs_db.erl b/mnesia/ggs_db.erl index 0b59822..1c15536 100644 --- a/mnesia/ggs_db.erl +++ b/mnesia/ggs_db.erl @@ -7,7 +7,7 @@ -module(ggs_db). -import(mnesia). %-compile({no_auto_import,[length/2]}). --export([init/0,setItem/4,getItem/3,length/2]). +-export([init/0,setItem/4,getItem/3,removeItem/3,length/2]). -include("ggs_db.hrl"). %%----------------------------------------------------- @@ -35,6 +35,15 @@ setItem(Db,Ns,Key,Value) -> mnesia:transaction(Fun). +%%----------------------------------------------------- +%% Deletions +%%----------------------------------------------------- +removeItem(Db,Ns,Key) -> + Fun = fun() -> + mnesia:delete({data,{Db,Ns,Key}}) + end, + mnesia:transaction(Fun). + %%----------------------------------------------------- %% Querries @@ -53,3 +62,5 @@ length(Db,Ns) -> end, {atomic, Ret} = mnesia:transaction(Fun), Ret. + + diff --git a/mnesia/ggs_db_test.erl b/mnesia/ggs_db_test.erl index 0e65593..e15ddf4 100644 --- a/mnesia/ggs_db_test.erl +++ b/mnesia/ggs_db_test.erl @@ -9,7 +9,7 @@ %Key should be a tuple of two elements -get_set_test() -> +getItem_setItem_test() -> mnesia:start(), ggs_db:init(), ggs_db:setItem("dbname","nsname","keyname","Hello"), @@ -20,7 +20,11 @@ length_test() -> ggs_db:setItem(1,2,2,"122"), ggs_db:setItem(1,1,3,"113"), ggs_db:setItem(1,1,4,"114"), - ?assertEqual(ggs_db:length(1,1), 3), + ?assertEqual(ggs_db:length(1,1), 3). + +removeItem_test() -> + ggs_db:removeItem(1,1,4), + ?assertNot(ggs_db:getItem(1,1,4) =:= {atomic,"114"}), mnesia:stop(). %cleanup(Val) ->