[Groonga-commit] groonga/grnxx at 9c85e67 [master] Gnx: support Bool in db.SetValue().

Back to archive index

susumu.yata null+****@clear*****
Mon Apr 6 17:15:39 JST 2015


susumu.yata	2015-04-06 17:15:39 +0900 (Mon, 06 Apr 2015)

  New Revision: 9c85e67714d8696ba25ebb69e118bdb29ea8da12
  https://github.com/groonga/grnxx/commit/9c85e67714d8696ba25ebb69e118bdb29ea8da12

  Message:
    Gnx: support Bool in db.SetValue().

  Modified files:
    go2/gnx/gnx.cpp
    go2/gnx/gnx.go
    go2/gnxTest.go

  Modified: go2/gnx/gnx.cpp (+6 -0)
===================================================================
--- go2/gnx/gnx.cpp    2015-04-06 16:48:46 +0900 (2da59ff)
+++ go2/gnx/gnx.cpp    2015-04-06 17:15:39 +0900 (28378be)
@@ -71,6 +71,12 @@ gnx_bool gnx_set_value(grn_ctx *ctx, const char *table_name,
 //    case GNX_NA: {
 //      break;
 //    }
+    case GNX_BOOL: {
+      GRN_BOOL_INIT(&obj, 0);
+      GRN_BOOL_SET(ctx, &obj,
+        *static_cast<const gnx_bool *>(value) == GNX_TRUE);
+      break;
+    }
     case GNX_INT: {
       GRN_INT64_INIT(&obj, 0);
       GRN_INT64_SET(ctx, &obj, *static_cast<const gnx_int *>(value));

  Modified: go2/gnx/gnx.go (+5 -2)
===================================================================
--- go2/gnx/gnx.go    2015-04-06 16:48:46 +0900 (7949d81)
+++ go2/gnx/gnx.go    2015-04-06 17:15:39 +0900 (86204bb)
@@ -1037,9 +1037,12 @@ func (db *DB) SetValue(tableName string, columnName string, rowID Int,
 	cColumnName := C.CString(columnName)
 	defer C.free(unsafe.Pointer(cColumnName))
 	switch v := value.(type) {
-	case nil:
+//	case nil:
+//		ok = C.gnx_set_value(groongaDB.ctx, cTableName, cColumnName,
+//			C.gnx_int(rowID), C.GNX_NA, nil)
+	case Bool:
 		ok = C.gnx_set_value(groongaDB.ctx, cTableName, cColumnName,
-			C.gnx_int(rowID), C.GNX_NA, nil)
+			C.gnx_int(rowID), C.GNX_BOOL, unsafe.Pointer(&v))
 	case Int:
 		ok = C.gnx_set_value(groongaDB.ctx, cTableName, cColumnName,
 			C.gnx_int(rowID), C.GNX_INT, unsafe.Pointer(&v))

  Modified: go2/gnxTest.go (+18 -6)
===================================================================
--- go2/gnxTest.go    2015-04-06 16:48:46 +0900 (84dd1bd)
+++ go2/gnxTest.go    2015-04-06 17:15:39 +0900 (516fcc6)
@@ -384,19 +384,25 @@ func testD() {
 			return
 		}
 		_, err = db.GroongaQuery(
-			i, "column_create Table Value1 COLUMN_SCALAR Int32")
+			i, "column_create Table Value1 COLUMN_SCALAR Bool")
 		if err != nil {
 			log.Println(err)
 			return
 		}
 		_, err = db.GroongaQuery(
-			i, "column_create Table Value2 COLUMN_SCALAR Float")
+			i, "column_create Table Value2 COLUMN_SCALAR Int32")
 		if err != nil {
 			log.Println(err)
 			return
 		}
 		_, err = db.GroongaQuery(
-			i, "column_create Table Value3 COLUMN_SCALAR Text")
+			i, "column_create Table Value3 COLUMN_SCALAR Float")
+		if err != nil {
+			log.Println(err)
+			return
+		}
+		_, err = db.GroongaQuery(
+			i, "column_create Table Value4 COLUMN_SCALAR Text")
 		if err != nil {
 			log.Println(err)
 			return
@@ -415,12 +421,14 @@ func testD() {
 		rowIDs = append(rowIDs, rowID)
 	}
 
-	values1 := []gnx.Int{
+	values1 := []gnx.Bool{
+		gnx.FALSE, gnx.TRUE, gnx.NABool(), gnx.FALSE, gnx.TRUE}
+	values2 := []gnx.Int{
 		gnx.Int(10), gnx.Int(20), gnx.Int(30), gnx.Int(40), gnx.Int(50)}
-	values2 := []gnx.Float{
+	values3 := []gnx.Float{
 		gnx.Float(1.25), gnx.Float(2.5), gnx.Float(3.75),
 		gnx.Float(5.0), gnx.Float(6.25)}
-	values3 := []gnx.Text{
+	values4 := []gnx.Text{
 		gnx.Text("Apple"), gnx.Text("Banana"), gnx.Text("Orange"),
 		gnx.Text("Pineapple"), gnx.Text("Strawberry")}
 	for i, rowID := range rowIDs {
@@ -436,6 +444,10 @@ func testD() {
 			log.Println(err)
 			return
 		}
+		if err := db.SetValue("Table", "Value4", rowID, values4[i]); err != nil {
+			log.Println(err)
+			return
+		}
 	}
 
 	command := "select Table --limit -1 --cache no"
-------------- next part --------------
HTML����������������������������...
다운로드 



More information about the Groonga-commit mailing list
Back to archive index