From 28007e023f52715151e6f10c2ff296ab489c4665 Mon Sep 17 00:00:00 2001 From: U Anandhakumar Date: Sat, 7 Feb 2026 01:35:13 +0530 Subject: [PATCH 1/4] Update:None type check --- pkg/parser/parser.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkg/parser/parser.go b/pkg/parser/parser.go index c123a95a..02c3acbf 100644 --- a/pkg/parser/parser.go +++ b/pkg/parser/parser.go @@ -373,6 +373,11 @@ func parseExprWithoutPipe(e string) (Expr, string, error) { if strings.ToLower(name) == "false" || strings.ToLower(name) == "true" { return &expr{valStr: name, etype: EtString, target: name}, e, nil } + //check for none arg explicitly + if strings.EqualFold(name, "none") { + return &expr{valStr: "", etype: EtNil, target: "none"}, e, nil + } + if name == "" { return nil, e, ErrMissingArgument } From 3848b7a267b9bddf5bf19ac4a9ed21f1156e1787 Mon Sep 17 00:00:00 2001 From: U Anandhakumar Date: Sat, 7 Feb 2026 01:36:30 +0530 Subject: [PATCH 2/4] Update:None type const --- pkg/parser/interface.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/parser/interface.go b/pkg/parser/interface.go index cdcf2f2d..ab04be30 100644 --- a/pkg/parser/interface.go +++ b/pkg/parser/interface.go @@ -24,6 +24,8 @@ const ( EtConst // EtString is a const for 'String' type expression EtString + // EtNil is a const for 'None' type expression + EtNil ) var ( From acc0c6ef7851f6e5bb2aa09939a0aaee6805aa57 Mon Sep 17 00:00:00 2001 From: U Anandhakumar Date: Sat, 7 Feb 2026 01:38:22 +0530 Subject: [PATCH 3/4] Update:check for None type --- pkg/parser/internal.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkg/parser/internal.go b/pkg/parser/internal.go index 8635d3a0..8b6d29fd 100644 --- a/pkg/parser/internal.go +++ b/pkg/parser/internal.go @@ -22,6 +22,9 @@ func (e *expr) getNamedArg(name string) *expr { } func (e *expr) doGetFloatArg() (float64, error) { + if e.etype == EtNil { + return 0, ErrBadType + } if e.etype != EtConst { return 0, ErrBadType } @@ -30,6 +33,9 @@ func (e *expr) doGetFloatArg() (float64, error) { } func (e *expr) doGetStringArg() (string, error) { + if e.etype == EtNil { + return "", nil + } if e.etype != EtString { return "", ErrBadType } From 9a70c843d869cdf9f8d74cdefc70a8f4f18ac90c Mon Sep 17 00:00:00 2001 From: U Anandhakumar Date: Sat, 7 Feb 2026 01:39:12 +0530 Subject: [PATCH 4/4] Update:None type testcase --- pkg/parser/parser_test.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/pkg/parser/parser_test.go b/pkg/parser/parser_test.go index 29cd51a5..bbce1a71 100644 --- a/pkg/parser/parser_test.go +++ b/pkg/parser/parser_test.go @@ -198,6 +198,23 @@ func TestParseExpr(t *testing.T) { argString: "metric, key=true", }, }, + { + s: "None", + e: &expr{target: "none", etype: EtNil}, + }, + { + s: "asPercent(metric, None, 1)", + e: &expr{ + target: "asPercent", + etype: EtFunc, + args: []*expr{ + {target: "metric"}, + {target: "none", etype: EtNil}, + {val: 1, etype: EtConst}, + }, + argString: "metric, None, 1", + }, + }, { s: "func(metric, key=1)", e: &expr{