Skip to content

Commit 908e451

Browse files
author
DvirDukhan
committed
added support for string array
1 parent 8db09ea commit 908e451

File tree

2 files changed

+9
-12
lines changed

2 files changed

+9
-12
lines changed

client_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ func TestPath(t *testing.T) {
259259

260260
func TestParameterizedQuery(t *testing.T) {
261261
createGraph()
262-
params := []interface{}{1, 2.3, "str", true, false, nil, []interface {}{0, 1, 2}}
262+
params := []interface{}{1, 2.3, "str", true, false, nil, []interface {}{0, 1, 2}, []interface {}{"0", "1", "2"}}
263263
q := "RETURN $param"
264264
params_map := make(map[string]interface{})
265265
for index, param := range params {

utils.go

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,17 @@ package redisgraph
33
import (
44
"crypto/rand"
55
"fmt"
6-
"reflect"
76
"strings"
87
)
98

109
// go array to string is [1 2 3] for [1, 2, 3] array
1110
// cypher expects comma separated array
1211
func arrayToString(arr interface{}) interface{} {
13-
v := reflect.ValueOf(arr)
14-
var arrayLength = v.Len()
12+
v := arr.([]interface{})
13+
var arrayLength = len(v)
1514
strArray := []string{}
1615
for i := 0; i < arrayLength; i++ {
17-
strArray = append(strArray, fmt.Sprintf("%v", ToString(v.Index(i))))
16+
strArray = append(strArray, fmt.Sprintf("%v", ToString(v[i])))
1817
}
1918
return "[" + strings.Join(strArray[:], ",") + "]"
2019
}
@@ -23,10 +22,10 @@ func ToString(i interface{}) interface{} {
2322
if(i == nil) {
2423
return "null"
2524
}
26-
v := reflect.ValueOf(i)
27-
switch reflect.TypeOf(i).Kind() {
28-
case reflect.String:
29-
s := v.String()
25+
26+
switch i.(type) {
27+
case string:
28+
s := i.(string)
3029
if len(s) == 0 {
3130
return "\"\""
3231
}
@@ -37,9 +36,7 @@ func ToString(i interface{}) interface{} {
3736
s += "\""
3837
}
3938
return s
40-
case reflect.Slice:
41-
return arrayToString(i)
42-
case reflect.Array:
39+
case []interface {} :
4340
return arrayToString(i)
4441
default:
4542
return i

0 commit comments

Comments
 (0)