diff --git a/src/leveled_ebloom.erl b/src/leveled_ebloom.erl index f2ab67e..9612f72 100644 --- a/src/leveled_ebloom.erl +++ b/src/leveled_ebloom.erl @@ -498,11 +498,11 @@ generate_orderedkeys(_Seqn, 0, Acc, _BucketLow, _BucketHigh) -> Acc; generate_orderedkeys(Seqn, Count, Acc, BucketLow, BucketHigh) -> BNumber = Seqn div (BucketHigh - BucketLow), - BucketExt = leveled_util:string_right( - integer_to_list(BucketLow + BNumber), 4, $0), - KNumber = Seqn * 100 + leveled_rand:uniform(100), - KeyExt = - leveled_util:string_right(integer_to_list(KNumber), 8, $0), + BucketExt = + io_lib:format("K~4..0B", [BucketLow + BNumber]), + KeyExt = + io_lib:format("K~8..0B", [Seqn * 100 + leveled_rand:uniform(100)]), + LK = leveled_codec:to_ledgerkey("Bucket" ++ BucketExt, "Key" ++ KeyExt, o), Chunk = leveled_rand:rand_bytes(16), {_B, _K, MV, _H, _LMs} = diff --git a/src/leveled_inker.erl b/src/leveled_inker.erl index b54186b..3ecae53 100644 --- a/src/leveled_inker.erl +++ b/src/leveled_inker.erl @@ -1401,9 +1401,9 @@ compact_journal_testto(WRP, ExpectedFiles) -> 5000), timer:sleep(1000), CompactedManifest2 = ink_getmanifest(Ink1), + {ok, PrefixTest} = re:compile(?COMPACT_FP), lists:foreach(fun({_SQN, FN, _P, _LK}) -> - ?assertMatch(0, leveled_util:string_str( - FN, ?COMPACT_FP)) + nomatch = re:run(FN, PrefixTest) end, CompactedManifest2), ?assertMatch(2, length(CompactedManifest2)), diff --git a/src/leveled_pclerk.erl b/src/leveled_pclerk.erl index c4fc5b5..9500664 100644 --- a/src/leveled_pclerk.erl +++ b/src/leveled_pclerk.erl @@ -265,11 +265,13 @@ generate_randomkeys(Count, BucketRangeLow, BucketRangeHigh) -> generate_randomkeys(0, Acc, _BucketLow, _BucketHigh) -> Acc; generate_randomkeys(Count, Acc, BucketLow, BRange) -> - BNumber = leveled_util:string_right( - integer_to_list(BucketLow + leveled_rand:uniform(BRange)), - 4, $0), - KNumber = leveled_util:string_right( - integer_to_list(leveled_rand:uniform(1000)), 4, $0), + BNumber = + lists:flatten( + io_lib:format("~4..0B", + [BucketLow + leveled_rand:uniform(BRange)])), + KNumber = + lists:flatten( + io_lib:format("~4..0B", [leveled_rand:uniform(1000)])), K = {o, "Bucket" ++ BNumber, "Key" ++ KNumber, null}, RandKey = {K, {Count + 1, {active, infinity}, diff --git a/src/leveled_pmem.erl b/src/leveled_pmem.erl index 064e857..85e3272 100644 --- a/src/leveled_pmem.erl +++ b/src/leveled_pmem.erl @@ -262,11 +262,12 @@ generate_randomkeys(Seqn, Count, BucketRangeLow, BucketRangeHigh) -> generate_randomkeys(_Seqn, 0, Acc, _BucketLow, _BucketHigh) -> Acc; generate_randomkeys(Seqn, Count, Acc, BucketLow, BRange) -> - BNumber = leveled_util:string_right( - integer_to_list(BucketLow + leveled_rand:uniform(BRange)), - 4, $0), - KNumber = leveled_util:string_right( - integer_to_list(leveled_rand:uniform(1000)), 4, $0), + BNumber = + lists:flatten( + io_lib:format("K~4..0B", + [BucketLow + leveled_rand:uniform(BRange)])), + KNumber = + lists:flatten(io_lib:format("K~4..0B", [leveled_rand:uniform(1000)])), {K, V} = {{o, "Bucket" ++ BNumber, "Key" ++ KNumber, null}, {Seqn, {active, infinity}, null}}, generate_randomkeys(Seqn + 1, diff --git a/src/leveled_sst.erl b/src/leveled_sst.erl index 81fc31d..d7b4be1 100644 --- a/src/leveled_sst.erl +++ b/src/leveled_sst.erl @@ -2490,10 +2490,10 @@ generate_randomkeys(_Seqn, 0, Acc, _BucketLow, _BucketHigh) -> Acc; generate_randomkeys(Seqn, Count, Acc, BucketLow, BRange) -> BRand = leveled_rand:uniform(BRange), - BNumber = leveled_util:string_right( - integer_to_list(BucketLow + BRand), 4, $0), - KNumber = leveled_util:string_right( - integer_to_list(leveled_rand:uniform(1000)), 6, $0), + BNumber = + lists:flatten(io_lib:format("K~4..0B", [BucketLow + BRand])), + KNumber = + lists:flatten(io_lib:format("K~6..0B", [leveled_rand:uniform(1000)])), LK = leveled_codec:to_ledgerkey("Bucket" ++ BNumber, "Key" ++ KNumber, o), Chunk = leveled_rand:rand_bytes(64), {_B, _K, MV, _H, _LMs} = diff --git a/src/leveled_tree.erl b/src/leveled_tree.erl index 4f532ad..d38aaa6 100644 --- a/src/leveled_tree.erl +++ b/src/leveled_tree.erl @@ -581,10 +581,12 @@ generate_randomkeys(_Seqn, 0, Acc, _BucketLow, _BucketHigh) -> Acc; generate_randomkeys(Seqn, Count, Acc, BucketLow, BRange) -> BRand = leveled_rand:uniform(BRange), - BNumber = leveled_util:string_right( - integer_to_list(BucketLow + BRand), 4, $0), - KNumber = leveled_util:string_right( - integer_to_list(leveled_rand:uniform(1000)), 4, $0), + BNumber = + lists:flatten( + io_lib:format("K~4..0B", [BucketLow + BRand])), + KNumber = + lists:flatten( + io_lib:format("K~8..0B", [leveled_rand:uniform(1000)])), {K, V} = {{o, "Bucket" ++ BNumber, "Key" ++ KNumber, null}, {Seqn, {active, infinity}, null}}, generate_randomkeys(Seqn + 1, diff --git a/src/leveled_util.erl b/src/leveled_util.erl index 6cb1990..03c2083 100644 --- a/src/leveled_util.erl +++ b/src/leveled_util.erl @@ -16,18 +16,6 @@ integer_time/1, magic_hash/1]). --export([string_right/3, - string_str/2]). - --ifdef(OTP_RELEASE). - --if(?OTP_RELEASE >= 21). --else. --define(LEGACY_OTP, true). --endif. - --endif. % (OTP_RELEASE) - -spec generate_uuid() -> list(). %% @doc @@ -76,47 +64,6 @@ hash1(H, <>) -> H2 = H1 bxor B, hash1(H2, Rest). -%% A number of string functions have become deprecated in OTP 21 -%% --ifdef(LEGACY_OTP). - -string_right(String, Len, Char) -> - string:right(String, Len, Char). - -string_str(S, Sub) -> - string:str(S, Sub). - --else. - -string_right(String, Len, Char) when is_list(String), is_integer(Char) -> - Slen = length(String), - if - Slen > Len -> lists:nthtail(Slen-Len, String); - Slen < Len -> chars(Char, Len-Slen, String); - Slen =:= Len -> String - end. - -chars(C, N, Tail) when N > 0 -> - chars(C, N-1, [C|Tail]); -chars(C, 0, Tail) when is_integer(C) -> - Tail. - - -string_str(S, Sub) when is_list(Sub) -> str(S, Sub, 1). - -str([C|S], [C|Sub], I) -> - case l_prefix(Sub, S) of - true -> I; - false -> str(S, [C|Sub], I+1) - end; -str([_|S], Sub, I) -> str(S, Sub, I+1); -str([], _Sub, _I) -> 0. - -l_prefix([C|Pre], [C|String]) -> l_prefix(Pre, String); -l_prefix([], String) when is_list(String) -> true; -l_prefix(Pre, String) when is_list(Pre), is_list(String) -> false. - --endif. %%%============================================================================ %%% Test