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

Method rewriteSpansetExpression

pkg/traceql/ast_rewriter.go:163–184  ·  view source on GitHub ↗
(se SpansetExpression)

Source from the content-addressed store, hash-verified

161}
162
163func (f *fieldExpressionRewriter) rewriteSpansetExpression(se SpansetExpression) (SpansetExpression, int) {
164 switch se := se.(type) {
165 case *SpansetFilter:
166 if se == nil {
167 return se, 0
168 }
169 fe, n := f.rewriteFieldExpression(se.Expression)
170 return newSpansetFilter(fe), n
171 case ScalarFilter:
172 lhs, n1 := f.rewriteScalarExpression(se.LHS)
173 rhs, n2 := f.rewriteScalarExpression(se.RHS)
174 return newScalarFilter(se.Op, lhs, rhs), n1 + n2
175 case SpansetOperation:
176 lhs, n1 := f.rewriteSpansetExpression(se.LHS)
177 rhs, n2 := f.rewriteSpansetExpression(se.RHS)
178 return newSpansetOperation(se.Op, lhs, rhs), n1 + n2
179 case Pipeline:
180 return f.rewritePipeline(se)
181 }
182
183 return se, 0
184}
185
186func (f *fieldExpressionRewriter) rewriteScalarExpression(se ScalarExpression) (ScalarExpression, int) {
187 switch se := se.(type) {

Callers 1

rewritePipelineMethod · 0.95

Calls 6

rewritePipelineMethod · 0.95
newSpansetFilterFunction · 0.85
newScalarFilterFunction · 0.85
newSpansetOperationFunction · 0.85

Tested by

no test coverage detected