At Thu, 04 Aug 2022 15:00:06 +0900 (JST), Kyotaro Horiguchi <horikyota....@gmail.com> wrote in > At Wed, 3 Aug 2022 18:16:33 +0530, Ashutosh Sharma <ashu.coe...@gmail.com> > wrote in > > Following comment in RemoveNonParentXlogFiles() says that we are trying to > > remove any WAL file whose segment number is >= the segment number of the > > first WAL file on the new timeline. However, looking at the code, I can say > > that we are trying to remove the WAL files from the previous timeline whose > > segment number is just greater than (not equal to) the segment number of > > the first WAL file in the new timeline. I think we should improve this > > comment, thoughts? > > > > /* > > * Remove files that are on a timeline older than the new one we're > > * switching to, but with a segment number >= the first segment on > > the > > * new timeline. > > */ > > if (strncmp(xlde->d_name, switchseg, 8) < 0 && > > strcmp(xlde->d_name + 8, switchseg + 8) > 0) > > I'm not sure I'm fully getting your point. The current comment is > correctly saying that it removes the segments "on a timeline older > than the new one". I agree about segment comparison. > > So, if I changed that comment, I would finish with the following change. > > - * switching to, but with a segment number >= the first segment on > + * switching to, but with a segment number greater than the first > segment on > > That disagreement started at the time the code was introduced by > b2a5545bd6. Leaving the last segment in the old timeline is correct > since it is renamed to .partial later. If timeline switch happened > just at segment boundary, that segment would not not be created.
"the last segment in the old timeline" here means "the segment in the old timeline, with the segment number == the first segmetn on the new timeline". regards. -- Kyotaro Horiguchi NTT Open Source Software Center