parser: fix misleading error message in grouping processing

Signed-off-by: Owen Williams <owen.williams@grafana.com>
pull/15806/head
Owen Williams 1 year ago
parent 02501e097e
commit 47563d942e
  1. 9
      promql/parser/generated_parser.y
  2. 9
      promql/parser/generated_parser.y.go

@ -363,17 +363,18 @@ grouping_label_list:
grouping_label : maybe_label
{
if !model.LabelName($1.Val).IsValid() {
yylex.(*parser).unexpected("grouping opts", "label")
yylex.(*parser).addParseErrf($1.PositionRange(),"invalid label name for grouping: %q", $1.Val)
}
$$ = $1
}
| STRING {
if !model.LabelName(yylex.(*parser).unquoteString($1.Val)).IsValid() {
yylex.(*parser).unexpected("grouping opts", "label")
unquoted := yylex.(*parser).unquoteString($1.Val)
if !model.LabelName(unquoted).IsValid() {
yylex.(*parser).addParseErrf($1.PositionRange(),"invalid label name for grouping: %q", unquoted)
}
$$ = $1
$$.Pos++
$$.Val = yylex.(*parser).unquoteString($$.Val)
$$.Val = unquoted
}
| error
{ yylex.(*parser).unexpected("grouping opts", "label"); $$ = Item{} }

@ -1259,19 +1259,20 @@ yydefault:
yyDollar = yyS[yypt-1 : yypt+1]
{
if !model.LabelName(yyDollar[1].item.Val).IsValid() {
yylex.(*parser).unexpected("grouping opts", "label")
yylex.(*parser).addParseErrf(yyDollar[1].item.PositionRange(), "invalid label name for grouping: %q", yyDollar[1].item.Val)
}
yyVAL.item = yyDollar[1].item
}
case 59:
yyDollar = yyS[yypt-1 : yypt+1]
{
if !model.LabelName(yylex.(*parser).unquoteString(yyDollar[1].item.Val)).IsValid() {
yylex.(*parser).unexpected("grouping opts", "label")
unquoted := yylex.(*parser).unquoteString(yyDollar[1].item.Val)
if !model.LabelName(unquoted).IsValid() {
yylex.(*parser).addParseErrf(yyDollar[1].item.PositionRange(), "invalid label name for grouping: %q", unquoted)
}
yyVAL.item = yyDollar[1].item
yyVAL.item.Pos++
yyVAL.item.Val = yylex.(*parser).unquoteString(yyVAL.item.Val)
yyVAL.item.Val = unquoted
}
case 60:
yyDollar = yyS[yypt-1 : yypt+1]

Loading…
Cancel
Save