From 29aecaff91c526e776cfc9002fe6ae7e37aa1699 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,