Skip to content

Commit dc084d7

Browse files
committed
Fix incorrect memory context switch in COPY TO execution
c532d15 has split the logic of COPY commands into multiple files, one change being to move the internals of BeginCopy() to BeginCopyTo(). Originally the code was written so as we'd switch back-and-forth between the current execution memory context and the dedicated memory context for the COPY command, and this refactoring has introduced an extra switch to the current memory context from the COPY context once BeginCopyTo() is done with the past logic coming from BeginCopy(). The code was correctly doing the analyze, rewrite and planning phases in the COPY context, but it was not assigning "copy_file" (FILE* used when copying to a source file) and "filename" in the COPY context, making the COPY status data inconsistent. Author: Bharath Rupireddy Reviewed-by: Japin Li Discussion: https://postgr.es/m/CALj2ACWvVa69foi9jhHFY=2BuHxAoYboyE+vXQTARwxZcJnVrQ@mail.gmail.com Backpatch-through: 14
1 parent 0d72d6b commit dc084d7

File tree

1 file changed

+0
-2
lines changed

1 file changed

+0
-2
lines changed

src/backend/commands/copyto.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -657,8 +657,6 @@ BeginCopyTo(ParseState *pstate,
657657

658658
cstate->copy_dest = COPY_FILE; /* default */
659659

660-
MemoryContextSwitchTo(oldcontext);
661-
662660
if (pipe)
663661
{
664662
progress_vals[1] = PROGRESS_COPY_TYPE_PIPE;

0 commit comments

Comments
 (0)