On 2018-07-10 16:59:07 +0900, Michael Paquier wrote:
> On Tue, Jul 10, 2018 at 12:26:30AM -0700, Andres Freund wrote:
> > Why is the ReplicationSlotRelease() needed here? Souldn't the error
> > handling code do so automatically?
> 
> Oh, indeed.  I didn't know that PostgresMain was doing some cleanup
> here.  There is a second place where this can be removed, which comes
> from the original commit which added the advance function.

Gna, it's almost like the original code wasn't properly reviewed.


> An updated version is attached.  Do you have other comments?

Looks sane, without having tested it.


>       if (moveto < minlsn)
> -     {
> -             ReplicationSlotRelease();
>               ereport(ERROR,
>                               (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
> -                              errmsg("cannot move slot to %X/%X, minimum is 
> %X/%X",
> +                              errmsg("cannot advance replication slot to 
> %X/%X, minimum is %X/%X",
>                                               (uint32) (moveto >> 32), 
> (uint32) moveto,
>                                               (uint32) (minlsn >> 32), 
> (uint32) minlsn)));
> -     }

If you're touching this, I'd also change the errcode here.


Greetings,

Andres Freund

Reply via email to