Re-introduce missing shortcut

Can't discover missing keys sooner by reporting missing on a zero hash.
This commit is contained in:
Martin Sumner 2017-11-20 20:31:13 +00:00
parent 52c7a023a1
commit 495f6c3fd9

View file

@ -1368,6 +1368,8 @@ search_hash_table(Handle,
UpdTimings = update_fetchtimings(Timings, CycleCount), UpdTimings = update_fetchtimings(Timings, CycleCount),
{UpdTimings, KV} {UpdTimings, KV}
end; end;
0 ->
{Timings, missing};
_ -> _ ->
search_hash_table(Handle, search_hash_table(Handle,
{FirstHashPosition, {FirstHashPosition,
@ -1850,6 +1852,13 @@ cyclecount_test() ->
lists:foreach(fun({K, V}) -> lists:foreach(fun({K, V}) ->
?assertMatch({K, V}, cdb_get(P2, K)) end, ?assertMatch({K, V}, cdb_get(P2, K)) end,
KVL2), KVL2),
% Test many missing keys
lists:foreach(fun(X) ->
K = "NotKey" ++ integer_to_list(X),
?assertMatch(missing, cdb_get(P2, K))
end,
lists:seq(1, 5000)),
ok = cdb_close(P2), ok = cdb_close(P2),
ok = file:delete("../test/cycle_count.cdb"). ok = file:delete("../test/cycle_count.cdb").