aplbrain / aplbrain/grand-cypher
Support for Equijoins
- Ngôn ngữ chính
- Python
- Star
- 129
- Fork
- 17
- Chỉ số merge pull request
- Chỉ số pull request đang chờ
Mô tả
Hello, thank you for the great project :)
In how far are equijoins exactly supported?
Given that I have the following NetworkX graph:
```
G = nx.DiGraph()
G.add_node("x")
G.add_node("y")
G.add_node("z")
G.add_edge("x", "y")
G.add_edge("y", "x")
G.add_edge("x", "x")
G.add_edge("z", "x")
```
When I execute the following query:
```
MATCH (n)-->(n)
RETURN n
```
I get the result:
```
{Token('CNAME', 'n'): ['x', 'y']}
```
However, if I execute the same query on the equivalent graph in neo4j, I only get the node *x* as result - which to my understanding of Cypher would be the correct result.
Therefore, to my understanding, equijoins are currently only supported in the project when they are distributed over multiple `match` clauses and do not recognizes self cycles on nodes. Is that correct?
For instances, the following query correctly recognizes two loops in the graph:
```
MATCH (n)-->(m)
MATCH (m)-->(n)
RETURN n, m
```
While neo4j additionally returns n=x and m=x as a result.
Many regards,
Felix
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Đánh giá
Issue này chưa được đánh giá.