From 5867708b3d4af191ae0f04c17c1cfb18dc36fa3b Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin <valyala@victoriametrics.com> Date: Tue, 12 Jul 2022 19:48:24 +0300 Subject: [PATCH] app/vmselect/promql: validate function name before evaluating its arguments This avoids unneeded evaluation of args for unknown functions --- app/vmselect/promql/eval.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/vmselect/promql/eval.go b/app/vmselect/promql/eval.go index 23a31d35da..6c683f461e 100644 --- a/app/vmselect/promql/eval.go +++ b/app/vmselect/promql/eval.go @@ -309,14 +309,14 @@ func evalExprInternal(qt *querytracer.Tracer, ec *EvalConfig, e metricsql.Expr) } func evalTransformFunc(qt *querytracer.Tracer, ec *EvalConfig, fe *metricsql.FuncExpr) ([]*timeseries, error) { - args, err := evalExprs(qt, ec, fe.Args) - if err != nil { - return nil, err - } tf := getTransformFunc(fe.Name) if tf == nil { return nil, fmt.Errorf(`unknown func %q`, fe.Name) } + args, err := evalExprs(qt, ec, fe.Args) + if err != nil { + return nil, err + } tfa := &transformFuncArg{ ec: ec, fe: fe,