Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit872aad6

Browse files
committed
Per Tom, do full reset on -x flag.
1 parentf6e603c commit872aad6

File tree

1 file changed

+26
-42
lines changed

1 file changed

+26
-42
lines changed

‎contrib/pg_resetxlog/pg_resetxlog.c

Lines changed: 26 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
2424
* Portions Copyright (c) 1994, Regents of the University of California
2525
*
26-
* $Header: /cvsroot/pgsql/contrib/pg_resetxlog/Attic/pg_resetxlog.c,v 1.11 2002/01/1017:51:52 momjian Exp $
26+
* $Header: /cvsroot/pgsql/contrib/pg_resetxlog/Attic/pg_resetxlog.c,v 1.12 2002/01/1018:08:29 momjian Exp $
2727
*
2828
*-------------------------------------------------------------------------
2929
*/
@@ -714,32 +714,30 @@ RewriteControlFile(TransactionId set_xid)
714714
intfd;
715715
charbuffer[BLCKSZ];/* need not be aligned */
716716

717-
if (set_xid==0)
718-
{
719-
/*
720-
* Adjust fields as needed to force an empty XLOG starting at the next
721-
* available segment.
722-
*/
723-
newXlogId=ControlFile.logId;
724-
newXlogSeg=ControlFile.logSeg;
725-
/* be sure we wrap around correctly at end of a logfile */
726-
NextLogSeg(newXlogId,newXlogSeg);
727-
728-
ControlFile.checkPointCopy.redo.xlogid=newXlogId;
729-
ControlFile.checkPointCopy.redo.xrecoff=
730-
newXlogSeg*XLogSegSize+SizeOfXLogPHD;
731-
ControlFile.checkPointCopy.undo=ControlFile.checkPointCopy.redo;
732-
ControlFile.checkPointCopy.time=time(NULL);
733-
734-
ControlFile.state=DB_SHUTDOWNED;
735-
ControlFile.time=time(NULL);
736-
ControlFile.logId=newXlogId;
737-
ControlFile.logSeg=newXlogSeg+1;
738-
ControlFile.checkPoint=ControlFile.checkPointCopy.redo;
739-
ControlFile.prevCheckPoint.xlogid=0;
740-
ControlFile.prevCheckPoint.xrecoff=0;
741-
}
742-
else
717+
/*
718+
* Adjust fields as needed to force an empty XLOG starting at the next
719+
* available segment.
720+
*/
721+
newXlogId=ControlFile.logId;
722+
newXlogSeg=ControlFile.logSeg;
723+
/* be sure we wrap around correctly at end of a logfile */
724+
NextLogSeg(newXlogId,newXlogSeg);
725+
726+
ControlFile.checkPointCopy.redo.xlogid=newXlogId;
727+
ControlFile.checkPointCopy.redo.xrecoff=
728+
newXlogSeg*XLogSegSize+SizeOfXLogPHD;
729+
ControlFile.checkPointCopy.undo=ControlFile.checkPointCopy.redo;
730+
ControlFile.checkPointCopy.time=time(NULL);
731+
732+
ControlFile.state=DB_SHUTDOWNED;
733+
ControlFile.time=time(NULL);
734+
ControlFile.logId=newXlogId;
735+
ControlFile.logSeg=newXlogSeg+1;
736+
ControlFile.checkPoint=ControlFile.checkPointCopy.redo;
737+
ControlFile.prevCheckPoint.xlogid=0;
738+
ControlFile.prevCheckPoint.xrecoff=0;
739+
740+
if (set_xid!=0)
743741
ControlFile.checkPointCopy.nextXid=set_xid;
744742

745743
/* Contents are protected with a CRC */
@@ -1011,20 +1009,6 @@ main(int argc, char **argv)
10111009
if (!ReadControlFile())
10121010
GuessControlValues();
10131011

1014-
/*
1015-
* Set XID in pg_control and exit
1016-
*/
1017-
if (set_xid)
1018-
{
1019-
if (guessed)
1020-
{
1021-
printf("\npg_control appears corrupt. Can not update XID.\n");
1022-
exit(1);
1023-
}
1024-
RewriteControlFile(set_xid);
1025-
exit(0);
1026-
}
1027-
10281012
/*
10291013
* If we had to guess anything, and -f was not given, just print the
10301014
* guessed values and exit. Also print if -n is given.
@@ -1051,7 +1035,7 @@ main(int argc, char **argv)
10511035
/*
10521036
* Else, do the dirty deed.
10531037
*/
1054-
RewriteControlFile(0);
1038+
RewriteControlFile(set_xid);
10551039
KillExistingXLOG();
10561040
WriteEmptyXLOG();
10571041

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp