diff --git a/src/backend/replication/logical/worker.c b/src/backend/replication/logical/worker.c index 354fbe4b4b..106fd19c1b 100644 --- a/src/backend/replication/logical/worker.c +++ b/src/backend/replication/logical/worker.c @@ -1173,7 +1173,7 @@ apply_handle_insert(StringInfo s) RelationGetDescr(rel->localrel), &TTSOpsVirtual); resultRelInfo = makeNode(ResultRelInfo); - InitResultRelInfo(resultRelInfo, rel->localrel, 1, NULL, 0); + ExecInitResultRelation(estate, resultRelInfo, 1); /* Input functions may need an active snapshot, so get one */ PushActiveSnapshot(GetTransactionSnapshot()); @@ -1196,6 +1196,7 @@ apply_handle_insert(StringInfo s) /* Handle queued AFTER triggers. */ AfterTriggerEndQuery(estate); + ExecCloseRangeTableRelations(estate); ExecResetTupleTable(estate->es_tupleTable, false); FreeExecutorState(estate); @@ -1298,7 +1299,7 @@ apply_handle_update(StringInfo s) RelationGetDescr(rel->localrel), &TTSOpsVirtual); resultRelInfo = makeNode(ResultRelInfo); - InitResultRelInfo(resultRelInfo, rel->localrel, 1, NULL, 0); + ExecInitResultRelation(estate, resultRelInfo, 1); /* * Populate updatedCols so that per-column triggers can fire, and so @@ -1347,6 +1348,7 @@ apply_handle_update(StringInfo s) /* Handle queued AFTER triggers. */ AfterTriggerEndQuery(estate); + ExecCloseRangeTableRelations(estate); ExecResetTupleTable(estate->es_tupleTable, false); FreeExecutorState(estate); @@ -1455,7 +1457,7 @@ apply_handle_delete(StringInfo s) RelationGetDescr(rel->localrel), &TTSOpsVirtual); resultRelInfo = makeNode(ResultRelInfo); - InitResultRelInfo(resultRelInfo, rel->localrel, 1, NULL, 0); + ExecInitResultRelation(estate, resultRelInfo, 1); PushActiveSnapshot(GetTransactionSnapshot()); @@ -1476,6 +1478,7 @@ apply_handle_delete(StringInfo s) /* Handle queued AFTER triggers. */ AfterTriggerEndQuery(estate); + ExecCloseRangeTableRelations(estate); ExecResetTupleTable(estate->es_tupleTable, false); FreeExecutorState(estate);