From 8872f46e8d636aa27551c9241c2c722cade0eed7 Mon Sep 17 00:00:00 2001 From: Onder Kalaci Date: Wed, 13 Jul 2016 16:13:45 +0300 Subject: [PATCH] Stop serializing/de-serializing router target list element This commits prevents the target list entries for router plans to be added in the serialized plan since they are not required. The aim of this change is to improve performance with skipping some of the unnecessary serializations. --- src/backend/distributed/planner/multi_router_planner.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/backend/distributed/planner/multi_router_planner.c b/src/backend/distributed/planner/multi_router_planner.c index 5f76b3194..f94cff262 100644 --- a/src/backend/distributed/planner/multi_router_planner.c +++ b/src/backend/distributed/planner/multi_router_planner.c @@ -842,6 +842,13 @@ RouterQueryJob(Query *query, Task *task) job->jobQuery = query; job->taskList = taskList; + /* + * Router query jobs do not require jobQuery's target list. Setting it to NIL + * enables us not to serialize/de-serialize while the query is passed to the + * executor. This improves planning times significantly. + */ + job->jobQuery->targetList = NIL; + return job; }