tinkerpop-dev mailing list archives

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

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

Xin Wei commented on TINKERPOP-2286:
------------------------------------

If supportsUserSuppliedIds() is false, then I agree it's useful to behave in the current way
by just calling addVertex() without the original ID. However if supportsUserSuppliedIds()
is true, but say the provider just doesn't support numericIds, then it feels more appropriate
to error out. Or perhaps there should be a parameter passed to read() where the user can specify
whether to strictly abide by the original data (if strict=true, error out if data can't be
faithfully reproduced in loaded graph). We can certainly experiment with throwing custom exceptions,
but just wanted to get your opinion on the default behavior.

> 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