From 92c1e5672f97eb545f7c561f07f502ad19ab5e06 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Fri, 29 Aug 2025 13:18:51 +0200 Subject: [PATCH 7/7] Change fmgr.h typedefs to use original names fmgr.h defined some types such as fmNodePtr which is just Node *, but it made its own types to avoid having to include various header files. With C11, we can now instead typedef the original names without fear of conflicts. --- src/backend/utils/fmgr/fmgr.c | 5 ++--- src/include/fmgr.h | 30 +++++++++++++++--------------- src/include/utils/builtins.h | 2 +- src/tools/pgindent/typedefs.list | 4 ---- 4 files changed, 18 insertions(+), 23 deletions(-) diff --git a/src/backend/utils/fmgr/fmgr.c b/src/backend/utils/fmgr/fmgr.c index 5543440a33e..b4c1e2c4b21 100644 --- a/src/backend/utils/fmgr/fmgr.c +++ b/src/backend/utils/fmgr/fmgr.c @@ -1570,7 +1570,6 @@ InputFunctionCall(FmgrInfo *flinfo, char *str, Oid typioparam, int32 typmod) * This is basically like InputFunctionCall, but the converted Datum is * returned into *result while the function result is true for success or * false for failure. Also, the caller may pass an ErrorSaveContext node. - * (We declare that as "fmNodePtr" to avoid including nodes.h in fmgr.h.) * * If escontext points to an ErrorSaveContext, any "soft" errors detected by * the input function will be reported by filling the escontext struct and @@ -1584,7 +1583,7 @@ InputFunctionCall(FmgrInfo *flinfo, char *str, Oid typioparam, int32 typmod) bool InputFunctionCallSafe(FmgrInfo *flinfo, char *str, Oid typioparam, int32 typmod, - fmNodePtr escontext, + Node *escontext, Datum *result) { LOCAL_FCINFO(fcinfo, 3); @@ -1639,7 +1638,7 @@ InputFunctionCallSafe(FmgrInfo *flinfo, char *str, bool DirectInputFunctionCallSafe(PGFunction func, char *str, Oid typioparam, int32 typmod, - fmNodePtr escontext, + Node *escontext, Datum *result) { LOCAL_FCINFO(fcinfo, 3); diff --git a/src/include/fmgr.h b/src/include/fmgr.h index c7236e42972..74fe3ea0575 100644 --- a/src/include/fmgr.h +++ b/src/include/fmgr.h @@ -19,14 +19,14 @@ #define FMGR_H /* We don't want to include primnodes.h here, so make some stub references */ -typedef struct Node *fmNodePtr; -typedef struct Aggref *fmAggrefPtr; +typedef struct Node Node; +typedef struct Aggref Aggref; /* Likewise, avoid including execnodes.h here */ -typedef void (*fmExprContextCallbackFunction) (Datum arg); +typedef void (*ExprContextCallbackFunction) (Datum arg); /* Likewise, avoid including stringinfo.h here */ -typedef struct StringInfoData *fmStringInfo; +typedef struct StringInfoData *StringInfo; /* @@ -63,7 +63,7 @@ typedef struct FmgrInfo unsigned char fn_stats; /* collect stats if track_functions > this */ void *fn_extra; /* extra space for use by handler */ MemoryContext fn_mcxt; /* memory context to store fn_extra in */ - fmNodePtr fn_expr; /* expression parse tree for call, or NULL */ + Node *fn_expr; /* expression parse tree for call, or NULL */ } FmgrInfo; /* @@ -85,8 +85,8 @@ typedef struct FmgrInfo typedef struct FunctionCallInfoBaseData { FmgrInfo *flinfo; /* ptr to lookup info used for this call */ - fmNodePtr context; /* pass info about context of call */ - fmNodePtr resultinfo; /* pass or return extra info about result */ + Node *context; /* pass info about context of call */ + Node *resultinfo; /* pass or return extra info about result */ Oid fncollation; /* collation for function to use */ #define FIELDNO_FUNCTIONCALLINFODATA_ISNULL 4 bool isnull; /* function must set true if result is NULL */ @@ -742,19 +742,19 @@ extern Datum InputFunctionCall(FmgrInfo *flinfo, char *str, Oid typioparam, int32 typmod); extern bool InputFunctionCallSafe(FmgrInfo *flinfo, char *str, Oid typioparam, int32 typmod, - fmNodePtr escontext, + Node *escontext, Datum *result); extern bool DirectInputFunctionCallSafe(PGFunction func, char *str, Oid typioparam, int32 typmod, - fmNodePtr escontext, + Node *escontext, Datum *result); extern Datum OidInputFunctionCall(Oid functionId, char *str, Oid typioparam, int32 typmod); extern char *OutputFunctionCall(FmgrInfo *flinfo, Datum val); extern char *OidOutputFunctionCall(Oid functionId, Datum val); -extern Datum ReceiveFunctionCall(FmgrInfo *flinfo, fmStringInfo buf, +extern Datum ReceiveFunctionCall(FmgrInfo *flinfo, StringInfo buf, Oid typioparam, int32 typmod); -extern Datum OidReceiveFunctionCall(Oid functionId, fmStringInfo buf, +extern Datum OidReceiveFunctionCall(Oid functionId, StringInfo buf, Oid typioparam, int32 typmod); extern bytea *SendFunctionCall(FmgrInfo *flinfo, Datum val); extern bytea *OidSendFunctionCall(Oid functionId, Datum val); @@ -767,9 +767,9 @@ extern const Pg_finfo_record *fetch_finfo_record(void *filehandle, const char *f extern Oid fmgr_internal_function(const char *proname); extern Oid get_fn_expr_rettype(FmgrInfo *flinfo); extern Oid get_fn_expr_argtype(FmgrInfo *flinfo, int argnum); -extern Oid get_call_expr_argtype(fmNodePtr expr, int argnum); +extern Oid get_call_expr_argtype(Node *expr, int argnum); extern bool get_fn_expr_arg_stable(FmgrInfo *flinfo, int argnum); -extern bool get_call_expr_arg_stable(fmNodePtr expr, int argnum); +extern bool get_call_expr_arg_stable(Node *expr, int argnum); extern bool get_fn_expr_variadic(FmgrInfo *flinfo); extern bytea *get_fn_opclass_options(FmgrInfo *flinfo); extern bool has_fn_opclass_options(FmgrInfo *flinfo); @@ -814,11 +814,11 @@ extern void RestoreLibraryState(char *start_address); extern int AggCheckCallContext(FunctionCallInfo fcinfo, MemoryContext *aggcontext); -extern fmAggrefPtr AggGetAggref(FunctionCallInfo fcinfo); +extern Aggref *AggGetAggref(FunctionCallInfo fcinfo); extern MemoryContext AggGetTempMemoryContext(FunctionCallInfo fcinfo); extern bool AggStateIsShared(FunctionCallInfo fcinfo); extern void AggRegisterCallback(FunctionCallInfo fcinfo, - fmExprContextCallbackFunction func, + ExprContextCallbackFunction func, Datum arg); /* diff --git a/src/include/utils/builtins.h b/src/include/utils/builtins.h index 1c98c7d2255..ce6285a2c03 100644 --- a/src/include/utils/builtins.h +++ b/src/include/utils/builtins.h @@ -80,7 +80,7 @@ extern PGDLLIMPORT bool quote_all_identifiers; extern const char *quote_identifier(const char *ident); extern char *quote_qualified_identifier(const char *qualifier, const char *ident); -extern void generate_operator_clause(fmStringInfo buf, +extern void generate_operator_clause(StringInfo buf, const char *leftop, Oid leftoptype, Oid opoid, const char *rightop, Oid rightoptype); diff --git a/src/tools/pgindent/typedefs.list b/src/tools/pgindent/typedefs.list index 0f4974b5fcb..5736a41c91a 100644 --- a/src/tools/pgindent/typedefs.list +++ b/src/tools/pgindent/typedefs.list @@ -3636,10 +3636,6 @@ float8 float8KEY floating_decimal_32 floating_decimal_64 -fmAggrefPtr -fmExprContextCallbackFunction -fmNodePtr -fmStringInfo fmgr_hook_type foreign_glob_cxt foreign_loc_cxt -- 2.51.0