0001-Change-some-Datum-to-void-for-opaque-pass-through-po.patch

text/plain

Filename: 0001-Change-some-Datum-to-void-for-opaque-pass-through-po.patch
Type: text/plain
Part: 0
Message: Change some Datum to void * for opaque pass-through pointer
From ab1ac0e4b1f9948faf56dd09d570d17cc2fd8275 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
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