apache / apache/hugegraph

[Bug] g.V().bothE('el0').has('el1') throws Exception

Open
#1,952 2 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Java
Stars
3.2k
Forks
636
Avg merge
3d 11h
Merged PRs (30d)
14

Description

### Bug Type (问题类型)

_No response_

### Before submit

- [X] 我已经确认现有的 [Issues](https://github.com/hugegraph/hugegraph/issues) 与 [FAQ](https://hugegraph.github.io/hugegraph-doc/guides/faq.html) 中没有相同 / 重复问题

### Environment (环境信息)

- Server Version: v0.12.0
- Backend: memory
- OS: 8 CPUs, 32 G RAM, ubuntu
- Data Size: 3000 vertices, 5000 edges

### Expected & Actual behavior (期望与实际表现)

- The query is
```
g.V().bothE('el0').has('el1')
```
- Expected result
```
[]
```
- Actual result
```
Exception in thread "main" java.lang.IllegalStateException: Illegal key 'LABEL' with more than one value
```

### Vertex/Edge example (问题点 / 边数据举例)

```javascript
HugeClient hugeclient = HugeClient.builder("http://localhost:8080", "hugegraph").configTimeout(3000).build();
GraphManager graph = hugeclient.graph();
Vertex vertex1 = new Vertex("vl0").property("vp0", true);
Vertex vertex2 = new Vertex("vl0").property("vp0", false);
Vertex vertex3 = new Vertex("vl0").property("vp0", true);
graph.addVertices(Arrays.asList(vertex1, vertex2, vertex3));

Edge edge1 = new Edge("el0").source(vertex1).target(vertex2).property("ep0", true);
Edge edge2 = new Edge("el1").source(vertex1).target(vertex3).property("ep1", false);
graph.addEdges(Arrays.asList(edge1, edge2));
```

### Schema [VertexLabel, EdgeLabel, IndexLabel] (元数据结构)

```javascript
HugeClient hugeclient = HugeClient.builder("http://localhost:8080", "hugegraph").configTimeout(3000).build();
hugeclient.schema().propertyKey("ep0").asBoolean().ifNotExist().create();
hugeclient.schema().propertyKey("ep1").asBoolean().ifNotExist().create();
hugeclient.schema().propertyKey("vp0").asBoolean().ifNotExist().create();

// vertex
hugeclient.schema().vertexLabel("vl0").properties("vp0").nullableKeys("vp0").create();
hugeclient.schema().indexLabel("vl0Byvp0").onV("vl0").by("vp0").shard().ifNotExist().create();

// edges
hugeclient.schema().edgeLabel("el0").sourceLabel("vl0").targetLabel("vl0").properties("ep0").ifNotExist().create();
hugeclient.schema().edgeLabel("el1").sourceLabel("vl0").targetLabel("vl0").properties("ep1").ifNotExist().create();
hugeclient.schema().indexLabel("el0Byep0").onE("el0").by("ep0").shard().ifNotExist().create();
hugeclient.schema().indexLabel("el1Byep0").onE("el1").by("ep1").shard().ifNotExist().create();
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.