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