[Groonga-commit] pgroonga/pgroonga at 3cf1e0d [master] Reduce an argument

Zurück zum Archiv-Index

Kouhei Sutou null+****@clear*****
Thu Jun 9 14:07:37 JST 2016


Kouhei Sutou	2016-06-09 14:07:37 +0900 (Thu, 09 Jun 2016)

  New Revision: 3cf1e0d3b221c6d49f1fc754357549da1c0cb57c
  https://github.com/pgroonga/pgroonga/commit/3cf1e0d3b221c6d49f1fc754357549da1c0cb57c

  Message:
    Reduce an argument

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

  Modified: src/pgrn_search.h (+1 -0)
===================================================================
--- src/pgrn_search.h    2016-06-07 00:00:08 +0900 (1854edb)
+++ src/pgrn_search.h    2016-06-09 14:07:37 +0900 (8a4fcc2)
@@ -6,6 +6,7 @@
 
 typedef struct PGrnSearchData
 {
+	grn_obj *sourcesTable;
 	grn_obj targetColumns;
 	grn_obj matchTargets;
 	grn_obj sectionID;

  Modified: src/pgroonga.c (+25 -27)
===================================================================
--- src/pgroonga.c    2016-06-07 00:00:08 +0900 (908fb5d)
+++ src/pgroonga.c    2016-06-09 14:07:37 +0900 (66793b1)
@@ -2430,8 +2430,7 @@ PGrnSearchBuildConditionLikeRegexp(PGrnSearchData *data,
 }
 
 static void
-PGrnSearchBuildConditionQuery(PGrnScanOpaque so,
-							  PGrnSearchData *data,
+PGrnSearchBuildConditionQuery(PGrnSearchData *data,
 							  grn_obj *targetColumn,
 							  const char *query,
 							  unsigned int querySize)
@@ -2440,7 +2439,7 @@ PGrnSearchBuildConditionQuery(PGrnScanOpaque so,
 	grn_obj *matchTarget, *matchTargetVariable;
 	grn_expr_flags flags = GRN_EXPR_SYNTAX_QUERY | GRN_EXPR_ALLOW_LEADING_NOT;
 
-	GRN_EXPR_CREATE_FOR_QUERY(ctx, so->sourcesTable,
+	GRN_EXPR_CREATE_FOR_QUERY(ctx, data->sourcesTable,
 							  matchTarget, matchTargetVariable);
 	GRN_PTR_PUT(ctx, &(data->matchTargets), matchTarget);
 	grn_expr_append_obj(ctx, matchTarget, targetColumn, GRN_OP_PUSH, 1);
@@ -2459,8 +2458,7 @@ PGrnSearchBuildConditionQuery(PGrnScanOpaque so,
 }
 
 static void
-PGrnSearchBuildConditionPrefixRK(PGrnScanOpaque so,
-								 PGrnSearchData *data,
+PGrnSearchBuildConditionPrefixRK(PGrnSearchData *data,
 								 grn_obj *targetColumn,
 								 const char *prefix,
 								 unsigned int prefixSize)
@@ -2488,8 +2486,7 @@ PGrnSearchBuildConditionPrefixRK(PGrnScanOpaque so,
 }
 
 static void
-PGrnSearchBuildConditionScript(PGrnScanOpaque so,
-							   PGrnSearchData *data,
+PGrnSearchBuildConditionScript(PGrnSearchData *data,
 							   grn_obj *targetColumn,
 							   const char *script,
 							   unsigned int scriptSize)
@@ -2498,7 +2495,7 @@ PGrnSearchBuildConditionScript(PGrnScanOpaque so,
 	grn_obj *matchTarget, *matchTargetVariable;
 	grn_expr_flags flags = GRN_EXPR_SYNTAX_SCRIPT;
 
-	GRN_EXPR_CREATE_FOR_QUERY(ctx, so->sourcesTable,
+	GRN_EXPR_CREATE_FOR_QUERY(ctx, data->sourcesTable,
 							  matchTarget, matchTargetVariable);
 	GRN_PTR_PUT(ctx, &(data->matchTargets), matchTarget);
 	grn_expr_append_obj(ctx, matchTarget, targetColumn, GRN_OP_PUSH, 1);
@@ -2532,7 +2529,6 @@ PGrnSearchBuildConditionBinaryOperation(PGrnSearchData *data,
 
 static bool
 PGrnSearchBuildCondition(IndexScanDesc scan,
-						 PGrnScanOpaque so,
 						 PGrnSearchData *data,
 						 int i)
 {
@@ -2553,7 +2549,7 @@ PGrnSearchBuildCondition(IndexScanDesc scan,
 	attribute = desc->attrs[key->sk_attno - 1];
 
 	targetColumnName = attribute->attname.data;
-	targetColumn = PGrnLookupColumn(so->sourcesTable, targetColumnName, ERROR);
+	targetColumn = PGrnLookupColumn(data->sourcesTable, targetColumnName, ERROR);
 	GRN_PTR_PUT(ctx, &(data->targetColumns), targetColumn);
 
 	if (PGrnAttributeIsJSONB(attribute->atttypid))
@@ -2650,23 +2646,20 @@ PGrnSearchBuildCondition(IndexScanDesc scan,
 		break;
 	case PGrnQueryStrategyNumber:
 	case PGrnQueryStrategyV2Number:
-		PGrnSearchBuildConditionQuery(so,
-									  data,
+		PGrnSearchBuildConditionQuery(data,
 									  targetColumn,
 									  GRN_TEXT_VALUE(&(buffers->general)),
 									  GRN_TEXT_LEN(&(buffers->general)));
 		break;
 	case PGrnScriptStrategyV2Number:
-		PGrnSearchBuildConditionScript(so,
-									   data,
+		PGrnSearchBuildConditionScript(data,
 									   targetColumn,
 									   GRN_TEXT_VALUE(&(buffers->general)),
 									   GRN_TEXT_LEN(&(buffers->general)));
 		break;
 	case PGrnPrefixRKStrategyV2Number:
 	case PGrnPrefixRKContainStrategyV2Number:
-		PGrnSearchBuildConditionPrefixRK(so,
-										 data,
+		PGrnSearchBuildConditionPrefixRK(data,
 										 targetColumn,
 										 GRN_TEXT_VALUE(&(buffers->general)),
 										 GRN_TEXT_LEN(&(buffers->general)));
@@ -2684,8 +2677,7 @@ PGrnSearchBuildCondition(IndexScanDesc scan,
 
 			querySize = grn_vector_get_element(ctx, queries, i,
 												&query, NULL, NULL);
-			PGrnSearchBuildConditionQuery(so,
-										  data,
+			PGrnSearchBuildConditionQuery(data,
 										  targetColumn,
 										  query,
 										  querySize);
@@ -2740,7 +2732,7 @@ PGrnSearchBuildConditions(IndexScanDesc scan,
 
 	for (i = 0; i < scan->numberOfKeys; i++)
 	{
-		if (!PGrnSearchBuildCondition(scan, so, data, i))
+		if (!PGrnSearchBuildCondition(scan, data, i))
 			continue;
 
 		if (data->isEmptyCondition)
@@ -2753,6 +2745,19 @@ PGrnSearchBuildConditions(IndexScanDesc scan,
 }
 
 static void
+PGrnSearchDataInit(PGrnSearchData *data, grn_obj *sourcesTable)
+{
+	data->sourcesTable = sourcesTable;
+	GRN_PTR_INIT(&(data->matchTargets), GRN_OBJ_VECTOR, GRN_ID_NIL);
+	GRN_PTR_INIT(&(data->targetColumns), GRN_OBJ_VECTOR, GRN_ID_NIL);
+	GRN_UINT32_INIT(&(data->sectionID), 0);
+
+	GRN_EXPR_CREATE_FOR_QUERY(ctx, sourcesTable,
+							  data->expression, data->expressionVariable);
+	data->isEmptyCondition = false;
+}
+
+static void
 PGrnSearchDataFree(PGrnSearchData *data)
 {
 	unsigned int i;
@@ -2789,14 +2794,7 @@ PGrnSearch(IndexScanDesc scan)
 	if (scan->numberOfKeys == 0)
 		return;
 
-	GRN_PTR_INIT(&(data.matchTargets), GRN_OBJ_VECTOR, GRN_ID_NIL);
-	GRN_PTR_INIT(&(data.targetColumns), GRN_OBJ_VECTOR, GRN_ID_NIL);
-	GRN_UINT32_INIT(&(data.sectionID), 0);
-
-	GRN_EXPR_CREATE_FOR_QUERY(ctx, so->sourcesTable,
-							  data.expression, data.expressionVariable);
-	data.isEmptyCondition = false;
-
+	PGrnSearchDataInit(&data, so->sourcesTable);
 	PG_TRY();
 	{
 		PGrnSearchBuildConditions(scan, so, &data);
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Zurück zum Archiv-Index