From 9c0bb3fb008efdd17d6efa4ee24559fd9bd3edbb Mon Sep 17 00:00:00 2001 From: Onder Kalaci Date: Thu, 20 Oct 2016 11:44:38 +0300 Subject: [PATCH] Revert "temp commit for multi task router" This reverts commit c05ccde171ea254faffdc0e605e05e1b3ef0c576. --- .../executor/multi_server_executor.c | 43 +++++++++---------- src/test/regress/sql/multi_insert_select.sql | 8 ---- 2 files changed, 20 insertions(+), 31 deletions(-) diff --git a/src/backend/distributed/executor/multi_server_executor.c b/src/backend/distributed/executor/multi_server_executor.c index a5cae6e72..ec3a3af2c 100644 --- a/src/backend/distributed/executor/multi_server_executor.c +++ b/src/backend/distributed/executor/multi_server_executor.c @@ -127,32 +127,18 @@ RouterExecutablePlan(MultiPlan *multiPlan, MultiExecutorType executorType) List *workerDependentTaskList = NIL; bool masterQueryHasAggregates = false; - if (executorType == MULTI_EXECUTOR_TASK_TRACKER) - { - return false; - } - - /* router executor cannot execute repartition jobs */ - if (dependedJobCount > 0) - { - return false; - } - - /* router executor cannot execute plans when master query is present */ - if (masterQuery != NULL) - { - return false; - } - - /* - * Multi task router executor can execute plans with zero task. This is currently - * here for INSERT ... SELECT queries with zero shards. - */ - if (taskCount == 0) + /* TODO: this is a hacky solution to allow 0 shard INSERT ... SELECT */ + if (masterQuery == NULL) { return true; } + /* router executor cannot execute queries that hit zero shards */ + if (taskCount == 0) + { + return false; + } + /* check if the first task is a modify or a router task, short-circuit if so */ workerTask = (Task *) linitial(workerTaskList); taskType = workerTask->taskType; @@ -162,7 +148,18 @@ RouterExecutablePlan(MultiPlan *multiPlan, MultiExecutorType executorType) } /* router executor cannot execute SELECT queries that hit more than one shard */ - if (taskCount != 1 && taskType == ROUTER_TASK) + if (taskCount != 1) + { + return false; + } + + if (executorType == MULTI_EXECUTOR_TASK_TRACKER) + { + return false; + } + + /* router executor cannot execute repartition jobs */ + if (dependedJobCount > 0) { return false; } diff --git a/src/test/regress/sql/multi_insert_select.sql b/src/test/regress/sql/multi_insert_select.sql index 878654fb1..e04496a60 100644 --- a/src/test/regress/sql/multi_insert_select.sql +++ b/src/test/regress/sql/multi_insert_select.sql @@ -101,14 +101,6 @@ FROM WHERE 0 != 0; -INSERT INTO raw_events_second (value_2, value_1, value_3, value_4, user_id, time) -SELECT - value_2, value_1, value_3, value_4, user_id, time -FROM - raw_events_first -WHERE - user_id = 15 AND user_id = 16; - -- add one more row SET client_min_messages TO INFO; INSERT INTO raw_events_first (user_id, time, value_1, value_2, value_3, value_4) VALUES