Skip to content

Commit

Permalink
Merge pull request #44 from runreveal/ej/extend-bug
Browse files Browse the repository at this point in the history
Slight bug with extend, might also exist with project
  • Loading branch information
ejcx authored Mar 5, 2024
2 parents 2f99ca8 + 7075437 commit 6728246
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 13 deletions.
32 changes: 19 additions & 13 deletions parser/parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -430,21 +430,27 @@ func (p *parser) extendOperator(pipe, keyword Token) (*ExtendOperator, error) {
if !ok {
return op, fmt.Errorf("expected '=' followed by expression for assignment, got EOF")
}
switch sep.Kind {
case TokenAssign:
col.Assign = sep.Span
col.X, err = p.expr()
if err != nil {
return op, makeErrorOpaque(err)
}
sep, ok = p.next()
if !ok || sep.Kind != TokenComma {
return op, nil
}
default:
p.prev()

// Unlike in project, extend must be an assignment after
// the column name token. And afterwards the token must be
// a comma as a separator
if sep.Kind != TokenAssign {
return op, makeErrorOpaque(err)
}

col.Assign = sep.Span
col.X, err = p.expr()
if err != nil {
return op, makeErrorOpaque(err)
}
sep, ok = p.next()
if !ok {
return op, nil
}
if sep.Kind != TokenComma {
return op, fmt.Errorf("expected '=' followed by expression for assignment, got EOF")

}
}
}

Expand Down
36 changes: 36 additions & 0 deletions parser/parser_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1218,6 +1218,42 @@ var parserTests = []struct {
},
},
},
{
name: "ExtendError",
query: "StormEvents | extend FooFooF=1 State",
err: true,
want: &TabularExpr{
Source: &TableRef{
Table: &Ident{
Name: "StormEvents",
NameSpan: newSpan(0, 11),
},
},
Operators: []TabularOperator{
&ExtendOperator{
Pipe: newSpan(12, 13),
Keyword: newSpan(14, 20),
Cols: []*ExtendColumn{
{
Name: &Ident{
Name: "FooFooF",
NameSpan: newSpan(21, 28),
},
Assign: Span{
Start: 28,
End: 29,
},
X: &BasicLit{
Kind: TokenNumber,
Value: "1",
ValueSpan: newSpan(29, 30),
},
},
},
},
},
},
},
{
name: "UniqueCombination",
query: "StormEvents | summarize by State, EventType",
Expand Down

0 comments on commit 6728246

Please sign in to comment.