• Michael Paquier's avatar
    Fix incorrect memory context switch in COPY TO execution · b30282fc
    Michael Paquier authored
    c532d15d 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
    b30282fc
copyto.c 34.1 KB