* do.
*/
if (ControlFile_target.checkPointCopy.ThisTimeLineID == ControlFile_source.checkPointCopy.ThisTimeLineID)
- pg_fatal("source and target cluster are on the same timeline\n");
-
- findCommonAncestorTimeline(&divergerec, &lastcommontliIndex);
- printf(_("servers diverged at WAL position %X/%X on timeline %u\n"),
- (uint32) (divergerec >> 32), (uint32) divergerec,
- targetHistory[lastcommontliIndex].tli);
-
- /*
- * Check for the possibility that the target is in fact a direct ancestor
- * of the source. In that case, there is no divergent history in the
- * target that needs rewinding.
- */
- if (ControlFile_target.checkPoint >= divergerec)
{
- rewind_needed = true;
+ printf(_("source and target cluster are on the same timeline\n"));
+ rewind_needed = false;
}
else
{
- XLogRecPtr chkptendrec;
-
- /* Read the checkpoint record on the target to see where it ends. */
- chkptendrec = readOneRecord(datadir_target,
- ControlFile_target.checkPoint,
- targetNentries - 1);
+ findCommonAncestorTimeline(&divergerec, &lastcommontliIndex);
+ printf(_("servers diverged at WAL position %X/%X on timeline %u\n"),
+ (uint32) (divergerec >> 32), (uint32) divergerec,
+ targetHistory[lastcommontliIndex].tli);
/*
- * If the histories diverged exactly at the end of the shutdown
- * checkpoint record on the target, there are no WAL records in the
- * target that don't belong in the source's history, and no rewind is
- * needed.
+ * Check for the possibility that the target is in fact a direct ancestor
+ * of the source. In that case, there is no divergent history in the
+ * target that needs rewinding.
*/
- if (chkptendrec == divergerec)
- rewind_needed = false;
- else
+ if (ControlFile_target.checkPoint >= divergerec)
+ {
rewind_needed = true;
+ }
+ else
+ {
+ XLogRecPtr chkptendrec;
+
+ /* Read the checkpoint record on the target to see where it ends. */
+ chkptendrec = readOneRecord(datadir_target,
+ ControlFile_target.checkPoint,
+ targetNentries - 1);
+
+ /*
+ * If the histories diverged exactly at the end of the shutdown
+ * checkpoint record on the target, there are no WAL records in the
+ * target that don't belong in the source's history, and no rewind is
+ * needed.
+ */
+ if (chkptendrec == divergerec)
+ rewind_needed = false;
+ else
+ rewind_needed = true;
+ }
}
if (!rewind_needed)