From 5442882209de79954113162a68dfbd76d4c7b861 Mon Sep 17 00:00:00 2001 From: Sait Talha Nisanci Date: Thu, 19 Aug 2021 15:03:49 +0300 Subject: [PATCH] Add shard relation to pState in localCopy CopyFrom expects an AccessShareLock on the table. Instead of adding an explicit lock, we do it how postgres is doing, which is to use addRangeTableEntryForRelation. Commit: c532d15dddff14b01fe9ef1d465013cb8ef186df --- src/backend/distributed/commands/local_multi_copy.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/backend/distributed/commands/local_multi_copy.c b/src/backend/distributed/commands/local_multi_copy.c index 91094b57b..2a4a30413 100644 --- a/src/backend/distributed/commands/local_multi_copy.c +++ b/src/backend/distributed/commands/local_multi_copy.c @@ -209,10 +209,8 @@ DoLocalCopy(StringInfo buffer, Oid relationId, int64 shardId, CopyStmt *copyStat Oid shardOid = GetTableLocalShardOid(relationId, shardId); Relation shard = table_open(shardOid, RowExclusiveLock); ParseState *pState = make_parsestate(NULL); - - /* p_rtable of pState is set so that we can check constraints. */ - pState->p_rtable = CreateRangeTable(shard, ACL_INSERT); - + (void) addRangeTableEntryForRelation(pState, shard, AccessShareLock, + NULL, false, false); CopyFromState_compat cstate = BeginCopyFrom_compat(pState, shard, NULL, NULL, false, ReadFromLocalBufferCallback, copyStatement->attlist,