diff --git a/src/backend/distributed/planner/multi_physical_planner.c b/src/backend/distributed/planner/multi_physical_planner.c index d95040049..d993c9071 100644 --- a/src/backend/distributed/planner/multi_physical_planner.c +++ b/src/backend/distributed/planner/multi_physical_planner.c @@ -5398,6 +5398,16 @@ ActiveShardPlacementLists(List *taskList) /* sort shard placements by their creation time */ activeShardPlacementList = SortList(activeShardPlacementList, CompareShardPlacements); + + /* + * The executor currently does not know how to handle map task failover, + * so we generate at most 1 placement. + */ + if (task->taskType == MAP_TASK) + { + activeShardPlacementList = list_make1(linitial(activeShardPlacementList)); + } + shardPlacementLists = lappend(shardPlacementLists, activeShardPlacementList); }