• Michael Paquier's avatar
    Adjust tuple data lookup logic in multi-insert logical decoding · 75c1921c
    Michael Paquier authored
    As of now, logical decoding of a multi-insert has been scanning all
    xl_multi_insert_tuple entries only if XLH_INSERT_CONTAINS_NEW_TUPLE was
    getting set in the record.  This is not an issue on HEAD as multi-insert
    records are not used for system catalogs, but the logical decoding logic
    includes all the code necessary to handle that properly, except that the
    code missed to iterate correctly over all xl_multi_insert_tuple entries
    when the flag is not set.  Hence, when trying to use multi-insert for
    system catalogs, an assertion would be triggered.
    
    An upcoming patch is going to make use of multi-insert for system
    catalogs, and this fixes the logic to make sure that all entries are
    scanned correctly without softening the existing assertions.
    
    Reported-by: Daniel Gustafsson
    Author: Michael Paquier
    Reviewed-by: Daniel Gustafsson
    Discussion: https://postgr.es/m/CBFFD532-C033-49EB-9A5A-F67EAEE9EB0B@yesql.se
    75c1921c
decode.c 30.6 KB