• Michael Paquier's avatar
    Use multi-inserts for pg_attribute and pg_shdepend · e3931d01
    Michael Paquier authored
    For pg_attribute, this allows to insert at once a full set of attributes
    for a relation (roughly 15% of WAL reduction in extreme cases).  For
    pg_shdepend, this reduces the work done when creating new shared
    dependencies from a database template.  The number of slots used for the
    insertion is capped at 64kB of data inserted for both, depending on the
    number of items to insert and the length of the rows involved.
    
    More can be done for other catalogs, like pg_depend.  This part requires
    a different approach as the number of slots to use depends also on the
    number of entries discarded as pinned dependencies.  This is also
    related to the rework or dependency handling for ALTER TABLE and CREATE
    TABLE, mainly.
    
    Author: Daniel Gustafsson
    Reviewed-by: Andres Freund, Michael Paquier
    Discussion: https://postgr.es/m/20190213182737.mxn6hkdxwrzgxk35@alap3.anarazel.de
    e3931d01
index.c 127 KB