• Amit Kapila's avatar
    Extend the logical decoding output plugin API with stream methods. · 45fdc973
    Amit Kapila authored
    This adds seven methods to the output plugin API, adding support for
    streaming changes of large in-progress transactions.
    
    * stream_start
    * stream_stop
    * stream_abort
    * stream_commit
    * stream_change
    * stream_message
    * stream_truncate
    
    Most of this is a simple extension of the existing methods, with
    the semantic difference that the transaction (or subtransaction)
    is incomplete and may be aborted later (which is something the
    regular API does not really need to deal with).
    
    This also extends the 'test_decoding' plugin, implementing these
    new stream methods.
    
    The stream_start/start_stop are used to demarcate a chunk of changes
    streamed for a particular toplevel transaction.
    
    This commit simply adds these new APIs and the upcoming patch to "allow
    the streaming mode in ReorderBuffer" will use these APIs.
    
    Author: Tomas Vondra, Dilip Kumar, Amit Kapila
    Reviewed-by: Amit Kapila
    Tested-by: Neha Sharma and Mahendra Singh Thalor
    Discussion: https://postgr.es/m/688b0b7f-2f6c-d827-c27b-216a8e3ea700@2ndquadrant.com
    45fdc973
logical.h 3.59 KB