Re: Improve error handling for invalid slots and ensure a same 'inactive_since' time for inactive slots
От | Peter Smith |
---|---|
Тема | Re: Improve error handling for invalid slots and ensure a same 'inactive_since' time for inactive slots |
Дата | |
Msg-id | CAHut+PvS3rkwy6hr_awx1of4Se+qRsDo=jZyAjM9=bbvr2GF9g@mail.gmail.com обсуждение исходный текст |
Ответы |
Re: Improve error handling for invalid slots and ensure a same 'inactive_since' time for inactive slots
|
Список | pgsql-hackers |
Hi Nisha, Some review comments for the patch v1-0002. ====== src/backend/replication/slot.c 1. + +/* + * Raise an error based on the slot's invalidation cause. + */ +static void +RaiseSlotInvalidationError(ReplicationSlot *slot) +{ + StringInfo err_detail = makeStringInfo(); + + Assert(slot->data.invalidated != RS_INVAL_NONE); + + switch (slot->data.invalidated) + { + case RS_INVAL_WAL_REMOVED: + appendStringInfoString(err_detail, _("This slot has been invalidated because the required WAL has been removed.")); + break; + + case RS_INVAL_HORIZON: + appendStringInfoString(err_detail, _("This slot has been invalidated because the required rows have been removed.")); + break; + + case RS_INVAL_WAL_LEVEL: + /* translator: %s is a GUC variable name */ + appendStringInfo(err_detail, _("This slot has been invalidated because \"%s\" is insufficient for slot."), + "wal_level"); + break; + + case RS_INVAL_NONE: + pg_unreachable(); + } + + ereport(ERROR, + errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("can no longer get changes from replication slot \"%s\"", + NameStr(slot->data.name)), + errdetail_internal("%s", err_detail->data)); +} AFAIK the _() is a macro for gettext(). So those strings are intended for translation, right? There's also a "/* translator: ..." comment implying the same. OTOH, those strings are only being used by errdetail_internal, whose function comment says "This is exactly like errdetail() except that strings passed to errdetail_internal are not translated...". Isn't there some contradiction here? Perhaps the _() macro is not needed, or perhaps the errdetail_internal() should be errdetail(). ====== Kind Regards, Peter Smith. Fujitsu Australia
В списке pgsql-hackers по дате отправления: