[Groonga-commit] pgroonga/pgroonga at c7b936d [master] Use grn_operator_*() API

Back to archive index

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����������������������������...
下载 



More information about the Groonga-commit mailing list
Back to archive index