diff --git a/src/backend/executor/execUtils.c b/src/backend/executor/execUtils.c index 2a47abc02e..b9ee875267 100644 --- a/src/backend/executor/execUtils.c +++ b/src/backend/executor/execUtils.c @@ -664,12 +664,17 @@ bool ExecRelationIsTargetRelation(EState *estate, Index scanrelid) { ResultRelInfo *resultRelInfos; + Oid scanreloid; int i; + Assert(estate->es_range_table_array != NULL && + estate->es_range_table_array[scanrelid - 1] != NULL); + scanreloid = estate->es_range_table_array[scanrelid - 1]->relid; + resultRelInfos = estate->es_result_relations; for (i = 0; i < estate->es_num_result_relations; i++) { - if (resultRelInfos[i].ri_RangeTableIndex == scanrelid) + if (scanreloid == resultRelInfos[i].ri_RelationDesc->rd_id) return true; } return false;