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