David M. Brown created TINKERPOP-1875:
-----------------------------------------

             Summary: 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
             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