From 0f1f55c287a431da66f45cb7a4617762f8fe0e20 Mon Sep 17 00:00:00 2001 From: Sait Talha Nisanci Date: Thu, 4 Nov 2021 13:40:16 +0300 Subject: [PATCH] Fix missing from entry (cherry picked from commit a0e0759f730fa9ea33e40b217a92e64ad985c763) --- src/backend/distributed/planner/deparse_shard_query.c | 3 +-- src/backend/distributed/planner/local_plan_cache.c | 2 ++ src/include/distributed/deparse_shard_query.h | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/backend/distributed/planner/deparse_shard_query.c b/src/backend/distributed/planner/deparse_shard_query.c index 00b859f50..0667c2bbe 100644 --- a/src/backend/distributed/planner/deparse_shard_query.c +++ b/src/backend/distributed/planner/deparse_shard_query.c @@ -39,7 +39,6 @@ #include "utils/syscache.h" -static void AddInsertAliasIfNeeded(Query *query); static void UpdateTaskQueryString(Query *query, Task *task); static RelationShard * FindRelationShard(Oid inputRelationId, List *relationShardList); static void ConvertRteToSubqueryWithEmptyResult(RangeTblEntry *rte); @@ -145,7 +144,7 @@ RebuildQueryStrings(Job *workerJob) * deparsing issues (e.g. RETURNING might reference the original table name, * which has been replaced by a shard name). */ -static void +void AddInsertAliasIfNeeded(Query *query) { Assert(query->commandType == CMD_INSERT); diff --git a/src/backend/distributed/planner/local_plan_cache.c b/src/backend/distributed/planner/local_plan_cache.c index e87165fed..b701a2dea 100644 --- a/src/backend/distributed/planner/local_plan_cache.c +++ b/src/backend/distributed/planner/local_plan_cache.c @@ -178,6 +178,8 @@ DeparseLocalShardQuery(Query *jobQuery, List *relationShardList, Oid */ Assert(!CheckInsertSelectQuery(jobQuery)); + AddInsertAliasIfNeeded(jobQuery); + /* * For INSERT queries we cannot use pg_get_query_def. Mainly because we * cannot run UpdateRelationToShardNames on an INSERT query. This is diff --git a/src/include/distributed/deparse_shard_query.h b/src/include/distributed/deparse_shard_query.h index bdd1eb600..9370e51e2 100644 --- a/src/include/distributed/deparse_shard_query.h +++ b/src/include/distributed/deparse_shard_query.h @@ -29,6 +29,7 @@ extern void SetTaskQueryStringList(Task *task, List *queryStringList); extern char * TaskQueryString(Task *task); extern char * TaskQueryStringAtIndex(Task *task, int index); extern int GetTaskQueryType(Task *task); +extern void AddInsertAliasIfNeeded(Query *query); #endif /* DEPARSE_SHARD_QUERY_H */