diff --git a/src/backend/distributed/planner/deparse_shard_query.c b/src/backend/distributed/planner/deparse_shard_query.c index c83170eac..43a493a89 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); @@ -159,7 +158,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 f0c30a01e..9bb9e51f1 100644 --- a/src/backend/distributed/planner/local_plan_cache.c +++ b/src/backend/distributed/planner/local_plan_cache.c @@ -174,6 +174,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 */