diff --git a/src/emqttd_mnesia.erl b/src/emqttd_mnesia.erl index 86fa118f8..355f3d547 100644 --- a/src/emqttd_mnesia.erl +++ b/src/emqttd_mnesia.erl @@ -35,6 +35,8 @@ -export([create_table/2, copy_table/1]). +-export([dump/3]). + start() -> case init_schema() of ok -> @@ -168,3 +170,16 @@ wait_for_mnesia(stop) -> {error, mnesia_unexpectedly_starting} end. +dump(ets, Table, Fun) -> + dump(ets, Table, ets:first(Table), Fun). + +dump(ets, _Table, '$end_of_table', _Fun) -> + ok; + +dump(ets, Table, Key, Fun) -> + case ets:lookup(Table, Key) of + [Record] -> Fun(Record); + [] -> ignore + end, + dump(ets, Table, ets:next(Table, Key), Fun). +