On Sun, Jan 11, 2026 at 5:41 PM Chao Li <li.evan.chao@gmail.com> wrote: > > --- > In origin.h: > > +/* > + * Clear the per-transaction replication origin state. > + * > + * replorigin_session_origin is also cleared if clear_origin is set. > + */ > +static inline void > +replorigin_xact_clear(bool clear_origin) > +{ > + replorigin_xact_state.origin_lsn = InvalidXLogRecPtr; > + replorigin_xact_state.origin_timestamp = 0; > + if (clear_origin) > + replorigin_xact_state.origin = InvalidRepOriginId; > +} > > Why does this function need to move to origin.h from origin.c? > > > That’s because, per Ashutosh’s suggestion, I added two static inline helpers replorigin_xact_set_origin() and replorigin_xact_set_lsn_timestamp(), and I thought replorigin_xact_clear() should stay close with them. > > But looks like they don’t have to be inline as they are not on hot paths. So I moved them all to origin.c and only extern them.
Thank you for updating the patch.
I'm not even sure that we need to have setter functions like replorigin_xact_set_{origin,lsn_timestamp} given that replorigin_xact_state is exposed. While the reset helper function helps us as it removes duplicated codes and some potential accidents like wrongly setting -1 as an invalid timestamp etc. these setter functions don't so much. So I think we can have the patch just consolidating the separated variables. What do you think?