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

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

GitHub user davebshow opened a pull request:

    https://github.com/apache/tinkerpop/pull/790

    TINKERPOP-1875 Gremlin-Python only aggregates to list when using GraphSON3

    https://issues.apache.org/jira/browse/TINKERPOP-1875
    
    This PR fixes server response message deserialization in Gremlin-Python. 
Improper deserialization was leading to `aggregate_to` always resulting in a 
list as well as API comparability issues between GraphSON2 and GraphSON3 
message serializers.
    
    This PR also improves testing--all Gremlin-Python tests using a remote 
connection are now run with both GraphSON 2 and 3 serializers. 

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/apache/tinkerpop TINKERPOP-1875

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/tinkerpop/pull/790.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #790
    
----
commit f0bbe7c90f5f66028203f21dcf720bf0948f1950
Author: davebshow <davebshow@...>
Date:   2018-01-24T21:14:03Z

    added proper response message serialization, run all remote connection 
tests with graphson 2 and 3

----


> Gremlin-Python only aggregates to list when using GraphSON3
> -----------------------------------------------------------
>
>                 Key: TINKERPOP-1875
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1875
>             Project: TinkerPop
>          Issue Type: Bug
>          Components: python
>    Affects Versions: 3.3.1
>            Reporter: David M. Brown
>            Assignee: David M. Brown
>            Priority: Major
>             Fix For: 3.3.2
>
>
> Gremlin-Python fails to correctly extract the aggregate_to value from the 
> Gremlin Server response when using GraphSON3. I believe this is the source of 
> the test failures that were temporarily fixed by using the v2.0 message 
> serializer in [this 
> commit|https://github.com/apache/tinkerpop/commit/8c299879e777765748c2c2b03a58b6d0c5c401de].
>  
> In general, it seems this value is a bit buried in the new response message 
> format:
> {code:json}
> {'requestId': 'b2a51ad2-bca6-4493-9115-a57a92e477c7',
>  'result': {'data': {'@type': 'g:List',
>    '@value': [{'@type': 'g:Map',
>      '@value': ['ripple', {'@type': 'g:Int64', '@value': 1}]},
>     {'@type': 'g:Map', '@value': ['lop', {'@type': 'g:Int64', '@value': 
> 3}]}]},
>   'meta': {'@type': 'g:Map',
>    '@value': ['aggregateTo', 'map', 'sideEffectKey', 'm']}},
>  'status': {'attributes': {'@type': 'g:Map', '@value': []},
>   'code': 200,
>   'message': ''}}
> {code}
> To access it, you have to do something like:
> {code:python}
> message['result']['meta']['@value'][1]
> {code}
> Which throws an error when no metadata is present. This seems a bit clumsy. I 
> haven't looked at how the Java driver deals with it, maybe there is a better 
> way to parse this.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to