On Thu, Aug 17, 2017 at 7:14 AM, Tom Lane <t...@sss.pgh.pa.us> wrote: > Andres Freund <and...@anarazel.de> writes: >> On 2017-08-16 17:06:42 -0400, Tom Lane wrote: >>> If I understand what this is meant to do, maybe better >>> pg_move_replication_slot_lsn() or pg_change_replication_slot_lsn() ? >>> The point being that you're adjusting the LSN pointer contained >>> in the slot, which is distinct from the slot itself. > >> I think we should constrain the API to only allow later LSNs than >> currently in the slot, rather than arbitrary ones. That's why I was >> thinking of "forward". I'm not convinced it's a good / safe idea to >> allow arbitrary values to be set. > > +1 for constraining it like that, but I don't think that's an argument > against using "move" or "change" as the verb. I don't like "forward" > because that's not the right word. The only verb senses of "forward" > in my Mac's dictionary are "send a message on to a further destination" > and "help to advance or promote" (the latter usage is pretty obscure IMO). > Neither one seems applicable here.
Definitely agreed on that. Any move function would need to check if the WAL position given by caller is already newer than what's available in the local pg_wal (minimum of all other slots), with a shared lock that would need to be taken by xlog.c when recycling past segments. A forward function works on a single entry, which should be disabled at the moment of the update. It looks dangerous to me to do such an operation if there is a consumer of a slot currently on it. -- Michael -- Sent via pgsql-hackers mailing list (firstname.lastname@example.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers