[
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)