Skip to content

Commit 01e6578

Browse files
authored
Merge pull request #15 from emqx/dev/handle-deletions
fix: Handle deletions in the tables
2 parents 69e55b4 + 6600bcd commit 01e6578

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

src/mnesia_rocksdb.erl

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -619,12 +619,20 @@ sender_handle_info(_Msg, _Alias, _Tab, _ReceiverPid, Cont) ->
619619
{chunk_fun(), Cont}.
620620

621621
receiver_first_message(_Pid, {first, Size} = _Msg, _Alias, _Tab) ->
622-
{Size, _State = []}.
622+
{Size, need_clear}.
623623

624+
receive_data(Data, Alias, Tab, Sender, need_clear) ->
625+
call(Alias, Tab, clear_table),
626+
receive_data(Data, Alias, Tab, Sender, normal);
624627
receive_data(Data, Alias, Tab, _Sender, State) ->
625628
[insert(Alias, Tab, Obj) || Obj <- Data],
626629
{more, State}.
627630

631+
receive_done(Alias, Tab, _Sender, need_clear) ->
632+
%% Special case that can happen when the upstream table is empty.
633+
%% In this case `receive_data' is never called.
634+
call(Alias, Tab, clear_table),
635+
ok;
628636
receive_done(_Alias, _Tab, _Sender, _State) ->
629637
ok.
630638

0 commit comments

Comments
 (0)