Use symbol names for header if missing token position
Summary: This fixes a bug, where streaming would try to get the name of the symbol from an invalid token position. For example, `MATCH (n) WITH n RETURN *` Reviewers: florijan, mislav.bradac Reviewed By: florijan, mislav.bradac Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D811
This commit is contained in:
parent
08eaaba77f
commit
182a9241cf
@ -170,11 +170,9 @@ class Interpreter {
|
|||||||
// When the symbol is aliased or expanded from '*' (inside RETURN or
|
// When the symbol is aliased or expanded from '*' (inside RETURN or
|
||||||
// WITH), then there is no token position, so use symbol name.
|
// WITH), then there is no token position, so use symbol name.
|
||||||
// Otherwise, find the name from stripped query.
|
// Otherwise, find the name from stripped query.
|
||||||
if (symbol.token_position() == -1)
|
header.push_back(FindOr(stripped.named_expressions(),
|
||||||
header.push_back(symbol.name());
|
symbol.token_position(), symbol.name())
|
||||||
else
|
.first);
|
||||||
header.push_back(
|
|
||||||
stripped.named_expressions().at(symbol.token_position()));
|
|
||||||
}
|
}
|
||||||
stream.Header(header);
|
stream.Header(header);
|
||||||
|
|
||||||
|
@ -221,3 +221,18 @@ Feature: With
|
|||||||
| 1 |
|
| 1 |
|
||||||
| 3 |
|
| 3 |
|
||||||
| 5 |
|
| 5 |
|
||||||
|
|
||||||
|
Scenario: With test 15:
|
||||||
|
Given an empty graph
|
||||||
|
And having executed:
|
||||||
|
"""
|
||||||
|
CREATE ({id: 0})
|
||||||
|
"""
|
||||||
|
When executing query:
|
||||||
|
"""
|
||||||
|
MATCH (n) WITH n RETURN *
|
||||||
|
"""
|
||||||
|
Then the result should be:
|
||||||
|
| n |
|
||||||
|
| ({id: 0}) |
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user