Skip to content

Commit 70bce7c

Browse files
fix wrong skip take query translation on aggregation sets (#355)
1 parent dbb71b8 commit 70bce7c

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

src/Redis.OM/Common/ExpressionTranslator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ public static RedisAggregation BuildAggregationFromExpression(Expression express
103103
case "Skip":
104104
if (aggregation.Limit != null)
105105
{
106-
aggregation.Limit.Count = TranslateSkip(exp);
106+
aggregation.Limit.Offset = TranslateSkip(exp);
107107
}
108108
else
109109
{

test/Redis.OM.Unit.Tests/RediSearchTests/AggregationSetTests.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -478,5 +478,14 @@ public void TestSequentialWhereClauseTranslation()
478478
_ = collection.Where(x => x.RecordShell.FirstName == customerFilter.FirstName).Where(p=>p.RecordShell.LastName==customerFilter.LastName).ToList();
479479
_mock.Verify(x => x.Execute("FT.AGGREGATE", "person-idx", "@LastName:{Bond} @FirstName:{James}", "WITHCURSOR", "COUNT", "10000"));
480480
}
481+
[Fact]
482+
public void TestSkipTakeTranslatedLimit()
483+
{
484+
var collection = new RedisAggregationSet<Person>(_mock.Object, true, chunkSize: 10000);
485+
_mock.Setup(x => x.Execute("FT.AGGREGATE", It.IsAny<string[]>())).Returns(MockedResult);
486+
_mock.Setup(x => x.Execute("FT.CURSOR", It.IsAny<string[]>())).Returns(MockedResultCursorEnd);
487+
_ = collection.OrderByDescending(p=>p.RecordShell.Age).Skip(0).Take(10).ToList();
488+
_mock.Verify(x => x.Execute("FT.AGGREGATE", "person-idx","*","SORTBY","2","@Age","DESC","LIMIT","0","10", "WITHCURSOR", "COUNT", "10000"));
489+
}
481490
}
482491
}

0 commit comments

Comments
 (0)