(op traceql.Operator, operands traceql.Operands)
| 2699 | } |
| 2700 | |
| 2701 | func createStringPredicate(op traceql.Operator, operands traceql.Operands) (parquetquery.Predicate, error) { |
| 2702 | if pred, handled := createExistencePredicate(op); handled { |
| 2703 | return pred, nil |
| 2704 | } |
| 2705 | |
| 2706 | switch operands[0].Type { |
| 2707 | case traceql.TypeString: |
| 2708 | s := operands[0].EncodeToString(false) |
| 2709 | |
| 2710 | switch op { |
| 2711 | case traceql.OpEqual: |
| 2712 | return parquetquery.NewStringEqualPredicate(s), nil |
| 2713 | case traceql.OpNotEqual: |
| 2714 | return parquetquery.NewStringNotEqualPredicate(s), nil |
| 2715 | case traceql.OpRegex: |
| 2716 | return parquetquery.NewRegexInPredicate([]string{s}) |
| 2717 | case traceql.OpNotRegex: |
| 2718 | return parquetquery.NewRegexNotInPredicate([]string{s}) |
| 2719 | case traceql.OpGreater: |
| 2720 | return parquetquery.NewStringGreaterPredicate([]byte(s)), nil |
| 2721 | case traceql.OpGreaterEqual: |
| 2722 | return parquetquery.NewStringGreaterEqualPredicate([]byte(s)), nil |
| 2723 | case traceql.OpLess: |
| 2724 | return parquetquery.NewStringLessPredicate([]byte(s)), nil |
| 2725 | case traceql.OpLessEqual: |
| 2726 | return parquetquery.NewStringLessEqualPredicate([]byte(s)), nil |
| 2727 | default: |
| 2728 | return nil, fmt.Errorf("operator not supported for strings: %+v", op) |
| 2729 | } |
| 2730 | case traceql.TypeStringArray: |
| 2731 | strs, _ := operands[0].StringArray() |
| 2732 | switch op { |
| 2733 | case traceql.OpEqual, traceql.OpIn: |
| 2734 | return parquetquery.NewStringInPredicate(strs), nil |
| 2735 | case traceql.OpNotEqual, traceql.OpNotIn: |
| 2736 | return parquetquery.NewStringNotInPredicate(strs), nil |
| 2737 | case traceql.OpRegex, traceql.OpRegexMatchAny: |
| 2738 | return parquetquery.NewRegexInPredicate(strs) |
| 2739 | case traceql.OpNotRegex, traceql.OpRegexMatchNone: |
| 2740 | return parquetquery.NewRegexNotInPredicate(strs) |
| 2741 | default: |
| 2742 | return nil, fmt.Errorf("operator not supported for strings arrays: %+v", op) |
| 2743 | } |
| 2744 | default: |
| 2745 | return nil, fmt.Errorf("operand is not a string or string array: %s", operands[0]) |
| 2746 | } |
| 2747 | } |
| 2748 | |
| 2749 | func createBytesPredicate(op traceql.Operator, operands traceql.Operands, isSpan bool) (parquetquery.Predicate, error) { |
| 2750 | if pred, handled := createExistencePredicate(op); handled { |
no test coverage detected