Handle production of empty file

This commit is contained in:
martinsumner 2016-12-29 05:09:47 +00:00
parent 55386622f7
commit e01b310d20
3 changed files with 16 additions and 15 deletions

View file

@ -152,8 +152,6 @@
{info, "File to be created as part of MSN=~w Filename=~s"}}, {info, "File to be created as part of MSN=~w Filename=~s"}},
{"PC013", {"PC013",
{warn, "Merge resulted in empty file ~s"}}, {warn, "Merge resulted in empty file ~s"}},
{"PC014",
{info, "Empty file ~s to be cleared"}},
{"PC015", {"PC015",
{info, "File created"}}, {info, "File created"}},
{"PC016", {"PC016",

View file

@ -319,10 +319,8 @@ do_merge(KL1, KL2, {SrcLevel, IsB}, {Filepath, MSN}, MaxSQN,
SrcLevel + 1, SrcLevel + 1,
MaxSQN), MaxSQN),
case Reply of case Reply of
{{[], []}, null, _} -> empty ->
leveled_log:log("PC013", [FileName]), leveled_log:log("PC013", [FileName]),
leveled_log:log("PC014", [FileName]),
ok = leveled_sst:sst_clear(Pid),
OutList; OutList;
{{KL1Rem, KL2Rem}, SmallestKey, HighestKey} -> {{KL1Rem, KL2Rem}, SmallestKey, HighestKey} ->
ExtMan = lists:append(OutList, ExtMan = lists:append(OutList,

View file

@ -146,16 +146,21 @@ sst_new(Filename, Level, KVList, MaxSQN) ->
sst_new(Filename, KL1, KL2, IsBasement, Level, MaxSQN) -> sst_new(Filename, KL1, KL2, IsBasement, Level, MaxSQN) ->
{{Rem1, Rem2}, MergedList} = merge_lists(KL1, KL2, {IsBasement, Level}), {{Rem1, Rem2}, MergedList} = merge_lists(KL1, KL2, {IsBasement, Level}),
{ok, Pid} = gen_fsm:start(?MODULE, [], []), case MergedList of
case gen_fsm:sync_send_event(Pid, [] ->
{sst_new, empty;
Filename, _ ->
Level, {ok, Pid} = gen_fsm:start(?MODULE, [], []),
MergedList, case gen_fsm:sync_send_event(Pid,
MaxSQN}, {sst_new,
infinity) of Filename,
{ok, {SK, EK}} -> Level,
{ok, Pid, {{Rem1, Rem2}, SK, EK}} MergedList,
MaxSQN},
infinity) of
{ok, {SK, EK}} ->
{ok, Pid, {{Rem1, Rem2}, SK, EK}}
end
end. end.
sst_newlevelzero(Filename, Slots, FetchFun, Penciller, MaxSQN) -> sst_newlevelzero(Filename, Slots, FetchFun, Penciller, MaxSQN) ->