quick-fix-for-EPQ-initplan-problem.patch
text/x-diff
Filename: quick-fix-for-EPQ-initplan-problem.patch
Type: text/x-diff
Part: 0
Patch
Format: unified
| File | + | − |
|---|---|---|
| src/backend/executor/execMain.c | 0 | 0 |
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));