aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Eisentraut <peter@eisentraut.org>2024-10-22 08:12:43 +0200
committerPeter Eisentraut <peter@eisentraut.org>2024-11-26 13:36:49 +0100
commitf3834c12afd8125c4e5e8774a4b941a58dab8f5b (patch)
treedaa590bbfe54b3aeb429207270111d215e44ed84
parentad89c8bda1f096a8592f1c27abec1e34e5f10408 (diff)
downloadpostgresql-f3834c12afd8125c4e5e8774a4b941a58dab8f5b.tar.gz
postgresql-f3834c12afd8125c4e5e8774a4b941a58dab8f5b.zip
Fix C23 compiler warning
The approach of declaring a function pointer with an empty argument list and hoping that the compiler will not complain about casting it to another type no longer works with C23, because foo() is now equivalent to foo(void). We don't need to do this here. With a few struct forward declarations we can supply a correct argument list without having to pull in another header file. (This is the only new warning with C23. Together with the previous fix a67a49648d9, this makes the whole code compile cleanly under C23.) Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://www.postgresql.org/message-id/flat/95c6a9bf-d306-43d8-b880-664ef08f2944%40eisentraut.org Discussion: https://www.postgresql.org/message-id/flat/87o72eo9iu.fsf%40gentoo.org
-rw-r--r--src/include/nodes/pathnodes.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/include/nodes/pathnodes.h b/src/include/nodes/pathnodes.h
index 2ba297c1172..50b09781f25 100644
--- a/src/include/nodes/pathnodes.h
+++ b/src/include/nodes/pathnodes.h
@@ -1101,6 +1101,9 @@ typedef struct IndexOptInfo IndexOptInfo;
#define HAVE_INDEXOPTINFO_TYPEDEF 1
#endif
+struct IndexPath; /* avoid including pathnodes.h here */
+struct PlannerInfo; /* avoid including pathnodes.h here */
+
struct IndexOptInfo
{
pg_node_attr(no_copy_equal, no_read, no_query_jumble)
@@ -1200,7 +1203,7 @@ struct IndexOptInfo
bool amcanmarkpos;
/* AM's cost estimator */
/* Rather than include amapi.h here, we declare amcostestimate like this */
- void (*amcostestimate) () pg_node_attr(read_write_ignore);
+ void (*amcostestimate) (struct PlannerInfo *, struct IndexPath *, double, Cost *, Cost *, Selectivity *, double *, double *) pg_node_attr(read_write_ignore);
};
/*