You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2016/10/28 21:51:58 UTC

[jira] [Commented] (TINKERPOP-1483) PropertyMapStep returns Map but puts non String keys in it!

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

ASF GitHub Bot commented on TINKERPOP-1483:
-------------------------------------------

Github user dkuppitz commented on the issue:

    https://github.com/apache/tinkerpop/pull/446
  
    I've seen lots of code where people actually use `id` as a property name.
    
    ```
    gremlin> g = TinkerGraph.open().traversal()
    ==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
    gremlin> g.addV().property("id", UUID.randomUUID())
    ==>v[0]
    gremlin> g.V().valueMap(true)
    ==>[id:0,id:[02f29cc6-7f04-477c-a884-d5196064109a],label:vertex]
    gremlin> g.V().project("vertexId","applicationId").by(id).by("id").next()
    ==>vertexId=0
    ==>applicationId=02f29cc6-7f04-477c-a884-d5196064109a
    ```
    
    Those people would be in big trouble if we would merge this PR:
    
    VOTE: -1


> PropertyMapStep returns Map<String,E> but puts non String keys in it!
> ---------------------------------------------------------------------
>
>                 Key: TINKERPOP-1483
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1483
>             Project: TinkerPop
>          Issue Type: Bug
>          Components: process
>    Affects Versions: 3.2.2
>            Reporter: JP Moresmau
>
> PropertyMapStep.map has return type Map<String,E>, but if includeTokens is true:
> {code}
> if (element instanceof VertexProperty) {
>                     map.put(T.id, element.id());
>                     map.put(T.key, ((VertexProperty) element).key());
>                     map.put(T.value, ((VertexProperty) element).value());
>                 } else {
>                     map.put(T.id, element.id());
>                     map.put(T.label, element.label());
>                 }
> {code}
> T.id, T.key and T.value are NOT strings, so code looping through the keys in Java fails. toString() are missing... But do we rely on having these keys in other operations?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)