Thread

  1. Re: Refactor replication origin state reset helpers

    Ashutosh Bapat <ashutosh.bapat.oss@gmail.com> — 2025-12-24T10:57:29Z

    On Wed, Dec 24, 2025 at 6:58 AM Chao Li <li.evan.chao@gmail.com> wrote:
    >
    > Hi Hacker,
    >
    > While reviewing patches [1] and [2], I noticed some duplicate code of clearing replication origin states, I am proposing a small patch that removes the duplicate code blocks by introducing a couple helper functions. No functional change at all.
    >
    
    The new functions bring together the global variables that need to be
    reset under certain conditions. The functions will help not to miss
    resetting some variable. However, this can be a mild backpatching
    pain. So, I am +.5 on this.
    
    If we go this route, we at least need to declare the new functions as
    static inline and move them to a header file instead of .c file.
    
    Further, does it make sense to put together all the state variables
    into a single structure?
    
    It's also quite easy to confuse between these functions and
    replorigin_session_reset(). It's not clear where the boundaries of the
    latter end and where those of the new ones start. I think the latter
    deals with the shared memory structures while the new ones deal with
    the backend local state. And then there's replorigin_reset() which
    adds to the confusion. That function doesn't call
    replorigin_session_reset() which the other two callers of
    replorigin_session_clear_state() call. Why? I think there is more to
    clean here than what's in the patch. That doesn't mean that we cannot
    accept this patch without larger cleanup, but it should not add to the
    existing confusion.
    
    -- 
    Best Wishes,
    Ashutosh Bapat