From 95021cfb557dd022f6ee258a14ef91da2b3508aa Mon Sep 17 00:00:00 2001 From: Ahmet Gedemenli Date: Thu, 21 Oct 2021 17:49:56 +0300 Subject: [PATCH] Mark connected relations as not auto-converted, if the relation is already converted --- .../commands/citus_add_local_table_to_metadata.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/backend/distributed/commands/citus_add_local_table_to_metadata.c b/src/backend/distributed/commands/citus_add_local_table_to_metadata.c index 39d112758..f20617f0c 100644 --- a/src/backend/distributed/commands/citus_add_local_table_to_metadata.c +++ b/src/backend/distributed/commands/citus_add_local_table_to_metadata.c @@ -215,6 +215,20 @@ CreateCitusLocalTable(Oid relationId, bool cascadeViaForeignKeys, bool autoConve */ SetLocalExecutionStatus(LOCAL_EXECUTION_REQUIRED); + if (IsCitusTable(relationId) && IsCitusTableType(relationId, CITUS_LOCAL_TABLE) && + !autoConverted) + { + /* we should mark this relation and connected ones as autoConverted = false */ + List *relationIdList = GetForeignKeyConnectedRelationIdList(relationId); + Oid relid = InvalidOid; + foreach_oid(relid, relationIdList) + { + UpdatePartitionAutoConverted(relid, autoConverted); + } + + return; + } + /* * Lock target relation with an AccessExclusiveLock as we don't want * multiple backends manipulating this relation. We could actually simply