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

Function createFloatPredicate

tempodb/encoding/vparquet4/block_traceql.go:2907–2946  ·  view source on GitHub ↗
(op traceql.Operator, operands traceql.Operands)

Source from the content-addressed store, hash-verified

2905}
2906
2907func createFloatPredicate(op traceql.Operator, operands traceql.Operands) (parquetquery.Predicate, error) {
2908 if pred, handled := createExistencePredicate(op); handled {
2909 return pred, nil
2910 }
2911
2912 switch operands[0].Type {
2913 case traceql.TypeFloat:
2914 f := operands[0].Float()
2915
2916 switch op {
2917 case traceql.OpEqual:
2918 return parquetquery.NewFloatEqualPredicate(f), nil
2919 case traceql.OpNotEqual:
2920 return parquetquery.NewFloatNotEqualPredicate(f), nil
2921 case traceql.OpGreater:
2922 return parquetquery.NewFloatGreaterPredicate(f), nil
2923 case traceql.OpGreaterEqual:
2924 return parquetquery.NewFloatGreaterEqualPredicate(f), nil
2925 case traceql.OpLess:
2926 return parquetquery.NewFloatLessPredicate(f), nil
2927 case traceql.OpLessEqual:
2928 return parquetquery.NewFloatLessEqualPredicate(f), nil
2929 default:
2930 return nil, fmt.Errorf("operator not supported for floats: %+v", op)
2931 }
2932 case traceql.TypeFloatArray:
2933 floats, _ := operands[0].FloatArray()
2934
2935 switch op {
2936 case traceql.OpEqual, traceql.OpIn:
2937 return parquetquery.NewFloatInPredicate(floats), nil
2938 case traceql.OpNotEqual, traceql.OpNotIn:
2939 return parquetquery.NewFloatNotInPredicate(floats), nil
2940 default:
2941 return nil, fmt.Errorf("operator not supported for float arrays: %+v", op)
2942 }
2943 default:
2944 return nil, fmt.Errorf("operand is not float or float array: %s", operands[0].EncodeToString(false))
2945 }
2946}
2947
2948func createBoolPredicate(op traceql.Operator, operands traceql.Operands) (parquetquery.Predicate, error) {
2949 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