Skip to content

Commit

Permalink
Fix getting ZRANGEBYSCORE when the start of the range is higher than …
Browse files Browse the repository at this point in the history
…the max score. (#265)

* Fix getting ZRangeByScore when the start is higher than the max score.

* Fix formatting
  • Loading branch information
roncrush committed Apr 12, 2024
1 parent c745364 commit 1bb9ab8
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
6 changes: 5 additions & 1 deletion libs/server/Objects/SortedSet/SortedSetObjectImpl.cs
Original file line number Diff line number Diff line change
Expand Up @@ -918,8 +918,12 @@ private List<(double, byte[])> GetElementsInRangeByLex(byte[] minParamByteArray,
/// <returns></returns>
private List<(double, byte[])> GetElementsInRangeByScore(double minValue, double maxValue, bool minExclusive, bool maxExclusive, bool withScore, bool doReverse, bool validLimit, bool rem, (int, int) limit = default)
{

List<(double, byte[])> scoredElements = new();
if (sortedSet.Max.Item1 < minValue)
{
return scoredElements;
}

foreach (var item in sortedSet.GetViewBetween((minValue, null), sortedSet.Max))
{
if (item.Item1 > maxValue || (maxExclusive && item.Item1 == maxValue)) break;
Expand Down
17 changes: 17 additions & 0 deletions test/Garnet.test/RespSortedSetTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -659,6 +659,23 @@ public async Task CanUseZRangeByScoreWithSE()
Assert.AreEqual(powOfTwo.Length, range.Length);
}

[Test]
public async Task CanManageZRangeByScoreWhenStartHigherThanExistingMaxScoreSE()
{
using var redis = ConnectionMultiplexer.Connect(TestUtils.GetConfig());
var db = redis.GetDatabase(0);

var key = "SortedSet_OnlyZeroScore";

await db.SortedSetAddAsync(key, "A", 0, CommandFlags.FireAndForget);

var res = await db.SortedSetRangeByScoreAsync(key, start: 1);
Assert.AreEqual(0, res.Length);

var range = await db.SortedSetRangeByRankWithScoresAsync(key, start: 1);
Assert.AreEqual(0, range.Length);
}

#endregion

#region LightClientTests
Expand Down

0 comments on commit 1bb9ab8

Please sign in to comment.