This is an automated email from the ASF dual-hosted git repository.
reshke pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudberry.git
The following commit(s) were added to refs/heads/main by this push:
new 182cc62d16a Fix various c23 compile errors (#1879)
182cc62d16a is described below
commit 182cc62d16ac56dd18e86f73749105507bb4874e
Author: reshke <[email protected]>
AuthorDate: Tue Aug 11 21:29:16 2026 +0500
Fix various c23 compile errors (#1879)
* Fix c23 compile error by using proxy functions
---
contrib/extprotocol/gpextprotocol.c | 2 +-
gpcontrib/pg_hint_plan/pg_hint_plan.c | 4 +-
src/backend/access/external/url_curl.c | 4 +-
src/backend/catalog/pg_type.c | 2 +-
src/backend/cdb/cdbllize.c | 44 +++++++++++++++-----
src/backend/cdb/cdbmutate.c | 40 ++++++++++++++++--
src/backend/cdb/cdbplan.c | 14 +++----
src/backend/cdb/dispatcher/cdbdisp_query.c | 10 ++++-
src/backend/cdb/dispatcher/cdbgang.c | 6 +--
src/backend/commands/resgroupcmds.c | 10 ++---
src/backend/executor/execUtils.c | 11 ++++-
src/backend/nodes/nodeFuncs.c | 4 +-
src/backend/optimizer/plan/createplan.c | 15 ++++++-
src/backend/optimizer/plan/setrefs.c | 14 ++++++-
src/backend/optimizer/util/predtest_valueset.c | 2 +-
src/backend/optimizer/util/walkers.c | 39 +++++++++++-------
src/backend/task/entry.c | 56 ++++++++++++++------------
src/backend/task/misc.c | 16 ++------
src/backend/utils/adt/xid8funcs.c | 2 +-
src/backend/utils/misc/fstream/fstream.c | 2 +-
src/backend/utils/misc/uriparser.c | 2 +-
src/backend/utils/resource_manager/memquota.c | 42 +++++++++++++++++--
src/bin/gpfdist/gpfdist.c | 2 +-
src/bin/pg_waldump/pg_waldump.c | 2 +-
src/bin/pgbench/pgbench.c | 2 +-
src/common/compression.c | 2 +-
src/include/cdb/cdbplan.h | 2 +-
src/include/optimizer/walkers.h | 4 +-
src/test/regress/pg_regress.c | 6 +--
src/timezone/zic.c | 2 +-
30 files changed, 251 insertions(+), 112 deletions(-)
diff --git a/contrib/extprotocol/gpextprotocol.c
b/contrib/extprotocol/gpextprotocol.c
index 26d75bcda39..69aed97f48d 100644
--- a/contrib/extprotocol/gpextprotocol.c
+++ b/contrib/extprotocol/gpextprotocol.c
@@ -299,7 +299,7 @@ DemoUri *ParseDemoUri(const char *uri_str)
/*
* parse protocol
*/
- char *post_protocol = strstr(uri_str, "://");
+ const char *post_protocol = strstr(uri_str, "://");
if(!post_protocol)
{
diff --git a/gpcontrib/pg_hint_plan/pg_hint_plan.c
b/gpcontrib/pg_hint_plan/pg_hint_plan.c
index 46fe8ca60de..691eb6e6367 100644
--- a/gpcontrib/pg_hint_plan/pg_hint_plan.c
+++ b/gpcontrib/pg_hint_plan/pg_hint_plan.c
@@ -2003,7 +2003,7 @@ get_hints_from_comment(const char *p)
{
const char *hint_head;
char *head;
- char *tail;
+ const char *tail;
int len;
if (p == NULL)
@@ -2050,7 +2050,7 @@ get_hints_from_comment(const char *p)
}
/* We don't support nested block comments. */
- if ((head = strstr(p, BLOCK_COMMENT_START)) != NULL && head < tail)
+ if ((head = (char *)strstr(p, BLOCK_COMMENT_START)) != NULL && head <
tail)
{
hint_ereport(head, ("Nested block comments are not
supported."));
return NULL;
diff --git a/src/backend/access/external/url_curl.c
b/src/backend/access/external/url_curl.c
index 4c512619776..df05873e4ea 100644
--- a/src/backend/access/external/url_curl.c
+++ b/src/backend/access/external/url_curl.c
@@ -1473,7 +1473,7 @@ url_curl_fopen(char *url, bool forwrite, extvar_t *ev,
CopyFormatOptions *opts)
{
/* use empty message */
CURL_EASY_SETOPT(file->curl->handle, CURLOPT_POSTFIELDS, "");
- CURL_EASY_SETOPT(file->curl->handle, CURLOPT_POSTFIELDSIZE, 0);
+ CURL_EASY_SETOPT(file->curl->handle, CURLOPT_POSTFIELDSIZE, 0L);
/* post away and check response, retry if failed (timeout or *
connect error) */
gp_perform_backoff_and_check_response(file, easy_perform_work);
@@ -1932,7 +1932,7 @@ gp_proto0_write_done(URL_CURL_FILE *file)
/* use empty message */
CURL_EASY_SETOPT(file->curl->handle, CURLOPT_POSTFIELDS, "");
- CURL_EASY_SETOPT(file->curl->handle, CURLOPT_POSTFIELDSIZE, 0);
+ CURL_EASY_SETOPT(file->curl->handle, CURLOPT_POSTFIELDSIZE, 0L);
/* post away! */
gp_perform_backoff_and_check_response(file, easy_perform_work);
diff --git a/src/backend/catalog/pg_type.c b/src/backend/catalog/pg_type.c
index 109157a8b3e..83e5660f122 100644
--- a/src/backend/catalog/pg_type.c
+++ b/src/backend/catalog/pg_type.c
@@ -1074,7 +1074,7 @@ char *
makeMultirangeTypeName(const char *rangeTypeName, Oid typeNamespace)
{
char *buf;
- char *rangestr;
+ const char *rangestr;
/*
* If the range type name contains "range" then change that to
diff --git a/src/backend/cdb/cdbllize.c b/src/backend/cdb/cdbllize.c
index def4b78fccc..31749f0305b 100644
--- a/src/backend/cdb/cdbllize.c
+++ b/src/backend/cdb/cdbllize.c
@@ -142,6 +142,7 @@ typedef struct
* Forward Declarations
*/
static Node *fix_outer_query_motions_mutator(Node *node,
decorate_subplans_with_motions_context *context);
+static Node *fix_outer_query_motions_mutator_adapter(Node *node, void
*context);
static Plan *fix_subplan_motion(PlannerInfo *root, Plan *subplan, Flow
*outer_query_flow);
static bool build_slice_table_walker(Node *node, build_slice_table_context
*context);
static void adjust_top_path_for_parallel_retrieve_cursor(Path *path, PlanSlice
*slice);
@@ -852,7 +853,7 @@ fix_outer_query_motions_mutator(Node *node,
decorate_subplans_with_motions_conte
/* An expression node might have subtrees containing plans to be
mutated. */
if (!is_plan_node(node))
{
- node = plan_tree_mutator(node, fix_outer_query_motions_mutator,
context, false);
+ node = plan_tree_mutator(node,
fix_outer_query_motions_mutator_adapter, context, false);
/*
* If we see a SubPlan, remember the context where we saw it.
We memorize
@@ -912,7 +913,7 @@ fix_outer_query_motions_mutator(Node *node,
decorate_subplans_with_motions_conte
context->sliceDepth++;
plan = (Plan *) plan_tree_mutator((Node *) plan,
-
fix_outer_query_motions_mutator,
+
fix_outer_query_motions_mutator_adapter,
context,
false);
motion = (Motion *) plan;
@@ -991,13 +992,20 @@ fix_outer_query_motions_mutator(Node *node,
decorate_subplans_with_motions_conte
saveCurrentPlanFlow = context->currentPlanFlow;
if (plan->flow != NULL && plan->flow->locustype !=
CdbLocusType_OuterQuery)
context->currentPlanFlow = plan->flow;
- newnode = plan_tree_mutator(node,
fix_outer_query_motions_mutator, context, false);
+ newnode = plan_tree_mutator(node,
fix_outer_query_motions_mutator_adapter, context, false);
context->currentPlanFlow = saveCurrentPlanFlow;
}
return newnode;
}
+static Node *
+fix_outer_query_motions_mutator_adapter(Node *node, void *context)
+{
+ return fix_outer_query_motions_mutator(
+ node, (decorate_subplans_with_motions_context *) context);
+}
+
/*
* Add a Motion node on top of a Plan if needed, to make the result available
* in 'outer_query_flow'. Subroutine of cdbllize_fix_outer_query_motions().
@@ -1270,6 +1278,14 @@ cdbllize_build_slice_table(PlannerInfo *root, Plan
*top_plan,
query->setOperations = NULL;
}
+static bool
+build_slice_table_walker(Node *node, build_slice_table_context *context);
+static bool
+build_slice_table_walker_adapter(Node *node, void *context)
+{
+ return build_slice_table_walker(node, (build_slice_table_context *)
context);
+}
+
static bool
build_slice_table_walker(Node *node, build_slice_table_context *context)
{
@@ -1312,9 +1328,9 @@ build_slice_table_walker(Node *node,
build_slice_table_context *context)
root->glob->subplan_sliceIds[plan_id - 1] =
context->currentSliceIndex;
result = plan_tree_walker(node,
-
build_slice_table_walker,
-
context,
- true);
+
build_slice_table_walker_adapter,
+ context,
+ true);
context->currentSliceIndex = save_currentSliceIndex;
@@ -1372,7 +1388,7 @@ build_slice_table_walker(Node *node,
build_slice_table_context *context)
}
result = plan_tree_walker((Node *) motion,
-
build_slice_table_walker,
+
build_slice_table_walker_adapter,
context,
false);
@@ -1382,7 +1398,7 @@ build_slice_table_walker(Node *node,
build_slice_table_context *context)
}
return plan_tree_walker(node,
-
build_slice_table_walker,
+
build_slice_table_walker_adapter,
context,
false);
}
@@ -1436,6 +1452,14 @@ typedef struct aware_result_t
int nnodes;
} aware_result_t;
+static bool
+motion_sanity_walker(Node *node, sanity_result_t *result);
+static bool
+motion_sanity_walker_adapter(Node *node, void *result)
+{
+ return motion_sanity_walker(node, (sanity_result_t *) result);
+}
+
static bool
motion_sanity_walker(Node *node, sanity_result_t *result)
{
@@ -1542,12 +1566,12 @@ motion_sanity_walker(Node *node, sanity_result_t
*result)
case T_Sort:
case T_Material:
case T_ForeignScan:
- if (plan_tree_walker(node, motion_sanity_walker,
result, true))
+ if (plan_tree_walker(node,
motion_sanity_walker_adapter, result, true))
return true;
break;
case T_Motion:
- if (plan_tree_walker(node, motion_sanity_walker,
result, true))
+ if (plan_tree_walker(node,
motion_sanity_walker_adapter, result, true))
return true;
result->flags |= SANITY_MOTION;
elog(DEBUG5, " found motion");
diff --git a/src/backend/cdb/cdbmutate.c b/src/backend/cdb/cdbmutate.c
index 4b98f58dcd8..8136eb20841 100644
--- a/src/backend/cdb/cdbmutate.c
+++ b/src/backend/cdb/cdbmutate.c
@@ -61,6 +61,7 @@ typedef struct
*/
static Node *pre_dispatch_function_evaluation_mutator(Node *node,
pre_dispatch_function_evaluation_context *context);
+static Node *pre_dispatch_function_evaluation_mutator_adapter(Node *node, void
*context);
static bool replace_shareinput_targetlists_walker(Node *node, PlannerInfo
*root, bool fPop);
@@ -238,6 +239,14 @@ typedef struct ctid_inventory_context
Index relid;
} ctid_inventory_context;
+static bool
+ctid_inventory_walker(Node *node, ctid_inventory_context *inv);
+static bool
+ctid_inventory_walker_adapter(Node *node, void *inv)
+{
+ return ctid_inventory_walker(node, (ctid_inventory_context *) inv);
+}
+
static bool
ctid_inventory_walker(Node *node, ctid_inventory_context *inv)
{
@@ -259,7 +268,7 @@ ctid_inventory_walker(Node *node, ctid_inventory_context
*inv)
}
return false;
}
- return plan_tree_walker(node, ctid_inventory_walker, inv, true);
+ return plan_tree_walker(node, ctid_inventory_walker_adapter, inv, true);
}
void
@@ -1181,6 +1190,14 @@ typedef struct ParamWalkerContext
Bitmapset *scanrelids; /* Bitmapset for scanrelid */
} ParamWalkerContext;
+static bool
+param_walker(Node *node, ParamWalkerContext *context);
+static bool
+param_walker_adapter(Node *node, void *context)
+{
+ return param_walker(node, (ParamWalkerContext *) context);
+}
+
static bool
param_walker(Node *node, ParamWalkerContext *context)
{
@@ -1277,7 +1294,7 @@ param_walker(Node *node, ParamWalkerContext *context)
break;
}
- return plan_tree_walker(node, param_walker, context, false);
+ return plan_tree_walker(node, param_walker_adapter, context, false);
}
/*
@@ -1343,6 +1360,14 @@ rte_param_walker(List *rtable, ParamWalkerContext
*context)
}
}
+static bool
+initplan_walker(Node *node, ParamWalkerContext *context);
+static bool
+initplan_walker_adapter(Node *node, void *context)
+{
+ return initplan_walker(node, (ParamWalkerContext *) context);
+}
+
static bool
initplan_walker(Node *node, ParamWalkerContext *context)
{
@@ -1406,7 +1431,7 @@ initplan_walker(Node *node, ParamWalkerContext *context)
plan->initPlan = new_initplans;
}
- return plan_tree_walker(node, initplan_walker, context, true);
+ return plan_tree_walker(node, initplan_walker_adapter, context, true);
}
/*
@@ -1779,13 +1804,20 @@ pre_dispatch_function_evaluation_mutator(Node *node,
* simplify its arguments (if any) using this routine.
*/
new_node = plan_tree_mutator(node,
-
pre_dispatch_function_evaluation_mutator,
+
pre_dispatch_function_evaluation_mutator_adapter,
(void *)
context,
true);
return new_node;
}
+static Node *
+pre_dispatch_function_evaluation_mutator_adapter(Node *node, void *context)
+{
+ return pre_dispatch_function_evaluation_mutator(
+ node, (pre_dispatch_function_evaluation_context *) context);
+}
+
/*
* cdbpathtoplan_create_sri_path
*
diff --git a/src/backend/cdb/cdbplan.c b/src/backend/cdb/cdbplan.c
index ebc09d54ffc..d2023c6999e 100644
--- a/src/backend/cdb/cdbplan.c
+++ b/src/backend/cdb/cdbplan.c
@@ -30,9 +30,9 @@
#include "utils/lsyscache.h"
-static void mutate_plan_fields(Plan *newplan, Plan *oldplan, Node *(*mutator)
(), void *context);
-static void mutate_join_fields(Join *newplan, Join *oldplan, Node *(*mutator)
(), void *context);
-static void mutate_sort_fields(Sort* newplan, Sort* oldplan, Node *(*mutator)
(), void *context);
+static void mutate_plan_fields(Plan *newplan, Plan *oldplan, Node *(*mutator)
(Node *, void *), void *context);
+static void mutate_join_fields(Join *newplan, Join *oldplan, Node *(*mutator)
(Node *, void *), void *context);
+static void mutate_sort_fields(Sort* newplan, Sort* oldplan, Node *(*mutator)
(Node *, void *), void *context);
@@ -107,7 +107,7 @@ static void mutate_sort_fields(Sort* newplan, Sort*
oldplan, Node *(*mutator) ()
Node *
plan_tree_mutator(Node *node,
- Node *(*mutator) (),
+ Node *(*mutator) (Node *, void *),
void *context,
bool recurse_into_subplans)
{
@@ -1101,7 +1101,7 @@ plan_tree_mutator(Node *node,
*
*/
static void
-mutate_plan_fields(Plan *newplan, Plan *oldplan, Node *(*mutator) (), void
*context)
+mutate_plan_fields(Plan *newplan, Plan *oldplan, Node *(*mutator) (Node *,
void *), void *context)
{
/*
* Scalar fields startup_cost total_cost plan_rows plan_width nParamExec
@@ -1128,7 +1128,7 @@ mutate_plan_fields(Plan *newplan, Plan *oldplan, Node
*(*mutator) (), void *cont
*
*/
static void
-mutate_join_fields(Join *newjoin, Join *oldjoin, Node *(*mutator) (), void
*context)
+mutate_join_fields(Join *newjoin, Join *oldjoin, Node *(*mutator) (Node *,
void *), void *context)
{
/* A Join node is a Plan node. */
mutate_plan_fields((Plan *) newjoin, (Plan *) oldjoin, mutator,
context);
@@ -1146,7 +1146,7 @@ mutate_join_fields(Join *newjoin, Join *oldjoin, Node
*(*mutator) (), void *cont
*
*/
static void
-mutate_sort_fields(Sort *newsort, Sort *oldsort, Node *(*mutator) (), void
*context)
+mutate_sort_fields(Sort *newsort, Sort *oldsort, Node *(*mutator) (Node *,
void *), void *context)
{
/* A Join node is a Plan node. */
mutate_plan_fields((Plan *) newsort, (Plan *) oldsort, mutator,
context);
diff --git a/src/backend/cdb/dispatcher/cdbdisp_query.c
b/src/backend/cdb/dispatcher/cdbdisp_query.c
index 3d5045b4fdb..1547c4dc125 100644
--- a/src/backend/cdb/dispatcher/cdbdisp_query.c
+++ b/src/backend/cdb/dispatcher/cdbdisp_query.c
@@ -1654,6 +1654,14 @@ getExecParamsToDispatch(PlannedStmt *stmt, ParamExecData
*intPrm)
* This list is input to the function findParamType(), which loops over the
* list looking for a specific paramid, and returns its type.
*/
+static bool
+param_walker(Node *node, ParamWalkerContext *context);
+static bool
+param_walker_adapter(Node *node, void *context)
+{
+ return param_walker(node, (ParamWalkerContext *) context);
+}
+
static bool
param_walker(Node *node, ParamWalkerContext *context)
{
@@ -1670,7 +1678,7 @@ param_walker(Node *node, ParamWalkerContext *context)
return false;
}
}
- return plan_tree_walker(node, param_walker, context, true);
+ return plan_tree_walker(node, param_walker_adapter, context, true);
}
/*
diff --git a/src/backend/cdb/dispatcher/cdbgang.c
b/src/backend/cdb/dispatcher/cdbgang.c
index 85e69086974..4f1629dbd29 100644
--- a/src/backend/cdb/dispatcher/cdbgang.c
+++ b/src/backend/cdb/dispatcher/cdbgang.c
@@ -167,7 +167,7 @@ AllocateGang(CdbDispatcherState *ds, GangType type, List
*segments)
bool
segment_failure_due_to_recovery(const char *error_message)
{
- char *fatal = NULL,
+ const char *fatal = NULL,
*ptr = NULL;
int fatal_len = 0;
@@ -210,7 +210,7 @@ segment_failure_due_to_recovery(const char *error_message)
bool
segment_failure_due_to_missing_writer(const char *error_message)
{
- char *fatal = NULL,
+ const char *fatal = NULL,
*ptr = NULL;
int fatal_len = 0;
@@ -232,7 +232,7 @@ segment_failure_due_to_missing_writer(const char
*error_message)
bool
segment_failure_due_to_fault_injector(const char *error_message)
{
- char *fatal = NULL,
+ const char *fatal = NULL,
*ptr = NULL;
int fatal_len = 0;
diff --git a/src/backend/commands/resgroupcmds.c
b/src/backend/commands/resgroupcmds.c
index 3b325ba729c..98545870244 100644
--- a/src/backend/commands/resgroupcmds.c
+++ b/src/backend/commands/resgroupcmds.c
@@ -1567,8 +1567,8 @@ checkCpusetSyntax(const char *cpuset)
extern void
checkCpuSetByRole(const char *cpuset)
{
- char *first = NULL;
- char *last = NULL;
+ const char *first = NULL;
+ const char *last = NULL;
if (cpuset == NULL)
{
@@ -1627,12 +1627,12 @@ getCpuSetByRole(const char *cpuset)
errmsg("Unexpected cpuset invalid in
getCpuSetByRole")));
}
- char *first = strchr(cpuset, ';');
+ const char *first = strchr(cpuset, ';');
if (first == NULL)
splitcpuset = (char *)cpuset;
else
{
- char *second = first + 1;
+ char *second = (char*)first + 1;
/* Get result cpuset by IS_QUERY_DISPATCHER(), on master or
segment */
if (IS_QUERY_DISPATCHER())
@@ -1649,6 +1649,6 @@ getCpuSetByRole(const char *cpuset)
}
}
- return splitcpuset;
+ return (char *)splitcpuset;
}
diff --git a/src/backend/executor/execUtils.c b/src/backend/executor/execUtils.c
index 5f9473c379e..e1ea7b849f1 100644
--- a/src/backend/executor/execUtils.c
+++ b/src/backend/executor/execUtils.c
@@ -2398,6 +2398,15 @@ typedef struct MotionFinderContext
/*
* Walker to find a motion node that matches a particular motionID
*/
+static bool
+MotionFinderWalker(Plan *node,
+ void *context);
+static bool
+MotionFinderWalker_adapter(Node *node, void *context)
+{
+ return MotionFinderWalker((Plan *) node, context);
+}
+
static bool
MotionFinderWalker(Plan *node,
void *context)
@@ -2420,7 +2429,7 @@ MotionFinderWalker(Plan *node,
}
/* Continue walking */
- return plan_tree_walker((Node*)node, MotionFinderWalker, ctx, true);
+ return plan_tree_walker((Node*)node, MotionFinderWalker_adapter, ctx,
true);
}
/*
diff --git a/src/backend/nodes/nodeFuncs.c b/src/backend/nodes/nodeFuncs.c
index ec2ad3b889a..82c41f92b78 100644
--- a/src/backend/nodes/nodeFuncs.c
+++ b/src/backend/nodes/nodeFuncs.c
@@ -35,7 +35,7 @@ static bool planstate_walk_members(PlanState **planstates,
int nplans,
void
*context);
static Node *
-range_table_entry_mutator(RangeTblEntry *rte, Node *(*mutator)(), void
*context, int flags);
+range_table_entry_mutator(RangeTblEntry *rte, Node *(*mutator)(Node *, void
*), void *context, int flags);
/*
* exprType -
@@ -3970,7 +3970,7 @@ query_tree_mutator_impl(Query *query,
}
static Node *
-range_table_entry_mutator(RangeTblEntry *rte, Node *(*mutator)(), void
*context, int flags)
+range_table_entry_mutator(RangeTblEntry *rte, Node *(*mutator)(Node *, void
*), void *context, int flags)
{
RangeTblEntry *newrte;
diff --git a/src/backend/optimizer/plan/createplan.c
b/src/backend/optimizer/plan/createplan.c
index 585c1385068..34e06f6411f 100644
--- a/src/backend/optimizer/plan/createplan.c
+++ b/src/backend/optimizer/plan/createplan.c
@@ -9320,6 +9320,11 @@ contain_motion(PlannerInfo *root, Node *node)
return ctx.result;
}
+static bool
+contain_motion_walk(Node *node, contain_motion_walk_context *ctx);
+static bool
+contain_motion_walk_adapter(Node *node, void *ctx);
+
static bool
contain_motion_walk(Node *node, contain_motion_walk_context *ctx)
{
@@ -9344,7 +9349,7 @@ contain_motion_walk(Node *node,
contain_motion_walk_context *ctx)
return false;
Plan *plan = list_nth(root->glob->subplans, plan_id -
1);
- return plan_tree_walker((Node *) plan,
contain_motion_walk, ctx, true);
+ return plan_tree_walker((Node *) plan,
contain_motion_walk_adapter, ctx, true);
}
}
@@ -9354,7 +9359,13 @@ contain_motion_walk(Node *node,
contain_motion_walk_context *ctx)
return true;
}
- return plan_tree_walker((Node *) node, contain_motion_walk, ctx, true);
+ return plan_tree_walker((Node *) node, contain_motion_walk_adapter,
ctx, true);
+}
+
+static bool
+contain_motion_walk_adapter(Node *node, void *ctx)
+{
+ return contain_motion_walk(node, (contain_motion_walk_context *) ctx);
}
/*
diff --git a/src/backend/optimizer/plan/setrefs.c
b/src/backend/optimizer/plan/setrefs.c
index 99c5b1372a6..eb0087e5099 100644
--- a/src/backend/optimizer/plan/setrefs.c
+++ b/src/backend/optimizer/plan/setrefs.c
@@ -4493,6 +4493,11 @@ cdb_extract_plan_dependencies(PlannerInfo *root, Plan
*plan)
(void) cdb_extract_plan_dependencies_walker((Node *) plan, &context);
}
+static bool
+cdb_extract_plan_dependencies_walker(Node *node,
cdb_extract_plan_dependencies_context *context);
+static bool
+cdb_extract_plan_dependencies_walker_adapter(Node *node, void *context);
+
static bool
cdb_extract_plan_dependencies_walker(Node *node,
cdb_extract_plan_dependencies_context *context)
{
@@ -4501,10 +4506,17 @@ cdb_extract_plan_dependencies_walker(Node *node,
cdb_extract_plan_dependencies_c
/* Extract function dependencies and check for regclass Consts */
fix_expr_common(context->root, node);
- return plan_tree_walker(node, cdb_extract_plan_dependencies_walker,
+ return plan_tree_walker(node,
cdb_extract_plan_dependencies_walker_adapter,
(void *) context, true);
}
+static bool
+cdb_extract_plan_dependencies_walker_adapter(Node *node, void *context)
+{
+ return cdb_extract_plan_dependencies_walker(
+ node, (cdb_extract_plan_dependencies_context *) context);
+}
+
/*
* cdb_expr_requires_full_eval
*
diff --git a/src/backend/optimizer/util/predtest_valueset.c
b/src/backend/optimizer/util/predtest_valueset.c
index 381b60e952b..e6ec7d6600b 100644
--- a/src/backend/optimizer/util/predtest_valueset.c
+++ b/src/backend/optimizer/util/predtest_valueset.c
@@ -28,7 +28,7 @@
#define INT32MAX (2147483647)
#define INT32MIN (-2147483648)
-static HTAB *CreateNodeSetHashTable();
+static HTAB *CreateNodeSetHashTable(MemoryContext memoryContext);
static void AddValue(PossibleValueSet *pvs, Const *valueToCopy);
static void RemoveValue(PossibleValueSet *pvs, Const *value);
static bool ContainsValue(PossibleValueSet *pvs, Const *value);
diff --git a/src/backend/optimizer/util/walkers.c
b/src/backend/optimizer/util/walkers.c
index 0de8c280e3b..4f45f5a619d 100644
--- a/src/backend/optimizer/util/walkers.c
+++ b/src/backend/optimizer/util/walkers.c
@@ -36,8 +36,8 @@ void exec_init_plan_tree_base(plan_tree_base_prefix *base,
PlannedStmt *stmt)
base->node = (Node*)stmt;
}
-static bool walk_scan_node_fields(Scan *scan, bool (*walker) (), void
*context);
-static bool walk_join_node_fields(Join *join, bool (*walker) (), void
*context);
+static bool walk_scan_node_fields(Scan *scan, bool (*walker) (Node *, void *),
void *context);
+static bool walk_join_node_fields(Join *join, bool (*walker) (Node *, void *),
void *context);
/* ----------------------------------------------------------------------- *
@@ -57,7 +57,7 @@ static bool walk_join_node_fields(Join *join, bool (*walker)
(), void *context);
*/
bool
walk_plan_node_fields(Plan *plan,
- bool (*walker) (),
+ bool (*walker) (Node *, void *),
void *context)
{
/* target list to be computed at this node */
@@ -101,7 +101,7 @@ walk_plan_node_fields(Plan *plan,
*/
bool
walk_scan_node_fields(Scan *scan,
- bool (*walker) (),
+ bool (*walker) (Node *, void *),
void *context)
{
/* A Scan node is a kind of Plan node. */
@@ -126,7 +126,7 @@ walk_scan_node_fields(Scan *scan,
*/
bool
walk_join_node_fields(Join *join,
- bool (*walker) (),
+ bool (*walker) (Node *, void *),
void *context)
{
/* A Join node is a kind of Plan node. */
@@ -149,7 +149,7 @@ walk_join_node_fields(Join *join,
*/
bool
plan_tree_walker(Node *node,
- bool (*walker) (),
+ bool (*walker) (Node *, void *),
void *context,
bool recurse_into_subplans)
{
@@ -252,18 +252,18 @@ plan_tree_walker(Node *node,
case T_DynamicForeignScan:
if (walk_scan_node_fields((Scan *) node, walker,
context))
return true;
- if (walker(((ForeignScan *) node)->fdw_exprs, context))
+ if (walker((Node *) ((ForeignScan *) node)->fdw_exprs,
context))
return true;
break;
case T_CustomScan:
if (walk_scan_node_fields((Scan *) node, walker,
context))
return true;
- if (walker(((CustomScan *) node)->custom_plans,
context))
- return true;
- if (walker(((CustomScan *) node)->custom_exprs,
context))
- return true;
- if (walker(((CustomScan *) node)->custom_scan_tlist,
context))
+ if (walker((Node *) ((CustomScan *) node)->custom_plans,
context))
+ return true;
+ if (walker((Node *) ((CustomScan *) node)->custom_exprs,
context))
+ return true;
+ if (walker((Node *) ((CustomScan *) node)->custom_scan_tlist,
context))
return true;
break;
@@ -396,7 +396,7 @@ plan_tree_walker(Node *node,
break;
case T_DQAExpr:
- if (walker(((DQAExpr *)node)->agg_filter, context))
+ if (walker((Node *) ((DQAExpr *)node)->agg_filter,
context))
return true;
/* Other fields are simple items and lists of simple
items. */
break;
@@ -710,6 +710,11 @@ List *extract_nodes_plan(Plan *pl, int nodeTag, bool
descendIntoSubqueries)
return context.nodes;
}
+static bool
+extract_nodes_walker(Node *node, extract_context *context);
+static bool
+extract_nodes_walker_adapter(Node *node, void *context);
+
static bool
extract_nodes_walker(Node *node, extract_context *context)
{
@@ -758,11 +763,17 @@ extract_nodes_walker(Node *node, extract_context *context)
return false;
}
- return plan_tree_walker(node, extract_nodes_walker,
+ return plan_tree_walker(node, extract_nodes_walker_adapter,
(void *) context,
true);
}
+static bool
+extract_nodes_walker_adapter(Node *node, void *context)
+{
+ return extract_nodes_walker(node, (extract_context *) context);
+}
+
/**
* Extract nodes with specific tag.
* Same as above, but starts off a scalar expression node rather than a
PlannedStmt
diff --git a/src/backend/task/entry.c b/src/backend/task/entry.c
index e730305a961..357c47dee33 100644
--- a/src/backend/task/entry.c
+++ b/src/backend/task/entry.c
@@ -230,13 +230,14 @@ parse_cron_entry(char *schedule)
return NULL;
}
-static int
-get_list(bits, low, high, names, ch, file)
- bitstr_t *bits; /* one bit per flag, default=FALSE */
- int low, high; /* bounds, impl. offset for
bitstr */
- char *names[]; /* NULL or *[] of names for these
elements */
- int ch; /* current character
being processed */
- FILE *file; /* file being read */
+static int get_list(
+ bitstr_t *bits, /* one bit per flag, default = false */
+ int low,
+ int high, /* bounds, implementation offset for bitstr */
+ char *names[], /* NULL or array of element names */
+ int ch, /* current character being processed */
+ FILE *file /* file being read */
+)
{
register int done;
@@ -273,14 +274,18 @@ get_list(bits, low, high, names, ch, file)
return ch;
}
+
+/*
+*
+* bits one bit per flag, default=FALSE
+* low,
+* high; bounds, impl. offset for bitstr
+* names[]; NULL or names of elements
+* ch; current character being processed
+* file; file being read
+*/
static int
-get_range(bits, low, high, names, ch, file)
- bitstr_t *bits; /* one bit per flag, default=FALSE */
- int low,
- high; /* bounds, impl. offset for
bitstr */
- char *names[]; /* NULL or names of elements */
- int ch; /* current character
being processed */
- FILE *file; /* file being read */
+get_range(bitstr_t *bits, int low, int high, char *names[], int ch, FILE *
file)
{
/* range = number | number "-" number [ "/" number ] */
register int i;
@@ -370,13 +375,15 @@ get_range(bits, low, high, names, ch, file)
return ch;
}
+/*
+ int *numptr; where does the result go?
+ int low; offset applied to result if symbolic
enum used
+ char *names[]; symbolic names, if any, for enums
+ int ch; current character
+ FILE *file; source
+*/
static int
-get_number(numptr, low, names, ch, file)
- int *numptr; /* where does the result go? */
- int low; /* offset applied to result if symbolic
enum used */
- char *names[]; /* symbolic names, if any, for enums */
- int ch; /* current character */
- FILE *file; /* source */
+get_number(int *numptr, int low, char *names[], int ch, FILE *file)
{
char temp[MAX_TEMPSTR], *pc;
int len, i, all_digits;
@@ -427,12 +434,11 @@ get_number(numptr, low, names, ch, file)
return EOF;
}
+/*
+ bitstr_t *bits; one bit per flag, default=FALSE
+*/
static int
-set_element(bits, low, high, number)
- bitstr_t *bits; /* one bit per flag, default=FALSE */
- int low;
- int high;
- int number;
+set_element(bitstr_t *bits, int low, int high, int number)
{
Debug(DPARS|DEXT, ("set_element(?,%d,%d,%d)\n", low, high, number))
diff --git a/src/backend/task/misc.c b/src/backend/task/misc.c
index abc2f8a7f62..bbe16a79620 100644
--- a/src/backend/task/misc.c
+++ b/src/backend/task/misc.c
@@ -34,8 +34,7 @@
* get_char(file) : like getc() but increment LineNumber on newlines
*/
int
-get_char(file)
- FILE *file;
+get_char(FILE *file)
{
int ch;
@@ -75,9 +74,7 @@ get_char(file)
* unget_char(ch, file) : like ungetc but do LineNumber processing
*/
void
-unget_char(ch, file)
- int ch;
- FILE *file;
+unget_char(int ch, FILE *file)
{
/*
* Sneaky hack: we wrapped an in-memory buffer into a FILE*
@@ -108,11 +105,7 @@ unget_char(ch, file)
* (4) returns EOF or terminating character, whichever
*/
int
-get_string(string, size, file, terms)
- char *string;
- int size;
- FILE *file;
- char *terms;
+get_string(char *string, int size, FILE *file, char *terms)
{
int ch;
@@ -133,8 +126,7 @@ get_string(string, size, file, terms)
* skip_comments(file) : read past comment (if any)
*/
void
-skip_comments(file)
- FILE *file;
+skip_comments(FILE *file)
{
int ch;
diff --git a/src/backend/utils/adt/xid8funcs.c
b/src/backend/utils/adt/xid8funcs.c
index 254803a294c..9650fc0b6f8 100644
--- a/src/backend/utils/adt/xid8funcs.c
+++ b/src/backend/utils/adt/xid8funcs.c
@@ -227,7 +227,7 @@ is_visible_fxid(FullTransactionId value, const pg_snapshot
*snap)
#ifdef USE_BSEARCH_IF_NXIP_GREATER
else if (snap->nxip > USE_BSEARCH_IF_NXIP_GREATER)
{
- void *res;
+ const void *res;
res = bsearch(&value, snap->xip, snap->nxip,
sizeof(FullTransactionId),
cmp_fxid);
diff --git a/src/backend/utils/misc/fstream/fstream.c
b/src/backend/utils/misc/fstream/fstream.c
index 56a730b98ad..a6dbe145b84 100644
--- a/src/backend/utils/misc/fstream/fstream.c
+++ b/src/backend/utils/misc/fstream/fstream.c
@@ -433,7 +433,7 @@ static int glob_path(fstream_t *fs, const char *path)
while (*path == ' ')
path++;
- p = strchr(path, ' ');
+ p = (char *)strchr(path, ' ');
if (p)
*p++ = 0;
diff --git a/src/backend/utils/misc/uriparser.c
b/src/backend/utils/misc/uriparser.c
index 0ee2ecad847..58cd124ebf5 100644
--- a/src/backend/utils/misc/uriparser.c
+++ b/src/backend/utils/misc/uriparser.c
@@ -70,7 +70,7 @@ ParseExternalTableUri(const char *uri_str)
else /* not recognized. treat it as a custom protocol */
{
- char *post_protocol = strstr(uri_str, "://");
+ const char *post_protocol = strstr(uri_str, "://");
if(!post_protocol)
{
diff --git a/src/backend/utils/resource_manager/memquota.c
b/src/backend/utils/resource_manager/memquota.c
index 1cf5f805df9..95d91045f15 100644
--- a/src/backend/utils/resource_manager/memquota.c
+++ b/src/backend/utils/resource_manager/memquota.c
@@ -287,6 +287,16 @@ IsRootOperatorInGroup(Node *node)
* in a plan.
*/
+static bool PolicyAutoPrelimWalker(Node *node, PolicyAutoContext *context);
+static bool PolicyAutoAssignWalker(Node *node, PolicyAutoContext *context);
+static bool PolicyEagerFreePrelimWalker(Node *node, PolicyEagerFreeContext
*context);
+static bool PolicyEagerFreeAssignWalker(Node *node, PolicyEagerFreeContext
*context);
+
+static bool PolicyAutoPrelimWalker_adapter(Node *node, void *context);
+static bool PolicyAutoAssignWalker_adapter(Node *node, void *context);
+static bool PolicyEagerFreePrelimWalker_adapter(Node *node, void *context);
+static bool PolicyEagerFreeAssignWalker_adapter(Node *node, void *context);
+
static bool PolicyAutoPrelimWalker(Node *node, PolicyAutoContext *context)
{
if (node == NULL)
@@ -306,7 +316,7 @@ static bool PolicyAutoPrelimWalker(Node *node,
PolicyAutoContext *context)
context->numNonMemIntensiveOperators++;
}
}
- return plan_tree_walker(node, PolicyAutoPrelimWalker, context, true);
+ return plan_tree_walker(node, PolicyAutoPrelimWalker_adapter, context,
true);
}
/**
@@ -350,7 +360,7 @@ static bool PolicyAutoAssignWalker(Node *node,
PolicyAutoContext *context)
elog(GP_RESMANAGER_MEMORY_LOG_LEVEL, "assigning plan
node memory = %dKB", (int )planNode->operatorMemKB);
}
}
- return plan_tree_walker(node, PolicyAutoAssignWalker, context, true);
+ return plan_tree_walker(node, PolicyAutoAssignWalker_adapter, context,
true);
}
/**
@@ -715,7 +725,7 @@ PolicyEagerFreePrelimWalker(Node *node,
PolicyEagerFreeContext *context)
}
}
- bool result = plan_tree_walker(node, PolicyEagerFreePrelimWalker,
context, true);
+ bool result = plan_tree_walker(node,
PolicyEagerFreePrelimWalker_adapter, context, true);
Assert(!result);
/*
@@ -820,7 +830,7 @@ PolicyEagerFreeAssignWalker(Node *node,
PolicyEagerFreeContext *context)
}
}
- bool result = plan_tree_walker(node, PolicyEagerFreeAssignWalker,
context, true);
+ bool result = plan_tree_walker(node,
PolicyEagerFreeAssignWalker_adapter, context, true);
Assert(!result);
/*
@@ -835,6 +845,30 @@ PolicyEagerFreeAssignWalker(Node *node,
PolicyEagerFreeContext *context)
return result;
}
+static bool
+PolicyAutoPrelimWalker_adapter(Node *node, void *context)
+{
+ return PolicyAutoPrelimWalker(node, (PolicyAutoContext *) context);
+}
+
+static bool
+PolicyAutoAssignWalker_adapter(Node *node, void *context)
+{
+ return PolicyAutoAssignWalker(node, (PolicyAutoContext *) context);
+}
+
+static bool
+PolicyEagerFreePrelimWalker_adapter(Node *node, void *context)
+{
+ return PolicyEagerFreePrelimWalker(node, (PolicyEagerFreeContext *)
context);
+}
+
+static bool
+PolicyEagerFreeAssignWalker_adapter(Node *node, void *context)
+{
+ return PolicyEagerFreeAssignWalker(node, (PolicyEagerFreeContext *)
context);
+}
+
/*
* PolicyEagerFreeAssignOperatorMemoryKB
* Main entry point for memory quota OPTIMIZE. This function distributes
the memory
diff --git a/src/bin/gpfdist/gpfdist.c b/src/bin/gpfdist/gpfdist.c
index ad7fb868313..b9adb5f6035 100644
--- a/src/bin/gpfdist/gpfdist.c
+++ b/src/bin/gpfdist/gpfdist.c
@@ -3774,7 +3774,7 @@ static int request_set_transform(request_t *r)
*/
char* param = "#transform=";
- char* start = strstr(r->path, param);
+ char* start = (char*)strstr(r->path, param);
if (start)
{
/*
diff --git a/src/bin/pg_waldump/pg_waldump.c b/src/bin/pg_waldump/pg_waldump.c
index 92e8c85f745..fad472eb6da 100644
--- a/src/bin/pg_waldump/pg_waldump.c
+++ b/src/bin/pg_waldump/pg_waldump.c
@@ -160,7 +160,7 @@ create_fullpage_directory(char *path)
static void
split_path(const char *path, char **dir, char **fname)
{
- char *sep;
+ const char *sep;
/* split filepath into directory & filename */
sep = strrchr(path, '/');
diff --git a/src/bin/pgbench/pgbench.c b/src/bin/pgbench/pgbench.c
index 4dc4068b5c4..b403844d1cb 100644
--- a/src/bin/pgbench/pgbench.c
+++ b/src/bin/pgbench/pgbench.c
@@ -6140,7 +6140,7 @@ findBuiltin(const char *name)
static int
parseScriptWeight(const char *option, char **script)
{
- char *sep;
+ const char *sep;
int weight;
if ((sep = strrchr(option, WSEP)))
diff --git a/src/common/compression.c b/src/common/compression.c
index ee937623f0b..378e2381552 100644
--- a/src/common/compression.c
+++ b/src/common/compression.c
@@ -425,7 +425,7 @@ validate_compress_specification(pg_compress_specification
*spec)
void
parse_compress_options(const char *option, char **algorithm, char **detail)
{
- char *sep;
+ const char *sep;
char *endp;
long result;
diff --git a/src/include/cdb/cdbplan.h b/src/include/cdb/cdbplan.h
index b133d832ddf..892b8b07049 100644
--- a/src/include/cdb/cdbplan.h
+++ b/src/include/cdb/cdbplan.h
@@ -18,7 +18,7 @@
#include "optimizer/walkers.h"
-extern Node * plan_tree_mutator(Node *node, Node *(*mutator) (), void
*context, bool recurse_into_subplans);
+extern Node * plan_tree_mutator(Node *node, Node *(*mutator) (Node *, void *),
void *context, bool recurse_into_subplans);
extern String *get_tle_name(TargetEntry *tle, List *rtable, const char
*default_name);
diff --git a/src/include/optimizer/walkers.h b/src/include/optimizer/walkers.h
index d29bc5551e8..54234ada1e1 100644
--- a/src/include/optimizer/walkers.h
+++ b/src/include/optimizer/walkers.h
@@ -31,9 +31,9 @@ extern void exec_init_plan_tree_base(plan_tree_base_prefix
*base, PlannedStmt *s
extern Plan *plan_tree_base_subplan_get_plan(plan_tree_base_prefix *base,
SubPlan *subplan);
extern void plan_tree_base_subplan_put_plan(plan_tree_base_prefix *base,
SubPlan *subplan, Plan *plan);
-extern bool walk_plan_node_fields(Plan *plan, bool (*walker) (), void
*context);
+extern bool walk_plan_node_fields(Plan *plan, bool (*walker) (Node *, void *),
void *context);
-extern bool plan_tree_walker(Node *node, bool (*walker) (), void *context,
bool recurse_into_subplans);
+extern bool plan_tree_walker(Node *node, bool (*walker) (Node *, void *), void
*context, bool recurse_into_subplans);
/**
* Useful functions that aggregate information from expressions or plans.
diff --git a/src/test/regress/pg_regress.c b/src/test/regress/pg_regress.c
index dd15d9cb5e5..756243f0b9c 100644
--- a/src/test/regress/pg_regress.c
+++ b/src/test/regress/pg_regress.c
@@ -1187,8 +1187,8 @@ char *
get_expectfile(const char *testname, const char *file, const char
*default_expectfile)
{
char expectpath[MAXPGPATH];
- char *file_type;
- char *file_name;
+ const char *file_type;
+ const char *file_name;
char base_file[MAXPGPATH];
_resultmap *rm;
char buf[MAXPGPATH];
@@ -1219,7 +1219,7 @@ get_expectfile(const char *testname, const char *file,
const char *default_expec
* up to the last slash.
*/
{
- char *p = strrchr(default_expectfile, '/');
+ const char *p = strrchr(default_expectfile, '/');
if (!p)
return NULL;
diff --git a/src/timezone/zic.c b/src/timezone/zic.c
index a51fb55c721..55a6835f367 100644
--- a/src/timezone/zic.c
+++ b/src/timezone/zic.c
@@ -2638,7 +2638,7 @@ doabbr(char *abbr, struct zone const *zp, char const
*letters,
bool isdst, zic_t save, bool doquotes)
{
char *cp;
- char *slashp;
+ const char *slashp;
size_t len;
char const *format = zp->z_format;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]