Hi,

On 2018-07-10 09:54:28 +0900, Michael Paquier wrote:
> > > Also, ERRCODE_FEATURE_NOT_SUPPORTED doesn't quite seem right. How about
> > > ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE?
> > 
> > +1 to both of Andres' suggestions.
> 
> Those indeed sound better.  What do you think of the attached?

Looks generally good. One remark:

> +     /* A slot whose restart_lsn has never been reserved cannot be advanced 
> */
> +     if (XLogRecPtrIsInvalid(MyReplicationSlot->data.restart_lsn))
> +     {
> +             ReplicationSlotRelease();
> +             ereport(ERROR,
> +                             
> (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
> +                              errmsg("cannot advance replication slot that 
> has not previously reserved WAL")));
> +     }

Why is the ReplicationSlotRelease() needed here? Souldn't the error
handling code do so automatically?

Greetings,

Andres Freund

Reply via email to