[
https://issues.apache.org/jira/browse/TINKERPOP-2604?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stephen Mallette closed TINKERPOP-2604.
---------------------------------------
Fix Version/s: 3.6.0
Assignee: Stephen Mallette
Resolution: Fixed
> TinkerGraph could not order vertex/edge without specified property.
> -------------------------------------------------------------------
>
> Key: TINKERPOP-2604
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2604
> Project: TinkerPop
> Issue Type: Bug
> Components: tinkergraph
> Affects Versions: 3.4.10
> Environment: Version: 3.4.10
> OS : CentOS8
> Storage Backend: in-memory
> Reporter: ABC
> Assignee: Stephen Mallette
> Priority: Major
> Fix For: 3.6.0
>
>
> h2. TinkerGraph could not order vertex/edge without specified property
> h3. Environment
> bq. Version: 3.4.10
> bq.OS : CentOS8
> bq.Storage Backend: in-memory
> h3. Bug description
> We expect to get the vertexes/edges ordered by their ID using gremlin *order*
> query without specified property like `"g.V()/E().order().by(asc/desc)"` in
> TinkerGraph, as we can get the result by the same query in JanusGraph.
> h3. Current behavior
> An exception was thrown:
> {code:java}
> java.util.concurrent.ExecutionException:
> org.apache.tinkerpop.gremlin.driver.exception.ResponseException:
> org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex cannot be
> cast to java.lang.Comparable
> at
> java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
> at
> java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1908)
> at
> org.gdbtesting.validation.ValidateTinkerOrderAsc.main(ValidateTinkerOrderAsc.java:27)
> Caused by: org.apache.tinkerpop.gremlin.driver.exception.ResponseException:
> org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex cannot be
> cast to java.lang.Comparable
> {code}
> h3. Reproduce
> {code:java}
> GraphTraversalSource g = connection.getG();
> g.E().drop().iterate();
> g.V().drop().iterate();
> try {
> Vertex v1 = g.addV().property("price",3).next();
> Vertex v2 = g.addV().property("price",4).next();
> Vertex v3 = g.addV().property("price",5).next();
> Vertex v4 = g.addV().property("price",6).next();
> String query = "g.V().order().by(asc)";
> System.out.println("query: " + query);
> try{
> List<Result> results;
> results = connection.getClient().submit(query).all().get();
> for (Result r : results) {
> System.out.println(r);
> }
> }catch(Exception e){
> e.printStackTrace();
> }
> } catch (Exception e) {
> e.printStackTrace();
> } finally {
> System.exit(0);
> }
> {code}
> We could successfully run the *order()* step with specified property in
> TinkerGraph, like using "g.V().id().order().by(asc)" to get vertexes ordered
> by vertex ID. We bring up the issue for we are wondering whether query
> without specified property, like "g.V()/E().order().by(asc/desc)", is
> grammatically correct or not, as we find it could be accepted in JanusGraph
> while get exception above in TinkerGraph.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)