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);
