diff options
Diffstat (limited to 'internal/mapr/server/groupkey.go')
| -rw-r--r-- | internal/mapr/server/groupkey.go | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/internal/mapr/server/groupkey.go b/internal/mapr/server/groupkey.go new file mode 100644 index 0000000..0963e4f --- /dev/null +++ b/internal/mapr/server/groupkey.go @@ -0,0 +1,31 @@ +package server + +import ( + "strings" + + "github.com/mimecast/dtail/internal/protocol" +) + +func buildGroupKey(groupBy []string, fields map[string]string) string { + if len(groupBy) == 0 { + return "" + } + + total := 0 + for _, field := range groupBy { + total += len(fields[field]) + } + total += (len(groupBy) - 1) * len(protocol.AggregateGroupKeyCombinator) + + var sb strings.Builder + sb.Grow(total) + + for i, field := range groupBy { + if i > 0 { + sb.WriteString(protocol.AggregateGroupKeyCombinator) + } + sb.WriteString(fields[field]) + } + + return sb.String() +} |
