tinkerpop-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "stephen mallette (Jira)" <j...@apache.org>
Subject [jira] [Commented] (TINKERPOP-2286) ID type support bug causing regression when loading data
Date Wed, 21 Aug 2019 15:01:00 GMT

    [ https://issues.apache.org/jira/browse/TINKERPOP-2286?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16912371#comment-16912371
] 

stephen mallette commented on TINKERPOP-2286:
---------------------------------------------

if {{supportsUserSuppliedIds()}} is {{true}} and the provider doesn't support the id given,
you might still want to {{Attachable}} calling {{addVertex()}} without the id for the graph
to generate its own id. I think the idea was that the user might be doing a graph data migration
from a graph with, for example, UUIDs (or "worse" a provider specific id object) to a graph
like yours that only supports strings. The way that it works now, the graph could generate
its own id and the migration could take place. If TinkerPop throws an exception, we force
the user to go an somehow convert all their UUIDs to strings somehow in that process. I'm
not sure we want to do that, but from your perspective as a graph provider, I suppose that
option is open to you to throw an exception from {{willAllowId()}} but it makes data migration
a bit harder as mentioned earlier. 

> ID type support bug causing regression when loading data
> --------------------------------------------------------
>
>                 Key: TINKERPOP-2286
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-2286
>             Project: TinkerPop
>          Issue Type: Bug
>          Components: structure
>    Affects Versions: 3.4.3
>         Environment: Linux
>            Reporter: Xin Wei
>            Priority: Blocker
>
> Our provider version only supports string id, however when loading data with numeric
ids via g.io().read().iterate() the DB didn't error out, but assigned random ids to those
vertices with numeric ids, causing regression.
> The cause is : [https://github.com/apache/tinkerpop/blob/master/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Graph.java#L803] 
> The allowId() method returns false when supportsStringIds() returns true and id is not
instance of string. 
> Then this method: 
> [https://github.com/apache/tinkerpop/blob/master/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/Attachable.java#L291]
> will not pass id into Graph.addVertex() method, making underlying method assign internal
ids to the vertex, causing regression between the data we load and the data we store in the
DB.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Mime
View raw message