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

stephen mallette commented on TINKERPOP-1927:
---------------------------------------------

The scenario doesn't really return a {{Set}} - it's actually a {{BulkSet}}. 

{code}
gremlin> bs = g.V().store("a").
......1>              by(__.outE("created").count()).
......2>         out().out().store("a").
......3>                       by(__.inE("created").values("weight").sum()).
......4>         cap("a").next()
==>1
==>1
==>0
==>0
==>0
==>2
==>1.0
==>1.0
gremlin> bs.class
==>class org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet
gremlin> bs.size()
==>8
gremlin> bs.uniqueSize()
==>4
{code}

and therefore it coerces to {{g:Set}} when serialized. {{BulkSet}} isn't a type 
in GraphSON and we don't have such infrastructure in the GLVs. I don't think we 
need to introduce {{BulkSet}} either. Perhaps the easiest fix is to coerce 
{{BulkSet}} to {{g:List}} since it behaves that way when iterated. I'll try 
that approach unless someone has better ideas.

> Gherkin scenario expects list with duplicates, but receives g:Set
> -----------------------------------------------------------------
>
>                 Key: TINKERPOP-1927
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1927
>             Project: TinkerPop
>          Issue Type: Bug
>          Components: dotnet, javascript, python, test-suite
>    Affects Versions: 3.3.1
>            Reporter: Florian Hockmann
>            Priority: Major
>
> The scenario 
> {{g_V_storeXaX_byXoutEXcreatedX_countX_out_out_storeXaX_byXinEXcreatedX_weight_sumX}}
>  expects
> {code:java}
> | result |
> | d[1].l |
> | d[1].l |
> | d[0].l |
> | d[0].l |
> | d[0].l |
> | d[2].l |
> | d[1.0].d |
> | d[1.0].d |
> {code}
> but we receive this from the server:
> {code:java}
> {
>     "@type": "g:Set",
>     "@value": [
>         {
>             "@type": "g:Int64",
>             "@value": 1
>         },
>         {
>             "@type": "g:Int64",
>             "@value": 1
>         },
>         {
>             "@type": "g:Int64",
>             "@value": 0
>         },
>         {
>             "@type": "g:Int64",
>             "@value": 0
>         },
>         {
>             "@type": "g:Int64",
>             "@value": 0
>         },
>         {
>             "@type": "g:Int64",
>             "@value": 2
>         },
>         {
>             "@type": "g:Double",
>             "@value": 1
>         },
>         {
>             "@type": "g:Double",
>             "@value": 1
>         }
>     ]
> }
> {code}
> The set returned by the server contains 4 duplicates that shouldn't be part 
> of the expected result in the scenario.
> Unfortunately, while working on TINKERPOP-1865 we noticed that gremlin-python 
> and gremlin-javascript fail when the scenario is fixed like that. So those 
> two GLVs probably need to be fixed to handle {{g:Set}} correctly.
> After fixing the scenario, it can be removed from the list of ignored 
> scenarios in Gremlin.Net.



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

Reply via email to