Skip to content

Commit cdc830a

Browse files
committed
parse map data-type
1 parent 3545a76 commit cdc830a

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

client_test.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ func TestArray(t *testing.T) {
219219
func TestMap(t *testing.T) {
220220
createGraph()
221221

222-
q := "RETURN {val_1: 5, val_2: 'str'}"
222+
q := "RETURN {val_1: 5, val_2: 'str', inner: {x: [1]}}"
223223
res, err := graph.Query(q)
224224
if err != nil {
225225
t.Error(err)
@@ -228,7 +228,8 @@ func TestMap(t *testing.T) {
228228
r := res.Record()
229229
mapval := r.GetByIndex(0).(map[string]interface{})
230230

231-
expected := map[string]interface{}{"val_1": 5, "val_2": "str"}
231+
inner_map := map[string]interface{}{"x": []interface{}{1}}
232+
expected := map[string]interface{}{"val_1": 5, "val_2": "str", "inner": inner_map}
232233
assert.Equal(t, mapval, expected, "expecting a map literal")
233234

234235
q = "MATCH (a:Country) RETURN a { .name }"
@@ -256,7 +257,7 @@ func TestPath(t *testing.T) {
256257

257258
res.Next()
258259
r := res.Record()
259-
260+
260261
p, ok := r.GetByIndex(0).(Path)
261262
assert.True(t, ok, "First column should contain path.")
262263

query_result.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -232,11 +232,12 @@ func (qr *QueryResult) parseMap(cell interface{}) map[string]interface{} {
232232
var raw_map = cell.([]interface{})
233233
var mapLength = len(raw_map)
234234
var parsed_map = make(map[string]interface{})
235-
for i := 0; i < mapLength; i++ {
236-
pair := raw_map[i].([]interface{})
237-
key, _ := redis.String(pair[0], nil)
238-
parsed_map[key] = qr.parseScalar(pair[1].([]interface{}))
235+
236+
for i := 0; i < mapLength; i += 2 {
237+
key, _ := redis.String(raw_map[i], nil)
238+
parsed_map[key] = qr.parseScalar(raw_map[i+1].([]interface{}))
239239
}
240+
240241
return parsed_map
241242
}
242243

0 commit comments

Comments
 (0)