Kouhei Sutou
null+****@clear*****
Wed Apr 1 00:13:15 JST 2015
Kouhei Sutou 2015-04-01 00:13:15 +0900 (Wed, 01 Apr 2015) New Revision: c7b936df7ab73f1a57e756c5a87e89aeaef36fcc https://github.com/pgroonga/pgroonga/commit/c7b936df7ab73f1a57e756c5a87e89aeaef36fcc Message: Use grn_operator_*() API Modified files: pgroonga.c Modified: pgroonga.c (+12 -27) =================================================================== --- pgroonga.c 2015-04-01 00:05:25 +0900 (8b38984) +++ pgroonga.c 2015-04-01 00:13:15 +0900 (9b1cbe0) @@ -946,38 +946,23 @@ pgroonga_command(PG_FUNCTION_ARGS) } static grn_bool -pgroonga_contain_raw(const char *text, unsigned int text_size, - const char *key, unsigned int key_size) +pgroonga_contain_raw(const char *text, unsigned int textSize, + const char *subText, unsigned int subTextSize) { - grn_bool contained = GRN_FALSE; - grn_obj buffer; - grn_obj *expression, *expressionVariable; - - GRN_EXPR_CREATE_FOR_QUERY(ctx, NULL, expression, expressionVariable); - - GRN_TEXT_INIT(&buffer, 0); - - GRN_TEXT_SET(ctx, &buffer, text, text_size); - grn_expr_append_const(ctx, expression, &buffer, GRN_OP_PUSH, 1); + grn_bool contained; + grn_obj targetBuffer; + grn_obj subTextBuffer; - GRN_TEXT_SET(ctx, &buffer, key, key_size); - grn_expr_append_const(ctx, expression, &buffer, GRN_OP_PUSH, 1); + GRN_TEXT_INIT(&targetBuffer, GRN_OBJ_DO_SHALLOW_COPY); + GRN_TEXT_SET(ctx, &targetBuffer, text, textSize); - grn_expr_append_op(ctx, expression, GRN_OP_MATCH, 2); + GRN_TEXT_INIT(&subTextBuffer, GRN_OBJ_DO_SHALLOW_COPY); + GRN_TEXT_SET(ctx, &subTextBuffer, subText, subTextSize); - { - grn_obj *result; - result = grn_expr_exec(ctx, expression, 0); - if (ctx->rc) - { - goto exit; - } - contained = GRN_INT32_VALUE(result) != 0; - } + contained = grn_operator_exec_match(ctx, &targetBuffer, &subTextBuffer); -exit: - grn_obj_unlink(ctx, expression); - GRN_OBJ_FIN(ctx, &buffer); + GRN_OBJ_FIN(ctx, &targetBuffer); + GRN_OBJ_FIN(ctx, &subTextBuffer); return contained; } -------------- next part -------------- HTML����������������������������...ダウンロード