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

Function attrToParquet

tempodb/encoding/vparquet5/schema.go:296–370  ·  view source on GitHub ↗
(a *v1.KeyValue, p *Attribute)

Source from the content-addressed store, hash-verified

294}
295
296func attrToParquet(a *v1.KeyValue, p *Attribute) {
297 p.Key = a.Key
298 p.IsArray = false
299 p.Value = p.Value[:0]
300 p.ValueInt = p.ValueInt[:0]
301 p.ValueDouble = p.ValueDouble[:0]
302 p.ValueBool = p.ValueBool[:0]
303 p.ValueUnsupported = nil
304
305 switch v := a.GetValue().Value.(type) {
306 case *v1.AnyValue_StringValue:
307 p.Value = append(p.Value, v.StringValue)
308 case *v1.AnyValue_IntValue:
309 p.ValueInt = append(p.ValueInt, v.IntValue)
310 case *v1.AnyValue_DoubleValue:
311 p.ValueDouble = append(p.ValueDouble, v.DoubleValue)
312 case *v1.AnyValue_BoolValue:
313 p.ValueBool = append(p.ValueBool, v.BoolValue)
314 case *v1.AnyValue_ArrayValue:
315 p.IsArray = true
316 if v.ArrayValue == nil || len(v.ArrayValue.Values) == 0 {
317 return
318 }
319 switch v.ArrayValue.Values[0].Value.(type) {
320 case *v1.AnyValue_StringValue:
321 for _, e := range v.ArrayValue.Values {
322 ev, ok := e.Value.(*v1.AnyValue_StringValue)
323 if !ok {
324 p.Value = p.Value[:0]
325 attrToParquetTypeUnsupported(a, p)
326 return
327 }
328
329 p.Value = append(p.Value, ev.StringValue)
330 }
331 case *v1.AnyValue_IntValue:
332 for _, e := range v.ArrayValue.Values {
333 ev, ok := e.Value.(*v1.AnyValue_IntValue)
334 if !ok {
335 p.ValueInt = p.ValueInt[:0]
336 attrToParquetTypeUnsupported(a, p)
337 return
338 }
339
340 p.ValueInt = append(p.ValueInt, ev.IntValue)
341 }
342 case *v1.AnyValue_DoubleValue:
343 for _, e := range v.ArrayValue.Values {
344 ev, ok := e.Value.(*v1.AnyValue_DoubleValue)
345 if !ok {
346 p.ValueDouble = p.ValueDouble[:0]
347 attrToParquetTypeUnsupported(a, p)
348 return
349 }
350
351 p.ValueDouble = append(p.ValueDouble, ev.DoubleValue)
352 }
353 case *v1.AnyValue_BoolValue:

Callers 4

writeAttrsFunction · 0.70
linkToParquetFunction · 0.70

Calls 2

GetValueMethod · 0.45

Tested by

no test coverage detected