[Groonga-commit] pgroonga/pgroonga at 1ae6eeb [master] Reorder strategy ID

Back to archive index

Kouhei Sutou null+****@clear*****
Fri Apr 8 23:17:38 JST 2016


Kouhei Sutou	2016-04-08 23:17:38 +0900 (Fri, 08 Apr 2016)

  New Revision: 1ae6eebeaa8fb32d8a63ed73e4f9150034279efd
  https://github.com/pgroonga/pgroonga/commit/1ae6eebeaa8fb32d8a63ed73e4f9150034279efd

  Message:
    Reorder strategy ID

  Modified files:
    pgroonga.sql
    src/pgroonga.c
    src/pgroonga.h

  Modified: pgroonga.sql (+3 -3)
===================================================================
--- pgroonga.sql    2016-04-08 01:16:50 +0900 (1987abb)
+++ pgroonga.sql    2016-04-08 23:17:38 +0900 (a74dc90)
@@ -486,11 +486,11 @@ CREATE OPERATOR CLASS pgroonga.text_full_text_search_ops_v2 FOR TYPE text
 		OPERATOR 12 &@,
 		OPERATOR 13 &?,
 		OPERATOR 14 &~?,
-		OPERATOR 17 &`,
+		OPERATOR 15 &`,
 		OPERATOR 18 &@> (text, text[]),
 		OPERATOR 19 &?> (text, text[]);
 
 CREATE OPERATOR CLASS pgroonga.prefix_search_ops_v2 FOR TYPE text
 	USING pgroonga AS
-		OPERATOR 15 &^,
-		OPERATOR 16 &^~;
+		OPERATOR 16 &^,
+		OPERATOR 17 &^~;

  Modified: src/pgroonga.c (+87 -87)
===================================================================
--- src/pgroonga.c    2016-04-08 01:16:50 +0900 (fdb425c)
+++ src/pgroonga.c    2016-04-08 23:17:38 +0900 (bd0b5c9)
@@ -150,9 +150,9 @@ PG_FUNCTION_INFO_V1(pgroonga_match_regexp_varchar);
 PG_FUNCTION_INFO_V1(pgroonga_match_text);
 PG_FUNCTION_INFO_V1(pgroonga_query_text);
 PG_FUNCTION_INFO_V1(pgroonga_similar_text);
+PG_FUNCTION_INFO_V1(pgroonga_script_text);
 PG_FUNCTION_INFO_V1(pgroonga_prefix_text);
 PG_FUNCTION_INFO_V1(pgroonga_prefix_rk_text);
-PG_FUNCTION_INFO_V1(pgroonga_script_text);
 PG_FUNCTION_INFO_V1(pgroonga_match_contain_text);
 PG_FUNCTION_INFO_V1(pgroonga_query_contain_text);
 
@@ -1642,6 +1642,83 @@ pgroonga_similar_text(PG_FUNCTION_ARGS)
 }
 
 static grn_bool
+pgroonga_script_raw(const char *target, unsigned int targetSize,
+					const char *script, unsigned int scriptSize)
+{
+	grn_obj *expression;
+	grn_obj *variable;
+	grn_expr_flags flags = GRN_EXPR_SYNTAX_SCRIPT;
+	grn_rc rc;
+	grn_obj *result;
+	bool matched = false;
+
+	GRN_EXPR_CREATE_FOR_QUERY(ctx,
+							  matchSequentialSearchData.table,
+							  expression,
+							  variable);
+	if (!expression)
+	{
+		ereport(ERROR,
+				(errcode(ERRCODE_OUT_OF_MEMORY),
+				 errmsg("pgroonga: failed to create expression: %s",
+						ctx->errbuf)));
+	}
+
+	rc = grn_expr_parse(ctx,
+						expression,
+						script, scriptSize,
+						matchSequentialSearchData.textColumn,
+						GRN_OP_MATCH, GRN_OP_AND,
+						flags);
+	if (rc != GRN_SUCCESS)
+	{
+		char message[GRN_CTX_MSGSIZE];
+		grn_strncpy(message, GRN_CTX_MSGSIZE,
+					ctx->errbuf, GRN_CTX_MSGSIZE);
+
+		grn_obj_close(ctx, expression);
+		ereport(ERROR,
+				(errcode(PGrnRCToPgErrorCode(rc)),
+				 errmsg("pgroonga: failed to parse expression: %s",
+						message)));
+	}
+
+	grn_obj_reinit(ctx, &(buffers->general), GRN_DB_TEXT, 0);
+	GRN_TEXT_SET(ctx, &(buffers->general), target, targetSize);
+	grn_obj_set_value(ctx,
+					  matchSequentialSearchData.textColumn,
+					  matchSequentialSearchData.recordID,
+					  &(buffers->general),
+					  GRN_OBJ_SET);
+	GRN_RECORD_SET(ctx, variable, matchSequentialSearchData.recordID);
+
+	result = grn_expr_exec(ctx, expression, 0);
+	GRN_OBJ_IS_TRUE(ctx, result, matched);
+
+	grn_obj_close(ctx, expression);
+
+	return matched;
+}
+
+/**
+ * pgroonga.script_text(target text, script text) : bool
+ */
+Datum
+pgroonga_script_text(PG_FUNCTION_ARGS)
+{
+	text *target = PG_GETARG_TEXT_PP(0);
+	text *script = PG_GETARG_TEXT_PP(1);
+	bool matched = false;
+
+	matched = pgroonga_script_raw(VARDATA_ANY(target),
+								  VARSIZE_ANY_EXHDR(target),
+								  VARDATA_ANY(script),
+								  VARSIZE_ANY_EXHDR(script));
+
+	PG_RETURN_BOOL(matched);
+}
+
+static grn_bool
 pgroonga_prefix_raw(const char *text, unsigned int textSize,
 					const char *prefix, unsigned int prefixSize)
 {
@@ -1752,83 +1829,6 @@ pgroonga_prefix_rk_text(PG_FUNCTION_ARGS)
 	PG_RETURN_BOOL(matched);
 }
 
-static grn_bool
-pgroonga_script_raw(const char *target, unsigned int targetSize,
-					const char *script, unsigned int scriptSize)
-{
-	grn_obj *expression;
-	grn_obj *variable;
-	grn_expr_flags flags = GRN_EXPR_SYNTAX_SCRIPT;
-	grn_rc rc;
-	grn_obj *result;
-	bool matched = false;
-
-	GRN_EXPR_CREATE_FOR_QUERY(ctx,
-							  matchSequentialSearchData.table,
-							  expression,
-							  variable);
-	if (!expression)
-	{
-		ereport(ERROR,
-				(errcode(ERRCODE_OUT_OF_MEMORY),
-				 errmsg("pgroonga: failed to create expression: %s",
-						ctx->errbuf)));
-	}
-
-	rc = grn_expr_parse(ctx,
-						expression,
-						script, scriptSize,
-						matchSequentialSearchData.textColumn,
-						GRN_OP_MATCH, GRN_OP_AND,
-						flags);
-	if (rc != GRN_SUCCESS)
-	{
-		char message[GRN_CTX_MSGSIZE];
-		grn_strncpy(message, GRN_CTX_MSGSIZE,
-					ctx->errbuf, GRN_CTX_MSGSIZE);
-
-		grn_obj_close(ctx, expression);
-		ereport(ERROR,
-				(errcode(PGrnRCToPgErrorCode(rc)),
-				 errmsg("pgroonga: failed to parse expression: %s",
-						message)));
-	}
-
-	grn_obj_reinit(ctx, &(buffers->general), GRN_DB_TEXT, 0);
-	GRN_TEXT_SET(ctx, &(buffers->general), target, targetSize);
-	grn_obj_set_value(ctx,
-					  matchSequentialSearchData.textColumn,
-					  matchSequentialSearchData.recordID,
-					  &(buffers->general),
-					  GRN_OBJ_SET);
-	GRN_RECORD_SET(ctx, variable, matchSequentialSearchData.recordID);
-
-	result = grn_expr_exec(ctx, expression, 0);
-	GRN_OBJ_IS_TRUE(ctx, result, matched);
-
-	grn_obj_close(ctx, expression);
-
-	return matched;
-}
-
-/**
- * pgroonga.script_text(target text, script text) : bool
- */
-Datum
-pgroonga_script_text(PG_FUNCTION_ARGS)
-{
-	text *target = PG_GETARG_TEXT_PP(0);
-	text *script = PG_GETARG_TEXT_PP(1);
-	bool matched = false;
-
-	matched = pgroonga_script_raw(VARDATA_ANY(target),
-								  VARSIZE_ANY_EXHDR(target),
-								  VARDATA_ANY(script),
-								  VARSIZE_ANY_EXHDR(script));
-
-	PG_RETURN_BOOL(matched);
-}
-
 /**
  * pgroonga.match_contain_text(target text, keywords text[]) : bool
  */
@@ -2559,13 +2559,13 @@ PGrnSearchBuildCondition(IndexScanDesc scan,
 	case PGrnSimilarStrategyV2Number:
 		operator = GRN_OP_SIMILAR;
 		break;
+	case PGrnScriptStrategyV2Number:
+		break;
 	case PGrnPrefixStrategyV2Number:
 		operator = GRN_OP_PREFIX;
 		break;
 	case PGrnPrefixRKStrategyV2Number:
 		break;
-	case PGrnScriptStrategyV2Number:
-		break;
 	case PGrnRegexpStrategyNumber:
 		operator = GRN_OP_REGEXP;
 		break;
@@ -2613,13 +2613,6 @@ PGrnSearchBuildCondition(IndexScanDesc scan,
 									  GRN_TEXT_VALUE(&(buffers->general)),
 									  GRN_TEXT_LEN(&(buffers->general)));
 		break;
-	case PGrnPrefixRKStrategyV2Number:
-		PGrnSearchBuildConditionPrefixRK(so,
-										 data,
-										 targetColumn,
-										 GRN_TEXT_VALUE(&(buffers->general)),
-										 GRN_TEXT_LEN(&(buffers->general)));
-		break;
 	case PGrnScriptStrategyV2Number:
 		PGrnSearchBuildConditionScript(so,
 									   data,
@@ -2627,6 +2620,13 @@ PGrnSearchBuildCondition(IndexScanDesc scan,
 									   GRN_TEXT_VALUE(&(buffers->general)),
 									   GRN_TEXT_LEN(&(buffers->general)));
 		break;
+	case PGrnPrefixRKStrategyV2Number:
+		PGrnSearchBuildConditionPrefixRK(so,
+										 data,
+										 targetColumn,
+										 GRN_TEXT_VALUE(&(buffers->general)),
+										 GRN_TEXT_LEN(&(buffers->general)));
+		break;
 	case PGrnQueryContainStrategyNumber:
 	{
 		grn_obj *queries = &(buffers->general);

  Modified: src/pgroonga.h (+4 -4)
===================================================================
--- src/pgroonga.h    2016-04-08 01:16:50 +0900 (1a3d458)
+++ src/pgroonga.h    2016-04-08 23:17:38 +0900 (b29bd62)
@@ -27,9 +27,9 @@
 #define PGrnMatchStrategyV2Number		12	/* operator &@	(@ in Groonga) */
 #define PGrnQueryStrategyV2Number		13	/* operator &?  (query in Groonga) */
 #define PGrnSimilarStrategyV2Number		14	/* operator &~? (similar search) */
-#define PGrnPrefixStrategyV2Number		15	/* operator &^  (prefix search) */
-#define PGrnPrefixRKStrategyV2Number	16	/* operator &^~ (prefix RK search) */
-#define PGrnScriptStrategyV2Number		17	/* operator &`  (script in Groonga) */
+#define PGrnScriptStrategyV2Number		15	/* operator &`  (script in Groonga) */
+#define PGrnPrefixStrategyV2Number		16	/* operator &^  (prefix search) */
+#define PGrnPrefixRKStrategyV2Number	17	/* operator &^~ (prefix RK search) */
 #define PGrnMatchContainStrategyNumber	18	/* operator &@> (@ in Groonga) */
 #define PGrnQueryContainStrategyNumber	19	/* operator &?> (query in Groonga) */
 
@@ -72,9 +72,9 @@ extern Datum PGDLLEXPORT pgroonga_match_jsonb(PG_FUNCTION_ARGS);
 extern Datum PGDLLEXPORT pgroonga_match_text(PG_FUNCTION_ARGS);
 extern Datum PGDLLEXPORT pgroonga_query_text(PG_FUNCTION_ARGS);
 extern Datum PGDLLEXPORT pgroonga_similar_text(PG_FUNCTION_ARGS);
+extern Datum PGDLLEXPORT pgroonga_script_text(PG_FUNCTION_ARGS);
 extern Datum PGDLLEXPORT pgroonga_prefix_text(PG_FUNCTION_ARGS);
 extern Datum PGDLLEXPORT pgroonga_prefix_rk_text(PG_FUNCTION_ARGS);
-extern Datum PGDLLEXPORT pgroonga_script_text(PG_FUNCTION_ARGS);
 extern Datum PGDLLEXPORT pgroonga_match_contain_text(PG_FUNCTION_ARGS);
 extern Datum PGDLLEXPORT pgroonga_query_contain_text(PG_FUNCTION_ARGS);
 
-------------- next part --------------
HTML����������������������������...
Télécharger 



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