Selaa lähdekoodia

added support for bigints

Christoph Hack 13 vuotta sitten
vanhempi
commit
44dc8071e1
2 muutettua tiedostoa jossa 10 lisäystä ja 18 poistoa
  1. 2 1
      convert.go
  2. 8 17
      gocql_test.go

+ 2 - 1
convert.go

@@ -48,6 +48,8 @@ func decode(b []byte, t uint16) driver.Value {
 		return string(b)
 	case typeInt:
 		return int64(int32(binary.BigEndian.Uint32(b)))
+	case typeBigInt:
+		return int64(binary.BigEndian.Uint64(b))
 	case typeFloat:
 		return float64(math.Float32frombits(binary.BigEndian.Uint32(b)))
 	case typeDouble:
@@ -60,7 +62,6 @@ func decode(b []byte, t uint16) driver.Value {
 	case typeUUID, typeTimeUUID:
 		return uuid.FromBytes(b)
 	default:
-		fmt.Println("unsupprted type")
 		panic("unsupported type")
 	}
 	return b

+ 8 - 17
gocql_test.go

@@ -88,23 +88,13 @@ func TestWiki(t *testing.T) {
 		}
 	}
 
-	rowCount := 0
-	rows, err := db.Query(`SELECT revid FROM page`)
-	if err != nil {
-		t.Fatal(err)
-	}
-	for rows.Next() {
-		var revid uuid.UUID
-		if err := rows.Scan(&revid); err != nil {
-			t.Fatal(err)
-		}
-		rowCount++
-	}
-	if err := rows.Err(); err != nil {
-		t.Fatal(err)
+	row := db.QueryRow(`SELECT count(*) FROM page`)
+	var count int
+	if err := row.Scan(&count); err != nil {
+		t.Error(err)
 	}
-	if rowCount != len(pages) {
-		t.Fatalf("expected %d rows, got %d", len(pages), rowCount)
+	if count != len(pages) {
+		t.Fatalf("expected %d rows, got %d", len(pages), count)
 	}
 
 	for _, page := range pages {
@@ -126,7 +116,7 @@ func TestWiki(t *testing.T) {
 		}
 	}
 
-	row := db.QueryRow(`SELECT title, revid, body, hits, protected,
+	row = db.QueryRow(`SELECT title, revid, body, hits, protected,
         modified, attachment
         FROM page WHERE title = ? ORDER BY revid DESC`, "Frontpage")
 	var p Page
@@ -142,4 +132,5 @@ func TestWiki(t *testing.T) {
 		!bytes.Equal(page.Attachment, p.Attachment) {
 		t.Errorf("expected %#v got %#v", *page, p)
 	}
+
 }