Fix initialization of es_result_relations in EvalPlanQualStart().
authorHeikki Linnakangas <[email protected]>
Fri, 23 Oct 2020 06:30:08 +0000 (09:30 +0300)
committerHeikki Linnakangas <[email protected]>
Fri, 23 Oct 2020 06:30:08 +0000 (09:30 +0300)
Thinko in commit 1375422c782. EvalPlanQualStart() was mistakenly
resetting the parent EState's es_result_relations, when it should
initialize the field in the child EPQ EState it just created.

That was clearly wrong, but it didn't cause any ill effects, because
es_result_relations is currently not used after the ExecInit* phase.

Author: Amit Langote
Discussion: https://www.postgresql.org/message-id/CA%2BHiwqFEuq8AAAmxXsTDVZ1r38cHbfYuiPQx_%3DYyKe2DC-6q4A%40mail.gmail.com

src/backend/executor/execMain.c

index aea04794487f486ccf82ecf222fee08cf774796b..7179f589f9491f6916f62a2367e56cdee16374c1 100644 (file)
@@ -2693,7 +2693,7 @@ EvalPlanQualStart(EPQState *epqstate, Plan *planTree)
     * ResultRelInfos needed by subplans are initialized from scratch when the
     * subplans themselves are initialized.
     */
-   parentestate->es_result_relations = NULL;
+   rcestate->es_result_relations = NULL;
    /* es_trig_target_relations must NOT be copied */
    rcestate->es_top_eflags = parentestate->es_top_eflags;
    rcestate->es_instrument = parentestate->es_instrument;