فهرست منبع

Add reflection support for smallint

Sarah Brown 9 سال پیش
والد
کامیت
072239f9b0
2فایلهای تغییر یافته به همراه9 افزوده شده و 2 حذف شده
  1. 7 2
      cassandra_test.go
  2. 2 0
      helpers.go

+ 7 - 2
cassandra_test.go

@@ -651,6 +651,7 @@ func TestSliceMap(t *testing.T) {
 			testfloat      float,
 			testdouble     double,
 			testint        int,
+			testsmallint   smallint,
 			testdecimal    decimal,
 			testlist       list<text>,
 			testset        set<int>,
@@ -676,6 +677,7 @@ func TestSliceMap(t *testing.T) {
 	m["testfloat"] = float32(4.564)
 	m["testdouble"] = float64(4.815162342)
 	m["testint"] = 2343
+	m["testsmallint"] = int16(2)
 	m["testdecimal"] = inf.NewDec(100, 0)
 	m["testlist"] = []string{"quux", "foo", "bar", "baz", "quux"}
 	m["testset"] = []int{1, 2, 3, 4, 5, 6, 7, 8, 9}
@@ -683,8 +685,8 @@ func TestSliceMap(t *testing.T) {
 	m["testvarint"] = bigInt
 	m["testinet"] = "213.212.2.19"
 	sliceMap := []map[string]interface{}{m}
-	if err := session.Query(`INSERT INTO slice_map_table (testuuid, testtimestamp, testvarchar, testbigint, testblob, testbool, testfloat, testdouble, testint, testdecimal, testlist, testset, testmap, testvarint, testinet) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
-		m["testuuid"], m["testtimestamp"], m["testvarchar"], m["testbigint"], m["testblob"], m["testbool"], m["testfloat"], m["testdouble"], m["testint"], m["testdecimal"], m["testlist"], m["testset"], m["testmap"], m["testvarint"], m["testinet"]).Exec(); err != nil {
+	if err := session.Query(`INSERT INTO slice_map_table (testuuid, testtimestamp, testvarchar, testbigint, testblob, testbool, testfloat, testdouble, testint, testsmallint, testdecimal, testlist, testset, testmap, testvarint, testinet) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
+		m["testuuid"], m["testtimestamp"], m["testvarchar"], m["testbigint"], m["testblob"], m["testbool"], m["testfloat"], m["testdouble"], m["testint"], m["testsmallint"], m["testdecimal"], m["testlist"], m["testset"], m["testmap"], m["testvarint"], m["testinet"]).Exec(); err != nil {
 		t.Fatal("insert:", err)
 	}
 	if returned, retErr := session.Query(`SELECT * FROM slice_map_table`).Iter().SliceMap(); retErr != nil {
@@ -759,6 +761,9 @@ func matchSliceMap(t *testing.T, sliceMap []map[string]interface{}, testMap map[
 	if sliceMap[0]["testint"] != testMap["testint"] {
 		t.Fatal("returned testint did not match")
 	}
+	if sliceMap[0]["testsmallint"] != testMap["testsmallint"] {
+		t.Fatal("returned testsmallint did not match")
+	}
 }
 
 func TestScanWithNilArguments(t *testing.T) {

+ 2 - 0
helpers.go

@@ -37,6 +37,8 @@ func goType(t TypeInfo) reflect.Type {
 		return reflect.TypeOf(*new(float64))
 	case TypeInt:
 		return reflect.TypeOf(*new(int))
+	case TypeSmallInt:
+		return reflect.TypeOf(*new(int16))
 	case TypeDecimal:
 		return reflect.TypeOf(*new(*inf.Dec))
 	case TypeUUID, TypeTimeUUID: