Hi, hackers When I read the code of COPY ... FROM ..., I find there is a redundant MemoryContextSwith() in BeginCopyFrom(). In BeginCopyFrom, it creates a COPY memory context and then switches to it, in the middle of this function, it switches to the oldcontext and immediately switches back to COPY memory context, IMO, this is redundant, and can be removed safely.
-- Regrads, Japin Li. ChengDu WenWu Information Technology Co.,Ltd.
diff --git a/src/backend/commands/copyfrom.c b/src/backend/commands/copyfrom.c index 0d6b34206a..7b3f5a84b8 100644 --- a/src/backend/commands/copyfrom.c +++ b/src/backend/commands/copyfrom.c @@ -1340,10 +1340,6 @@ BeginCopyFrom(ParseState *pstate, cstate->whereClause = whereClause; - MemoryContextSwitchTo(oldcontext); - - oldcontext = MemoryContextSwitchTo(cstate->copycontext); - /* Initialize state variables */ cstate->eol_type = EOL_UNKNOWN; cstate->cur_relname = RelationGetRelationName(cstate->rel);