(op traceql.Operator, operands traceql.Operands)
| 2946 | } |
| 2947 | |
| 2948 | func createBoolPredicate(op traceql.Operator, operands traceql.Operands) (parquetquery.Predicate, error) { |
| 2949 | if pred, handled := createExistencePredicate(op); handled { |
| 2950 | return pred, nil |
| 2951 | } |
| 2952 | |
| 2953 | switch operands[0].Type { |
| 2954 | case traceql.TypeBoolean: |
| 2955 | b, _ := operands[0].Bool() |
| 2956 | |
| 2957 | switch op { |
| 2958 | case traceql.OpEqual: |
| 2959 | return parquetquery.NewBoolEqualPredicate(b), nil |
| 2960 | case traceql.OpNotEqual: |
| 2961 | return parquetquery.NewBoolNotEqualPredicate(b), nil |
| 2962 | default: |
| 2963 | return nil, fmt.Errorf("operator not supported for booleans: %+v", op) |
| 2964 | } |
| 2965 | case traceql.TypeBooleanArray: |
| 2966 | bools, _ := operands[0].BooleanArray() |
| 2967 | |
| 2968 | switch op { |
| 2969 | case traceql.OpEqual, traceql.OpIn: |
| 2970 | return parquetquery.NewBoolInPredicate(bools), nil |
| 2971 | case traceql.OpNotEqual, traceql.OpNotIn: |
| 2972 | return parquetquery.NewBoolNotInPredicate(bools), nil |
| 2973 | default: |
| 2974 | return nil, fmt.Errorf("operator not supported for boolean arrays: %+v", op) |
| 2975 | } |
| 2976 | default: |
| 2977 | return nil, fmt.Errorf("oparand is not bool or bool array: %+v", operands[0].EncodeToString(false)) |
| 2978 | } |
| 2979 | } |
| 2980 | |
| 2981 | func createAttributeIterator(makeIter makeIterFn, conditions []traceql.Condition, |
| 2982 | definitionLevel int, |
no test coverage detected