On 2020-Apr-30, Kyotaro Horiguchi wrote:

> At Tue, 28 Apr 2020 20:47:10 -0400, Alvaro Herrera <alvhe...@2ndquadrant.com> 
> wrote in 

> >             /*
> >              * After the sanity checks in CreateDecodingContext, make sure 
> > the
> >              * restart_lsn is valid.  Avoid "cannot get changes" wording in 
> > this
> >              * errmsg because that'd be confusingly ambiguous about no 
> > changes
> >              * being available.
> >              */
> >             if (XLogRecPtrIsInvalid(MyReplicationSlot->data.restart_lsn))
> >                     ereport(ERROR,
> >                                     
> > (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
> >                                      errmsg("can no longer get changes from 
> > replication slot \"%s\"",
> >                                                     NameStr(*name)),
> >                                      errdetail("This slot has never 
> > previously reserved WAL, or has been invalidated.")));
> > 
> > I hope this is sufficiently clear, but if not, feel free to nudge me and
> > we can discuss it further.
> 
> That somewhat sounds odd that 'we "no longer" get changes from "never
> previously reserved" slots'.  More than that, I think we don't reach
> there for physical slots, since CreateDecodingContext doesn't accept a
> physical slot and ERRORs out.  (That is the reason for the location of
> the checking.)

Oh, right, so we could reword the errdetail to just "This slot has been
invalidated."

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


Reply via email to