diff options
Diffstat (limited to 'src/backend/tsearch/wparser.c')
-rw-r--r-- | src/backend/tsearch/wparser.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/backend/tsearch/wparser.c b/src/backend/tsearch/wparser.c index c19937d644a..9739558e424 100644 --- a/src/backend/tsearch/wparser.c +++ b/src/backend/tsearch/wparser.c @@ -303,6 +303,7 @@ ts_parse_byname(PG_FUNCTION_ARGS) Datum ts_headline_byid_opt(PG_FUNCTION_ARGS) { + Oid tsconfig = PG_GETARG_OID(0); text *in = PG_GETARG_TEXT_PP(1); TSQuery query = PG_GETARG_TSQUERY(2); text *opt = (PG_NARGS() > 3 && PG_GETARG_POINTER(3)) ? PG_GETARG_TEXT_PP(3) : NULL; @@ -312,7 +313,7 @@ ts_headline_byid_opt(PG_FUNCTION_ARGS) TSConfigCacheEntry *cfg; TSParserCacheEntry *prsobj; - cfg = lookup_ts_config_cache(PG_GETARG_OID(0)); + cfg = lookup_ts_config_cache(tsconfig); prsobj = lookup_ts_parser_cache(cfg->prsId); if (!OidIsValid(prsobj->headlineOid)) @@ -381,11 +382,12 @@ ts_headline_opt(PG_FUNCTION_ARGS) Datum ts_headline_jsonb_byid_opt(PG_FUNCTION_ARGS) { - Jsonb *out, *jb = PG_GETARG_JSONB(1); + Oid tsconfig = PG_GETARG_OID(0); + Jsonb *jb = PG_GETARG_JSONB(1); TSQuery query = PG_GETARG_TSQUERY(2); text *opt = (PG_NARGS() > 3 && PG_GETARG_POINTER(3)) ? PG_GETARG_TEXT_P(3) : NULL; + Jsonb *out; JsonTransformStringValuesAction action = (JsonTransformStringValuesAction) headline_json_value; - HeadlineParsedText prs; HeadlineJsonState *state = palloc0(sizeof(HeadlineJsonState)); @@ -394,7 +396,7 @@ ts_headline_jsonb_byid_opt(PG_FUNCTION_ARGS) prs.words = (HeadlineWordEntry *) palloc(sizeof(HeadlineWordEntry) * prs.lenwords); state->prs = &prs; - state->cfg = lookup_ts_config_cache(PG_GETARG_OID(0)); + state->cfg = lookup_ts_config_cache(tsconfig); state->prsobj = lookup_ts_parser_cache(state->cfg->prsId); state->query = query; if (opt) @@ -456,6 +458,7 @@ ts_headline_jsonb_opt(PG_FUNCTION_ARGS) Datum ts_headline_json_byid_opt(PG_FUNCTION_ARGS) { + Oid tsconfig = PG_GETARG_OID(0); text *json = PG_GETARG_TEXT_P(1); TSQuery query = PG_GETARG_TSQUERY(2); text *opt = (PG_NARGS() > 3 && PG_GETARG_POINTER(3)) ? PG_GETARG_TEXT_P(3) : NULL; @@ -470,7 +473,7 @@ ts_headline_json_byid_opt(PG_FUNCTION_ARGS) prs.words = (HeadlineWordEntry *) palloc(sizeof(HeadlineWordEntry) * prs.lenwords); state->prs = &prs; - state->cfg = lookup_ts_config_cache(PG_GETARG_OID(0)); + state->cfg = lookup_ts_config_cache(tsconfig); state->prsobj = lookup_ts_parser_cache(state->cfg->prsId); state->query = query; if (opt) |