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

Method rewriteFieldExpression

pkg/traceql/ast_rewriter.go:206–229  ·  view source on GitHub ↗
(fe FieldExpression)

Source from the content-addressed store, hash-verified

204}
205
206func (f *fieldExpressionRewriter) rewriteFieldExpression(fe FieldExpression) (FieldExpression, int) {
207 var rwCount int
208
209 switch e := fe.(type) {
210 case *BinaryOperation:
211 lhs, n := f.rewriteFieldExpression(e.LHS)
212 rwCount += n
213 rhs, n := f.rewriteFieldExpression(e.RHS)
214 rwCount += n
215 fe = newBinaryOperation(e.Op, lhs, rhs)
216 case *UnaryOperation:
217 exp, n := f.rewriteFieldExpression(e.Expression)
218 rwCount += n
219 fe = newUnaryOperation(e.Op, exp)
220 }
221
222 for _, fn := range f.rewriteFunctions {
223 e, n := fn(fe)
224 fe = e
225 rwCount += n
226 }
227
228 return fe, rwCount
229}
230
231// rewriteOrToIn is a fieldExpressionRewriteFn that rewrites a single { .a = "a" || .b = "b" } to { .a = ["a", "b"] }
232func rewriteOrToIn(fe FieldExpression) (FieldExpression, int) {

Callers 3

rewritePipelineMethod · 0.95

Calls 2

newBinaryOperationFunction · 0.85
newUnaryOperationFunction · 0.85

Tested by

no test coverage detected