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

Function attrToParquet

tempodb/encoding/vparquet4/schema.go:265–339  ·  view source on GitHub ↗
(a *v1.KeyValue, p *Attribute)

Source from the content-addressed store, hash-verified

263}
264
265func attrToParquet(a *v1.KeyValue, p *Attribute) {
266 p.Key = a.Key
267 p.IsArray = false
268 p.Value = p.Value[:0]
269 p.ValueInt = p.ValueInt[:0]
270 p.ValueDouble = p.ValueDouble[:0]
271 p.ValueBool = p.ValueBool[:0]
272 p.ValueUnsupported = nil
273
274 switch v := a.GetValue().Value.(type) {
275 case *v1.AnyValue_StringValue:
276 p.Value = append(p.Value, v.StringValue)
277 case *v1.AnyValue_IntValue:
278 p.ValueInt = append(p.ValueInt, v.IntValue)
279 case *v1.AnyValue_DoubleValue:
280 p.ValueDouble = append(p.ValueDouble, v.DoubleValue)
281 case *v1.AnyValue_BoolValue:
282 p.ValueBool = append(p.ValueBool, v.BoolValue)
283 case *v1.AnyValue_ArrayValue:
284 p.IsArray = true
285 if v.ArrayValue == nil || len(v.ArrayValue.Values) == 0 {
286 return
287 }
288 switch v.ArrayValue.Values[0].Value.(type) {
289 case *v1.AnyValue_StringValue:
290 for _, e := range v.ArrayValue.Values {
291 ev, ok := e.Value.(*v1.AnyValue_StringValue)
292 if !ok {
293 p.Value = p.Value[:0]
294 attrToParquetTypeUnsupported(a, p)
295 return
296 }
297
298 p.Value = append(p.Value, ev.StringValue)
299 }
300 case *v1.AnyValue_IntValue:
301 for _, e := range v.ArrayValue.Values {
302 ev, ok := e.Value.(*v1.AnyValue_IntValue)
303 if !ok {
304 p.ValueInt = p.ValueInt[:0]
305 attrToParquetTypeUnsupported(a, p)
306 return
307 }
308
309 p.ValueInt = append(p.ValueInt, ev.IntValue)
310 }
311 case *v1.AnyValue_DoubleValue:
312 for _, e := range v.ArrayValue.Values {
313 ev, ok := e.Value.(*v1.AnyValue_DoubleValue)
314 if !ok {
315 p.ValueDouble = p.ValueDouble[:0]
316 attrToParquetTypeUnsupported(a, p)
317 return
318 }
319
320 p.ValueDouble = append(p.ValueDouble, ev.DoubleValue)
321 }
322 case *v1.AnyValue_BoolValue:

Callers 4

eventToParquetFunction · 0.70
linkToParquetFunction · 0.70

Calls 2

GetValueMethod · 0.45

Tested by

no test coverage detected