pgpool-II-extensions: Remove obsoleted patch
authorDevrim Gunduz <devrim@gunduz.org>
Thu, 4 Dec 2025 11:57:33 +0000 (14:57 +0300)
committerDevrim Gunduz <devrim@gunduz.org>
Thu, 4 Dec 2025 11:57:33 +0000 (14:57 +0300)
rpm/redhat/main/non-common/pgpool-II-extensions/EL-10/pgpool-II-gcc-15-c23.patch [deleted symlink]
rpm/redhat/main/non-common/pgpool-II-extensions/EL-8/pgpool-II-gcc-15-c23.patch [deleted symlink]
rpm/redhat/main/non-common/pgpool-II-extensions/EL-9/pgpool-II-gcc-15-c23.patch [deleted symlink]
rpm/redhat/main/non-common/pgpool-II-extensions/F-42/pgpool-II-gcc-15-c23.patch [deleted symlink]
rpm/redhat/main/non-common/pgpool-II-extensions/F-43/pgpool-II-gcc-15-c23.patch [deleted symlink]
rpm/redhat/main/non-common/pgpool-II-extensions/SLES-15/pgpool-II-gcc-15-c23.patch [deleted symlink]
rpm/redhat/main/non-common/pgpool-II-extensions/SLES-16/pgpool-II-gcc-15-c23.patch [deleted symlink]
rpm/redhat/main/non-common/pgpool-II-extensions/main/pgpool-II-gcc-15-c23.patch [deleted file]

diff --git a/rpm/redhat/main/non-common/pgpool-II-extensions/EL-10/pgpool-II-gcc-15-c23.patch b/rpm/redhat/main/non-common/pgpool-II-extensions/EL-10/pgpool-II-gcc-15-c23.patch
deleted file mode 120000 (symlink)
index 1e2daa2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../main/pgpool-II-gcc-15-c23.patch
\ No newline at end of file
diff --git a/rpm/redhat/main/non-common/pgpool-II-extensions/EL-8/pgpool-II-gcc-15-c23.patch b/rpm/redhat/main/non-common/pgpool-II-extensions/EL-8/pgpool-II-gcc-15-c23.patch
deleted file mode 120000 (symlink)
index 1e2daa2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../main/pgpool-II-gcc-15-c23.patch
\ No newline at end of file
diff --git a/rpm/redhat/main/non-common/pgpool-II-extensions/EL-9/pgpool-II-gcc-15-c23.patch b/rpm/redhat/main/non-common/pgpool-II-extensions/EL-9/pgpool-II-gcc-15-c23.patch
deleted file mode 120000 (symlink)
index 1e2daa2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../main/pgpool-II-gcc-15-c23.patch
\ No newline at end of file
diff --git a/rpm/redhat/main/non-common/pgpool-II-extensions/F-42/pgpool-II-gcc-15-c23.patch b/rpm/redhat/main/non-common/pgpool-II-extensions/F-42/pgpool-II-gcc-15-c23.patch
deleted file mode 120000 (symlink)
index 1e2daa2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../main/pgpool-II-gcc-15-c23.patch
\ No newline at end of file
diff --git a/rpm/redhat/main/non-common/pgpool-II-extensions/F-43/pgpool-II-gcc-15-c23.patch b/rpm/redhat/main/non-common/pgpool-II-extensions/F-43/pgpool-II-gcc-15-c23.patch
deleted file mode 120000 (symlink)
index 1e2daa2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../main/pgpool-II-gcc-15-c23.patch
\ No newline at end of file
diff --git a/rpm/redhat/main/non-common/pgpool-II-extensions/SLES-15/pgpool-II-gcc-15-c23.patch b/rpm/redhat/main/non-common/pgpool-II-extensions/SLES-15/pgpool-II-gcc-15-c23.patch
deleted file mode 120000 (symlink)
index 1e2daa2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../main/pgpool-II-gcc-15-c23.patch
\ No newline at end of file
diff --git a/rpm/redhat/main/non-common/pgpool-II-extensions/SLES-16/pgpool-II-gcc-15-c23.patch b/rpm/redhat/main/non-common/pgpool-II-extensions/SLES-16/pgpool-II-gcc-15-c23.patch
deleted file mode 120000 (symlink)
index 1e2daa2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../main/pgpool-II-gcc-15-c23.patch
\ No newline at end of file
diff --git a/rpm/redhat/main/non-common/pgpool-II-extensions/main/pgpool-II-gcc-15-c23.patch b/rpm/redhat/main/non-common/pgpool-II-extensions/main/pgpool-II-gcc-15-c23.patch
deleted file mode 100644 (file)
index a5a1d10..0000000
+++ /dev/null
@@ -1,982 +0,0 @@
-From 1ae2fb5d374096ada124d00a6e58feab1a468567 Mon Sep 17 00:00:00 2001
-From: Tatsuo Ishii <ishii@postgresql.org>
-Date: Sun, 31 Aug 2025 15:49:15 +0900
-Subject: [PATCH v2] Allow to compile against gcc 15 (C23).
-
-This commit includes multiple fixes to compile Pgpool-II in Fedora 42,
-which uses gcc 15 (C23).
-
-- Modify pool_type.h. "bool" is now standard in C99 and
-  above. PostgreSQL decided to require C99 to compile it. So we follow
-  the way, which is just including <stdbool.h>.  Also we define
-  TRUE/FALSE to (bool) 1 and (bool) 0 respectively. They are used only
-  in Windows build in PostgreSQL but we still use them in some
-  places. Eventually we should replace it with true/false since we do
-  not support Windows.
-
-- It is now required that function pointer arguments matches the
-  function prototype to be called. For example:
-  static pid_t worker_fork_a_child(ProcessType type, void (*func) (), void *params);
-  should be:
-  static pid_t worker_fork_a_child(ProcessType type, void (*func) (void *), void *params);
-
-  Also the prototype of pool_create_relcache() is changed,
-
-- raw_expression_tree_walker() calls walker() in many places. Now
-  callers of walker() should cast the first argument of it using (Node
-  *). We replace the call:
-       return walker(((RangeVar *) node)->alias, context);
-       with:
-       return WALK(((RangeVar *) node)->alias, context);
-       where WALK is defined as:
-       #define WALK(n,c) walker((Node *) (n), c)
-
-- Note: we have lots of warnings regarding OpenSSL while compiling
-  Pgpool-II in Fedora42. The version used in Fedora42:
-
-  $ openssl -version
-  OpenSSL 3.2.4 11 Feb 2025 (Library: OpenSSL 3.2.4 11 Feb 2025)
-
-  The fix is not included in this commit. We need
-  to look into it in the future.
-
-Discussion: https://github.com/pgpool/pgpool2/issues/124
----
- src/include/main/health_check.h               |   4 +-
- src/include/pool.h                            |   2 +-
- src/include/pool_type.h                       |  42 ++--
- src/include/utils/pool_relcache.h             |  10 +-
- src/include/utils/pool_select_walker.h        |   7 +-
- src/main/health_check.c                       |  37 +--
- src/main/pgpool_main.c                        |   4 +-
- src/rewrite/pool_timestamp.c                  | 222 +++++++++---------
- src/streaming_replication/pool_worker_child.c |   2 +-
- .../010.rewrite_timestamp/timestamp/main.c    |   4 +-
- src/utils/pool_relcache.c                     |   4 +-
- 11 files changed, 173 insertions(+), 165 deletions(-)
-
-diff --git a/src/include/main/health_check.h b/src/include/main/health_check.h
-index ad26f2f0a..f7736a38b 100644
---- a/src/include/main/health_check.h
-+++ b/src/include/main/health_check.h
-@@ -3,7 +3,7 @@
-  * pgpool: a language independent connection pool server for PostgreSQL
-  * written by Tatsuo Ishii
-  *
-- * Copyright (c) 2003-2020    PgPool Global Development Group
-+ * Copyright (c) 2003-2025    PgPool Global Development Group
-  *
-  * Permission to use, copy, modify, and distribute this software and
-  * its documentation for any purpose and without fee is hereby
-@@ -43,7 +43,7 @@ typedef struct {
- extern volatile POOL_HEALTH_CHECK_STATISTICS  *health_check_stats;    /* health check stats area in shared memory */
--extern void do_health_check_child(int *node_id);
-+extern void do_health_check_child(void *params);
- extern size_t health_check_stats_shared_memory_size(void);
- extern void           health_check_stats_init(POOL_HEALTH_CHECK_STATISTICS *addr);
-diff --git a/src/include/pool.h b/src/include/pool.h
-index 95570c08e..576bb1d57 100644
---- a/src/include/pool.h
-+++ b/src/include/pool.h
-@@ -650,7 +650,7 @@ extern size_t strlcpy(char *dst, const char *src, size_t siz);
- #endif
- /* pool_worker_child.c */
--extern void do_worker_child(void);
-+extern void do_worker_child(void *params);
- extern int    get_query_result(POOL_CONNECTION_POOL_SLOT * *slots, int backend_id, char *query, POOL_SELECT_RESULT * *res);
- #endif                                                        /* POOL_H */
-diff --git a/src/include/pool_type.h b/src/include/pool_type.h
-index 43f29a595..a2d4948f2 100644
---- a/src/include/pool_type.h
-+++ b/src/include/pool_type.h
-@@ -31,32 +31,34 @@
- #include <sys/socket.h>
- #include <stddef.h>
- #include "libpq-fe.h"
--/* Define common boolean type. C++ and BEOS already has it so exclude them. */
--#ifdef c_plusplus
--#ifndef __cplusplus
--#define __cplusplus
--#endif                                                        /* __cplusplus */
--#endif                                                        /* c_plusplus */
--
--#ifndef __BEOS__
--#ifndef __cplusplus
--#ifndef bool
--typedef char bool;
--#endif
--#ifndef true
--#define true ((bool) 1)
--#endif
-+
-+/* ----------------------------------------------------------------
-+ *                            Section 2:      bool, true, false
-+ * ----------------------------------------------------------------
-+ */
-+
-+/*
-+ * bool
-+ *            Boolean value, either true or false.
-+ *
-+ * PostgreSQL currently cannot deal with bool of size other than 1; there are
-+ * static assertions around the code to prevent that.
-+ */
-+
-+#include <stdbool.h>
-+
-+/*
-+ * Pgpool-II still uses TRUE/FALSE, that are only used Windows build in
-+ * PostgreSQL.  In the feature, we should replace TRUE/FALSE with true/false,
-+ * but until that day...
-+ */
-+
- #ifndef TRUE
- #define TRUE ((bool) 1)
- #endif
--#ifndef false
--#define false ((bool) 0)
--#endif
- #ifndef FALSE
- #define FALSE ((bool) 0)
- #endif
--#endif                                                        /* not C++ */
--#endif                                                        /* __BEOS__ */
- /* ----------------------------------------------------------------
-  *              Section 5:  offsetof, lengthof, endof, alignment
-diff --git a/src/include/utils/pool_relcache.h b/src/include/utils/pool_relcache.h
-index 70b7d3143..bffdc8777 100644
---- a/src/include/utils/pool_relcache.h
-+++ b/src/include/utils/pool_relcache.h
-@@ -6,7 +6,7 @@
-  * pgpool: a language independent connection pool server for PostgreSQL
-  * written by Tatsuo Ishii
-  *
-- * Copyright (c) 2003-2010    PgPool Global Development Group
-+ * Copyright (c) 2003-2025    PgPool Global Development Group
-  *
-  * Permission to use, copy, modify, and distribute this software and
-  * its documentation for any purpose and without fee is hereby
-@@ -34,8 +34,6 @@
- /* Relation lookup cache structure */
--typedef void *(*func_ptr) ();
--
- typedef struct
- {
-       char            dbname[MAX_ITEM_LENGTH];        /* database name */
-@@ -57,13 +55,13 @@ typedef struct
-        * POOL_SELECT_RESULT *. This function must return a pointer to be saved
-        * in cache->data.
-        */
--      func_ptr        register_func;
-+      void       *(*register_func) (POOL_SELECT_RESULT *data);
-       /*
-        * User defined function to be called at data unregister. Argument
-        * cache->data.
-        */
--      func_ptr        unregister_func;
-+      void       *(*unregister_func) (void *data);
-       bool            cache_is_session_local; /* True if cache life time is session
-                                                                                * local */
-       bool            no_cache_if_zero;       /* if register func returns 0, do not
-@@ -72,7 +70,7 @@ typedef struct
- }                     POOL_RELCACHE;
- extern POOL_RELCACHE * pool_create_relcache(int cachesize, char *sql,
--                                                                                      func_ptr register_func, func_ptr unregister_func,
-+                                                                                 void *(*register_func) (POOL_SELECT_RESULT *), void *(*unregister_func) (void *),
-                                                                                       bool issessionlocal);
- extern void pool_discard_relcache(POOL_RELCACHE * relcache);
- extern void *pool_search_relcache(POOL_RELCACHE * relcache, POOL_CONNECTION_POOL * backend, char *table);
-diff --git a/src/include/utils/pool_select_walker.h b/src/include/utils/pool_select_walker.h
-index 0ae7ffe7c..3f5c6e7d9 100644
---- a/src/include/utils/pool_select_walker.h
-+++ b/src/include/utils/pool_select_walker.h
-@@ -6,7 +6,7 @@
-  * pgpool: a language independent connection pool server for PostgreSQL
-  * written by Tatsuo Ishii
-  *
-- * Copyright (c) 2003-2024    PgPool Global Development Group
-+ * Copyright (c) 2003-2025    PgPool Global Development Group
-  *
-  * Permission to use, copy, modify, and distribute this software and
-  * its documentation for any purpose and without fee is hereby
-@@ -54,6 +54,9 @@ typedef struct
-       char            table_names[POOL_MAX_SELECT_OIDS][NAMEDATALEN]; /* table names */
- }                     SelectContext;
-+
-+typedef bool (*tree_walker_callback) (Node *node, void *context);
-+
- extern int    pool_get_terminate_backend_pid(Node *node);
- extern bool pool_has_function_call(Node *node);
- extern bool pool_has_non_immutable_function_call(Node *node);
-@@ -66,7 +69,7 @@ extern bool pool_has_row_security(Node *node);
- extern bool pool_has_insertinto_or_locking_clause(Node *node);
- extern bool pool_has_pgpool_regclass(void);
- extern bool pool_has_to_regclass(void);
--extern bool raw_expression_tree_walker(Node *node, bool (*walker) (), void *context);
-+extern bool raw_expression_tree_walker(Node *node, tree_walker_callback walker, void *context);
- extern int    pool_table_name_to_oid(char *table_name);
- extern int    pool_extract_table_oids_from_select_stmt(Node *node, SelectContext * ctx);
- extern RangeVar *makeRangeVarFromNameList(List *names);
-diff --git a/src/main/health_check.c b/src/main/health_check.c
-index ae831dd6d..514fe2900 100644
---- a/src/main/health_check.c
-+++ b/src/main/health_check.c
-@@ -108,7 +108,7 @@ static bool check_backend_down_request(int node, bool done_requests);
- * health check child main loop
- */
- void
--do_health_check_child(int *node_id)
-+do_health_check_child(void *params)
- {
-       sigjmp_buf      local_sigjmp_buf;
-       MemoryContext HealthCheckMemoryContext;
-@@ -116,19 +116,22 @@ do_health_check_child(int *node_id)
-       static struct timeval   start_time;
-       static struct timeval   end_time;
-       long    diff_t;
-+      int                     node_id;
-       POOL_HEALTH_CHECK_STATISTICS    mystat;
--      stats = &health_check_stats[*node_id];
-+
-+      node_id = *((int *) params);
-+      stats = &health_check_stats[node_id];
-       /* Set application name */
--      set_application_name_with_suffix(PT_HEALTH_CHECK, *node_id);
-+      set_application_name_with_suffix(PT_HEALTH_CHECK, node_id);
-       ereport(DEBUG1,
--                      (errmsg("I am health check process pid:%d DB node id:%d", getpid(), *node_id)));
-+                      (errmsg("I am health check process pid:%d DB node id:%d", getpid(), node_id)));
-       /* Identify myself via ps */
-       init_ps_display("", "", "", "");
--      snprintf(psbuffer, sizeof(psbuffer), "health check process(%d)", *node_id);
-+      snprintf(psbuffer, sizeof(psbuffer), "health check process(%d)", node_id);
-       set_ps_display(psbuffer, false);
-       /* set up signal handlers */
-@@ -190,7 +193,7 @@ do_health_check_child(int *node_id)
-               CHECK_REQUEST;
--              if (pool_config->health_check_params[*node_id].health_check_period <= 0)
-+              if (pool_config->health_check_params[node_id].health_check_period <= 0)
-               {
-                       stats->min_health_check_duration = 0;
-                       sleep(30);
-@@ -200,27 +203,27 @@ do_health_check_child(int *node_id)
-                * If health checking is enabled and the node is not in down status,
-                * do health check.
-                */
--              else if (pool_config->health_check_params[*node_id].health_check_period > 0)
-+              else if (pool_config->health_check_params[node_id].health_check_period > 0)
-               {
-                       bool            result;
--                      BackendInfo *bkinfo = pool_get_node_info(*node_id);
-+                      BackendInfo *bkinfo = pool_get_node_info(node_id);
-                       stats->total_count++;
-                       gettimeofday(&start_time, NULL);
-                       stats->last_health_check = time(NULL);
--                      result = establish_persistent_connection(*node_id);
-+                      result = establish_persistent_connection(node_id);
-                       if (result && slot == NULL)
-                       {
-                               stats->last_failed_health_check = time(NULL);
--                              if (POOL_DISALLOW_TO_FAILOVER(BACKEND_INFO(*node_id).flag))
-+                              if (POOL_DISALLOW_TO_FAILOVER(BACKEND_INFO(node_id).flag))
-                               {
-                                       ereport(LOG,
-                                                       (errmsg("health check failed on node %d but failover is disallowed for the node",
--                                                                      *node_id)));
-+                                                                      node_id)));
-                               }
-                               else
-                               {
-@@ -229,19 +232,19 @@ do_health_check_child(int *node_id)
-                                       stats->fail_count++;
-                                       ereport(LOG, (errmsg("health check failed on node %d (timeout:%d)",
--                                                                               *node_id, health_check_timer_expired)));
-+                                                                               node_id, health_check_timer_expired)));
-                                       if (bkinfo->backend_status == CON_DOWN && bkinfo->quarantine == true)
-                                       {
-                                               ereport(LOG, (errmsg("health check failed on quarantine node %d (timeout:%d)",
--                                                                                       *node_id, health_check_timer_expired),
-+                                                                                       node_id, health_check_timer_expired),
-                                                                         errdetail("ignoring..")));
-                                       }
-                                       else
-                                       {
-                                               /* trigger failover */
-                                               partial = health_check_timer_expired ? false : true;
--                                              degenerate_backend_set(node_id, 1, partial ? REQ_DETAIL_SWITCHOVER : 0);
-+                                              degenerate_backend_set(&node_id, 1, partial ? REQ_DETAIL_SWITCHOVER : 0);
-                                       }
-                               }
-                       }
-@@ -253,7 +256,7 @@ do_health_check_child(int *node_id)
-                               /* The node has become reachable again. Reset
-                                * the quarantine state
-                                */
--                              send_failback_request(*node_id, false, REQ_DETAIL_UPDATE | REQ_DETAIL_WATCHDOG);
-+                              send_failback_request(node_id, false, REQ_DETAIL_UPDATE | REQ_DETAIL_WATCHDOG);
-                       }
-                       else if (result && slot)
-                       {
-@@ -270,7 +273,7 @@ do_health_check_child(int *node_id)
-                       }
-                       /* Discard persistent connections */
--                      discard_persistent_connection(*node_id);
-+                      discard_persistent_connection(node_id);
-                       /*
-                        Update health check duration only if health check was not skipped
-@@ -298,7 +301,7 @@ do_health_check_child(int *node_id)
-                       memcpy(&mystat, (void *)stats, sizeof(mystat));
--                      sleep(pool_config->health_check_params[*node_id].health_check_period);
-+                      sleep(pool_config->health_check_params[node_id].health_check_period);
-               }
-       }
-       exit(0);
-diff --git a/src/main/pgpool_main.c b/src/main/pgpool_main.c
-index d74cf12b2..12a906809 100644
---- a/src/main/pgpool_main.c
-+++ b/src/main/pgpool_main.c
-@@ -151,7 +151,7 @@ static void signal_user1_to_parent_with_reason(User1SignalReason reason);
- static void FileUnlink(int code, Datum path);
- static pid_t pcp_fork_a_child(int *fds, char *pcp_conf_file);
- static pid_t fork_a_child(int *fds, int id);
--static pid_t worker_fork_a_child(ProcessType type, void (*func) (), void *params);
-+static pid_t worker_fork_a_child(ProcessType type, void (*func) (void *), void *params);
- static int    create_unix_domain_socket(struct sockaddr_un un_addr_tmp, const char *group, const int permissions);
- static int *create_unix_domain_sockets_by_list(struct sockaddr_un *un_addrs, char *group, int permissions, int n_sockets);
- static int *create_inet_domain_sockets(const char *hostname, const int port);
-@@ -876,7 +876,7 @@ fork_a_child(int *fds, int id)
- * fork worker child process
- */
- static pid_t
--worker_fork_a_child(ProcessType type, void (*func) (), void *params)
-+worker_fork_a_child(ProcessType type, void (*func) (void *), void *params)
- {
-       pid_t           pid;
-diff --git a/src/rewrite/pool_timestamp.c b/src/rewrite/pool_timestamp.c
-index 4dca05e9f..c10259675 100644
---- a/src/rewrite/pool_timestamp.c
-+++ b/src/rewrite/pool_timestamp.c
-@@ -5,7 +5,7 @@
-  * pgpool: a language independent connection pool server for PostgreSQL
-  * written by Tatsuo Ishii
-  *
-- * Copyright (c) 2003-2023    PgPool Global Development Group
-+ * Copyright (c) 2003-2025    PgPool Global Development Group
-  *
-  * Permission to use, copy, modify, and distribute this software and
-  * its documentation for any purpose and without fee is hereby
-@@ -74,7 +74,6 @@ static char *get_current_timestamp(POOL_CONNECTION_POOL * backend);
- static Node *makeTsExpr(TSRewriteContext * ctx);
- static TypeCast *makeTypeCastFromSvfOp(SQLValueFunctionOp op);
- static A_Const *makeStringConstFromQuery(POOL_CONNECTION_POOL * backend, char *expression);
--bool          raw_expression_tree_walker(Node *node, bool (*walker) (), void *context);
- POOL_RELCACHE *ts_relcache;
-@@ -1360,9 +1359,10 @@ makeTypeCastFromSvfOp(SQLValueFunctionOp op)
-  */
- bool
- raw_expression_tree_walker(Node *node,
--                                                 bool (*walker) (),
-+                                                 tree_walker_callback walker,
-                                                  void *context)
- {
-+#define WALK(n,c) walker((Node *) (n), c)
-       ListCell   *temp;
-       /*
-@@ -1395,17 +1395,17 @@ raw_expression_tree_walker(Node *node,
-                       /* we assume the colnames list isn't interesting */
-                       break;
-               case T_RangeVar:
--                      return walker(((RangeVar *) node)->alias, context);
-+                      return WALK(((RangeVar *) node)->alias, context);
-               case T_GroupingFunc:
--                      return walker(((GroupingFunc *) node)->args, context);
-+                      return WALK(((GroupingFunc *) node)->args, context);
-               case T_SubLink:
-                       {
-                               SubLink    *sublink = (SubLink *) node;
--                              if (walker(sublink->testexpr, context))
-+                              if (WALK(sublink->testexpr, context))
-                                       return true;
-                               /* we assume the operName is not interesting */
--                              if (walker(sublink->subselect, context))
-+                              if (WALK(sublink->subselect, context))
-                                       return true;
-                       }
-                       break;
-@@ -1413,7 +1413,7 @@ raw_expression_tree_walker(Node *node,
-                       {
-                               CaseExpr   *caseexpr = (CaseExpr *) node;
--                              if (walker(caseexpr->arg, context))
-+                              if (WALK(caseexpr->arg, context))
-                                       return true;
-                               /* we assume walker doesn't care about CaseWhens, either */
-                               foreach(temp, caseexpr->args)
-@@ -1421,48 +1421,48 @@ raw_expression_tree_walker(Node *node,
-                                       CaseWhen   *when = (CaseWhen *) lfirst(temp);
-                                       Assert(IsA(when, CaseWhen));
--                                      if (walker(when->expr, context))
-+                                      if (WALK(when->expr, context))
-                                               return true;
--                                      if (walker(when->result, context))
-+                                      if (WALK(when->result, context))
-                                               return true;
-                               }
--                              if (walker(caseexpr->defresult, context))
-+                              if (WALK(caseexpr->defresult, context))
-                                       return true;
-                       }
-                       break;
-               case T_RowExpr:
-                       /* Assume colnames isn't interesting */
--                      return walker(((RowExpr *) node)->args, context);
-+                      return WALK(((RowExpr *) node)->args, context);
-               case T_CoalesceExpr:
--                      return walker(((CoalesceExpr *) node)->args, context);
-+                      return WALK(((CoalesceExpr *) node)->args, context);
-               case T_MinMaxExpr:
--                      return walker(((MinMaxExpr *) node)->args, context);
-+                      return WALK(((MinMaxExpr *) node)->args, context);
-               case T_XmlExpr:
-                       {
-                               XmlExpr    *xexpr = (XmlExpr *) node;
--                              if (walker(xexpr->named_args, context))
-+                              if (WALK(xexpr->named_args, context))
-                                       return true;
-                               /* we assume walker doesn't care about arg_names */
--                              if (walker(xexpr->args, context))
-+                              if (WALK(xexpr->args, context))
-                                       return true;
-                       }
-                       break;
-               case T_NullTest:
--                      return walker(((NullTest *) node)->arg, context);
-+                      return WALK(((NullTest *) node)->arg, context);
-               case T_BooleanTest:
--                      return walker(((BooleanTest *) node)->arg, context);
-+                      return WALK(((BooleanTest *) node)->arg, context);
-               case T_JoinExpr:
-                       {
-                               JoinExpr   *join = (JoinExpr *) node;
--                              if (walker(join->larg, context))
-+                              if (WALK(join->larg, context))
-                                       return true;
--                              if (walker(join->rarg, context))
-+                              if (WALK(join->rarg, context))
-                                       return true;
--                              if (walker(join->quals, context))
-+                              if (WALK(join->quals, context))
-                                       return true;
--                              if (walker(join->alias, context))
-+                              if (WALK(join->alias, context))
-                                       return true;
-                               /* using list is deemed uninteresting */
-                       }
-@@ -1471,18 +1471,18 @@ raw_expression_tree_walker(Node *node,
-                       {
-                               IntoClause *into = (IntoClause *) node;
--                              if (walker(into->rel, context))
-+                              if (WALK(into->rel, context))
-                                       return true;
-                               /* colNames, options are deemed uninteresting */
-                               /* viewQuery should be null in raw parsetree, but check it */
--                              if (walker(into->viewQuery, context))
-+                              if (WALK(into->viewQuery, context))
-                                       return true;
-                       }
-                       break;
-               case T_List:
-                       foreach(temp, (List *) node)
-                       {
--                              if (walker((Node *) lfirst(temp), context))
-+                              if (WALK((Node *) lfirst(temp), context))
-                                       return true;
-                       }
-                       break;
-@@ -1490,11 +1490,11 @@ raw_expression_tree_walker(Node *node,
-                       {
-                               MergeWhenClause *mergeWhenClause = (MergeWhenClause *) node;
--                              if (walker(mergeWhenClause->condition, context))
-+                              if (WALK(mergeWhenClause->condition, context))
-                                       return true;
--                              if (walker(mergeWhenClause->targetList, context))
-+                              if (WALK(mergeWhenClause->targetList, context))
-                                       return true;
--                              if (walker(mergeWhenClause->values, context))
-+                              if (WALK(mergeWhenClause->values, context))
-                                       return true;
-                       }
-                       break;
-@@ -1502,9 +1502,9 @@ raw_expression_tree_walker(Node *node,
-                       {
-                               MergeAction *action = (MergeAction *) node;
--                              if (walker(action->targetList, context))
-+                              if (WALK(action->targetList, context))
-                                       return true;
--                              if (walker(action->qual, context))
-+                              if (WALK(action->qual, context))
-                                       return true;
-                       }
-                       break;
-@@ -1512,17 +1512,17 @@ raw_expression_tree_walker(Node *node,
-                       {
-                               InsertStmt *stmt = (InsertStmt *) node;
--                              if (walker(stmt->relation, context))
-+                              if (WALK(stmt->relation, context))
-                                       return true;
--                              if (walker(stmt->cols, context))
-+                              if (WALK(stmt->cols, context))
-                                       return true;
--                              if (walker(stmt->selectStmt, context))
-+                              if (WALK(stmt->selectStmt, context))
-                                       return true;
--                              if (walker(stmt->onConflictClause, context))
-+                              if (WALK(stmt->onConflictClause, context))
-                                       return true;
--                              if (walker(stmt->returningList, context))
-+                              if (WALK(stmt->returningList, context))
-                                       return true;
--                              if (walker(stmt->withClause, context))
-+                              if (WALK(stmt->withClause, context))
-                                       return true;
-                       }
-                       break;
-@@ -1530,15 +1530,15 @@ raw_expression_tree_walker(Node *node,
-                       {
-                               DeleteStmt *stmt = (DeleteStmt *) node;
--                              if (walker(stmt->relation, context))
-+                              if (WALK(stmt->relation, context))
-                                       return true;
--                              if (walker(stmt->usingClause, context))
-+                              if (WALK(stmt->usingClause, context))
-                                       return true;
--                              if (walker(stmt->whereClause, context))
-+                              if (WALK(stmt->whereClause, context))
-                                       return true;
--                              if (walker(stmt->returningList, context))
-+                              if (WALK(stmt->returningList, context))
-                                       return true;
--                              if (walker(stmt->withClause, context))
-+                              if (WALK(stmt->withClause, context))
-                                       return true;
-                       }
-                       break;
-@@ -1546,17 +1546,17 @@ raw_expression_tree_walker(Node *node,
-                       {
-                               UpdateStmt *stmt = (UpdateStmt *) node;
--                              if (walker(stmt->relation, context))
-+                              if (WALK(stmt->relation, context))
-                                       return true;
--                              if (walker(stmt->targetList, context))
-+                              if (WALK(stmt->targetList, context))
-                                       return true;
--                              if (walker(stmt->whereClause, context))
-+                              if (WALK(stmt->whereClause, context))
-                                       return true;
--                              if (walker(stmt->fromClause, context))
-+                              if (WALK(stmt->fromClause, context))
-                                       return true;
--                              if (walker(stmt->returningList, context))
-+                              if (WALK(stmt->returningList, context))
-                                       return true;
--                              if (walker(stmt->withClause, context))
-+                              if (WALK(stmt->withClause, context))
-                                       return true;
-                       }
-                       break;
-@@ -1564,37 +1564,37 @@ raw_expression_tree_walker(Node *node,
-                       {
-                               SelectStmt *stmt = (SelectStmt *) node;
--                              if (walker(stmt->distinctClause, context))
-+                              if (WALK(stmt->distinctClause, context))
-                                       return true;
--                              if (walker(stmt->intoClause, context))
-+                              if (WALK(stmt->intoClause, context))
-                                       return true;
--                              if (walker(stmt->targetList, context))
-+                              if (WALK(stmt->targetList, context))
-                                       return true;
--                              if (walker(stmt->fromClause, context))
-+                              if (WALK(stmt->fromClause, context))
-                                       return true;
--                              if (walker(stmt->whereClause, context))
-+                              if (WALK(stmt->whereClause, context))
-                                       return true;
--                              if (walker(stmt->groupClause, context))
-+                              if (WALK(stmt->groupClause, context))
-                                       return true;
--                              if (walker(stmt->havingClause, context))
-+                              if (WALK(stmt->havingClause, context))
-                                       return true;
--                              if (walker(stmt->windowClause, context))
-+                              if (WALK(stmt->windowClause, context))
-                                       return true;
--                              if (walker(stmt->valuesLists, context))
-+                              if (WALK(stmt->valuesLists, context))
-                                       return true;
--                              if (walker(stmt->sortClause, context))
-+                              if (WALK(stmt->sortClause, context))
-                                       return true;
--                              if (walker(stmt->limitOffset, context))
-+                              if (WALK(stmt->limitOffset, context))
-                                       return true;
--                              if (walker(stmt->limitCount, context))
-+                              if (WALK(stmt->limitCount, context))
-                                       return true;
--                              if (walker(stmt->lockingClause, context))
-+                              if (WALK(stmt->lockingClause, context))
-                                       return true;
--                              if (walker(stmt->withClause, context))
-+                              if (WALK(stmt->withClause, context))
-                                       return true;
--                              if (walker(stmt->larg, context))
-+                              if (WALK(stmt->larg, context))
-                                       return true;
--                              if (walker(stmt->rarg, context))
-+                              if (WALK(stmt->rarg, context))
-                                       return true;
-                       }
-                       break;
-@@ -1602,9 +1602,9 @@ raw_expression_tree_walker(Node *node,
-                       {
-                               A_Expr     *expr = (A_Expr *) node;
--                              if (walker(expr->lexpr, context))
-+                              if (WALK(expr->lexpr, context))
-                                       return true;
--                              if (walker(expr->rexpr, context))
-+                              if (WALK(expr->rexpr, context))
-                                       return true;
-                               /* operator name is deemed uninteresting */
-                       }
-@@ -1613,7 +1613,7 @@ raw_expression_tree_walker(Node *node,
-                       {
-                               BoolExpr   *expr = (BoolExpr *) node;
--                              if (walker(expr->args, context))
-+                              if (WALK(expr->args, context))
-                                       return true;
-                       }
-                       break;
-@@ -1624,26 +1624,26 @@ raw_expression_tree_walker(Node *node,
-                       {
-                               FuncCall   *fcall = (FuncCall *) node;
--                              if (walker(fcall->args, context))
-+                              if (WALK(fcall->args, context))
-                                       return true;
--                              if (walker(fcall->agg_order, context))
-+                              if (WALK(fcall->agg_order, context))
-                                       return true;
--                              if (walker(fcall->agg_filter, context))
-+                              if (WALK(fcall->agg_filter, context))
-                                       return true;
--                              if (walker(fcall->over, context))
-+                              if (WALK(fcall->over, context))
-                                       return true;
-                               /* function name is deemed uninteresting */
-                       }
-                       break;
-               case T_NamedArgExpr:
--                      return walker(((NamedArgExpr *) node)->arg, context);
-+                      return WALK(((NamedArgExpr *) node)->arg, context);
-               case T_A_Indices:
-                       {
-                               A_Indices  *indices = (A_Indices *) node;
--                              if (walker(indices->lidx, context))
-+                              if (WALK(indices->lidx, context))
-                                       return true;
--                              if (walker(indices->uidx, context))
-+                              if (WALK(indices->uidx, context))
-                                       return true;
-                       }
-                       break;
-@@ -1651,51 +1651,51 @@ raw_expression_tree_walker(Node *node,
-                       {
-                               A_Indirection *indir = (A_Indirection *) node;
--                              if (walker(indir->arg, context))
-+                              if (WALK(indir->arg, context))
-                                       return true;
--                              if (walker(indir->indirection, context))
-+                              if (WALK(indir->indirection, context))
-                                       return true;
-                       }
-                       break;
-               case T_A_ArrayExpr:
--                      return walker(((A_ArrayExpr *) node)->elements, context);
-+                      return WALK(((A_ArrayExpr *) node)->elements, context);
-               case T_ResTarget:
-                       {
-                               ResTarget  *rt = (ResTarget *) node;
--                              if (walker(rt->indirection, context))
-+                              if (WALK(rt->indirection, context))
-                                       return true;
--                              if (walker(rt->val, context))
-+                              if (WALK(rt->val, context))
-                                       return true;
-                       }
-                       break;
-               case T_MultiAssignRef:
--                      return walker(((MultiAssignRef *) node)->source, context);
-+                      return WALK(((MultiAssignRef *) node)->source, context);
-               case T_TypeCast:
-                       {
-                               TypeCast   *tc = (TypeCast *) node;
--                              if (walker(tc->arg, context))
-+                              if (WALK(tc->arg, context))
-                                       return true;
--                              if (walker(tc->typeName, context))
-+                              if (WALK(tc->typeName, context))
-                                       return true;
-                       }
-                       break;
-               case T_CollateClause:
--                      return walker(((CollateClause *) node)->arg, context);
-+                      return WALK(((CollateClause *) node)->arg, context);
-               case T_SortBy:
--                      return walker(((SortBy *) node)->node, context);
-+                      return WALK(((SortBy *) node)->node, context);
-               case T_WindowDef:
-                       {
-                               WindowDef  *wd = (WindowDef *) node;
--                              if (walker(wd->partitionClause, context))
-+                              if (WALK(wd->partitionClause, context))
-                                       return true;
--                              if (walker(wd->orderClause, context))
-+                              if (WALK(wd->orderClause, context))
-                                       return true;
--                              if (walker(wd->startOffset, context))
-+                              if (WALK(wd->startOffset, context))
-                                       return true;
--                              if (walker(wd->endOffset, context))
-+                              if (WALK(wd->endOffset, context))
-                                       return true;
-                       }
-                       break;
-@@ -1703,9 +1703,9 @@ raw_expression_tree_walker(Node *node,
-                       {
-                               RangeSubselect *rs = (RangeSubselect *) node;
--                              if (walker(rs->subquery, context))
-+                              if (WALK(rs->subquery, context))
-                                       return true;
--                              if (walker(rs->alias, context))
-+                              if (WALK(rs->alias, context))
-                                       return true;
-                       }
-                       break;
-@@ -1713,11 +1713,11 @@ raw_expression_tree_walker(Node *node,
-                       {
-                               RangeFunction *rf = (RangeFunction *) node;
--                              if (walker(rf->functions, context))
-+                              if (WALK(rf->functions, context))
-                                       return true;
--                              if (walker(rf->alias, context))
-+                              if (WALK(rf->alias, context))
-                                       return true;
--                              if (walker(rf->coldeflist, context))
-+                              if (WALK(rf->coldeflist, context))
-                                       return true;
-                       }
-                       break;
-@@ -1725,12 +1725,12 @@ raw_expression_tree_walker(Node *node,
-                       {
-                               RangeTableSample *rts = (RangeTableSample *) node;
--                              if (walker(rts->relation, context))
-+                              if (WALK(rts->relation, context))
-                                       return true;
-                               /* method name is deemed uninteresting */
--                              if (walker(rts->args, context))
-+                              if (WALK(rts->args, context))
-                                       return true;
--                              if (walker(rts->repeatable, context))
-+                              if (WALK(rts->repeatable, context))
-                                       return true;
-                       }
-                       break;
-@@ -1738,9 +1738,9 @@ raw_expression_tree_walker(Node *node,
-                       {
-                               TypeName   *tn = (TypeName *) node;
--                              if (walker(tn->typmods, context))
-+                              if (WALK(tn->typmods, context))
-                                       return true;
--                              if (walker(tn->arrayBounds, context))
-+                              if (WALK(tn->arrayBounds, context))
-                                       return true;
-                               /* type name itself is deemed uninteresting */
-                       }
-@@ -1749,38 +1749,38 @@ raw_expression_tree_walker(Node *node,
-                       {
-                               ColumnDef  *coldef = (ColumnDef *) node;
--                              if (walker(coldef->typeName, context))
-+                              if (WALK(coldef->typeName, context))
-                                       return true;
--                              if (walker(coldef->raw_default, context))
-+                              if (WALK(coldef->raw_default, context))
-                                       return true;
--                              if (walker(coldef->collClause, context))
-+                              if (WALK(coldef->collClause, context))
-                                       return true;
-                               /* for now, constraints are ignored */
-                       }
-                       break;
-               case T_GroupingSet:
--                      return walker(((GroupingSet *) node)->content, context);
-+                      return WALK(((GroupingSet *) node)->content, context);
-               case T_LockingClause:
--                      return walker(((LockingClause *) node)->lockedRels, context);
-+                      return WALK(((LockingClause *) node)->lockedRels, context);
-               case T_XmlSerialize:
-                       {
-                               XmlSerialize *xs = (XmlSerialize *) node;
--                              if (walker(xs->expr, context))
-+                              if (WALK(xs->expr, context))
-                                       return true;
--                              if (walker(xs->typeName, context))
-+                              if (WALK(xs->typeName, context))
-                                       return true;
-                       }
-                       break;
-               case T_WithClause:
--                      return walker(((WithClause *) node)->ctes, context);
-+                      return WALK(((WithClause *) node)->ctes, context);
-               case T_InferClause:
-                       {
-                               InferClause *stmt = (InferClause *) node;
--                              if (walker(stmt->indexElems, context))
-+                              if (WALK(stmt->indexElems, context))
-                                       return true;
--                              if (walker(stmt->whereClause, context))
-+                              if (WALK(stmt->whereClause, context))
-                                       return true;
-                       }
-                       break;
-@@ -1788,16 +1788,16 @@ raw_expression_tree_walker(Node *node,
-                       {
-                               OnConflictClause *stmt = (OnConflictClause *) node;
--                              if (walker(stmt->infer, context))
-+                              if (WALK(stmt->infer, context))
-                                       return true;
--                              if (walker(stmt->targetList, context))
-+                              if (WALK(stmt->targetList, context))
-                                       return true;
--                              if (walker(stmt->whereClause, context))
-+                              if (WALK(stmt->whereClause, context))
-                                       return true;
-                       }
-                       break;
-               case T_CommonTableExpr:
--                      return walker(((CommonTableExpr *) node)->ctequery, context);
-+                      return WALK(((CommonTableExpr *) node)->ctequery, context);
-               default:
-                       /*
-diff --git a/src/streaming_replication/pool_worker_child.c b/src/streaming_replication/pool_worker_child.c
-index 746659e0f..e91deaff5 100644
---- a/src/streaming_replication/pool_worker_child.c
-+++ b/src/streaming_replication/pool_worker_child.c
-@@ -106,7 +106,7 @@ static     volatile bool follow_primary_lock_acquired;
- * worker child main loop
- */
- void
--do_worker_child(void)
-+do_worker_child(void *params)
- {
-       sigjmp_buf      local_sigjmp_buf;
-       MemoryContext WorkerMemoryContext;
-diff --git a/src/test/regression/tests/010.rewrite_timestamp/timestamp/main.c b/src/test/regression/tests/010.rewrite_timestamp/timestamp/main.c
-index 89a36f2c0..da1c71584 100644
---- a/src/test/regression/tests/010.rewrite_timestamp/timestamp/main.c
-+++ b/src/test/regression/tests/010.rewrite_timestamp/timestamp/main.c
-@@ -90,7 +90,9 @@ Pgversion(POOL_CONNECTION_POOL * backend)
- }
- POOL_RELCACHE *
--pool_create_relcache(int cachesize, char *sql, func_ptr register_func, func_ptr unregister_func, bool issessionlocal)
-+pool_create_relcache(int cachesize, char *sql,
-+                                       void *(*register_func) (), void *(*unregister_func) (),
-+                                       bool issessionlocal)
- {
-       return (POOL_RELCACHE *) 1;
- }
-diff --git a/src/utils/pool_relcache.c b/src/utils/pool_relcache.c
-index 32362fc6b..e5bf8e0d8 100644
---- a/src/utils/pool_relcache.c
-+++ b/src/utils/pool_relcache.c
-@@ -5,7 +5,7 @@
-  * pgpool: a language independent connection pool server for PostgreSQL
-  * written by Tatsuo Ishii
-  *
-- * Copyright (c) 2003-2023    PgPool Global Development Group
-+ * Copyright (c) 2003-2025    PgPool Global Development Group
-  *
-  * Permission to use, copy, modify, and distribute this software and
-  * its documentation for any purpose and without fee is hereby
-@@ -48,7 +48,7 @@ static char *relation_cache_to_query_cache(POOL_SELECT_RESULT *res,size_t *size)
-  */
- POOL_RELCACHE *
- pool_create_relcache(int cachesize, char *sql,
--                                       func_ptr register_func, func_ptr unregister_func,
-+                                       void *(*register_func) (POOL_SELECT_RESULT *), void *(*unregister_func) (void *),
-                                        bool issessionlocal)
- {
-       POOL_RELCACHE *p;
--- 
-2.25.1
-