Re: minor bug

Поиск
Список
Период
Сортировка
От Torsten Förtsch
Тема Re: minor bug
Дата
Msg-id CAKkG4_=v+EZc6X2rw5ETocrHJN-nzV=O0yJgM7=P21309mj4Og@mail.gmail.com
обсуждение исходный текст
Ответ на Re: minor bug  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: minor bug  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
If we never expect getRecordTimestamp to fail, then why put it in the if-condition?

getRecordTimestamp can fail if the record is not a restore point nor a commit or abort record. A few lines before in the same function there is this:

 /* Otherwise we only consider stopping before COMMIT or ABORT records. */
if (XLogRecGetRmid(record) != RM_XACT_ID)
    return false;

I guess that make sure getRecordTimestamp can never fail.

The way it is written in your patch invites it to be optimized out again. The only thing that prevents it is the comment.

Why not

(void)getRecordTimestamp(record, &recordXtime);
if (recoveryTarget == RECOVERY_TARGET_TIME)
...




On Wed, Jan 18, 2023 at 9:03 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
Laurenz Albe <laurenz.albe@cybertec.at> writes:
> On Tue, 2023-01-17 at 10:32 -0500, Tom Lane wrote:
>> I seem to recall that the original idea was to report the timestamp
>> of the commit/abort record we are stopping at.  Maybe my memory is
>> faulty, but I think that'd be significantly more useful than the
>> current behavior, *especially* when the replay stopping point is
>> defined by something other than time.
>> (Also, the wording of the log message suggests that that's what
>> the reported time is supposed to be.  I wonder if somebody messed
>> this up somewhere along the way.)

> recoveryStopTime is set to recordXtime (the time of the xlog record)
> a few lines above that patch, so this is useful information if it is
> present.

Ah, but that only happens if recoveryTarget == RECOVERY_TARGET_TIME.
Digging in the git history, I see that this did use to work as
I remember: we always extracted the record time before printing it.
That was accidentally broken in refactoring in c945af80c.  I think
the correct fix is more like the attached.

                        regards, tom lane

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Arthur Nascimento
Дата:
Сообщение: Re: vac_update_datfrozenxid will raise "wrong tuple length" if pg_database tuple contains toast attribute.
Следующее
От: Tom Lane
Дата:
Сообщение: Re: minor bug