MCPcopy
hub / github.com/grafana/tempo / parquetToProtoAttrs

Function parquetToProtoAttrs

tempodb/encoding/vparquet4/schema.go:628–709  ·  view source on GitHub ↗
(parquetAttrs []Attribute)

Source from the content-addressed store, hash-verified

626}
627
628func parquetToProtoAttrs(parquetAttrs []Attribute) []*v1.KeyValue {
629 var protoAttrs []*v1.KeyValue
630
631 for _, attr := range parquetAttrs {
632 var protoVal v1.AnyValue
633
634 if !attr.IsArray {
635 switch {
636 case len(attr.Value) > 0:
637 protoVal.Value = &v1.AnyValue_StringValue{StringValue: attr.Value[0]}
638 case len(attr.ValueInt) > 0:
639 protoVal.Value = &v1.AnyValue_IntValue{IntValue: attr.ValueInt[0]}
640 case len(attr.ValueDouble) > 0:
641 protoVal.Value = &v1.AnyValue_DoubleValue{DoubleValue: attr.ValueDouble[0]}
642 case len(attr.ValueBool) > 0:
643 protoVal.Value = &v1.AnyValue_BoolValue{BoolValue: attr.ValueBool[0]}
644 case attr.ValueUnsupported != nil:
645 _ = jsonpb.Unmarshal(bytes.NewBufferString(*attr.ValueUnsupported), &protoVal)
646 }
647 } else {
648 switch {
649 case len(attr.Value) > 0:
650 values := make([]*v1.AnyValue, len(attr.Value))
651 anyValues := make([]v1.AnyValue, len(values))
652 strValues := make([]v1.AnyValue_StringValue, len(values))
653 for i, v := range attr.Value {
654 s := &strValues[i]
655 s.StringValue = v
656 values[i] = &anyValues[i]
657 values[i].Value = s
658 }
659 protoVal.Value = &v1.AnyValue_ArrayValue{ArrayValue: &v1.ArrayValue{Values: values}}
660
661 case len(attr.ValueInt) > 0:
662 values := make([]*v1.AnyValue, len(attr.ValueInt))
663 anyValues := make([]v1.AnyValue, len(values))
664 intValues := make([]v1.AnyValue_IntValue, len(values))
665 for i, v := range attr.ValueInt {
666 n := &intValues[i]
667 n.IntValue = v
668 values[i] = &anyValues[i]
669 values[i].Value = n
670 }
671 protoVal.Value = &v1.AnyValue_ArrayValue{ArrayValue: &v1.ArrayValue{Values: values}}
672
673 case len(attr.ValueDouble) > 0:
674 values := make([]*v1.AnyValue, len(attr.ValueDouble))
675 anyValues := make([]v1.AnyValue, len(values))
676 doubleValues := make([]v1.AnyValue_DoubleValue, len(values))
677 for i, v := range attr.ValueDouble {
678 n := &doubleValues[i]
679 n.DoubleValue = v
680 values[i] = &anyValues[i]
681 values[i].Value = n
682 }
683 protoVal.Value = &v1.AnyValue_ArrayValue{ArrayValue: &v1.ArrayValue{Values: values}}
684
685 case len(attr.ValueBool) > 0:

Callers 5

parquetToProtoLinksFunction · 0.70
parquetToProtoEventsFunction · 0.70
flattenForSelectAllFunction · 0.70

Calls 1

UnmarshalMethod · 0.65

Tested by 1

flattenForSelectAllFunction · 0.56