From ab1ac0e4b1f9948faf56dd09d570d17cc2fd8275 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Fri, 5 Sep 2025 23:21:53 +0200 Subject: [PATCH] Change some Datum to void * for opaque pass-through pointer --- src/backend/tsearch/to_tsany.c | 12 ++++++------ src/backend/utils/adt/tsquery.c | 8 ++++---- src/include/tsearch/ts_utils.h | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/backend/tsearch/to_tsany.c b/src/backend/tsearch/to_tsany.c index 4dfcc2cd3bd..678095cb29f 100644 --- a/src/backend/tsearch/to_tsany.c +++ b/src/backend/tsearch/to_tsany.c @@ -489,7 +489,7 @@ add_to_tsvector(void *_state, char *elem_value, int elem_len) * and different variants are ORed together. */ static void -pushval_morph(Datum opaque, TSQueryParserState state, char *strval, int lenval, int16 weight, bool prefix) +pushval_morph(void *opaque, TSQueryParserState state, char *strval, int lenval, int16 weight, bool prefix) { int32 count = 0; ParsedText prs; @@ -498,7 +498,7 @@ pushval_morph(Datum opaque, TSQueryParserState state, char *strval, int lenval, cntvar = 0, cntpos = 0, cnt = 0; - MorphOpaque *data = (MorphOpaque *) DatumGetPointer(opaque); + MorphOpaque *data = opaque; prs.lenwords = 4; prs.curwords = 0; @@ -594,7 +594,7 @@ to_tsquery_byid(PG_FUNCTION_ARGS) query = parse_tsquery(text_to_cstring(in), pushval_morph, - PointerGetDatum(&data), + &data, 0, NULL); @@ -631,7 +631,7 @@ plainto_tsquery_byid(PG_FUNCTION_ARGS) query = parse_tsquery(text_to_cstring(in), pushval_morph, - PointerGetDatum(&data), + &data, P_TSQ_PLAIN, NULL); @@ -669,7 +669,7 @@ phraseto_tsquery_byid(PG_FUNCTION_ARGS) query = parse_tsquery(text_to_cstring(in), pushval_morph, - PointerGetDatum(&data), + &data, P_TSQ_PLAIN, NULL); @@ -707,7 +707,7 @@ websearch_to_tsquery_byid(PG_FUNCTION_ARGS) query = parse_tsquery(text_to_cstring(in), pushval_morph, - PointerGetDatum(&data), + &data, P_TSQ_WEB, NULL); diff --git a/src/backend/utils/adt/tsquery.c b/src/backend/utils/adt/tsquery.c index 717de8073d5..6a021c61afb 100644 --- a/src/backend/utils/adt/tsquery.c +++ b/src/backend/utils/adt/tsquery.c @@ -671,7 +671,7 @@ cleanOpStack(TSQueryParserState state, static void makepol(TSQueryParserState state, PushFunction pushval, - Datum opaque) + void *opaque) { int8 operator = 0; ts_tokentype type; @@ -816,7 +816,7 @@ findoprnd(QueryItem *ptr, int size, bool *needcleanup) TSQuery parse_tsquery(char *buf, PushFunction pushval, - Datum opaque, + void *opaque, int flags, Node *escontext) { @@ -939,7 +939,7 @@ parse_tsquery(char *buf, } static void -pushval_asis(Datum opaque, TSQueryParserState state, char *strval, int lenval, +pushval_asis(void *opaque, TSQueryParserState state, char *strval, int lenval, int16 weight, bool prefix) { pushValue(state, strval, lenval, weight, prefix); @@ -956,7 +956,7 @@ tsqueryin(PG_FUNCTION_ARGS) PG_RETURN_TSQUERY(parse_tsquery(in, pushval_asis, - PointerGetDatum(NULL), + NULL, 0, escontext)); } diff --git a/src/include/tsearch/ts_utils.h b/src/include/tsearch/ts_utils.h index 7debc85ed80..78175929088 100644 --- a/src/include/tsearch/ts_utils.h +++ b/src/include/tsearch/ts_utils.h @@ -54,7 +54,7 @@ extern void close_tsvector_parser(TSVectorParseState state); struct TSQueryParserStateData; /* private in backend/utils/adt/tsquery.c */ typedef struct TSQueryParserStateData *TSQueryParserState; -typedef void (*PushFunction) (Datum opaque, TSQueryParserState state, +typedef void (*PushFunction) (void *opaque, TSQueryParserState state, char *token, int tokenlen, int16 tokenweights, /* bitmap as described in * QueryOperand struct */ @@ -66,7 +66,7 @@ typedef void (*PushFunction) (Datum opaque, TSQueryParserState state, extern TSQuery parse_tsquery(char *buf, PushFunction pushval, - Datum opaque, + void *opaque, int flags, Node *escontext); -- 2.52.0