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����������������������������...다운로드