• Fujii Masao's avatar
    Allow TRUNCATE command to truncate foreign tables. · 8ff1c946
    Fujii Masao authored
    This commit introduces new foreign data wrapper API for TRUNCATE.
    It extends TRUNCATE command so that it accepts foreign tables as
    the targets to truncate and invokes that API. Also it extends postgres_fdw
    so that it can issue TRUNCATE command to foreign servers, by adding
    new routine for that TRUNCATE API.
    
    The information about options specified in TRUNCATE command, e.g.,
    ONLY, CACADE, etc is passed to FDW via API. The list of foreign tables to
    truncate is also passed to FDW. FDW truncates the foreign data sources
    that the passed foreign tables specify, based on those information.
    For example, postgres_fdw constructs TRUNCATE command using them
    and issues it to the foreign server.
    
    For performance, TRUNCATE command invokes the FDW routine for
    TRUNCATE once per foreign server that foreign tables to truncate belong to.
    
    Author: Kazutaka Onishi, Kohei KaiGai, slightly modified by Fujii Masao
    Reviewed-by: Bharath Rupireddy, Michael Paquier, Zhihong Yu, Alvaro Herrera, Stephen Frost, Ashutosh Bapat, Amit Langote, Daniel Gustafsson, Ibrar Ahmed, Fujii Masao
    Discussion: https://postgr.es/m/CAOP8fzb_gkReLput7OvOK+8NHgw-RKqNv59vem7=524krQTcWA@mail.gmail.com
    Discussion: https://postgr.es/m/CAJuF6cMWDDqU-vn_knZgma+2GMaout68YUgn1uyDnexRhqqM5Q@mail.gmail.com
    8ff1c946
postgres_fdw.c 219 KB