Re: Minimal logical decoding on standbys
От | Amit Kapila |
---|---|
Тема | Re: Minimal logical decoding on standbys |
Дата | |
Msg-id | CAA4eK1+q7fVhdt60AQ2JUvN_juO8r5TXkk8VcDAyM+=AfJMcxg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Minimal logical decoding on standbys (Andres Freund <andres@anarazel.de>) |
Ответы |
Re: Minimal logical decoding on standbys
|
Список | pgsql-hackers |
On Fri, Apr 7, 2023 at 11:42 PM Andres Freund <andres@anarazel.de> wrote: > > On 2023-04-07 08:47:57 -0700, Andres Freund wrote: > > Integrated all of these. > > Here's my current version. Changes: > - Integrated Bertrand's changes > - polished commit messages of 0001-0003 > - edited code comments for 0003, including > InvalidateObsoleteReplicationSlots()'s header > - added a bump of SLOT_VERSION to 0001 > - moved addition of pg_log_standby_snapshot() to 0007 > - added a catversion bump for pg_log_standby_snapshot() > - moved all the bits dealing with procsignals from 0003 to 0004, now the split > makes sense IMO > - combined a few more sucessive ->safe_psql() calls > The new approach for invalidation looks clean. BTW, I see minor inconsistency in the following two error messages (errmsg): if (MyReplicationSlot->data.invalidated == RS_INVAL_WAL) ereport(ERROR, (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("can no longer get changes from replication slot \"%s\"", NameStr(MyReplicationSlot->data.name)), errdetail("This slot has been invalidated because it exceeded the maximum reserved size."))); if (MyReplicationSlot->data.invalidated != RS_INVAL_NONE) ereport(ERROR, (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("cannot read from logical replication slot \"%s\"", NameStr(MyReplicationSlot->data.name)), errdetail("This slot has been invalidated because it was conflicting with recovery."))); Won't it be better to keep the same errmsg in the above two cases? -- With Regards, Amit Kapila.
В списке pgsql-hackers по дате отправления: