diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c
index c583e02..35c9eb2 100644
*** a/src/backend/executor/execMain.c
--- b/src/backend/executor/execMain.c
***************
*** 46,51 ****
--- 46,52 ----
  #include "commands/matview.h"
  #include "commands/trigger.h"
  #include "executor/execdebug.h"
+ #include "executor/execExpr.h"
  #include "foreign/fdwapi.h"
  #include "mb/pg_wchar.h"
  #include "miscadmin.h"
*************** EvalPlanQualBegin(EPQState *epqstate, ES
*** 3078,3083 ****
--- 3079,3087 ----
  		{
  			int			i;
  
+ 			/* First, force evaluation of any initPlans needed by subplan */
+ 			ExecEvalParamExecParams(planstate->plan->extParam, parentestate);
+ 
  			i = list_length(parentestate->es_plannedstmt->paramExecTypes);
  
  			while (--i >= 0)
*************** EvalPlanQualStart(EPQState *epqstate, ES
*** 3170,3175 ****
--- 3174,3182 ----
  	{
  		int			i;
  
+ 		/* First, force evaluation of any initPlans needed by subplan */
+ 		ExecEvalParamExecParams(planTree->extParam, parentestate);
+ 
  		i = list_length(parentestate->es_plannedstmt->paramExecTypes);
  		estate->es_param_exec_vals = (ParamExecData *)
  			palloc0(i * sizeof(ParamExecData));
