Skip to content

Commit c876f28

Browse files
Fix archive order (#382)
* Tiered reader returns events in wrong order, fixing it for 0.15
1 parent b2c610f commit c876f28

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

src/Core/src/Eventuous.Persistence/EventStore/TieredEventReader.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ public async Task<StreamEvent[]> ReadEvents(StreamName streamName, StreamReadPos
1414
var hotEvents = await LoadStreamEvents(hotReader, start, count).NoContext();
1515

1616
var archivedEvents = hotEvents.Length == 0 || hotEvents[0].Position > start.Value
17-
? await LoadStreamEvents(archiveReader, start, count - hotEvents.Length).NoContext()
17+
? await LoadStreamEvents(archiveReader, start, (int)hotEvents[0].Position).NoContext()
1818
: Enumerable.Empty<StreamEvent>();
1919

20-
return hotEvents.Concat(archivedEvents.Select(x => x with { FromArchive = true })).Distinct(Comparer).ToArray();
20+
return archivedEvents.Select(x => x with { FromArchive = true }).Concat(hotEvents).Distinct(Comparer).ToArray();
2121

2222
async Task<StreamEvent[]> LoadStreamEvents(IEventReader reader, StreamReadPosition startPosition, int localCount) {
2323
try {

src/Core/test/Eventuous.Tests.Persistence.Base/Store/TieredStoreTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ protected async Task Should_load_hot_and_archive() {
2323
var actual = loaded.Select(x => (TestEventForTiers)x.Payload!).ToArray();
2424
actual.Should().BeEquivalentTo(testEvents);
2525

26-
loaded.Take(50).Select(x => x.FromArchive).Should().AllSatisfy(x => x.Should().BeFalse());
27-
loaded.Skip(50).Select(x => x.FromArchive).Should().AllSatisfy(x => x.Should().BeTrue());
26+
loaded.Take(50).Select(x => x.FromArchive).Should().AllSatisfy(x => x.Should().BeTrue());
27+
loaded.Skip(50).Select(x => x.FromArchive).Should().AllSatisfy(x => x.Should().BeFalse());
2828
}
2929

3030
readonly Fixture _fixture = new();

0 commit comments

Comments
 (0)