susumu.yata
null+****@clear*****
Tue Jul 21 16:55:01 JST 2015
susumu.yata 2015-07-21 16:55:01 +0900 (Tue, 21 Jul 2015) New Revision: 77c55f0287cb73253fdf96014e47a2becaff9b7a https://github.com/groonga/grngo/commit/77c55f0287cb73253fdf96014e47a2becaff9b7a Message: Use grn_bulk_write() instead of GRN_*_SET() for error handling. Modified files: grngo.c Modified: grngo.c (+16 -8) =================================================================== --- grngo.c 2015-07-21 15:31:32 +0900 (62a042c) +++ grngo.c 2015-07-21 16:55:01 +0900 (58c2efc) @@ -626,8 +626,10 @@ grngo_set_bool(grngo_column *column, grn_id id, grn_bool value) { } grn_obj obj; GRN_BOOL_INIT(&obj, 0); - GRN_BOOL_SET(ctx, &obj, value); - grn_rc rc = grn_obj_set_value(ctx, column->objs[0], id, &obj, GRN_OBJ_SET); + grn_rc rc = grn_bulk_write(ctx, &obj, (const char *)&value, sizeof(value)); + if (rc == GRN_SUCCESS) { + rc = grn_obj_set_value(ctx, column->objs[0], id, &obj, GRN_OBJ_SET); + } GRN_OBJ_FIN(ctx, &obj); return rc; } @@ -729,8 +731,10 @@ grngo_set_float(grngo_column *column, grn_id id, double value) { } grn_obj obj; GRN_FLOAT_INIT(&obj, 0); - GRN_FLOAT_SET(ctx, &obj, value); - grn_rc rc = grn_obj_set_value(ctx, column->objs[0], id, &obj, GRN_OBJ_SET); + grn_rc rc = grn_bulk_write(ctx, &obj, (const char *)&value, sizeof(value)); + if (rc == GRN_SUCCESS) { + rc = grn_obj_set_value(ctx, column->objs[0], id, &obj, GRN_OBJ_SET); + } GRN_OBJ_FIN(ctx, &obj); return rc; } @@ -768,8 +772,10 @@ grngo_set_text(grngo_column *column, grn_id id, grngo_text value) { break; } } - GRN_TEXT_SET(ctx, &obj, value.ptr, value.size); - grn_rc rc = grn_obj_set_value(ctx, column->objs[0], id, &obj, GRN_OBJ_SET); + grn_rc rc = grn_bulk_write(ctx, &obj, value.ptr, value.size); + if (rc == GRN_SUCCESS) { + rc = grn_obj_set_value(ctx, column->objs[0], id, &obj, GRN_OBJ_SET); + } GRN_OBJ_FIN(ctx, &obj); return rc; } @@ -797,8 +803,10 @@ grngo_set_geo_point(grngo_column *column, grn_id id, grn_geo_point value) { return GRN_UNKNOWN_ERROR; } } - GRN_GEO_POINT_SET(ctx, &obj, value.latitude, value.longitude); - grn_rc rc = grn_obj_set_value(ctx, column->objs[0], id, &obj, GRN_OBJ_SET); + grn_rc rc = grn_bulk_write(ctx, &obj, (const char *)&value, sizeof(value)); + if (rc == GRN_SUCCESS) { + rc = grn_obj_set_value(ctx, column->objs[0], id, &obj, GRN_OBJ_SET); + } GRN_OBJ_FIN(ctx, &obj); return rc; } -------------- next part -------------- HTML����������������������������...ダウンロード