From 1ca9a5b8677f41179ccc904414cd3946dc17c663 Mon Sep 17 00:00:00 2001 From: Marco Slot Date: Thu, 20 Sep 2018 19:28:37 +0200 Subject: [PATCH] Do not allow unresolved parameters in INSERT...SELECT --- src/backend/distributed/planner/distributed_planner.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/backend/distributed/planner/distributed_planner.c b/src/backend/distributed/planner/distributed_planner.c index 6ef0f5824..a17ef0e42 100644 --- a/src/backend/distributed/planner/distributed_planner.c +++ b/src/backend/distributed/planner/distributed_planner.c @@ -595,6 +595,16 @@ CreateDistributedPlan(uint64 planId, Query *originalQuery, Query *query, ParamLi if (InsertSelectIntoDistributedTable(originalQuery)) { + if (hasUnresolvedParams) + { + /* + * Unresolved parameters can cause performance regressions in + * INSERT...SELECT when the partition column is a parameter + * because we don't perform any additional pruning in the executor. + */ + return NULL; + } + distributedPlan = CreateInsertSelectPlan(originalQuery, plannerRestrictionContext); }