|
|
|
@ -205,14 +205,16 @@ func groupResults(results *data.Frame, groupingFieldNames []string, fromSyncQuer |
|
|
|
|
if fromSyncQuery { |
|
|
|
|
// remove grouping indices
|
|
|
|
|
newFrame.Fields = removeFieldsByIndex(newFrame.Fields, removeFieldIndices) |
|
|
|
|
groupLabels := generateLabels(groupingFields, i) |
|
|
|
|
|
|
|
|
|
// set the group key as the display name for sync queries
|
|
|
|
|
for i := 1; i < len(newFrame.Fields); i++ { |
|
|
|
|
valueField := newFrame.Fields[i] |
|
|
|
|
for j := 1; j < len(newFrame.Fields); j++ { |
|
|
|
|
valueField := newFrame.Fields[j] |
|
|
|
|
if valueField.Config == nil { |
|
|
|
|
valueField.Config = &data.FieldConfig{} |
|
|
|
|
} |
|
|
|
|
valueField.Config.DisplayNameFromDS = groupKey |
|
|
|
|
valueField.Labels = groupLabels |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -275,10 +277,21 @@ func generateGroupKey(fields []*data.Field, row int) string { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return groupKey |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func generateLabels(fields []*data.Field, row int) data.Labels { |
|
|
|
|
labels := data.Labels{} |
|
|
|
|
for _, field := range fields { |
|
|
|
|
if strField, ok := field.At(row).(*string); ok { |
|
|
|
|
if strField != nil { |
|
|
|
|
labels[field.Name] = *strField |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return labels |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func numericFieldToStringField(field *data.Field) (*data.Field, error) { |
|
|
|
|
if !field.Type().Numeric() { |
|
|
|
|
return nil, fmt.Errorf("field is not numeric") |
|
|
|
|