Navigation Menu

Skip to content

Commit

Permalink
Gnx: support Bool in db.SetValue().
Browse files Browse the repository at this point in the history
  • Loading branch information
s-yata committed Apr 6, 2015
1 parent 5d85065 commit 9c85e67
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 8 deletions.
6 changes: 6 additions & 0 deletions go2/gnx/gnx.cpp
Expand Up @@ -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));
Expand Down
7 changes: 5 additions & 2 deletions go2/gnx/gnx.go
Expand Up @@ -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))
Expand Down
24 changes: 18 additions & 6 deletions go2/gnxTest.go
Expand Up @@ -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
Expand All @@ -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 {
Expand All @@ -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"
Expand Down

0 comments on commit 9c85e67

Please sign in to comment.