From 5f5f7b4fe097163e58b510dae7075b3e9c0e97de Mon Sep 17 00:00:00 2001 From: Marco Slot Date: Sun, 6 May 2018 17:36:40 +0200 Subject: [PATCH] Throw an error if placements cannot be found in router executor --- src/backend/distributed/executor/multi_router_executor.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/backend/distributed/executor/multi_router_executor.c b/src/backend/distributed/executor/multi_router_executor.c index 5face47b8..53a0083e2 100644 --- a/src/backend/distributed/executor/multi_router_executor.c +++ b/src/backend/distributed/executor/multi_router_executor.c @@ -628,6 +628,13 @@ ExecuteSingleSelectTask(CitusScanState *scanState, Task *task) placementAccessList = list_make1(placementAccess); } + if (placementAccessList == NIL) + { + ereport(ERROR, (errcode(ERRCODE_T_R_SERIALIZATION_FAILURE), + errmsg("a placement was moved after the SELECT was " + "planned"))); + } + connection = GetPlacementListConnection(connectionFlags, placementAccessList, NULL);