Browse Source

added support for bigints

Christoph Hack 13 years ago
parent
commit
44dc8071e1
2 changed files with 10 additions and 18 deletions
  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)
 		return string(b)
 	case typeInt:
 	case typeInt:
 		return int64(int32(binary.BigEndian.Uint32(b)))
 		return int64(int32(binary.BigEndian.Uint32(b)))
+	case typeBigInt:
+		return int64(binary.BigEndian.Uint64(b))
 	case typeFloat:
 	case typeFloat:
 		return float64(math.Float32frombits(binary.BigEndian.Uint32(b)))
 		return float64(math.Float32frombits(binary.BigEndian.Uint32(b)))
 	case typeDouble:
 	case typeDouble:
@@ -60,7 +62,6 @@ func decode(b []byte, t uint16) driver.Value {
 	case typeUUID, typeTimeUUID:
 	case typeUUID, typeTimeUUID:
 		return uuid.FromBytes(b)
 		return uuid.FromBytes(b)
 	default:
 	default:
-		fmt.Println("unsupprted type")
 		panic("unsupported type")
 		panic("unsupported type")
 	}
 	}
 	return b
 	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 {
 	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
         modified, attachment
         FROM page WHERE title = ? ORDER BY revid DESC`, "Frontpage")
         FROM page WHERE title = ? ORDER BY revid DESC`, "Frontpage")
 	var p Page
 	var p Page
@@ -142,4 +132,5 @@ func TestWiki(t *testing.T) {
 		!bytes.Equal(page.Attachment, p.Attachment) {
 		!bytes.Equal(page.Attachment, p.Attachment) {
 		t.Errorf("expected %#v got %#v", *page, p)
 		t.Errorf("expected %#v got %#v", *page, p)
 	}
 	}
+
 }
 }