Kouhei Sutou
null+****@clear*****
Fri Feb 3 10:56:48 JST 2017
Kouhei Sutou 2017-02-03 10:56:48 +0900 (Fri, 03 Feb 2017) New Revision: 438d3f364c19c842214a4018c026c48d95aa4e17 https://github.com/groonga/groonga/commit/438d3f364c19c842214a4018c026c48d95aa4e17 Message: Add predicates for bulk and text family bulk Modified files: include/groonga/obj.h lib/obj.c test/unit/core/test-object.c Modified: include/groonga/obj.h (+2 -0) =================================================================== --- include/groonga/obj.h 2017-02-03 10:43:29 +0900 (1d7867e) +++ include/groonga/obj.h 2017-02-03 10:56:48 +0900 (0b7a7c6) @@ -31,6 +31,8 @@ extern "C" { GRN_API grn_bool grn_obj_is_true(grn_ctx *ctx, grn_obj *obj); GRN_API grn_bool grn_obj_is_builtin(grn_ctx *ctx, grn_obj *obj); +GRN_API grn_bool grn_obj_is_bulk(grn_ctx *ctx, grn_obj *obj); +GRN_API grn_bool grn_obj_is_text_family_bulk(grn_ctx *ctx, grn_obj *obj); GRN_API grn_bool grn_obj_is_table(grn_ctx *ctx, grn_obj *obj); GRN_API grn_bool grn_obj_is_column(grn_ctx *ctx, grn_obj *obj); GRN_API grn_bool grn_obj_is_vector_column(grn_ctx *ctx, grn_obj *obj); Modified: lib/obj.c (+20 -0) =================================================================== --- lib/obj.c 2017-02-03 10:43:29 +0900 (092869e) +++ lib/obj.c 2017-02-03 10:56:48 +0900 (13e83c4) @@ -76,6 +76,26 @@ grn_obj_is_builtin(grn_ctx *ctx, grn_obj *obj) } grn_bool +grn_obj_is_bulk(grn_ctx *ctx, grn_obj *obj) +{ + if (!obj) { + return GRN_FALSE; + } + + return obj->header.type == GRN_BULK; +} + +grn_bool +grn_obj_is_text_family_bulk(grn_ctx *ctx, grn_obj *obj) +{ + if (!grn_obj_is_bulk(ctx, obj)) { + return GRN_FALSE; + } + + return GRN_TYPE_IS_TEXT_FAMILY(obj->header.domain); +} + +grn_bool grn_obj_is_table(grn_ctx *ctx, grn_obj *obj) { grn_bool is_table = GRN_FALSE; Modified: test/unit/core/test-object.c (+40 -0) =================================================================== --- test/unit/core/test-object.c 2017-02-03 10:43:29 +0900 (03f594d) +++ test/unit/core/test-object.c 2017-02-03 10:56:48 +0900 (d082ee0) @@ -27,6 +27,8 @@ void data_is_builtin(void); void test_is_builtin(gconstpointer data); +void test_is_bulk(void); +void test_is_text_family_bulk(void); void data_is_table(void); void test_is_table(gconstpointer data); void data_is_column(void); @@ -159,6 +161,44 @@ test_is_builtin(gconstpointer data) } void +test_is_bulk(void) +{ + grn_obj bulk; + grn_obj *tokenizer; + + GRN_UINT32_INIT(&bulk, 0); + cut_assert_true(grn_obj_is_bulk(context, &bulk)); + GRN_OBJ_FIN(context, &bulk); + + tokenizer = grn_ctx_get(context, "TokenBigram", -1); + cut_assert_false(grn_obj_is_bulk(context, tokenizer)); +} + +void +test_is_text_family_bulk(void) +{ + grn_obj uint32_bulk; + grn_obj short_text_bulk; + grn_obj text_bulk; + grn_obj long_text_bulk; + + GRN_UINT32_INIT(&uint32_bulk, 0); + GRN_SHORT_TEXT_INIT(&short_text_bulk, 0); + GRN_TEXT_INIT(&text_bulk, 0); + GRN_LONG_TEXT_INIT(&long_text_bulk, 0); + + cut_assert_false(grn_obj_is_text_family_bulk(context, &uint32_bulk)); + cut_assert_true(grn_obj_is_text_family_bulk(context, &short_text_bulk)); + cut_assert_true(grn_obj_is_text_family_bulk(context, &text_bulk)); + cut_assert_true(grn_obj_is_text_family_bulk(context, &long_text_bulk)); + + GRN_OBJ_FIN(context, &uint32_bulk); + GRN_OBJ_FIN(context, &short_text_bulk); + GRN_OBJ_FIN(context, &text_bulk); + GRN_OBJ_FIN(context, &long_text_bulk); +} + +void data_is_table(void) { #define ADD_DATUM(expected, name) \ -------------- next part -------------- HTML����������������������������...Télécharger