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

Function parquetToProtoAttrs

tempodb/encoding/vparquet5/schema.go:613–700  ·  view source on GitHub ↗
(parquetAttrs []Attribute)

Source from the content-addressed store, hash-verified

611}
612
613func parquetToProtoAttrs(parquetAttrs []Attribute) []*v1.KeyValue {
614 var protoAttrs []*v1.KeyValue
615
616 for _, attr := range parquetAttrs {
617 var protoVal v1.AnyValue
618
619 if !attr.IsArray {
620 switch {
621 case len(attr.Value) > 0:
622 protoVal.Value = &v1.AnyValue_StringValue{StringValue: attr.Value[0]}
623 case len(attr.ValueInt) > 0:
624 protoVal.Value = &v1.AnyValue_IntValue{IntValue: attr.ValueInt[0]}
625 case len(attr.ValueDouble) > 0:
626 protoVal.Value = &v1.AnyValue_DoubleValue{DoubleValue: attr.ValueDouble[0]}
627 case len(attr.ValueBool) > 0:
628 protoVal.Value = &v1.AnyValue_BoolValue{BoolValue: attr.ValueBool[0]}
629 case attr.ValueUnsupported != nil:
630 _ = jsonpb.Unmarshal(bytes.NewBufferString(*attr.ValueUnsupported), &protoVal)
631 default:
632 continue
633 }
634 } else {
635 switch {
636 case len(attr.Value) > 0:
637 values := make([]*v1.AnyValue, len(attr.Value))
638
639 anyValues := make([]v1.AnyValue, len(values))
640 strValues := make([]v1.AnyValue_StringValue, len(values))
641 for i, v := range attr.Value {
642 s := &strValues[i]
643 s.StringValue = v
644 values[i] = &anyValues[i]
645 values[i].Value = s
646 }
647
648 protoVal.Value = &v1.AnyValue_ArrayValue{ArrayValue: &v1.ArrayValue{Values: values}}
649 case len(attr.ValueInt) > 0:
650 values := make([]*v1.AnyValue, len(attr.ValueInt))
651
652 anyValues := make([]v1.AnyValue, len(values))
653 intValues := make([]v1.AnyValue_IntValue, len(values))
654 for i, v := range attr.ValueInt {
655 n := &intValues[i]
656 n.IntValue = v
657 values[i] = &anyValues[i]
658 values[i].Value = n
659 }
660
661 protoVal.Value = &v1.AnyValue_ArrayValue{ArrayValue: &v1.ArrayValue{Values: values}}
662 case len(attr.ValueDouble) > 0:
663 values := make([]*v1.AnyValue, len(attr.ValueDouble))
664
665 anyValues := make([]v1.AnyValue, len(values))
666 doubleValues := make([]v1.AnyValue_DoubleValue, len(values))
667 for i, v := range attr.ValueDouble {
668 n := &doubleValues[i]
669 n.DoubleValue = v
670 values[i] = &anyValues[i]

Callers 5

parquetToProtoLinksFunction · 0.70
parquetToProtoEventsFunction · 0.70
flattenForSelectAllFunction · 0.70

Calls 1

UnmarshalMethod · 0.65

Tested by 1

flattenForSelectAllFunction · 0.56