(op traceql.Operator, operands traceql.Operands)
| 2061 | } |
| 2062 | |
| 2063 | func createStringPredicate(op traceql.Operator, operands traceql.Operands) (parquetquery.Predicate, error) { |
| 2064 | if pred, handled := createExistencePredicate(op); handled { |
| 2065 | return pred, nil |
| 2066 | } |
| 2067 | |
| 2068 | switch operands[0].Type { |
| 2069 | case traceql.TypeString: |
| 2070 | s := operands[0].EncodeToString(false) |
| 2071 | |
| 2072 | switch op { |
| 2073 | case traceql.OpEqual: |
| 2074 | return parquetquery.NewStringEqualPredicate(s), nil |
| 2075 | case traceql.OpNotEqual: |
| 2076 | return parquetquery.NewStringNotEqualPredicate(s), nil |
| 2077 | case traceql.OpRegex: |
| 2078 | return parquetquery.NewRegexInPredicate([]string{s}) |
| 2079 | case traceql.OpNotRegex: |
| 2080 | return parquetquery.NewRegexNotInPredicate([]string{s}) |
| 2081 | case traceql.OpGreater: |
| 2082 | return parquetquery.NewStringGreaterPredicate([]byte(s)), nil |
| 2083 | case traceql.OpGreaterEqual: |
| 2084 | return parquetquery.NewStringGreaterEqualPredicate([]byte(s)), nil |
| 2085 | case traceql.OpLess: |
| 2086 | return parquetquery.NewStringLessPredicate([]byte(s)), nil |
| 2087 | case traceql.OpLessEqual: |
| 2088 | return parquetquery.NewStringLessEqualPredicate([]byte(s)), nil |
| 2089 | default: |
| 2090 | return nil, fmt.Errorf("operator not supported for strings: %+v", op) |
| 2091 | } |
| 2092 | case traceql.TypeStringArray: |
| 2093 | strs, _ := operands[0].StringArray() |
| 2094 | switch op { |
| 2095 | case traceql.OpEqual, traceql.OpIn: |
| 2096 | return parquetquery.NewStringInPredicate(strs), nil |
| 2097 | case traceql.OpNotEqual, traceql.OpNotIn: |
| 2098 | return parquetquery.NewStringNotInPredicate(strs), nil |
| 2099 | case traceql.OpRegex, traceql.OpRegexMatchAny: |
| 2100 | return parquetquery.NewRegexInPredicate(strs) |
| 2101 | case traceql.OpNotRegex, traceql.OpRegexMatchNone: |
| 2102 | return parquetquery.NewRegexNotInPredicate(strs) |
| 2103 | default: |
| 2104 | return nil, fmt.Errorf("operator not supported for strings arrays: %+v", op) |
| 2105 | } |
| 2106 | default: |
| 2107 | return nil, fmt.Errorf("operand is not a string or string array: %s", operands[0]) |
| 2108 | } |
| 2109 | } |
| 2110 | |
| 2111 | func createBytesPredicate(op traceql.Operator, operands traceql.Operands, isSpan bool) (parquetquery.Predicate, error) { |
| 2112 | if pred, handled := createExistencePredicate(op); handled { |
no test coverage detected