diff --git a/src/backend/statistics/mcv.c b/src/backend/statistics/mcv.c
index 9ab3e81a91..70e4d22a68 100644
--- a/src/backend/statistics/mcv.c
+++ b/src/backend/statistics/mcv.c
@@ -1415,15 +1415,15 @@ pg_stats_ext_mcvlist_items(PG_FUNCTION_ARGS)
 				bool		isvarlena;
 				Oid			outfunc;
 				FmgrInfo	fmgrinfo;
-				Datum		val;
+				char	   *val;
 				text	   *txt;
 
 				/* lookup output func for the type */
 				getTypeOutputInfo(mcvlist->types[i], &outfunc, &isvarlena);
 				fmgr_info(outfunc, &fmgrinfo);
 
-				val = FunctionCall1(&fmgrinfo, item->values[i]);
-				txt = cstring_to_text(DatumGetPointer(val));
+				val = OutputFunctionCall(&fmgrinfo, item->values[i]);
+				txt = cstring_to_text(val);
 
 				astate_values = accumArrayResult(astate_values,
 												 PointerGetDatum(txt),
