From b2da2439af38a6045a4269dcfdfcae5866326039 Mon Sep 17 00:00:00 2001 From: Pedro Tanaka Date: Mon, 6 May 2024 16:55:55 +0200 Subject: [PATCH] fixing funcs Signed-off-by: Pedro Tanaka --- pkg/api/query/v1_test.go | 26 +------------------------- pkg/extpromql/parser.go | 9 ++++++++- 2 files changed, 9 insertions(+), 26 deletions(-) diff --git a/pkg/api/query/v1_test.go b/pkg/api/query/v1_test.go index 8e590de7d1..a820abe351 100644 --- a/pkg/api/query/v1_test.go +++ b/pkg/api/query/v1_test.go @@ -712,7 +712,7 @@ func TestQueryAnalyzeEndpoints(t *testing.T) { Reg: nil, MaxSamples: 10000, Timeout: timeout, - }, nil, true) + }, nil, false) api := &QueryAPI{ baseAPI: &baseAPI.BaseAPI{ Now: func() time.Time { return now }, @@ -749,30 +749,6 @@ func TestQueryAnalyzeEndpoints(t *testing.T) { QueryAnalysis: queryTelemetry{}, }, }, - { - endpoint: api.queryRange, - query: url.Values{ - "query": []string{"xrate(up[2m])"}, - "start": []string{"0"}, - "end": []string{"500"}, - }, - response: &queryData{ - ResultType: parser.ValueTypeMatrix, - Result: promql.Matrix{ - promql.Series{ - Floats: func(end, step float64) []promql.FPoint { - var res []promql.FPoint - for v := float64(0); v <= end; v += step { - res = append(res, promql.FPoint{F: v, T: timestamp.FromTime(start.Add(time.Duration(v) * time.Second))}) - } - return res - }(500, 1), - Metric: nil, - }, - }, - QueryAnalysis: queryTelemetry{}, - }, - }, { endpoint: api.queryRange, query: url.Values{ diff --git a/pkg/extpromql/parser.go b/pkg/extpromql/parser.go index 1a43fd8a05..43d7188fdc 100644 --- a/pkg/extpromql/parser.go +++ b/pkg/extpromql/parser.go @@ -16,7 +16,14 @@ import ( // ParseExpr parses the input PromQL expression and returns the parsed representation. func ParseExpr(input string) (parser.Expr, error) { - p := parser.NewParser(input, parser.WithFunctions(function.XFunctions)) + allFuncs := make(map[string]*parser.Function, len(function.XFunctions)+len(parser.Functions)) + for k, v := range parser.Functions { + allFuncs[k] = v + } + for k, v := range function.XFunctions { + allFuncs[k] = v + } + p := parser.NewParser(input, parser.WithFunctions(allFuncs)) defer p.Close() return p.ParseExpr() }