From 2f4d3d858751a019650379443709d700454149a7 Mon Sep 17 00:00:00 2001 From: Steve Yen Date: Tue, 20 Mar 2018 11:17:46 -0700 Subject: [PATCH] scorch zap panic if mergeFields() sees unsorted fields mergeFields depends on the fields from the various segments being sorted for the fieldsSame comparison to work. Of note, the 'fieldi > 1' guard skips the 0th field, which should always be the '_id' field. --- index/scorch/segment/zap/merge.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/index/scorch/segment/zap/merge.go b/index/scorch/segment/zap/merge.go index 1da5e526..622cf8cc 100644 --- a/index/scorch/segment/zap/merge.go +++ b/index/scorch/segment/zap/merge.go @@ -755,6 +755,10 @@ func mergeFields(segments []*SegmentBase) (bool, []string) { if len(segment0Fields) != len(fields) || segment0Fields[fieldi] != field { fieldsSame = false } + + if fieldi > 1 && field <= fields[fieldi-1] { + panic(fmt.Sprintf("mergeFields on unsorted fields: %#v", fields)) + } } }