Merge pull request #1685 from prometheus/beorn7/fix-group

Correctly stringify GROUP_x modifiers without labels
This commit is contained in:
Björn Rabenstein 2016-05-29 18:34:58 +02:00
commit 3113c0d719
2 changed files with 19 additions and 5 deletions

View file

@ -165,11 +165,16 @@ func (node *BinaryExpr) String() string {
} else {
matching = fmt.Sprintf(" ON(%s)", vm.MatchingLabels)
}
if vm.Card == CardManyToOne || vm.Card == CardOneToMany {
matching += " GROUP_"
if vm.Card == CardManyToOne {
matching += fmt.Sprintf(" GROUP_LEFT(%s)", vm.Include)
matching += "LEFT"
} else {
matching += "RIGHT"
}
if len(vm.Include) > 0 {
matching += fmt.Sprintf("(%s)", vm.Include)
}
if vm.Card == CardOneToMany {
matching += fmt.Sprintf(" GROUP_RIGHT(%s)", vm.Include)
}
}
return fmt.Sprintf("%s %s%s%s %s", node.LHS, node.Op, returnBool, matching, node.RHS)

View file

@ -39,6 +39,15 @@ func TestExprString(t *testing.T) {
{
in: `a - ON(b) c`,
},
{
in: `a - ON(b) GROUP_LEFT(x) c`,
},
{
in: `a - ON(b) GROUP_LEFT(x, y) c`,
},
{
in: `a - ON(b) GROUP_LEFT c`,
},
{
in: `a - IGNORING(b) c`,
},