• Michael Paquier's avatar
    Disable WAL-skipping optimization for COPY on views and foreign tables · bf491a90
    Michael Paquier authored
    COPY can skip writing WAL when loading data on a table which has been
    created in the same transaction as the one loading the data, however
    this cannot work on views or foreign table as this would result in
    trying to flush relation files which do not exist.  So disable the
    optimization so as commands are able to work the same way with any
    configuration of wal_level.
    
    Tests are added to cover the different cases, which need to have
    wal_level set to minimal to allow the problem to show up, and that is
    not the default configuration.
    
    Reported-by: Luis M. Carril, Etsuro Fujita
    Author: Amit Langote, Michael Paquier
    Reviewed-by: Etsuro Fujita
    Discussion: https://postgr.es/m/15552-c64aa14c5c22f63c@postgresql.org
    Backpatch-through: 10, where support for COPY on views has been added,
    while v11 has added support for COPY on foreign tables.
    bf491a90
copy.c 143 KB