mschae / boltex

Elixir driver for the neo4j bolt protocol
Other
29 stars 6 forks source link

Lists wrapped in an unnecessary list. Bug?! #5

Closed florinpatrascu closed 8 years ago

florinpatrascu commented 8 years ago

Hi there - I believe the decoded lists are wrapped in an additional list, unnecessary?!

Given the following sample data:

 CREATE (bike:Bike {weight: 10, bolt_sips: true})
 CREATE (frontWheel:Wheel {spokes: 3, bolt_sips: true})
 CREATE (backWheel:Wheel {spokes: 32, bolt_sips: true})
 CREATE p1 = (bike)-[:HAS {position: 1} ]->(frontWheel)
 CREATE p2 = (bike)-[:HAS {position: 2} ]->(backWheel)
 RETURN bike, p1, p2

If I run the following command:

match (a)-[:HAS*]->(b) return collect(distinct b)

I expect to see 2 nodes returned, in a list.

The python driver is returning this:

[
  <Node id=370 labels=set([u'Wheel']) properties={u'spokes': 32, u'bolt_sips': True}>, 
  <Node id=397 labels=set([u'Wheel']) properties={u'spokes': 3, u'bolt_sips': True}>
]  

A single list containing two elements (nodes, in this case)

But when I run the same command using Boltex, I get the following:

[
  success: %{"fields" => ["collect(distinct b)"]}, 
  record: [
    [
      [sig: 78, fields: [370, ["Wheel"], %{"bolt_sips" => true, "spokes" => 32}]], 
      [sig: 78, fields: [397, ["Wheel"], %{"bolt_sips" => true, "spokes" => 3}]]
    ]
  ], 
  success: %{"type" => "r"}
]

I was expecting :record to contain a list with two elements. Is this a bug?

Thank you.

florinpatrascu commented 8 years ago

Actually it is correct, sorry.