• Michael Paquier's avatar
    Fix timestamp of sent message for write context in logical decoding · 5f6b1eb0
    Michael Paquier authored
    When sending data for logical decoding using the streaming replication
    protocol via a WAL sender, the timestamp of the sent write message is
    allocated at the beginning of the message when preparing for the write,
    and actually computed when the write message is ready to be sent.
    
    The timestamp was getting computed after sending the message.  This
    impacts anything using logical decoding, causing for example logical
    replication to report mostly NULL for last_msg_send_time in
    pg_stat_subscription.
    
    This commit makes sure that the timestamp is computed before sending the
    message.  This is wrong since 5a991ef8, so backpatch down to 9.4.
    
    Author: Jeff Janes
    Discussion: https://postgr.es/m/CAMkU=1z=WMn8jt7iEdC5sYNaPgAgOASb_OW5JYv-vMdYaJSL-w@mail.gmail.com
    Backpatch-through: 9.4
    5f6b1eb0
walsender.c 101 KB