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"}},
{"PC013",
{warn, "Merge resulted in empty file ~s"}},
{"PC014",
{info, "Empty file ~s to be cleared"}},
{"PC015",
{info, "File created"}},
{"PC016",

View file

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

View file

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