From 2c1eea093e0e93f902b9ad2c1221023b49dd1e85 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Sat, 19 Oct 2019 18:23:40 +0000 Subject: [PATCH] Sort reports by timestamp before merging --- app/merger.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/merger.go b/app/merger.go index 17397d16a..62448aff7 100644 --- a/app/merger.go +++ b/app/merger.go @@ -2,6 +2,7 @@ package app import ( "fmt" + "sort" "github.com/spaolacci/murmur3" @@ -20,7 +21,14 @@ func NewFastMerger() Merger { return fastMerger{} } +type reportsByTS []report.Report + +func (r reportsByTS) Len() int { return len(r) } +func (r reportsByTS) Swap(i, j int) { r[i], r[j] = r[j], r[i] } +func (r reportsByTS) Less(i, j int) bool { return r[i].TS.Before(r[j].TS) } + func (fastMerger) Merge(reports []report.Report) report.Report { + sort.Sort(reportsByTS(reports)) rpt := report.MakeReport() id := murmur3.New64() for _, r := range reports {