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

Function createFloatPredicate

tempodb/encoding/vparquet3/block_traceql.go:2346–2385  ·  view source on GitHub ↗
(op traceql.Operator, operands traceql.Operands)

Source from the content-addressed store, hash-verified

2344}
2345
2346func createFloatPredicate(op traceql.Operator, operands traceql.Operands) (parquetquery.Predicate, error) {
2347 if pred, handled := createExistencePredicate(op); handled {
2348 return pred, nil
2349 }
2350
2351 switch operands[0].Type {
2352 case traceql.TypeFloat:
2353 f := operands[0].Float()
2354
2355 switch op {
2356 case traceql.OpEqual:
2357 return parquetquery.NewFloatEqualPredicate(f), nil
2358 case traceql.OpNotEqual:
2359 return parquetquery.NewFloatNotEqualPredicate(f), nil
2360 case traceql.OpGreater:
2361 return parquetquery.NewFloatGreaterPredicate(f), nil
2362 case traceql.OpGreaterEqual:
2363 return parquetquery.NewFloatGreaterEqualPredicate(f), nil
2364 case traceql.OpLess:
2365 return parquetquery.NewFloatLessPredicate(f), nil
2366 case traceql.OpLessEqual:
2367 return parquetquery.NewFloatLessEqualPredicate(f), nil
2368 default:
2369 return nil, fmt.Errorf("operator not supported for floats: %+v", op)
2370 }
2371 case traceql.TypeFloatArray:
2372 floats, _ := operands[0].FloatArray()
2373
2374 switch op {
2375 case traceql.OpEqual, traceql.OpIn:
2376 return parquetquery.NewFloatInPredicate(floats), nil
2377 case traceql.OpNotEqual, traceql.OpNotIn:
2378 return parquetquery.NewFloatNotInPredicate(floats), nil
2379 default:
2380 return nil, fmt.Errorf("operator not supported for float arrays: %+v", op)
2381 }
2382 default:
2383 return nil, fmt.Errorf("operand is not float or float array: %s", operands[0].EncodeToString(false))
2384 }
2385}
2386
2387func createBoolPredicate(op traceql.Operator, operands traceql.Operands) (parquetquery.Predicate, error) {
2388 if pred, handled := createExistencePredicate(op); handled {

Callers 3

createPredicateFunction · 0.70
createAttributeIteratorFunction · 0.70

Calls 12

NewFloatEqualPredicateFunction · 0.92
NewFloatGreaterPredicateFunction · 0.92
NewFloatLessPredicateFunction · 0.92
NewFloatInPredicateFunction · 0.92
NewFloatNotInPredicateFunction · 0.92
FloatMethod · 0.80
FloatArrayMethod · 0.80
EncodeToStringMethod · 0.80
createExistencePredicateFunction · 0.70

Tested by

no test coverage detected