*** a/src/backend/commands/tablecmds.c
--- b/src/backend/commands/tablecmds.c
***************
*** 925,931 **** ExecuteTruncate(TruncateStmt *stmt)
  		InitResultRelInfo(resultRelInfo,
  						  rel,
  						  0,	/* dummy rangetable index */
- 						  CMD_DELETE,	/* don't need any index info */
  						  false);
  		resultRelInfo++;
  	}
--- 925,930 ----
*** a/src/backend/executor/execMain.c
--- b/src/backend/executor/execMain.c
***************
*** 665,671 **** InitPlan(QueryDesc *queryDesc, int eflags)
  			InitResultRelInfo(resultRelInfo,
  							  resultRelation,
  							  resultRelationIndex,
- 							  operation,
  							  estate->es_instrument);
  			resultRelInfo++;
  		}
--- 665,670 ----
***************
*** 857,863 **** void
  InitResultRelInfo(ResultRelInfo *resultRelInfo,
  				  Relation resultRelationDesc,
  				  Index resultRelationIndex,
- 				  CmdType operation,
  				  bool doInstrument)
  {
  	/*
--- 856,861 ----
***************
*** 987,993 **** ExecGetTriggerResultRel(EState *estate, Oid relid)
  	InitResultRelInfo(rInfo,
  					  rel,
  					  0,		/* dummy rangetable index */
- 					  CMD_DELETE,
  					  estate->es_instrument);
  	estate->es_trig_target_relations =
  		lappend(estate->es_trig_target_relations, rInfo);
--- 985,990 ----
*** a/src/backend/executor/nodeSubplan.c
--- b/src/backend/executor/nodeSubplan.c
***************
*** 667,672 **** ExecInitSubPlan(SubPlan *subplan, PlanState *parent)
--- 667,673 ----
  	/* Link the SubPlanState to already-initialized subplan */
  	sstate->planstate = (PlanState *) list_nth(estate->es_subplanstates,
  											   subplan->plan_id - 1);
+ 	Assert(sstate->planstate != NULL);
  
  	/* Initialize subexpressions */
  	sstate->testexpr = ExecInitExpr((Expr *) subplan->testexpr, parent);
*** a/src/backend/parser/parse_cte.c
--- b/src/backend/parser/parse_cte.c
***************
*** 18,24 ****
  #include "nodes/nodeFuncs.h"
  #include "parser/analyze.h"
  #include "parser/parse_cte.h"
- #include "nodes/plannodes.h"
  #include "utils/builtins.h"
  
  
--- 18,23 ----
*** a/src/backend/parser/parse_relation.c
--- b/src/backend/parser/parse_relation.c
***************
*** 24,30 ****
  #include "funcapi.h"
  #include "nodes/makefuncs.h"
  #include "nodes/nodeFuncs.h"
- #include "nodes/plannodes.h"
  #include "parser/parsetree.h"
  #include "parser/parse_relation.h"
  #include "parser/parse_type.h"
--- 24,29 ----
*** a/src/backend/rewrite/rewriteHandler.c
--- b/src/backend/rewrite/rewriteHandler.c
***************
*** 1842,1854 **** RewriteQuery(Query *parsetree, List *rewrite_events)
  					cte->ctequery = (Node *) lfirst(lc);
  				else
  					rewritten = lcons((void *) lfirst(lc), rewritten);
- 					
  				n++;
  			}
  
  		}
  		else
  		{
  			cte->ctequery = (Node *) linitial(newstuff);
  			rewritten = list_concat(rewritten,
  							  list_delete_first(newstuff));
--- 1842,1855 ----
  					cte->ctequery = (Node *) lfirst(lc);
  				else
  					rewritten = lcons((void *) lfirst(lc), rewritten);
  				n++;
  			}
  
  		}
  		else
  		{
+ 			Assert(list_length(newstuff) == 1);
+ 
  			cte->ctequery = (Node *) linitial(newstuff);
  			rewritten = list_concat(rewritten,
  							  list_delete_first(newstuff));
*** a/src/include/executor/executor.h
--- b/src/include/executor/executor.h
***************
*** 160,166 **** extern void ExecutorRewind(QueryDesc *queryDesc);
  extern void InitResultRelInfo(ResultRelInfo *resultRelInfo,
  				  Relation resultRelationDesc,
  				  Index resultRelationIndex,
- 				  CmdType operation,
  				  bool doInstrument);
  extern ResultRelInfo *ExecGetTriggerResultRel(EState *estate, Oid relid);
  extern bool ExecContextForcesOids(PlanState *planstate, bool *hasoids);
--- 160,165 ----
