aplbrain / aplbrain/grand-cypher

Support for Equijoins

Đang mở
#38 6 bình luận 0 reaction 0 người được giao Xem trên GitHub
bug
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á.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.