Skip to content

Commit

Permalink
Fix sort order of request logs
Browse files Browse the repository at this point in the history
  • Loading branch information
dstotijn committed Feb 28, 2022
1 parent ad26478 commit af26987
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 3 deletions.
3 changes: 2 additions & 1 deletion pkg/db/badger/reqlog.go
Original file line number Diff line number Diff line change
Expand Up @@ -231,14 +231,15 @@ func findRequestLogIDsByProjectID(txn *badger.Txn, projectID ulid.ULID) ([]ulid.
reqLogIDs := make([]ulid.ULID, 0)
opts := badger.DefaultIteratorOptions
opts.PrefetchValues = false
opts.Reverse = true
iterator := txn.NewIterator(opts)
defer iterator.Close()

var projectIndexKey []byte

prefix := entryKey(reqLogPrefix, reqLogProjectIDIndex, projectID[:])

for iterator.Seek(prefix); iterator.ValidForPrefix(prefix); iterator.Next() {
for iterator.Seek(append(prefix, 255)); iterator.ValidForPrefix(prefix); iterator.Next() {
projectIndexKey = iterator.Item().KeyCopy(projectIndexKey)

var id ulid.ULID
Expand Down
10 changes: 8 additions & 2 deletions pkg/db/badger/reqlog_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ func TestFindRequestLogs(t *testing.T) {

projectID := ulid.MustNew(ulid.Timestamp(time.Now()), ulidEntropy)

exp := []reqlog.RequestLog{
fixtures := []reqlog.RequestLog{
{
ID: ulid.MustNew(ulid.Timestamp(time.Now()), ulidEntropy),
ProjectID: projectID,
Expand Down Expand Up @@ -80,7 +80,7 @@ func TestFindRequestLogs(t *testing.T) {
}

// Store fixtures.
for _, reqLog := range exp {
for _, reqLog := range fixtures {
err = database.StoreRequestLog(context.Background(), reqLog)
if err != nil {
t.Fatalf("unexpected error creating request log fixture: %v", err)
Expand All @@ -103,6 +103,12 @@ func TestFindRequestLogs(t *testing.T) {
t.Fatalf("unexpected error finding request logs: %v", err)
}

// We expect the found request logs are *reversed*, e.g. newest first.
exp := make([]reqlog.RequestLog, len(fixtures))
for i, j := 0, len(fixtures)-1; i < j; i, j = i+1, j-1 {
exp[i], exp[j] = fixtures[j], fixtures[i]
}

if diff := cmp.Diff(exp, got); diff != "" {
t.Fatalf("request logs not equal (-exp, +got):\n%v", diff)
}
Expand Down

0 comments on commit af26987

Please sign in to comment.