diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c
index a6c6de7..19708ab 100644
*** a/src/backend/commands/explain.c
--- b/src/backend/commands/explain.c
*************** static void show_sort_keys(SortState *so
*** 82,87 ****
--- 82,89 ----
  			   ExplainState *es);
  static void show_merge_append_keys(MergeAppendState *mstate, List *ancestors,
  					   ExplainState *es);
+ static void show_pruning_info(PartitionPruneInfo *pinfo, List *ancestors,
+ 					   ExplainState *es);
  static void show_agg_keys(AggState *astate, List *ancestors,
  			  ExplainState *es);
  static void show_grouping_sets(PlanState *planstate, Agg *agg,
*************** ExplainNode(PlanState *planstate, List *
*** 1841,1849 ****
--- 1843,1857 ----
  			show_sort_keys(castNode(SortState, planstate), ancestors, es);
  			show_sort_info(castNode(SortState, planstate), es);
  			break;
+ 		case T_Append:
+ 			show_pruning_info(((Append *) plan)->part_prune_info,
+ 							  ancestors, es);
+ 			break;
  		case T_MergeAppend:
  			show_merge_append_keys(castNode(MergeAppendState, planstate),
  								   ancestors, es);
+ 			show_pruning_info(((MergeAppend *) plan)->part_prune_info,
+ 							  ancestors, es);
  			break;
  		case T_Result:
  			show_upper_qual((List *) ((Result *) plan)->resconstantqual,
*************** show_merge_append_keys(MergeAppendState 
*** 2198,2203 ****
--- 2206,2258 ----
  }
  
  /*
+  * Show runtime pruning info, if any
+  */
+ static void
+ show_pruning_info(PartitionPruneInfo *ppinfo, List *ancestors,
+ 				  ExplainState *es)
+ {
+ 	ListCell   *lc;
+ 
+ 	if (ppinfo == NULL)
+ 		return;
+ 	Assert(IsA(ppinfo, PartitionPruneInfo));
+ 	foreach(lc, ppinfo->prune_infos)
+ 	{
+ 		List	   *prune_infos = lfirst(lc);
+ 		ListCell   *l2;
+ 
+ 		foreach(l2, prune_infos)
+ 		{
+ 			PartitionedRelPruneInfo *pinfo = lfirst(l2);
+ 
+ 			if (pinfo->do_initial_prune ||
+ 				pinfo->do_exec_prune)
+ 			{
+ 				Index rti = pinfo->rtindex;
+ 				RangeTblEntry *rte;
+ 				char	   *refname;
+ 
+ 				rte = rt_fetch(rti, es->rtable);
+ 				refname = (char *) list_nth(es->rtable_names, rti - 1);
+ 				if (refname == NULL)
+ 					refname = rte->eref->aliasname;
+ 
+ 				if (es->format == EXPLAIN_FORMAT_TEXT)
+ 				{
+ 					appendStringInfoSpaces(es->str, es->indent * 2);
+ 					appendStringInfo(es->str,
+ 									 "Runtime Pruning: %s has %d initial steps, %d exec steps\n",
+ 									 refname,
+ 									 pinfo->do_initial_prune ? list_length(pinfo->pruning_steps) : 0,
+ 									 pinfo->do_exec_prune ? list_length(pinfo->pruning_steps) : 0);
+ 				}
+ 			}
+ 		}
+ 	}
+ }
+ 
+ /*
   * Show the grouping keys for an Agg node.
   */
  static void
