浏览代码

Merge pull request #219 from cwandrews/master

fixed rowMap to copy slices instead of pass them in
Ben Hood 11 年之前
父节点
当前提交
6ba061b4e4
共有 1 个文件被更改,包括 8 次插入1 次删除
  1. 8 1
      helpers.go

+ 8 - 1
helpers.go

@@ -107,7 +107,14 @@ func getApacheCassandraType(class string) Type {
 
 
 func (r *RowData) rowMap(m map[string]interface{}) {
 func (r *RowData) rowMap(m map[string]interface{}) {
 	for i, column := range r.Columns {
 	for i, column := range r.Columns {
-		m[column] = dereference(r.Values[i])
+		val := dereference(r.Values[i])
+		if valVal := reflect.ValueOf(val); valVal.Kind() == reflect.Slice {
+			valCopy := reflect.MakeSlice(valVal.Type(), valVal.Len(), valVal.Cap())
+			reflect.Copy(valCopy, valVal)
+			m[column] = valCopy.Interface()
+		} else {
+			m[column] = val
+		}
 	}
 	}
 }
 }