0006-Drop-excessive-dereferencing-of-function-pointers.patch

text/plain

Filename: 0006-Drop-excessive-dereferencing-of-function-pointers.patch
Type: text/plain
Part: 5
Message: assorted code cleanup

Patch

Format: format-patch
Series: patch 0006
Subject: Drop excessive dereferencing of function pointers
File+
contrib/btree_gist/btree_utils_num.c 17 17
contrib/btree_gist/btree_utils_var.c 22 22
contrib/ltree/lquery_op.c 2 2
contrib/ltree/ltxtquery_op.c 1 1
contrib/sepgsql/hooks.c 3 3
contrib/sepgsql/label.c 4 4
src/backend/access/transam/xact.c 2 2
src/backend/catalog/objectaccess.c 5 5
src/backend/commands/analyze.c 4 4
src/backend/commands/explain.c 2 2
src/backend/commands/portalcmds.c 1 1
src/backend/commands/seclabel.c 1 1
src/backend/commands/user.c 2 2
src/backend/executor/execCurrent.c 1 1
src/backend/executor/execExprInterp.c 9 9
src/backend/executor/execMain.c 8 8
src/backend/executor/execParallel.c 1 1
src/backend/executor/execTuples.c 3 3
src/backend/executor/execUtils.c 1 1
src/backend/executor/functions.c 1 1
src/backend/libpq/auth.c 1 1
src/backend/libpq/ifaddr.c 1 1
src/backend/nodes/params.c 3 3
src/backend/optimizer/path/allpaths.c 1 1
src/backend/optimizer/plan/planmain.c 2 2
src/backend/optimizer/plan/planner.c 6 6
src/backend/optimizer/prep/prepunion.c 1 1
src/backend/optimizer/util/plancat.c 1 1
src/backend/parser/analyze.c 2 2
src/backend/parser/parse_coerce.c 1 1
src/backend/parser/parse_expr.c 5 5
src/backend/parser/parse_target.c 2 2
src/backend/rewrite/rewriteManip.c 1 1
src/backend/rewrite/rowsecurity.c 2 2
src/backend/storage/file/fd.c 2 2
src/backend/storage/ipc/ipc.c 6 6
src/backend/storage/smgr/smgr.c 22 22
src/backend/tcop/postgres.c 4 4
src/backend/tcop/pquery.c 4 4
src/backend/tcop/utility.c 1 1
src/backend/utils/adt/array_typanalyze.c 1 1
src/backend/utils/adt/expandeddatum.c 2 2
src/backend/utils/adt/json.c 18 18
src/backend/utils/adt/jsonfuncs.c 1 1
src/backend/utils/adt/selfuncs.c 6 6
src/backend/utils/cache/catcache.c 2 2
src/backend/utils/cache/inval.c 4 4
src/backend/utils/error/elog.c 3 3
src/backend/utils/fmgr/dfmgr.c 3 3
src/backend/utils/fmgr/fmgr.c 15 15
src/include/utils/selfuncs.h 1 1
From aa8b02ac5b8dce5893bf22d808698edb4790cd6f Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
Date: Thu, 17 Aug 2017 12:39:20 -0400
Subject: [PATCH 6/6] Drop excessive dereferencing of function pointers

Remove the excessive punctuation when calling a function through a
function pointer. This style was inconsistently applied and seems harder
to read.
---
 contrib/btree_gist/btree_utils_num.c     | 34 ++++++++++++------------
 contrib/btree_gist/btree_utils_var.c     | 44 ++++++++++++++++----------------
 contrib/ltree/lquery_op.c                |  4 +--
 contrib/ltree/ltxtquery_op.c             |  2 +-
 contrib/sepgsql/hooks.c                  |  6 ++---
 contrib/sepgsql/label.c                  |  8 +++---
 src/backend/access/transam/xact.c        |  4 +--
 src/backend/catalog/objectaccess.c       | 10 ++++----
 src/backend/commands/analyze.c           |  8 +++---
 src/backend/commands/explain.c           |  4 +--
 src/backend/commands/portalcmds.c        |  2 +-
 src/backend/commands/seclabel.c          |  2 +-
 src/backend/commands/user.c              |  4 +--
 src/backend/executor/execCurrent.c       |  2 +-
 src/backend/executor/execExprInterp.c    | 18 ++++++-------
 src/backend/executor/execMain.c          | 16 ++++++------
 src/backend/executor/execParallel.c      |  2 +-
 src/backend/executor/execTuples.c        |  6 ++---
 src/backend/executor/execUtils.c         |  2 +-
 src/backend/executor/functions.c         |  2 +-
 src/backend/libpq/auth.c                 |  2 +-
 src/backend/libpq/ifaddr.c               |  2 +-
 src/backend/nodes/params.c               |  6 ++---
 src/backend/optimizer/path/allpaths.c    |  2 +-
 src/backend/optimizer/plan/planmain.c    |  4 +--
 src/backend/optimizer/plan/planner.c     | 12 ++++-----
 src/backend/optimizer/prep/prepunion.c   |  2 +-
 src/backend/optimizer/util/plancat.c     |  2 +-
 src/backend/parser/analyze.c             |  4 +--
 src/backend/parser/parse_coerce.c        |  2 +-
 src/backend/parser/parse_expr.c          | 10 ++++----
 src/backend/parser/parse_target.c        |  4 +--
 src/backend/rewrite/rewriteManip.c       |  2 +-
 src/backend/rewrite/rowsecurity.c        |  4 +--
 src/backend/storage/file/fd.c            |  4 +--
 src/backend/storage/ipc/ipc.c            | 12 ++++-----
 src/backend/storage/smgr/smgr.c          | 44 ++++++++++++++++----------------
 src/backend/tcop/postgres.c              |  8 +++---
 src/backend/tcop/pquery.c                |  8 +++---
 src/backend/tcop/utility.c               |  2 +-
 src/backend/utils/adt/array_typanalyze.c |  2 +-
 src/backend/utils/adt/expandeddatum.c    |  4 +--
 src/backend/utils/adt/json.c             | 36 +++++++++++++-------------
 src/backend/utils/adt/jsonfuncs.c        |  2 +-
 src/backend/utils/adt/selfuncs.c         | 12 ++++-----
 src/backend/utils/cache/catcache.c       |  4 +--
 src/backend/utils/cache/inval.c          |  8 +++---
 src/backend/utils/error/elog.c           |  6 ++---
 src/backend/utils/fmgr/dfmgr.c           |  6 ++---
 src/backend/utils/fmgr/fmgr.c            | 30 +++++++++++-----------
 src/include/utils/selfuncs.h             |  2 +-
 51 files changed, 214 insertions(+), 214 deletions(-)

diff --git a/contrib/btree_gist/btree_utils_num.c b/contrib/btree_gist/btree_utils_num.c
index b2295f2c7d..c2faf8b25a 100644
--- a/contrib/btree_gist/btree_utils_num.c
+++ b/contrib/btree_gist/btree_utils_num.c
@@ -184,10 +184,10 @@ gbt_num_union(GBT_NUMKEY *out, const GistEntryVector *entryvec, const gbtree_nin
 		c.lower = &cur[0];
 		c.upper = &cur[tinfo->size];
 		/* if out->lower > cur->lower, adopt cur as lower */
-		if ((*tinfo->f_gt) (o.lower, c.lower, flinfo))
+		if (tinfo->f_gt(o.lower, c.lower, flinfo))
 			memcpy((void *) o.lower, (void *) c.lower, tinfo->size);
 		/* if out->upper < cur->upper, adopt cur as upper */
-		if ((*tinfo->f_lt) (o.upper, c.upper, flinfo))
+		if (tinfo->f_lt(o.upper, c.upper, flinfo))
 			memcpy((void *) o.upper, (void *) c.upper, tinfo->size);
 	}
 
@@ -211,8 +211,8 @@ gbt_num_same(const GBT_NUMKEY *a, const GBT_NUMKEY *b, const gbtree_ninfo *tinfo
 	b2.lower = &(((GBT_NUMKEY *) b)[0]);
 	b2.upper = &(((GBT_NUMKEY *) b)[tinfo->size]);
 
-	return ((*tinfo->f_eq) (b1.lower, b2.lower, flinfo) &&
-			(*tinfo->f_eq) (b1.upper, b2.upper, flinfo));
+	return (tinfo->f_eq(b1.lower, b2.lower, flinfo) &&
+			tinfo->f_eq(b1.upper, b2.upper, flinfo));
 }
 
 
@@ -236,9 +236,9 @@ gbt_num_bin_union(Datum *u, GBT_NUMKEY *e, const gbtree_ninfo *tinfo, FmgrInfo *
 
 		ur.lower = &(((GBT_NUMKEY *) DatumGetPointer(*u))[0]);
 		ur.upper = &(((GBT_NUMKEY *) DatumGetPointer(*u))[tinfo->size]);
-		if ((*tinfo->f_gt) ((void *) ur.lower, (void *) rd.lower, flinfo))
+		if (tinfo->f_gt((void *) ur.lower, (void *) rd.lower, flinfo))
 			memcpy((void *) ur.lower, (void *) rd.lower, tinfo->size);
-		if ((*tinfo->f_lt) ((void *) ur.upper, (void *) rd.upper, flinfo))
+		if (tinfo->f_lt((void *) ur.upper, (void *) rd.upper, flinfo))
 			memcpy((void *) ur.upper, (void *) rd.upper, tinfo->size);
 	}
 }
@@ -264,33 +264,33 @@ gbt_num_consistent(const GBT_NUMKEY_R *key,
 	switch (*strategy)
 	{
 		case BTLessEqualStrategyNumber:
-			retval = (*tinfo->f_ge) (query, key->lower, flinfo);
+			retval = tinfo->f_ge(query, key->lower, flinfo);
 			break;
 		case BTLessStrategyNumber:
 			if (is_leaf)
-				retval = (*tinfo->f_gt) (query, key->lower, flinfo);
+				retval = tinfo->f_gt(query, key->lower, flinfo);
 			else
-				retval = (*tinfo->f_ge) (query, key->lower, flinfo);
+				retval = tinfo->f_ge(query, key->lower, flinfo);
 			break;
 		case BTEqualStrategyNumber:
 			if (is_leaf)
-				retval = (*tinfo->f_eq) (query, key->lower, flinfo);
+				retval = tinfo->f_eq(query, key->lower, flinfo);
 			else
-				retval = ((*tinfo->f_le) (key->lower, query, flinfo) &&
-						  (*tinfo->f_le) (query, key->upper, flinfo));
+				retval = (tinfo->f_le(key->lower, query, flinfo) &&
+						  tinfo->f_le(query, key->upper, flinfo));
 			break;
 		case BTGreaterStrategyNumber:
 			if (is_leaf)
-				retval = (*tinfo->f_lt) (query, key->upper, flinfo);
+				retval = tinfo->f_lt(query, key->upper, flinfo);
 			else
-				retval = (*tinfo->f_le) (query, key->upper, flinfo);
+				retval = tinfo->f_le(query, key->upper, flinfo);
 			break;
 		case BTGreaterEqualStrategyNumber:
-			retval = (*tinfo->f_le) (query, key->upper, flinfo);
+			retval = tinfo->f_le(query, key->upper, flinfo);
 			break;
 		case BtreeGistNotEqualStrategyNumber:
-			retval = (!((*tinfo->f_eq) (query, key->lower, flinfo) &&
-						(*tinfo->f_eq) (query, key->upper, flinfo)));
+			retval = (!(tinfo->f_eq(query, key->lower, flinfo) &&
+						tinfo->f_eq(query, key->upper, flinfo)));
 			break;
 		default:
 			retval = false;
diff --git a/contrib/btree_gist/btree_utils_var.c b/contrib/btree_gist/btree_utils_var.c
index ecc87f3bb3..586de63a4d 100644
--- a/contrib/btree_gist/btree_utils_var.c
+++ b/contrib/btree_gist/btree_utils_var.c
@@ -109,7 +109,7 @@ gbt_var_leaf2node(GBT_VARKEY *leaf, const gbtree_vinfo *tinfo, FmgrInfo *flinfo)
 	GBT_VARKEY *out = leaf;
 
 	if (tinfo->f_l2n)
-		out = (*tinfo->f_l2n) (leaf, flinfo);
+		out = tinfo->f_l2n(leaf, flinfo);
 
 	return out;
 }
@@ -255,13 +255,13 @@ gbt_var_bin_union(Datum *u, GBT_VARKEY *e, Oid collation,
 		nr.lower = ro.lower;
 		nr.upper = ro.upper;
 
-		if ((*tinfo->f_cmp) (ro.lower, eo.lower, collation, flinfo) > 0)
+		if (tinfo->f_cmp(ro.lower, eo.lower, collation, flinfo) > 0)
 		{
 			nr.lower = eo.lower;
 			update = true;
 		}
 
-		if ((*tinfo->f_cmp) (ro.upper, eo.upper, collation, flinfo) < 0)
+		if (tinfo->f_cmp(ro.upper, eo.upper, collation, flinfo) < 0)
 		{
 			nr.upper = eo.upper;
 			update = true;
@@ -371,8 +371,8 @@ gbt_var_same(Datum d1, Datum d2, Oid collation,
 	r1 = gbt_var_key_readable(t1);
 	r2 = gbt_var_key_readable(t2);
 
-	return ((*tinfo->f_cmp) (r1.lower, r2.lower, collation, flinfo) == 0 &&
-			(*tinfo->f_cmp) (r1.upper, r2.upper, collation, flinfo) == 0);
+	return (tinfo->f_cmp(r1.lower, r2.lower, collation, flinfo) == 0 &&
+			tinfo->f_cmp(r1.upper, r2.upper, collation, flinfo) == 0);
 }
 
 
@@ -400,9 +400,9 @@ gbt_var_penalty(float *res, const GISTENTRY *o, const GISTENTRY *n,
 
 	if ((VARSIZE(ok.lower) - VARHDRSZ) == 0 && (VARSIZE(ok.upper) - VARHDRSZ) == 0)
 		*res = 0.0;
-	else if (!(((*tinfo->f_cmp) (nk.lower, ok.lower, collation, flinfo) >= 0 ||
+	else if (!((tinfo->f_cmp(nk.lower, ok.lower, collation, flinfo) >= 0 ||
 				gbt_bytea_pf_match(ok.lower, nk.lower, tinfo)) &&
-			   ((*tinfo->f_cmp) (nk.upper, ok.upper, collation, flinfo) <= 0 ||
+			   (tinfo->f_cmp(nk.upper, ok.upper, collation, flinfo) <= 0 ||
 				gbt_bytea_pf_match(ok.upper, nk.upper, tinfo))))
 	{
 		Datum		d = PointerGetDatum(0);
@@ -449,9 +449,9 @@ gbt_vsrt_cmp(const void *a, const void *b, void *arg)
 	const gbt_vsrt_arg *varg = (const gbt_vsrt_arg *) arg;
 	int			res;
 
-	res = (*varg->tinfo->f_cmp) (ar.lower, br.lower, varg->collation, varg->flinfo);
+	res = varg->tinfo->f_cmp(ar.lower, br.lower, varg->collation, varg->flinfo);
 	if (res == 0)
-		return (*varg->tinfo->f_cmp) (ar.upper, br.upper, varg->collation, varg->flinfo);
+		return varg->tinfo->f_cmp(ar.upper, br.upper, varg->collation, varg->flinfo);
 
 	return res;
 }
@@ -567,44 +567,44 @@ gbt_var_consistent(GBT_VARKEY_R *key,
 	{
 		case BTLessEqualStrategyNumber:
 			if (is_leaf)
-				retval = (*tinfo->f_ge) (query, key->lower, collation, flinfo);
+				retval = tinfo->f_ge(query, key->lower, collation, flinfo);
 			else
-				retval = (*tinfo->f_cmp) (query, key->lower, collation, flinfo) >= 0
+				retval = tinfo->f_cmp(query, key->lower, collation, flinfo) >= 0
 					|| gbt_var_node_pf_match(key, query, tinfo);
 			break;
 		case BTLessStrategyNumber:
 			if (is_leaf)
-				retval = (*tinfo->f_gt) (query, key->lower, collation, flinfo);
+				retval = tinfo->f_gt(query, key->lower, collation, flinfo);
 			else
-				retval = (*tinfo->f_cmp) (query, key->lower, collation, flinfo) >= 0
+				retval = tinfo->f_cmp(query, key->lower, collation, flinfo) >= 0
 					|| gbt_var_node_pf_match(key, query, tinfo);
 			break;
 		case BTEqualStrategyNumber:
 			if (is_leaf)
-				retval = (*tinfo->f_eq) (query, key->lower, collation, flinfo);
+				retval = tinfo->f_eq(query, key->lower, collation, flinfo);
 			else
 				retval =
-					((*tinfo->f_cmp) (key->lower, query, collation, flinfo) <= 0 &&
-					 (*tinfo->f_cmp) (query, key->upper, collation, flinfo) <= 0) ||
+					(tinfo->f_cmp(key->lower, query, collation, flinfo) <= 0 &&
+					 tinfo->f_cmp(query, key->upper, collation, flinfo) <= 0) ||
 					gbt_var_node_pf_match(key, query, tinfo);
 			break;
 		case BTGreaterStrategyNumber:
 			if (is_leaf)
-				retval = (*tinfo->f_lt) (query, key->upper, collation, flinfo);
+				retval = tinfo->f_lt(query, key->upper, collation, flinfo);
 			else
-				retval = (*tinfo->f_cmp) (query, key->upper, collation, flinfo) <= 0
+				retval = tinfo->f_cmp(query, key->upper, collation, flinfo) <= 0
 					|| gbt_var_node_pf_match(key, query, tinfo);
 			break;
 		case BTGreaterEqualStrategyNumber:
 			if (is_leaf)
-				retval = (*tinfo->f_le) (query, key->upper, collation, flinfo);
+				retval = tinfo->f_le(query, key->upper, collation, flinfo);
 			else
-				retval = (*tinfo->f_cmp) (query, key->upper, collation, flinfo) <= 0
+				retval = tinfo->f_cmp(query, key->upper, collation, flinfo) <= 0
 					|| gbt_var_node_pf_match(key, query, tinfo);
 			break;
 		case BtreeGistNotEqualStrategyNumber:
-			retval = !((*tinfo->f_eq) (query, key->lower, collation, flinfo) &&
-					   (*tinfo->f_eq) (query, key->upper, collation, flinfo));
+			retval = !(tinfo->f_eq(query, key->lower, collation, flinfo) &&
+					   tinfo->f_eq(query, key->upper, collation, flinfo));
 			break;
 		default:
 			retval = FALSE;
diff --git a/contrib/ltree/lquery_op.c b/contrib/ltree/lquery_op.c
index 229ddd0ae3..9b69a288b2 100644
--- a/contrib/ltree/lquery_op.c
+++ b/contrib/ltree/lquery_op.c
@@ -70,7 +70,7 @@ bool
 				 lent == lenq ||
 				 (lent > lenq && anyend)
 				 ) &&
-				(*cmpptr) (qn, tn, lenq) == 0)
+				cmpptr(qn, tn, lenq) == 0)
 			{
 
 				isok = true;
@@ -123,7 +123,7 @@ checkLevel(lquery_level *curq, ltree_level *curt)
 				  curvar->len == curt->len ||
 				  (curt->len > curvar->len && (curvar->flag & LVAR_ANYEND))
 				  ) &&
-				 (*cmpptr) (curvar->name, curt->name, curvar->len) == 0)
+				 cmpptr(curvar->name, curt->name, curvar->len) == 0)
 		{
 
 			return true;
diff --git a/contrib/ltree/ltxtquery_op.c b/contrib/ltree/ltxtquery_op.c
index 1428c8b478..222a093f8a 100644
--- a/contrib/ltree/ltxtquery_op.c
+++ b/contrib/ltree/ltxtquery_op.c
@@ -73,7 +73,7 @@ checkcondition_str(void *checkval, ITEM *val)
 				  val->length == level->len ||
 				  (level->len > val->length && (val->flag & LVAR_ANYEND))
 				  ) &&
-				 (*cmpptr) (op, level->name, val->length) == 0)
+				 cmpptr(op, level->name, val->length) == 0)
 			return true;
 
 		tlen--;
diff --git a/contrib/sepgsql/hooks.c b/contrib/sepgsql/hooks.c
index 5daa60c412..b99e995d46 100644
--- a/contrib/sepgsql/hooks.c
+++ b/contrib/sepgsql/hooks.c
@@ -92,7 +92,7 @@ sepgsql_object_access(ObjectAccessType access,
 					  void *arg)
 {
 	if (next_object_access_hook)
-		(*next_object_access_hook) (access, classId, objectId, subId, arg);
+		next_object_access_hook(access, classId, objectId, subId, arg);
 
 	switch (access)
 	{
@@ -282,7 +282,7 @@ sepgsql_exec_check_perms(List *rangeTabls, bool abort)
 	 * least, we don't need to check any more.
 	 */
 	if (next_exec_check_perms_hook &&
-		!(*next_exec_check_perms_hook) (rangeTabls, abort))
+		!next_exec_check_perms_hook(rangeTabls, abort))
 		return false;
 
 	if (!sepgsql_dml_privileges(rangeTabls, abort))
@@ -365,7 +365,7 @@ sepgsql_utility_command(PlannedStmt *pstmt,
 		}
 
 		if (next_ProcessUtility_hook)
-			(*next_ProcessUtility_hook) (pstmt, queryString,
+			next_ProcessUtility_hook(pstmt, queryString,
 										 context, params, queryEnv,
 										 dest, completionTag);
 		else
diff --git a/contrib/sepgsql/label.c b/contrib/sepgsql/label.c
index cbb9249be7..2a71badf0b 100644
--- a/contrib/sepgsql/label.c
+++ b/contrib/sepgsql/label.c
@@ -248,7 +248,7 @@ static void
 sepgsql_client_auth(Port *port, int status)
 {
 	if (next_client_auth_hook)
-		(*next_client_auth_hook) (port, status);
+		next_client_auth_hook(port, status);
 
 	/*
 	 * In the case when authentication failed, the supplied socket shall be
@@ -288,7 +288,7 @@ sepgsql_needs_fmgr_hook(Oid functionId)
 	ObjectAddress object;
 
 	if (next_needs_fmgr_hook &&
-		(*next_needs_fmgr_hook) (functionId))
+		next_needs_fmgr_hook(functionId))
 		return true;
 
 	/*
@@ -389,7 +389,7 @@ sepgsql_fmgr_hook(FmgrHookEventType event,
 				client_label_func = stack->new_label;
 			}
 			if (next_fmgr_hook)
-				(*next_fmgr_hook) (event, flinfo, &stack->next_private);
+				next_fmgr_hook(event, flinfo, &stack->next_private);
 			break;
 
 		case FHET_END:
@@ -397,7 +397,7 @@ sepgsql_fmgr_hook(FmgrHookEventType event,
 			stack = (void *) DatumGetPointer(*private);
 
 			if (next_fmgr_hook)
-				(*next_fmgr_hook) (event, flinfo, &stack->next_private);
+				next_fmgr_hook(event, flinfo, &stack->next_private);
 
 			if (stack->new_label)
 			{
diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c
index 5e7e812200..a66749fb29 100644
--- a/src/backend/access/transam/xact.c
+++ b/src/backend/access/transam/xact.c
@@ -3344,7 +3344,7 @@ CallXactCallbacks(XactEvent event)
 	XactCallbackItem *item;
 
 	for (item = Xact_callbacks; item; item = item->next)
-		(*item->callback) (event, item->arg);
+		item->callback(event, item->arg);
 }
 
 
@@ -3401,7 +3401,7 @@ CallSubXactCallbacks(SubXactEvent event,
 	SubXactCallbackItem *item;
 
 	for (item = SubXact_callbacks; item; item = item->next)
-		(*item->callback) (event, mySubid, parentSubid, item->arg);
+		item->callback(event, mySubid, parentSubid, item->arg);
 }
 
 
diff --git a/src/backend/catalog/objectaccess.c b/src/backend/catalog/objectaccess.c
index 9d5eb7b9da..ef304ac9b6 100644
--- a/src/backend/catalog/objectaccess.c
+++ b/src/backend/catalog/objectaccess.c
@@ -37,7 +37,7 @@ RunObjectPostCreateHook(Oid classId, Oid objectId, int subId,
 	memset(&pc_arg, 0, sizeof(ObjectAccessPostCreate));
 	pc_arg.is_internal = is_internal;
 
-	(*object_access_hook) (OAT_POST_CREATE,
+	object_access_hook(OAT_POST_CREATE,
 						   classId, objectId, subId,
 						   (void *) &pc_arg);
 }
@@ -59,7 +59,7 @@ RunObjectDropHook(Oid classId, Oid objectId, int subId,
 	memset(&drop_arg, 0, sizeof(ObjectAccessDrop));
 	drop_arg.dropflags = dropflags;
 
-	(*object_access_hook) (OAT_DROP,
+	object_access_hook(OAT_DROP,
 						   classId, objectId, subId,
 						   (void *) &drop_arg);
 }
@@ -82,7 +82,7 @@ RunObjectPostAlterHook(Oid classId, Oid objectId, int subId,
 	pa_arg.auxiliary_id = auxiliaryId;
 	pa_arg.is_internal = is_internal;
 
-	(*object_access_hook) (OAT_POST_ALTER,
+	object_access_hook(OAT_POST_ALTER,
 						   classId, objectId, subId,
 						   (void *) &pa_arg);
 }
@@ -104,7 +104,7 @@ RunNamespaceSearchHook(Oid objectId, bool ereport_on_violation)
 	ns_arg.ereport_on_violation = ereport_on_violation;
 	ns_arg.result = true;
 
-	(*object_access_hook) (OAT_NAMESPACE_SEARCH,
+	object_access_hook(OAT_NAMESPACE_SEARCH,
 						   NamespaceRelationId, objectId, 0,
 						   (void *) &ns_arg);
 
@@ -122,7 +122,7 @@ RunFunctionExecuteHook(Oid objectId)
 	/* caller should check, but just in case... */
 	Assert(object_access_hook != NULL);
 
-	(*object_access_hook) (OAT_FUNCTION_EXECUTE,
+	object_access_hook(OAT_FUNCTION_EXECUTE,
 						   ProcedureRelationId, objectId, 0,
 						   NULL);
 }
diff --git a/src/backend/commands/analyze.c b/src/backend/commands/analyze.c
index 2b638271b3..5fffb25c57 100644
--- a/src/backend/commands/analyze.c
+++ b/src/backend/commands/analyze.c
@@ -499,7 +499,7 @@ do_analyze_rel(Relation onerel, int options, VacuumParams *params,
 												rows, targrows,
 												&totalrows, &totaldeadrows);
 	else
-		numrows = (*acquirefunc) (onerel, elevel,
+		numrows = acquirefunc(onerel, elevel,
 								  rows, targrows,
 								  &totalrows, &totaldeadrows);
 
@@ -526,7 +526,7 @@ do_analyze_rel(Relation onerel, int options, VacuumParams *params,
 
 			stats->rows = rows;
 			stats->tupDesc = onerel->rd_att;
-			(*stats->compute_stats) (stats,
+			stats->compute_stats(stats,
 									 std_fetch_func,
 									 numrows,
 									 totalrows);
@@ -830,7 +830,7 @@ compute_index_stats(Relation onerel, double totalrows,
 				stats->exprvals = exprvals + i;
 				stats->exprnulls = exprnulls + i;
 				stats->rowstride = attr_cnt;
-				(*stats->compute_stats) (stats,
+				stats->compute_stats(stats,
 										 ind_fetch_func,
 										 numindexrows,
 										 totalindexrows);
@@ -1430,7 +1430,7 @@ acquire_inherited_sample_rows(Relation onerel, int elevel,
 							tdrows;
 
 				/* Fetch a random sample of the child's rows */
-				childrows = (*acquirefunc) (childrel, elevel,
+				childrows = acquirefunc(childrel, elevel,
 											rows + numrows, childtargrows,
 											&trows, &tdrows);
 
diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c
index 7648201218..bb0a49cb88 100644
--- a/src/backend/commands/explain.c
+++ b/src/backend/commands/explain.c
@@ -353,7 +353,7 @@ ExplainOneQuery(Query *query, int cursorOptions,
 
 	/* if an advisor plugin is present, let it manage things */
 	if (ExplainOneQuery_hook)
-		(*ExplainOneQuery_hook) (query, cursorOptions, into, es,
+		ExplainOneQuery_hook(query, cursorOptions, into, es,
 								 queryString, params);
 	else
 	{
@@ -2441,7 +2441,7 @@ explain_get_index_name(Oid indexId)
 	const char *result;
 
 	if (explain_get_index_name_hook)
-		result = (*explain_get_index_name_hook) (indexId);
+		result = explain_get_index_name_hook(indexId);
 	else
 		result = NULL;
 	if (result == NULL)
diff --git a/src/backend/commands/portalcmds.c b/src/backend/commands/portalcmds.c
index 46369cf3db..b36473fba4 100644
--- a/src/backend/commands/portalcmds.c
+++ b/src/backend/commands/portalcmds.c
@@ -397,7 +397,7 @@ PersistHoldablePortal(Portal portal)
 		/* Fetch the result set into the tuplestore */
 		ExecutorRun(queryDesc, ForwardScanDirection, 0L, false);
 
-		(*queryDesc->dest->rDestroy) (queryDesc->dest);
+		queryDesc->dest->rDestroy(queryDesc->dest);
 		queryDesc->dest = NULL;
 
 		/*
diff --git a/src/backend/commands/seclabel.c b/src/backend/commands/seclabel.c
index 5f16d6cf1c..b0b06fc91f 100644
--- a/src/backend/commands/seclabel.c
+++ b/src/backend/commands/seclabel.c
@@ -122,7 +122,7 @@ ExecSecLabelStmt(SecLabelStmt *stmt)
 	}
 
 	/* Provider gets control here, may throw ERROR to veto new label. */
-	(*provider->hook) (&address, stmt->label);
+	provider->hook(&address, stmt->label);
 
 	/* Apply new label. */
 	SetSecurityLabel(&address, provider->provider_name, stmt->label);
diff --git a/src/backend/commands/user.c b/src/backend/commands/user.c
index f2941352d7..e34b736f1e 100644
--- a/src/backend/commands/user.c
+++ b/src/backend/commands/user.c
@@ -359,7 +359,7 @@ CreateRole(ParseState *pstate, CreateRoleStmt *stmt)
 	 * Call the password checking hook if there is one defined
 	 */
 	if (check_password_hook && password)
-		(*check_password_hook) (stmt->role,
+		check_password_hook(stmt->role,
 								password,
 								get_password_type(password),
 								validUntil_datum,
@@ -744,7 +744,7 @@ AlterRole(AlterRoleStmt *stmt)
 	 * Call the password checking hook if there is one defined
 	 */
 	if (check_password_hook && password)
-		(*check_password_hook) (rolename,
+		check_password_hook(rolename,
 								password,
 								get_password_type(password),
 								validUntil_datum,
diff --git a/src/backend/executor/execCurrent.c b/src/backend/executor/execCurrent.c
index f00fce5913..f42df3916e 100644
--- a/src/backend/executor/execCurrent.c
+++ b/src/backend/executor/execCurrent.c
@@ -220,7 +220,7 @@ fetch_cursor_param_value(ExprContext *econtext, int paramId)
 
 		/* give hook a chance in case parameter is dynamic */
 		if (!OidIsValid(prm->ptype) && paramInfo->paramFetch != NULL)
-			(*paramInfo->paramFetch) (paramInfo, paramId);
+			paramInfo->paramFetch(paramInfo, paramId);
 
 		if (OidIsValid(prm->ptype) && !prm->isnull)
 		{
diff --git a/src/backend/executor/execExprInterp.c b/src/backend/executor/execExprInterp.c
index f2a52f6213..2dd110b310 100644
--- a/src/backend/executor/execExprInterp.c
+++ b/src/backend/executor/execExprInterp.c
@@ -647,7 +647,7 @@ ExecInterpExpr(ExprState *state, ExprContext *econtext, bool *isnull)
 			FunctionCallInfo fcinfo = op->d.func.fcinfo_data;
 
 			fcinfo->isnull = false;
-			*op->resvalue = (op->d.func.fn_addr) (fcinfo);
+			*op->resvalue = op->d.func.fn_addr(fcinfo);
 			*op->resnull = fcinfo->isnull;
 
 			EEO_NEXT();
@@ -669,7 +669,7 @@ ExecInterpExpr(ExprState *state, ExprContext *econtext, bool *isnull)
 				}
 			}
 			fcinfo->isnull = false;
-			*op->resvalue = (op->d.func.fn_addr) (fcinfo);
+			*op->resvalue = op->d.func.fn_addr(fcinfo);
 			*op->resnull = fcinfo->isnull;
 
 	strictfail:
@@ -684,7 +684,7 @@ ExecInterpExpr(ExprState *state, ExprContext *econtext, bool *isnull)
 			pgstat_init_function_usage(fcinfo, &fcusage);
 
 			fcinfo->isnull = false;
-			*op->resvalue = (op->d.func.fn_addr) (fcinfo);
+			*op->resvalue = op->d.func.fn_addr(fcinfo);
 			*op->resnull = fcinfo->isnull;
 
 			pgstat_end_function_usage(&fcusage, true);
@@ -712,7 +712,7 @@ ExecInterpExpr(ExprState *state, ExprContext *econtext, bool *isnull)
 			pgstat_init_function_usage(fcinfo, &fcusage);
 
 			fcinfo->isnull = false;
-			*op->resvalue = (op->d.func.fn_addr) (fcinfo);
+			*op->resvalue = op->d.func.fn_addr(fcinfo);
 			*op->resnull = fcinfo->isnull;
 
 			pgstat_end_function_usage(&fcusage, true);
@@ -1170,7 +1170,7 @@ ExecInterpExpr(ExprState *state, ExprContext *econtext, bool *isnull)
 				Datum		eqresult;
 
 				fcinfo->isnull = false;
-				eqresult = (op->d.func.fn_addr) (fcinfo);
+				eqresult = op->d.func.fn_addr(fcinfo);
 				/* Must invert result of "="; safe to do even if null */
 				*op->resvalue = BoolGetDatum(!DatumGetBool(eqresult));
 				*op->resnull = fcinfo->isnull;
@@ -1192,7 +1192,7 @@ ExecInterpExpr(ExprState *state, ExprContext *econtext, bool *isnull)
 				Datum		result;
 
 				fcinfo->isnull = false;
-				result = (op->d.func.fn_addr) (fcinfo);
+				result = op->d.func.fn_addr(fcinfo);
 
 				/* if the arguments are equal return null */
 				if (!fcinfo->isnull && DatumGetBool(result))
@@ -1279,7 +1279,7 @@ ExecInterpExpr(ExprState *state, ExprContext *econtext, bool *isnull)
 
 			/* Apply comparison function */
 			fcinfo->isnull = false;
-			*op->resvalue = (op->d.rowcompare_step.fn_addr) (fcinfo);
+			*op->resvalue = op->d.rowcompare_step.fn_addr(fcinfo);
 
 			/* force NULL result if NULL function result */
 			if (fcinfo->isnull)
@@ -1878,7 +1878,7 @@ ExecEvalParamExtern(ExprState *state, ExprEvalStep *op, ExprContext *econtext)
 
 		/* give hook a chance in case parameter is dynamic */
 		if (!OidIsValid(prm->ptype) && paramInfo->paramFetch != NULL)
-			(*paramInfo->paramFetch) (paramInfo, paramId);
+			paramInfo->paramFetch(paramInfo, paramId);
 
 		if (likely(OidIsValid(prm->ptype)))
 		{
@@ -3000,7 +3000,7 @@ ExecEvalScalarArrayOp(ExprState *state, ExprEvalStep *op)
 		else
 		{
 			fcinfo->isnull = false;
-			thisresult = (op->d.scalararrayop.fn_addr) (fcinfo);
+			thisresult = op->d.scalararrayop.fn_addr(fcinfo);
 		}
 
 		/* Combine results per OR or AND semantics */
diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c
index 6671a25ffb..42b033d031 100644
--- a/src/backend/executor/execMain.c
+++ b/src/backend/executor/execMain.c
@@ -146,7 +146,7 @@ void
 ExecutorStart(QueryDesc *queryDesc, int eflags)
 {
 	if (ExecutorStart_hook)
-		(*ExecutorStart_hook) (queryDesc, eflags);
+		ExecutorStart_hook(queryDesc, eflags);
 	else
 		standard_ExecutorStart(queryDesc, eflags);
 }
@@ -300,7 +300,7 @@ ExecutorRun(QueryDesc *queryDesc,
 			bool execute_once)
 {
 	if (ExecutorRun_hook)
-		(*ExecutorRun_hook) (queryDesc, direction, count, execute_once);
+		ExecutorRun_hook(queryDesc, direction, count, execute_once);
 	else
 		standard_ExecutorRun(queryDesc, direction, count, execute_once);
 }
@@ -348,7 +348,7 @@ standard_ExecutorRun(QueryDesc *queryDesc,
 				  queryDesc->plannedstmt->hasReturning);
 
 	if (sendTuples)
-		(*dest->rStartup) (dest, operation, queryDesc->tupDesc);
+		dest->rStartup(dest, operation, queryDesc->tupDesc);
 
 	/*
 	 * run plan
@@ -374,7 +374,7 @@ standard_ExecutorRun(QueryDesc *queryDesc,
 	 * shutdown tuple receiver, if we started it
 	 */
 	if (sendTuples)
-		(*dest->rShutdown) (dest);
+		dest->rShutdown(dest);
 
 	if (queryDesc->totaltime)
 		InstrStopNode(queryDesc->totaltime, estate->es_processed);
@@ -400,7 +400,7 @@ void
 ExecutorFinish(QueryDesc *queryDesc)
 {
 	if (ExecutorFinish_hook)
-		(*ExecutorFinish_hook) (queryDesc);
+		ExecutorFinish_hook(queryDesc);
 	else
 		standard_ExecutorFinish(queryDesc);
 }
@@ -460,7 +460,7 @@ void
 ExecutorEnd(QueryDesc *queryDesc)
 {
 	if (ExecutorEnd_hook)
-		(*ExecutorEnd_hook) (queryDesc);
+		ExecutorEnd_hook(queryDesc);
 	else
 		standard_ExecutorEnd(queryDesc);
 }
@@ -587,7 +587,7 @@ ExecCheckRTPerms(List *rangeTable, bool ereport_on_violation)
 	}
 
 	if (ExecutorCheckPerms_hook)
-		result = (*ExecutorCheckPerms_hook) (rangeTable,
+		result = ExecutorCheckPerms_hook(rangeTable,
 											 ereport_on_violation);
 	return result;
 }
@@ -1725,7 +1725,7 @@ ExecutePlan(EState *estate,
 			 * has closed and no more tuples can be sent. If that's the case,
 			 * end the loop.
 			 */
-			if (!((*dest->receiveSlot) (slot, dest)))
+			if (!dest->receiveSlot(slot, dest))
 				break;
 		}
 
diff --git a/src/backend/executor/execParallel.c b/src/backend/executor/execParallel.c
index ce47f1d4a8..40a860ab1f 100644
--- a/src/backend/executor/execParallel.c
+++ b/src/backend/executor/execParallel.c
@@ -889,5 +889,5 @@ ParallelQueryMain(dsm_segment *seg, shm_toc *toc)
 	/* Cleanup. */
 	dsa_detach(area);
 	FreeQueryDesc(queryDesc);
-	(*receiver->rDestroy) (receiver);
+	receiver->rDestroy(receiver);
 }
diff --git a/src/backend/executor/execTuples.c b/src/backend/executor/execTuples.c
index 7ae70a877a..4955290e09 100644
--- a/src/backend/executor/execTuples.c
+++ b/src/backend/executor/execTuples.c
@@ -1238,7 +1238,7 @@ begin_tup_output_tupdesc(DestReceiver *dest, TupleDesc tupdesc)
 	tstate->slot = MakeSingleTupleTableSlot(tupdesc);
 	tstate->dest = dest;
 
-	(*tstate->dest->rStartup) (tstate->dest, (int) CMD_SELECT, tupdesc);
+	tstate->dest->rStartup(tstate->dest, (int) CMD_SELECT, tupdesc);
 
 	return tstate;
 }
@@ -1263,7 +1263,7 @@ do_tup_output(TupOutputState *tstate, Datum *values, bool *isnull)
 	ExecStoreVirtualTuple(slot);
 
 	/* send the tuple to the receiver */
-	(void) (*tstate->dest->receiveSlot) (slot, tstate->dest);
+	(void) tstate->dest->receiveSlot(slot, tstate->dest);
 
 	/* clean up */
 	ExecClearTuple(slot);
@@ -1307,7 +1307,7 @@ do_text_output_multiline(TupOutputState *tstate, const char *txt)
 void
 end_tup_output(TupOutputState *tstate)
 {
-	(*tstate->dest->rShutdown) (tstate->dest);
+	tstate->dest->rShutdown(tstate->dest);
 	/* note that destroying the dest is not ours to do */
 	ExecDropSingleTupleTableSlot(tstate->slot);
 	pfree(tstate);
diff --git a/src/backend/executor/execUtils.c b/src/backend/executor/execUtils.c
index 25772fc603..9d2ba5232d 100644
--- a/src/backend/executor/execUtils.c
+++ b/src/backend/executor/execUtils.c
@@ -808,7 +808,7 @@ ShutdownExprContext(ExprContext *econtext, bool isCommit)
 	{
 		econtext->ecxt_callbacks = ecxt_callback->next;
 		if (isCommit)
-			(*ecxt_callback->function) (ecxt_callback->arg);
+			ecxt_callback->function(ecxt_callback->arg);
 		pfree(ecxt_callback);
 	}
 
diff --git a/src/backend/executor/functions.c b/src/backend/executor/functions.c
index 3630f5d966..8f48a83ad2 100644
--- a/src/backend/executor/functions.c
+++ b/src/backend/executor/functions.c
@@ -886,7 +886,7 @@ postquel_end(execution_state *es)
 		ExecutorEnd(es->qd);
 	}
 
-	(*es->qd->dest->rDestroy) (es->qd->dest);
+	es->qd->dest->rDestroy(es->qd->dest);
 
 	FreeQueryDesc(es->qd);
 	es->qd = NULL;
diff --git a/src/backend/libpq/auth.c b/src/backend/libpq/auth.c
index cb30fc7b71..4f1756f90f 100644
--- a/src/backend/libpq/auth.c
+++ b/src/backend/libpq/auth.c
@@ -593,7 +593,7 @@ ClientAuthentication(Port *port)
 	}
 
 	if (ClientAuthentication_hook)
-		(*ClientAuthentication_hook) (port, status);
+		ClientAuthentication_hook(port, status);
 
 	if (status == STATUS_OK)
 		sendAuthRequest(port, AUTH_REQ_OK, NULL, 0);
diff --git a/src/backend/libpq/ifaddr.c b/src/backend/libpq/ifaddr.c
index 53bf6bcd80..09a684daa9 100644
--- a/src/backend/libpq/ifaddr.c
+++ b/src/backend/libpq/ifaddr.c
@@ -225,7 +225,7 @@ run_ifaddr_callback(PgIfAddrCallback callback, void *cb_data,
 		mask = (struct sockaddr *) &fullmask;
 	}
 
-	(*callback) (addr, mask, cb_data);
+	callback(addr, mask, cb_data);
 }
 
 #ifdef WIN32
diff --git a/src/backend/nodes/params.c b/src/backend/nodes/params.c
index 110732081b..51429af1e3 100644
--- a/src/backend/nodes/params.c
+++ b/src/backend/nodes/params.c
@@ -73,7 +73,7 @@ copyParamList(ParamListInfo from)
 
 		/* give hook a chance in case parameter is dynamic */
 		if (!OidIsValid(oprm->ptype) && from->paramFetch != NULL)
-			(*from->paramFetch) (from, i + 1);
+			from->paramFetch(from, i + 1);
 
 		/* flat-copy the parameter info */
 		*nprm = *oprm;
@@ -115,7 +115,7 @@ EstimateParamListSpace(ParamListInfo paramLI)
 		{
 			/* give hook a chance in case parameter is dynamic */
 			if (!OidIsValid(prm->ptype) && paramLI->paramFetch != NULL)
-				(*paramLI->paramFetch) (paramLI, i + 1);
+				paramLI->paramFetch(paramLI, i + 1);
 			typeOid = prm->ptype;
 		}
 
@@ -184,7 +184,7 @@ SerializeParamList(ParamListInfo paramLI, char **start_address)
 		{
 			/* give hook a chance in case parameter is dynamic */
 			if (!OidIsValid(prm->ptype) && paramLI->paramFetch != NULL)
-				(*paramLI->paramFetch) (paramLI, i + 1);
+				paramLI->paramFetch(paramLI, i + 1);
 			typeOid = prm->ptype;
 		}
 
diff --git a/src/backend/optimizer/path/allpaths.c b/src/backend/optimizer/path/allpaths.c
index 2d7e1d84d0..d75df4b4c2 100644
--- a/src/backend/optimizer/path/allpaths.c
+++ b/src/backend/optimizer/path/allpaths.c
@@ -494,7 +494,7 @@ set_rel_pathlist(PlannerInfo *root, RelOptInfo *rel,
 	 * add_path(), or delete or modify paths added by the core code.
 	 */
 	if (set_rel_pathlist_hook)
-		(*set_rel_pathlist_hook) (root, rel, rti, rte);
+		set_rel_pathlist_hook(root, rel, rti, rte);
 
 	/* Now find the cheapest of the paths for this rel */
 	set_cheapest(rel);
diff --git a/src/backend/optimizer/plan/planmain.c b/src/backend/optimizer/plan/planmain.c
index f4e0a6ea3d..04aec4115a 100644
--- a/src/backend/optimizer/plan/planmain.c
+++ b/src/backend/optimizer/plan/planmain.c
@@ -93,7 +93,7 @@ query_planner(PlannerInfo *root, List *tlist,
 		 * like "SELECT 2+2 ORDER BY 1".
 		 */
 		root->canon_pathkeys = NIL;
-		(*qp_callback) (root, qp_extra);
+		qp_callback(root, qp_extra);
 
 		return final_rel;
 	}
@@ -174,7 +174,7 @@ query_planner(PlannerInfo *root, List *tlist,
 	 * generate pathkeys in canonical form; so compute query_pathkeys and
 	 * other pathkeys fields in PlannerInfo.
 	 */
-	(*qp_callback) (root, qp_extra);
+	qp_callback(root, qp_extra);
 
 	/*
 	 * Examine any "placeholder" expressions generated during subquery pullup.
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c
index 407df9ae79..84ce98980f 100644
--- a/src/backend/optimizer/plan/planner.c
+++ b/src/backend/optimizer/plan/planner.c
@@ -205,7 +205,7 @@ planner(Query *parse, int cursorOptions, ParamListInfo boundParams)
 	PlannedStmt *result;
 
 	if (planner_hook)
-		result = (*planner_hook) (parse, cursorOptions, boundParams);
+		result = planner_hook(parse, cursorOptions, boundParams);
 	else
 		result = standard_planner(parse, cursorOptions, boundParams);
 	return result;
@@ -2057,7 +2057,7 @@ grouping_planner(PlannerInfo *root, bool inheritance_update,
 
 	/* Let extensions possibly add some more paths */
 	if (create_upper_paths_hook)
-		(*create_upper_paths_hook) (root, UPPERREL_FINAL,
+		create_upper_paths_hook(root, UPPERREL_FINAL,
 									current_rel, final_rel);
 
 	/* Note: currently, we leave it to callers to do set_cheapest() */
@@ -4113,7 +4113,7 @@ create_grouping_paths(PlannerInfo *root,
 
 	/* Let extensions possibly add some more paths */
 	if (create_upper_paths_hook)
-		(*create_upper_paths_hook) (root, UPPERREL_GROUP_AGG,
+		create_upper_paths_hook(root, UPPERREL_GROUP_AGG,
 									input_rel, grouped_rel);
 
 	/* Now choose the best path(s) */
@@ -4549,7 +4549,7 @@ create_window_paths(PlannerInfo *root,
 
 	/* Let extensions possibly add some more paths */
 	if (create_upper_paths_hook)
-		(*create_upper_paths_hook) (root, UPPERREL_WINDOW,
+		create_upper_paths_hook(root, UPPERREL_WINDOW,
 									input_rel, window_rel);
 
 	/* Now choose the best path(s) */
@@ -4853,7 +4853,7 @@ create_distinct_paths(PlannerInfo *root,
 
 	/* Let extensions possibly add some more paths */
 	if (create_upper_paths_hook)
-		(*create_upper_paths_hook) (root, UPPERREL_DISTINCT,
+		create_upper_paths_hook(root, UPPERREL_DISTINCT,
 									input_rel, distinct_rel);
 
 	/* Now choose the best path(s) */
@@ -4995,7 +4995,7 @@ create_ordered_paths(PlannerInfo *root,
 
 	/* Let extensions possibly add some more paths */
 	if (create_upper_paths_hook)
-		(*create_upper_paths_hook) (root, UPPERREL_ORDERED,
+		create_upper_paths_hook(root, UPPERREL_ORDERED,
 									input_rel, ordered_rel);
 
 	/*
diff --git a/src/backend/optimizer/prep/prepunion.c b/src/backend/optimizer/prep/prepunion.c
index f43c3f3007..7841df52db 100644
--- a/src/backend/optimizer/prep/prepunion.c
+++ b/src/backend/optimizer/prep/prepunion.c
@@ -213,7 +213,7 @@ plan_set_operations(PlannerInfo *root)
 
 	/* Let extensions possibly add some more paths */
 	if (create_upper_paths_hook)
-		(*create_upper_paths_hook) (root, UPPERREL_SETOP,
+		create_upper_paths_hook(root, UPPERREL_SETOP,
 									NULL, setop_rel);
 
 	/* Select cheapest path */
diff --git a/src/backend/optimizer/util/plancat.c b/src/backend/optimizer/util/plancat.c
index dc0b0b0706..f28abddeab 100644
--- a/src/backend/optimizer/util/plancat.c
+++ b/src/backend/optimizer/util/plancat.c
@@ -428,7 +428,7 @@ get_relation_info(PlannerInfo *root, Oid relationObjectId, bool inhparent,
 	 * removing an index, or adding a hypothetical index to the indexlist.
 	 */
 	if (get_relation_info_hook)
-		(*get_relation_info_hook) (root, relationObjectId, inhparent, rel);
+		get_relation_info_hook(root, relationObjectId, inhparent, rel);
 }
 
 /*
diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c
index 4fb793cfbf..36d68d16ac 100644
--- a/src/backend/parser/analyze.c
+++ b/src/backend/parser/analyze.c
@@ -112,7 +112,7 @@ parse_analyze(RawStmt *parseTree, const char *sourceText,
 	query = transformTopLevelStmt(pstate, parseTree);
 
 	if (post_parse_analyze_hook)
-		(*post_parse_analyze_hook) (pstate, query);
+		post_parse_analyze_hook(pstate, query);
 
 	free_parsestate(pstate);
 
@@ -145,7 +145,7 @@ parse_analyze_varparams(RawStmt *parseTree, const char *sourceText,
 	check_variable_parameters(pstate, query);
 
 	if (post_parse_analyze_hook)
-		(*post_parse_analyze_hook) (pstate, query);
+		post_parse_analyze_hook(pstate, query);
 
 	free_parsestate(pstate);
 
diff --git a/src/backend/parser/parse_coerce.c b/src/backend/parser/parse_coerce.c
index 0bc7dba6a0..d3b76637e5 100644
--- a/src/backend/parser/parse_coerce.c
+++ b/src/backend/parser/parse_coerce.c
@@ -369,7 +369,7 @@ coerce_type(ParseState *pstate, Node *node,
 		 * transformed node (very possibly the same Param node), or return
 		 * NULL to indicate we should proceed with normal coercion.
 		 */
-		result = (*pstate->p_coerce_param_hook) (pstate,
+		result = pstate->p_coerce_param_hook(pstate,
 												 (Param *) node,
 												 targetTypeId,
 												 targetTypeMod,
diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c
index 6d8cb07766..1aaa5244e6 100644
--- a/src/backend/parser/parse_expr.c
+++ b/src/backend/parser/parse_expr.c
@@ -527,7 +527,7 @@ transformColumnRef(ParseState *pstate, ColumnRef *cref)
 	 */
 	if (pstate->p_pre_columnref_hook != NULL)
 	{
-		node = (*pstate->p_pre_columnref_hook) (pstate, cref);
+		node = pstate->p_pre_columnref_hook(pstate, cref);
 		if (node != NULL)
 			return node;
 	}
@@ -758,7 +758,7 @@ transformColumnRef(ParseState *pstate, ColumnRef *cref)
 	{
 		Node	   *hookresult;
 
-		hookresult = (*pstate->p_post_columnref_hook) (pstate, cref, node);
+		hookresult = pstate->p_post_columnref_hook(pstate, cref, node);
 		if (node == NULL)
 			node = hookresult;
 		else if (hookresult != NULL)
@@ -813,7 +813,7 @@ transformParamRef(ParseState *pstate, ParamRef *pref)
 	 * call it.  If not, or if the hook returns NULL, throw a generic error.
 	 */
 	if (pstate->p_paramref_hook != NULL)
-		result = (*pstate->p_paramref_hook) (pstate, pref);
+		result = pstate->p_paramref_hook(pstate, pref);
 	else
 		result = NULL;
 
@@ -2585,9 +2585,9 @@ transformCurrentOfExpr(ParseState *pstate, CurrentOfExpr *cexpr)
 
 		/* See if there is a translation available from a parser hook */
 		if (pstate->p_pre_columnref_hook != NULL)
-			node = (*pstate->p_pre_columnref_hook) (pstate, cref);
+			node = pstate->p_pre_columnref_hook(pstate, cref);
 		if (node == NULL && pstate->p_post_columnref_hook != NULL)
-			node = (*pstate->p_post_columnref_hook) (pstate, cref, NULL);
+			node = pstate->p_post_columnref_hook(pstate, cref, NULL);
 
 		/*
 		 * XXX Should we throw an error if we get a translation that isn't a
diff --git a/src/backend/parser/parse_target.c b/src/backend/parser/parse_target.c
index 0a70539fb1..2286ee8c89 100644
--- a/src/backend/parser/parse_target.c
+++ b/src/backend/parser/parse_target.c
@@ -1106,7 +1106,7 @@ ExpandColumnRefStar(ParseState *pstate, ColumnRef *cref,
 		{
 			Node	   *node;
 
-			node = (*pstate->p_pre_columnref_hook) (pstate, cref);
+			node = pstate->p_pre_columnref_hook(pstate, cref);
 			if (node != NULL)
 				return ExpandRowReference(pstate, node, make_target_entry);
 		}
@@ -1161,7 +1161,7 @@ ExpandColumnRefStar(ParseState *pstate, ColumnRef *cref,
 		{
 			Node	   *node;
 
-			node = (*pstate->p_post_columnref_hook) (pstate, cref,
+			node = pstate->p_post_columnref_hook(pstate, cref,
 													 (Node *) rte);
 			if (node != NULL)
 			{
diff --git a/src/backend/rewrite/rewriteManip.c b/src/backend/rewrite/rewriteManip.c
index ba706b25b4..5c17213720 100644
--- a/src/backend/rewrite/rewriteManip.c
+++ b/src/backend/rewrite/rewriteManip.c
@@ -1143,7 +1143,7 @@ replace_rte_variables_mutator(Node *node,
 			/* Found a matching variable, make the substitution */
 			Node	   *newnode;
 
-			newnode = (*context->callback) (var, context);
+			newnode = context->callback(var, context);
 			/* Detect if we are adding a sublink to query */
 			if (!context->inserted_sublink)
 				context->inserted_sublink = checkExprHasSubLink(newnode);
diff --git a/src/backend/rewrite/rowsecurity.c b/src/backend/rewrite/rowsecurity.c
index 9e7e54db67..53cb36c051 100644
--- a/src/backend/rewrite/rowsecurity.c
+++ b/src/backend/rewrite/rowsecurity.c
@@ -462,7 +462,7 @@ get_policies_for_relation(Relation relation, CmdType cmd, Oid user_id,
 	if (row_security_policy_hook_restrictive)
 	{
 		List	   *hook_policies =
-		(*row_security_policy_hook_restrictive) (cmd, relation);
+		row_security_policy_hook_restrictive(cmd, relation);
 
 		/*
 		 * As with built-in restrictive policies, we sort any hook-provided
@@ -484,7 +484,7 @@ get_policies_for_relation(Relation relation, CmdType cmd, Oid user_id,
 	if (row_security_policy_hook_permissive)
 	{
 		List	   *hook_policies =
-		(*row_security_policy_hook_permissive) (cmd, relation);
+		row_security_policy_hook_permissive(cmd, relation);
 
 		foreach(item, hook_policies)
 		{
diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c
index 83b061a036..c2a92f69f0 100644
--- a/src/backend/storage/file/fd.c
+++ b/src/backend/storage/file/fd.c
@@ -3048,7 +3048,7 @@ walkdir(const char *path,
 		}
 
 		if (S_ISREG(fst.st_mode))
-			(*action) (subpath, false, elevel);
+			action(subpath, false, elevel);
 		else if (S_ISDIR(fst.st_mode))
 			walkdir(subpath, action, false, elevel);
 	}
@@ -3060,7 +3060,7 @@ walkdir(const char *path,
 	 * file fsyncs don't guarantee that the directory entry for the file is
 	 * synced.
 	 */
-	(*action) (path, true, elevel);
+	action(path, true, elevel);
 }
 
 
diff --git a/src/backend/storage/ipc/ipc.c b/src/backend/storage/ipc/ipc.c
index 90dee4f51a..dfb47e7c39 100644
--- a/src/backend/storage/ipc/ipc.c
+++ b/src/backend/storage/ipc/ipc.c
@@ -197,8 +197,8 @@ proc_exit_prepare(int code)
 	 * possible.
 	 */
 	while (--on_proc_exit_index >= 0)
-		(*on_proc_exit_list[on_proc_exit_index].function) (code,
-														   on_proc_exit_list[on_proc_exit_index].arg);
+		on_proc_exit_list[on_proc_exit_index].function(code,
+													   on_proc_exit_list[on_proc_exit_index].arg);
 
 	on_proc_exit_index = 0;
 }
@@ -225,8 +225,8 @@ shmem_exit(int code)
 	elog(DEBUG3, "shmem_exit(%d): %d before_shmem_exit callbacks to make",
 		 code, before_shmem_exit_index);
 	while (--before_shmem_exit_index >= 0)
-		(*before_shmem_exit_list[before_shmem_exit_index].function) (code,
-																	 before_shmem_exit_list[before_shmem_exit_index].arg);
+		before_shmem_exit_list[before_shmem_exit_index].function(code,
+																 before_shmem_exit_list[before_shmem_exit_index].arg);
 	before_shmem_exit_index = 0;
 
 	/*
@@ -258,8 +258,8 @@ shmem_exit(int code)
 	elog(DEBUG3, "shmem_exit(%d): %d on_shmem_exit callbacks to make",
 		 code, on_shmem_exit_index);
 	while (--on_shmem_exit_index >= 0)
-		(*on_shmem_exit_list[on_shmem_exit_index].function) (code,
-															 on_shmem_exit_list[on_shmem_exit_index].arg);
+		on_shmem_exit_list[on_shmem_exit_index].function(code,
+														 on_shmem_exit_list[on_shmem_exit_index].arg);
 	on_shmem_exit_index = 0;
 }
 
diff --git a/src/backend/storage/smgr/smgr.c b/src/backend/storage/smgr/smgr.c
index 0ca095c4d6..5d5b7dd95e 100644
--- a/src/backend/storage/smgr/smgr.c
+++ b/src/backend/storage/smgr/smgr.c
@@ -106,7 +106,7 @@ smgrinit(void)
 	for (i = 0; i < NSmgr; i++)
 	{
 		if (smgrsw[i].smgr_init)
-			(*(smgrsw[i].smgr_init)) ();
+			smgrsw[i].smgr_init();
 	}
 
 	/* register the shutdown proc */
@@ -124,7 +124,7 @@ smgrshutdown(int code, Datum arg)
 	for (i = 0; i < NSmgr; i++)
 	{
 		if (smgrsw[i].smgr_shutdown)
-			(*(smgrsw[i].smgr_shutdown)) ();
+			smgrsw[i].smgr_shutdown();
 	}
 }
 
@@ -286,7 +286,7 @@ remove_from_unowned_list(SMgrRelation reln)
 bool
 smgrexists(SMgrRelation reln, ForkNumber forknum)
 {
-	return (*(smgrsw[reln->smgr_which].smgr_exists)) (reln, forknum);
+	return smgrsw[reln->smgr_which].smgr_exists(reln, forknum);
 }
 
 /*
@@ -299,7 +299,7 @@ smgrclose(SMgrRelation reln)
 	ForkNumber	forknum;
 
 	for (forknum = 0; forknum <= MAX_FORKNUM; forknum++)
-		(*(smgrsw[reln->smgr_which].smgr_close)) (reln, forknum);
+		smgrsw[reln->smgr_which].smgr_close(reln, forknum);
 
 	owner = reln->smgr_owner;
 
@@ -395,7 +395,7 @@ smgrcreate(SMgrRelation reln, ForkNumber forknum, bool isRedo)
 							reln->smgr_rnode.node.dbNode,
 							isRedo);
 
-	(*(smgrsw[reln->smgr_which].smgr_create)) (reln, forknum, isRedo);
+	smgrsw[reln->smgr_which].smgr_create(reln, forknum, isRedo);
 }
 
 /*
@@ -419,7 +419,7 @@ smgrdounlink(SMgrRelation reln, bool isRedo)
 
 	/* Close the forks at smgr level */
 	for (forknum = 0; forknum <= MAX_FORKNUM; forknum++)
-		(*(smgrsw[which].smgr_close)) (reln, forknum);
+		smgrsw[which].smgr_close(reln, forknum);
 
 	/*
 	 * Get rid of any remaining buffers for the relation.  bufmgr will just
@@ -451,7 +451,7 @@ smgrdounlink(SMgrRelation reln, bool isRedo)
 	 * ERROR, because we've already decided to commit or abort the current
 	 * xact.
 	 */
-	(*(smgrsw[which].smgr_unlink)) (rnode, InvalidForkNumber, isRedo);
+	smgrsw[which].smgr_unlink(rnode, InvalidForkNumber, isRedo);
 }
 
 /*
@@ -491,7 +491,7 @@ smgrdounlinkall(SMgrRelation *rels, int nrels, bool isRedo)
 
 		/* Close the forks at smgr level */
 		for (forknum = 0; forknum <= MAX_FORKNUM; forknum++)
-			(*(smgrsw[which].smgr_close)) (rels[i], forknum);
+			smgrsw[which].smgr_close(rels[i], forknum);
 	}
 
 	/*
@@ -529,7 +529,7 @@ smgrdounlinkall(SMgrRelation *rels, int nrels, bool isRedo)
 		int			which = rels[i]->smgr_which;
 
 		for (forknum = 0; forknum <= MAX_FORKNUM; forknum++)
-			(*(smgrsw[which].smgr_unlink)) (rnodes[i], forknum, isRedo);
+			smgrsw[which].smgr_unlink(rnodes[i], forknum, isRedo);
 	}
 
 	pfree(rnodes);
@@ -552,7 +552,7 @@ smgrdounlinkfork(SMgrRelation reln, ForkNumber forknum, bool isRedo)
 	int			which = reln->smgr_which;
 
 	/* Close the fork at smgr level */
-	(*(smgrsw[which].smgr_close)) (reln, forknum);
+	smgrsw[which].smgr_close(reln, forknum);
 
 	/*
 	 * Get rid of any remaining buffers for the fork.  bufmgr will just drop
@@ -584,7 +584,7 @@ smgrdounlinkfork(SMgrRelation reln, ForkNumber forknum, bool isRedo)
 	 * ERROR, because we've already decided to commit or abort the current
 	 * xact.
 	 */
-	(*(smgrsw[which].smgr_unlink)) (rnode, forknum, isRedo);
+	smgrsw[which].smgr_unlink(rnode, forknum, isRedo);
 }
 
 /*
@@ -600,7 +600,7 @@ void
 smgrextend(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
 		   char *buffer, bool skipFsync)
 {
-	(*(smgrsw[reln->smgr_which].smgr_extend)) (reln, forknum, blocknum,
+	smgrsw[reln->smgr_which].smgr_extend(reln, forknum, blocknum,
 											   buffer, skipFsync);
 }
 
@@ -610,7 +610,7 @@ smgrextend(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
 void
 smgrprefetch(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum)
 {
-	(*(smgrsw[reln->smgr_which].smgr_prefetch)) (reln, forknum, blocknum);
+	smgrsw[reln->smgr_which].smgr_prefetch(reln, forknum, blocknum);
 }
 
 /*
@@ -625,7 +625,7 @@ void
 smgrread(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
 		 char *buffer)
 {
-	(*(smgrsw[reln->smgr_which].smgr_read)) (reln, forknum, blocknum, buffer);
+	smgrsw[reln->smgr_which].smgr_read(reln, forknum, blocknum, buffer);
 }
 
 /*
@@ -647,7 +647,7 @@ void
 smgrwrite(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
 		  char *buffer, bool skipFsync)
 {
-	(*(smgrsw[reln->smgr_which].smgr_write)) (reln, forknum, blocknum,
+	smgrsw[reln->smgr_which].smgr_write(reln, forknum, blocknum,
 											  buffer, skipFsync);
 }
 
@@ -660,7 +660,7 @@ void
 smgrwriteback(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
 			  BlockNumber nblocks)
 {
-	(*(smgrsw[reln->smgr_which].smgr_writeback)) (reln, forknum, blocknum,
+	smgrsw[reln->smgr_which].smgr_writeback(reln, forknum, blocknum,
 												  nblocks);
 }
 
@@ -671,7 +671,7 @@ smgrwriteback(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
 BlockNumber
 smgrnblocks(SMgrRelation reln, ForkNumber forknum)
 {
-	return (*(smgrsw[reln->smgr_which].smgr_nblocks)) (reln, forknum);
+	return smgrsw[reln->smgr_which].smgr_nblocks(reln, forknum);
 }
 
 /*
@@ -704,7 +704,7 @@ smgrtruncate(SMgrRelation reln, ForkNumber forknum, BlockNumber nblocks)
 	/*
 	 * Do the truncation.
 	 */
-	(*(smgrsw[reln->smgr_which].smgr_truncate)) (reln, forknum, nblocks);
+	smgrsw[reln->smgr_which].smgr_truncate(reln, forknum, nblocks);
 }
 
 /*
@@ -733,7 +733,7 @@ smgrtruncate(SMgrRelation reln, ForkNumber forknum, BlockNumber nblocks)
 void
 smgrimmedsync(SMgrRelation reln, ForkNumber forknum)
 {
-	(*(smgrsw[reln->smgr_which].smgr_immedsync)) (reln, forknum);
+	smgrsw[reln->smgr_which].smgr_immedsync(reln, forknum);
 }
 
 
@@ -748,7 +748,7 @@ smgrpreckpt(void)
 	for (i = 0; i < NSmgr; i++)
 	{
 		if (smgrsw[i].smgr_pre_ckpt)
-			(*(smgrsw[i].smgr_pre_ckpt)) ();
+			smgrsw[i].smgr_pre_ckpt();
 	}
 }
 
@@ -763,7 +763,7 @@ smgrsync(void)
 	for (i = 0; i < NSmgr; i++)
 	{
 		if (smgrsw[i].smgr_sync)
-			(*(smgrsw[i].smgr_sync)) ();
+			smgrsw[i].smgr_sync();
 	}
 }
 
@@ -778,7 +778,7 @@ smgrpostckpt(void)
 	for (i = 0; i < NSmgr; i++)
 	{
 		if (smgrsw[i].smgr_post_ckpt)
-			(*(smgrsw[i].smgr_post_ckpt)) ();
+			smgrsw[i].smgr_post_ckpt();
 	}
 }
 
diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c
index b8d860ebdb..2bf85a8e2d 100644
--- a/src/backend/tcop/postgres.c
+++ b/src/backend/tcop/postgres.c
@@ -695,12 +695,12 @@ pg_analyze_and_rewrite_params(RawStmt *parsetree,
 	pstate = make_parsestate(NULL);
 	pstate->p_sourcetext = query_string;
 	pstate->p_queryEnv = queryEnv;
-	(*parserSetup) (pstate, parserSetupArg);
+	parserSetup(pstate, parserSetupArg);
 
 	query = transformTopLevelStmt(pstate, parsetree);
 
 	if (post_parse_analyze_hook)
-		(*post_parse_analyze_hook) (pstate, query);
+		post_parse_analyze_hook(pstate, query);
 
 	free_parsestate(pstate);
 
@@ -1104,7 +1104,7 @@ exec_simple_query(const char *query_string)
 						 receiver,
 						 completionTag);
 
-		(*receiver->rDestroy) (receiver);
+		receiver->rDestroy(receiver);
 
 		PortalDrop(portal, false);
 
@@ -1989,7 +1989,7 @@ exec_execute_message(const char *portal_name, long max_rows)
 						  receiver,
 						  completionTag);
 
-	(*receiver->rDestroy) (receiver);
+	receiver->rDestroy(receiver);
 
 	if (completed)
 	{
diff --git a/src/backend/tcop/pquery.c b/src/backend/tcop/pquery.c
index 7e820d05dd..cc462efc37 100644
--- a/src/backend/tcop/pquery.c
+++ b/src/backend/tcop/pquery.c
@@ -1049,7 +1049,7 @@ FillPortalStore(Portal portal, bool isTopLevel)
 	if (completionTag[0] != '\0')
 		portal->commandTag = pstrdup(completionTag);
 
-	(*treceiver->rDestroy) (treceiver);
+	treceiver->rDestroy(treceiver);
 }
 
 /*
@@ -1073,7 +1073,7 @@ RunFromStore(Portal portal, ScanDirection direction, uint64 count,
 
 	slot = MakeSingleTupleTableSlot(portal->tupDesc);
 
-	(*dest->rStartup) (dest, CMD_SELECT, portal->tupDesc);
+	dest->rStartup(dest, CMD_SELECT, portal->tupDesc);
 
 	if (ScanDirectionIsNoMovement(direction))
 	{
@@ -1103,7 +1103,7 @@ RunFromStore(Portal portal, ScanDirection direction, uint64 count,
 			 * has closed and no more tuples can be sent. If that's the case,
 			 * end the loop.
 			 */
-			if (!((*dest->receiveSlot) (slot, dest)))
+			if (!dest->receiveSlot(slot, dest))
 				break;
 
 			ExecClearTuple(slot);
@@ -1119,7 +1119,7 @@ RunFromStore(Portal portal, ScanDirection direction, uint64 count,
 		}
 	}
 
-	(*dest->rShutdown) (dest);
+	dest->rShutdown(dest);
 
 	ExecDropSingleTupleTableSlot(slot);
 
diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c
index 775477c6cf..2c00cc74e4 100644
--- a/src/backend/tcop/utility.c
+++ b/src/backend/tcop/utility.c
@@ -350,7 +350,7 @@ ProcessUtility(PlannedStmt *pstmt,
 	 * call standard_ProcessUtility().
 	 */
 	if (ProcessUtility_hook)
-		(*ProcessUtility_hook) (pstmt, queryString,
+		ProcessUtility_hook(pstmt, queryString,
 								context, params, queryEnv,
 								dest, completionTag);
 	else
diff --git a/src/backend/utils/adt/array_typanalyze.c b/src/backend/utils/adt/array_typanalyze.c
index 78153d232f..470ef0c4b0 100644
--- a/src/backend/utils/adt/array_typanalyze.c
+++ b/src/backend/utils/adt/array_typanalyze.c
@@ -247,7 +247,7 @@ compute_array_stats(VacAttrStats *stats, AnalyzeAttrFetchFunc fetchfunc,
 	 * temporarily install that.
 	 */
 	stats->extra_data = extra_data->std_extra_data;
-	(*extra_data->std_compute_stats) (stats, fetchfunc, samplerows, totalrows);
+	extra_data->std_compute_stats(stats, fetchfunc, samplerows, totalrows);
 	stats->extra_data = extra_data;
 
 	/*
diff --git a/src/backend/utils/adt/expandeddatum.c b/src/backend/utils/adt/expandeddatum.c
index 3d77686af7..49854b39f4 100644
--- a/src/backend/utils/adt/expandeddatum.c
+++ b/src/backend/utils/adt/expandeddatum.c
@@ -74,14 +74,14 @@ EOH_init_header(ExpandedObjectHeader *eohptr,
 Size
 EOH_get_flat_size(ExpandedObjectHeader *eohptr)
 {
-	return (*eohptr->eoh_methods->get_flat_size) (eohptr);
+	return eohptr->eoh_methods->get_flat_size(eohptr);
 }
 
 void
 EOH_flatten_into(ExpandedObjectHeader *eohptr,
 				 void *result, Size allocated_size)
 {
-	(*eohptr->eoh_methods->flatten_into) (eohptr, result, allocated_size);
+	eohptr->eoh_methods->flatten_into(eohptr, result, allocated_size);
 }
 
 /*
diff --git a/src/backend/utils/adt/json.c b/src/backend/utils/adt/json.c
index 4dd7d977e8..c90f37171a 100644
--- a/src/backend/utils/adt/json.c
+++ b/src/backend/utils/adt/json.c
@@ -434,8 +434,8 @@ parse_scalar(JsonLexContext *lex, JsonSemAction *sem)
 			report_parse_error(JSON_PARSE_VALUE, lex);
 	}
 
-	if (sfunc != NULL)
-		(*sfunc) (sem->semstate, val, tok);
+	if (sfunc)
+		sfunc(sem->semstate, val, tok);
 }
 
 static void
@@ -465,8 +465,8 @@ parse_object_field(JsonLexContext *lex, JsonSemAction *sem)
 	tok = lex_peek(lex);
 	isnull = tok == JSON_TOKEN_NULL;
 
-	if (ostart != NULL)
-		(*ostart) (sem->semstate, fname, isnull);
+	if (ostart)
+		ostart(sem->semstate, fname, isnull);
 
 	switch (tok)
 	{
@@ -480,8 +480,8 @@ parse_object_field(JsonLexContext *lex, JsonSemAction *sem)
 			parse_scalar(lex, sem);
 	}
 
-	if (oend != NULL)
-		(*oend) (sem->semstate, fname, isnull);
+	if (oend)
+		oend(sem->semstate, fname, isnull);
 }
 
 static void
@@ -497,8 +497,8 @@ parse_object(JsonLexContext *lex, JsonSemAction *sem)
 
 	check_stack_depth();
 
-	if (ostart != NULL)
-		(*ostart) (sem->semstate);
+	if (ostart)
+		ostart(sem->semstate);
 
 	/*
 	 * Data inside an object is at a higher nesting level than the object
@@ -530,8 +530,8 @@ parse_object(JsonLexContext *lex, JsonSemAction *sem)
 
 	lex->lex_level--;
 
-	if (oend != NULL)
-		(*oend) (sem->semstate);
+	if (oend)
+		oend(sem->semstate);
 }
 
 static void
@@ -545,8 +545,8 @@ parse_array_element(JsonLexContext *lex, JsonSemAction *sem)
 
 	isnull = tok == JSON_TOKEN_NULL;
 
-	if (astart != NULL)
-		(*astart) (sem->semstate, isnull);
+	if (astart)
+		astart(sem->semstate, isnull);
 
 	/* an array element is any object, array or scalar */
 	switch (tok)
@@ -561,8 +561,8 @@ parse_array_element(JsonLexContext *lex, JsonSemAction *sem)
 			parse_scalar(lex, sem);
 	}
 
-	if (aend != NULL)
-		(*aend) (sem->semstate, isnull);
+	if (aend)
+		aend(sem->semstate, isnull);
 }
 
 static void
@@ -577,8 +577,8 @@ parse_array(JsonLexContext *lex, JsonSemAction *sem)
 
 	check_stack_depth();
 
-	if (astart != NULL)
-		(*astart) (sem->semstate);
+	if (astart)
+		astart(sem->semstate);
 
 	/*
 	 * Data inside an array is at a higher nesting level than the array
@@ -602,8 +602,8 @@ parse_array(JsonLexContext *lex, JsonSemAction *sem)
 
 	lex->lex_level--;
 
-	if (aend != NULL)
-		(*aend) (sem->semstate);
+	if (aend)
+		aend(sem->semstate);
 }
 
 /*
diff --git a/src/backend/utils/adt/jsonfuncs.c b/src/backend/utils/adt/jsonfuncs.c
index 4779e74895..bc2e55c01b 100644
--- a/src/backend/utils/adt/jsonfuncs.c
+++ b/src/backend/utils/adt/jsonfuncs.c
@@ -4860,7 +4860,7 @@ iterate_string_values_scalar(void *state, char *token, JsonTokenType tokentype)
 	IterateJsonStringValuesState *_state = (IterateJsonStringValuesState *) state;
 
 	if (tokentype == JSON_TOKEN_STRING)
-		(*_state->action) (_state->action_state, token, strlen(token));
+		_state->action(_state->action_state, token, strlen(token));
 }
 
 /*
diff --git a/src/backend/utils/adt/selfuncs.c b/src/backend/utils/adt/selfuncs.c
index 23e5526a8e..e8f4656c26 100644
--- a/src/backend/utils/adt/selfuncs.c
+++ b/src/backend/utils/adt/selfuncs.c
@@ -4713,7 +4713,7 @@ examine_variable(PlannerInfo *root, Node *node, int varRelid,
 						 * decisions about what to do with partial indexes.
 						 */
 						if (get_index_stats_hook &&
-							(*get_index_stats_hook) (root, index->indexoid,
+							get_index_stats_hook(root, index->indexoid,
 													 pos + 1, vardata))
 						{
 							/*
@@ -4788,7 +4788,7 @@ examine_simple_variable(PlannerInfo *root, Var *var,
 	Assert(IsA(rte, RangeTblEntry));
 
 	if (get_relation_stats_hook &&
-		(*get_relation_stats_hook) (root, rte, var->varattno, vardata))
+		get_relation_stats_hook(root, rte, var->varattno, vardata))
 	{
 		/*
 		 * The hook took control of acquiring a stats tuple.  If it did supply
@@ -6912,7 +6912,7 @@ btcostestimate(PlannerInfo *root, IndexPath *path, double loop_count,
 		colnum = index->indexkeys[0];
 
 		if (get_relation_stats_hook &&
-			(*get_relation_stats_hook) (root, rte, colnum, &vardata))
+			get_relation_stats_hook(root, rte, colnum, &vardata))
 		{
 			/*
 			 * The hook took control of acquiring a stats tuple.  If it did
@@ -6938,7 +6938,7 @@ btcostestimate(PlannerInfo *root, IndexPath *path, double loop_count,
 		colnum = 1;
 
 		if (get_index_stats_hook &&
-			(*get_index_stats_hook) (root, relid, colnum, &vardata))
+			get_index_stats_hook(root, relid, colnum, &vardata))
 		{
 			/*
 			 * The hook took control of acquiring a stats tuple.  If it did
@@ -7845,7 +7845,7 @@ brincostestimate(PlannerInfo *root, IndexPath *path, double loop_count,
 		{
 			/* Simple variable -- look to stats for the underlying table */
 			if (get_relation_stats_hook &&
-				(*get_relation_stats_hook) (root, rte, attnum, &vardata))
+				get_relation_stats_hook(root, rte, attnum, &vardata))
 			{
 				/*
 				 * The hook took control of acquiring a stats tuple.  If it
@@ -7876,7 +7876,7 @@ brincostestimate(PlannerInfo *root, IndexPath *path, double loop_count,
 			attnum = qinfo->indexcol + 1;
 
 			if (get_index_stats_hook &&
-				(*get_index_stats_hook) (root, index->indexoid, attnum, &vardata))
+				get_index_stats_hook(root, index->indexoid, attnum, &vardata))
 			{
 				/*
 				 * The hook took control of acquiring a stats tuple.  If it
diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c
index f894053d80..9521509bd0 100644
--- a/src/backend/utils/cache/catcache.c
+++ b/src/backend/utils/cache/catcache.c
@@ -1822,7 +1822,7 @@ PrepareToInvalidateCacheTuple(Relation relation,
 		hashvalue = CatalogCacheComputeTupleHashValue(ccp, tuple);
 		dbid = ccp->cc_relisshared ? (Oid) 0 : MyDatabaseId;
 
-		(*function) (ccp->id, hashvalue, dbid);
+		function(ccp->id, hashvalue, dbid);
 
 		if (newtuple)
 		{
@@ -1831,7 +1831,7 @@ PrepareToInvalidateCacheTuple(Relation relation,
 			newhashvalue = CatalogCacheComputeTupleHashValue(ccp, newtuple);
 
 			if (newhashvalue != hashvalue)
-				(*function) (ccp->id, newhashvalue, dbid);
+				function(ccp->id, newhashvalue, dbid);
 		}
 	}
 }
diff --git a/src/backend/utils/cache/inval.c b/src/backend/utils/cache/inval.c
index d0e54b8535..0e61b4b79f 100644
--- a/src/backend/utils/cache/inval.c
+++ b/src/backend/utils/cache/inval.c
@@ -590,7 +590,7 @@ LocalExecuteInvalidationMessage(SharedInvalidationMessage *msg)
 			{
 				struct RELCACHECALLBACK *ccitem = relcache_callback_list + i;
 
-				(*ccitem->function) (ccitem->arg, msg->rc.relId);
+				ccitem->function(ccitem->arg, msg->rc.relId);
 			}
 		}
 	}
@@ -650,14 +650,14 @@ InvalidateSystemCaches(void)
 	{
 		struct SYSCACHECALLBACK *ccitem = syscache_callback_list + i;
 
-		(*ccitem->function) (ccitem->arg, ccitem->id, 0);
+		ccitem->function(ccitem->arg, ccitem->id, 0);
 	}
 
 	for (i = 0; i < relcache_callback_count; i++)
 	{
 		struct RELCACHECALLBACK *ccitem = relcache_callback_list + i;
 
-		(*ccitem->function) (ccitem->arg, InvalidOid);
+		ccitem->function(ccitem->arg, InvalidOid);
 	}
 }
 
@@ -1460,7 +1460,7 @@ CallSyscacheCallbacks(int cacheid, uint32 hashvalue)
 		struct SYSCACHECALLBACK *ccitem = syscache_callback_list + i;
 
 		Assert(ccitem->id == cacheid);
-		(*ccitem->function) (ccitem->arg, cacheid, hashvalue);
+		ccitem->function(ccitem->arg, cacheid, hashvalue);
 		i = ccitem->link - 1;
 	}
 }
diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c
index 918db0a8f2..f6354a5e6c 100644
--- a/src/backend/utils/error/elog.c
+++ b/src/backend/utils/error/elog.c
@@ -435,7 +435,7 @@ errfinish(int dummy,...)
 	for (econtext = error_context_stack;
 		 econtext != NULL;
 		 econtext = econtext->previous)
-		(*econtext->callback) (econtext->arg);
+		econtext->callback(econtext->arg);
 
 	/*
 	 * If ERROR (not more nor less) we pass it off to the current handler.
@@ -1472,7 +1472,7 @@ EmitErrorReport(void)
 	 * detail, detail_log, hint and context text elements.
 	 */
 	if (edata->output_to_server && emit_log_hook)
-		(*emit_log_hook) (edata);
+		emit_log_hook(edata);
 
 	/* Send to server log, if enabled */
 	if (edata->output_to_server)
@@ -1837,7 +1837,7 @@ GetErrorContextStack(void)
 	for (econtext = error_context_stack;
 		 econtext != NULL;
 		 econtext = econtext->previous)
-		(*econtext->callback) (econtext->arg);
+		econtext->callback(econtext->arg);
 
 	/*
 	 * Clean ourselves off the stack, any allocations done should have been
diff --git a/src/backend/utils/fmgr/dfmgr.c b/src/backend/utils/fmgr/dfmgr.c
index 1239f95ddc..ca2186e4ed 100644
--- a/src/backend/utils/fmgr/dfmgr.c
+++ b/src/backend/utils/fmgr/dfmgr.c
@@ -245,7 +245,7 @@ internal_load_library(const char *libname)
 			pg_dlsym(file_scanner->handle, PG_MAGIC_FUNCTION_NAME_STRING);
 		if (magic_func)
 		{
-			const Pg_magic_struct *magic_data_ptr = (*magic_func) ();
+			const Pg_magic_struct *magic_data_ptr = magic_func();
 
 			if (magic_data_ptr->len != magic_data.len ||
 				memcmp(magic_data_ptr, &magic_data, magic_data.len) != 0)
@@ -278,7 +278,7 @@ internal_load_library(const char *libname)
 		 */
 		PG_init = (PG_init_t) pg_dlsym(file_scanner->handle, "_PG_init");
 		if (PG_init)
-			(*PG_init) ();
+			PG_init();
 
 		/* OK to link it into list */
 		if (file_list == NULL)
@@ -438,7 +438,7 @@ internal_unload_library(const char *libname)
 			 */
 			PG_fini = (PG_fini_t) pg_dlsym(file_scanner->handle, "_PG_fini");
 			if (PG_fini)
-				(*PG_fini) ();
+				PG_fini();
 
 			clear_external_function_hash(file_scanner->handle);
 			pg_dlclose(file_scanner->handle);
diff --git a/src/backend/utils/fmgr/fmgr.c b/src/backend/utils/fmgr/fmgr.c
index a7b07827e0..2e50a6425f 100644
--- a/src/backend/utils/fmgr/fmgr.c
+++ b/src/backend/utils/fmgr/fmgr.c
@@ -403,7 +403,7 @@ fetch_finfo_record(void *filehandle, const char *funcname)
 	}
 
 	/* Found, so call it */
-	inforec = (*infofunc) ();
+	inforec = infofunc();
 
 	/* Validate result as best we can */
 	if (inforec == NULL)
@@ -643,7 +643,7 @@ fmgr_security_definer(PG_FUNCTION_ARGS)
 
 	/* function manager hook */
 	if (fmgr_hook)
-		(*fmgr_hook) (FHET_START, &fcache->flinfo, &fcache->arg);
+		fmgr_hook(FHET_START, &fcache->flinfo, &fcache->arg);
 
 	/*
 	 * We don't need to restore GUC or userid settings on error, because the
@@ -674,7 +674,7 @@ fmgr_security_definer(PG_FUNCTION_ARGS)
 	{
 		fcinfo->flinfo = save_flinfo;
 		if (fmgr_hook)
-			(*fmgr_hook) (FHET_ABORT, &fcache->flinfo, &fcache->arg);
+			fmgr_hook(FHET_ABORT, &fcache->flinfo, &fcache->arg);
 		PG_RE_THROW();
 	}
 	PG_END_TRY();
@@ -686,7 +686,7 @@ fmgr_security_definer(PG_FUNCTION_ARGS)
 	if (OidIsValid(fcache->userid))
 		SetUserIdAndSecContext(save_userid, save_sec_context);
 	if (fmgr_hook)
-		(*fmgr_hook) (FHET_END, &fcache->flinfo, &fcache->arg);
+		fmgr_hook(FHET_END, &fcache->flinfo, &fcache->arg);
 
 	return result;
 }
@@ -714,7 +714,7 @@ DirectFunctionCall1Coll(PGFunction func, Oid collation, Datum arg1)
 	fcinfo.arg[0] = arg1;
 	fcinfo.argnull[0] = false;
 
-	result = (*func) (&fcinfo);
+	result = func(&fcinfo);
 
 	/* Check for null result, since caller is clearly not expecting one */
 	if (fcinfo.isnull)
@@ -736,7 +736,7 @@ DirectFunctionCall2Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2)
 	fcinfo.argnull[0] = false;
 	fcinfo.argnull[1] = false;
 
-	result = (*func) (&fcinfo);
+	result = func(&fcinfo);
 
 	/* Check for null result, since caller is clearly not expecting one */
 	if (fcinfo.isnull)
@@ -761,7 +761,7 @@ DirectFunctionCall3Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2,
 	fcinfo.argnull[1] = false;
 	fcinfo.argnull[2] = false;
 
-	result = (*func) (&fcinfo);
+	result = func(&fcinfo);
 
 	/* Check for null result, since caller is clearly not expecting one */
 	if (fcinfo.isnull)
@@ -788,7 +788,7 @@ DirectFunctionCall4Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2,
 	fcinfo.argnull[2] = false;
 	fcinfo.argnull[3] = false;
 
-	result = (*func) (&fcinfo);
+	result = func(&fcinfo);
 
 	/* Check for null result, since caller is clearly not expecting one */
 	if (fcinfo.isnull)
@@ -817,7 +817,7 @@ DirectFunctionCall5Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2,
 	fcinfo.argnull[3] = false;
 	fcinfo.argnull[4] = false;
 
-	result = (*func) (&fcinfo);
+	result = func(&fcinfo);
 
 	/* Check for null result, since caller is clearly not expecting one */
 	if (fcinfo.isnull)
@@ -849,7 +849,7 @@ DirectFunctionCall6Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2,
 	fcinfo.argnull[4] = false;
 	fcinfo.argnull[5] = false;
 
-	result = (*func) (&fcinfo);
+	result = func(&fcinfo);
 
 	/* Check for null result, since caller is clearly not expecting one */
 	if (fcinfo.isnull)
@@ -883,7 +883,7 @@ DirectFunctionCall7Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2,
 	fcinfo.argnull[5] = false;
 	fcinfo.argnull[6] = false;
 
-	result = (*func) (&fcinfo);
+	result = func(&fcinfo);
 
 	/* Check for null result, since caller is clearly not expecting one */
 	if (fcinfo.isnull)
@@ -919,7 +919,7 @@ DirectFunctionCall8Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2,
 	fcinfo.argnull[6] = false;
 	fcinfo.argnull[7] = false;
 
-	result = (*func) (&fcinfo);
+	result = func(&fcinfo);
 
 	/* Check for null result, since caller is clearly not expecting one */
 	if (fcinfo.isnull)
@@ -958,7 +958,7 @@ DirectFunctionCall9Coll(PGFunction func, Oid collation, Datum arg1, Datum arg2,
 	fcinfo.argnull[7] = false;
 	fcinfo.argnull[8] = false;
 
-	result = (*func) (&fcinfo);
+	result = func(&fcinfo);
 
 	/* Check for null result, since caller is clearly not expecting one */
 	if (fcinfo.isnull)
@@ -987,7 +987,7 @@ CallerFInfoFunctionCall1(PGFunction func, FmgrInfo *flinfo, Oid collation, Datum
 	fcinfo.arg[0] = arg1;
 	fcinfo.argnull[0] = false;
 
-	result = (*func) (&fcinfo);
+	result = func(&fcinfo);
 
 	/* Check for null result, since caller is clearly not expecting one */
 	if (fcinfo.isnull)
@@ -1009,7 +1009,7 @@ CallerFInfoFunctionCall2(PGFunction func, FmgrInfo *flinfo, Oid collation, Datum
 	fcinfo.argnull[0] = false;
 	fcinfo.argnull[1] = false;
 
-	result = (*func) (&fcinfo);
+	result = func(&fcinfo);
 
 	/* Check for null result, since caller is clearly not expecting one */
 	if (fcinfo.isnull)
diff --git a/src/include/utils/selfuncs.h b/src/include/utils/selfuncs.h
index dc6069d435..199a6317f5 100644
--- a/src/include/utils/selfuncs.h
+++ b/src/include/utils/selfuncs.h
@@ -81,7 +81,7 @@ typedef struct VariableStatData
 #define ReleaseVariableStats(vardata)  \
 	do { \
 		if (HeapTupleIsValid((vardata).statsTuple)) \
-			(* (vardata).freefunc) ((vardata).statsTuple); \
+			(vardata).freefunc((vardata).statsTuple); \
 	} while(0)
 
 
-- 
2.14.1