77 * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
88 * Portions Copyright (c) 1994, Regents of the University of California
99 *
10- * $Header: /cvsroot/pgsql/src/backend/access/transam/xlog.c,v 1.75 2001/08/25 18:52:41 tgl Exp $
10+ * $Header: /cvsroot/pgsql/src/backend/access/transam/xlog.c,v 1.76 2001/09/06 02:02:48 tgl Exp $
1111 *
1212 *-------------------------------------------------------------------------
1313 */
@@ -760,7 +760,7 @@ begin:;
760760{
761761char buf [8192 ];
762762
763- sprintf (buf ,"INSERT @ %u/%u : " ,RecPtr .xlogid ,RecPtr .xrecoff );
763+ sprintf (buf ,"INSERT @ %X/%X : " ,RecPtr .xlogid ,RecPtr .xrecoff );
764764xlog_outrec (buf ,record );
765765if (rdata -> data != NULL )
766766{
@@ -1012,7 +1012,10 @@ XLogWrite(XLogwrtRqst WriteRqst)
10121012 * AdvanceXLInsertBuffer.
10131013 */
10141014if (!XLByteLT (LogwrtResult .Write ,XLogCtl -> xlblocks [Write -> curridx ]))
1015- elog (STOP ,"XLogWrite: write request is past end of log" );
1015+ elog (STOP ,"XLogWrite: write request %X/%X is past end of log %X/%X" ,
1016+ LogwrtResult .Write .xlogid ,LogwrtResult .Write .xrecoff ,
1017+ XLogCtl -> xlblocks [Write -> curridx ].xlogid ,
1018+ XLogCtl -> xlblocks [Write -> curridx ].xrecoff );
10161019
10171020/* Advance LogwrtResult.Write to end of current buffer page */
10181021LogwrtResult .Write = XLogCtl -> xlblocks [Write -> curridx ];
@@ -1190,7 +1193,7 @@ XLogFlush(XLogRecPtr record)
11901193
11911194if (XLOG_DEBUG )
11921195{
1193- elog (DEBUG ,"XLogFlush%s%s: request %u/%u ; write %u/%u ; flush %u/%u \n" ,
1196+ elog (DEBUG ,"XLogFlush%s%s: request %X/%X ; write %X/%X ; flush %X/%X \n" ,
11941197(IsBootstrapProcessingMode ()) ?"(bootstrap)" :"" ,
11951198(InRedo ) ?"(redo)" :"" ,
11961199record .xlogid ,record .xrecoff ,
@@ -1266,7 +1269,9 @@ XLogFlush(XLogRecPtr record)
12661269XLogWrite (WriteRqst );
12671270S_UNLOCK (& (XLogCtl -> logwrt_lck ));
12681271if (XLByteLT (LogwrtResult .Flush ,record ))
1269- elog (STOP ,"XLogFlush: request is not satisfied" );
1272+ elog (STOP ,"XLogFlush: request %X/%X is not satisfied --- flushed only to %X/%X" ,
1273+ record .xlogid ,record .xrecoff ,
1274+ LogwrtResult .Flush .xlogid ,LogwrtResult .Flush .xrecoff );
12701275break ;
12711276}
12721277S_LOCK_SLEEP (& (XLogCtl -> logwrt_lck ),spins ++ ,XLOG_LOCK_TIMEOUT );
@@ -1688,7 +1693,7 @@ RecordIsValid(XLogRecord *record, XLogRecPtr recptr, int emode)
16881693
16891694if (!EQ_CRC64 (record -> xl_crc ,crc ))
16901695{
1691- elog (emode ,"ReadRecord: bad resource manager data checksum in record at %u/%u " ,
1696+ elog (emode ,"ReadRecord: bad resource manager data checksum in record at %X/%X " ,
16921697recptr .xlogid ,recptr .xrecoff );
16931698return (false);
16941699}
@@ -1710,7 +1715,7 @@ RecordIsValid(XLogRecord *record, XLogRecPtr recptr, int emode)
17101715
17111716if (!EQ_CRC64 (cbuf ,crc ))
17121717{
1713- elog (emode ,"ReadRecord: bad checksum of backup block %d in record at %u/%u " ,
1718+ elog (emode ,"ReadRecord: bad checksum of backup block %d in record at %X/%X " ,
17141719i + 1 ,recptr .xlogid ,recptr .xrecoff );
17151720return (false);
17161721}
@@ -1780,7 +1785,7 @@ ReadRecord(XLogRecPtr *RecPtr, int emode, char *buffer)
17801785tmpRecPtr .xrecoff += SizeOfXLogPHD ;
17811786}
17821787else if (!XRecOffIsValid (RecPtr -> xrecoff ))
1783- elog (STOP ,"ReadRecord: invalid record offset at(%u, %u) " ,
1788+ elog (STOP ,"ReadRecord: invalid record offset at%X/%X " ,
17841789RecPtr -> xlogid ,RecPtr -> xrecoff );
17851790
17861791if (readFile >=0 && !XLByteInSeg (* RecPtr ,readId ,readSeg ))
@@ -1819,7 +1824,7 @@ ReadRecord(XLogRecPtr *RecPtr, int emode, char *buffer)
18191824if ((((XLogPageHeader )readBuf )-> xlp_info & XLP_FIRST_IS_CONTRECORD )&&
18201825RecPtr -> xrecoff %BLCKSZ == SizeOfXLogPHD )
18211826{
1822- elog (emode ,"ReadRecord: contrecord is requested by(%u, %u) " ,
1827+ elog (emode ,"ReadRecord: contrecord is requested by%X/%X " ,
18231828RecPtr -> xlogid ,RecPtr -> xrecoff );
18241829gotonext_record_is_invalid ;
18251830}
@@ -1833,7 +1838,7 @@ got_record:;
18331838 */
18341839if (record -> xl_len == 0 )
18351840{
1836- elog (emode ,"ReadRecord: record with zero length at(%u, %u) " ,
1841+ elog (emode ,"ReadRecord: record with zero length at%X/%X " ,
18371842RecPtr -> xlogid ,RecPtr -> xrecoff );
18381843gotonext_record_is_invalid ;
18391844}
@@ -1857,13 +1862,13 @@ got_record:;
18571862 */
18581863if (total_len > _INTL_MAXLOGRECSZ )
18591864{
1860- elog (emode ,"ReadRecord: record length %u at(%u, %u) too long" ,
1865+ elog (emode ,"ReadRecord: record length %u at%X/%X too long" ,
18611866total_len ,RecPtr -> xlogid ,RecPtr -> xrecoff );
18621867gotonext_record_is_invalid ;
18631868}
18641869if (record -> xl_rmid > RM_MAX_ID )
18651870{
1866- elog (emode ,"ReadRecord: invalid resource manager id %u at(%u, %u) " ,
1871+ elog (emode ,"ReadRecord: invalid resource manager id %u at%X/%X " ,
18671872record -> xl_rmid ,RecPtr -> xlogid ,RecPtr -> xrecoff );
18681873gotonext_record_is_invalid ;
18691874}
@@ -1987,7 +1992,7 @@ ValidXLOGHeader(XLogPageHeader hdr, int emode, bool checkSUI)
19871992recaddr .xrecoff = readSeg * XLogSegSize + readOff ;
19881993if (!XLByteEQ (hdr -> xlp_pageaddr ,recaddr ))
19891994{
1990- elog (emode ,"ReadRecord: unexpected pageaddr(%u, %u) in log file %u, segment %u, offset %u" ,
1995+ elog (emode ,"ReadRecord: unexpected pageaddr%X/%X in log file %u, segment %u, offset %u" ,
19911996hdr -> xlp_pageaddr .xlogid ,hdr -> xlp_pageaddr .xrecoff ,
19921997readId ,readSeg ,readOff );
19931998return false;
@@ -2486,7 +2491,7 @@ StartupXLOG(void)
24862491if (record != NULL )
24872492{
24882493checkPointLoc = ControlFile -> checkPoint ;
2489- elog (LOG ,"checkpoint record is at(%u, %u) " ,
2494+ elog (LOG ,"checkpoint record is at%X/%X " ,
24902495checkPointLoc .xlogid ,checkPointLoc .xrecoff );
24912496}
24922497else
@@ -2495,7 +2500,7 @@ StartupXLOG(void)
24952500if (record != NULL )
24962501{
24972502checkPointLoc = ControlFile -> prevCheckPoint ;
2498- elog (LOG ,"using previous checkpoint record at(%u, %u) " ,
2503+ elog (LOG ,"using previous checkpoint record at%X/%X " ,
24992504checkPointLoc .xlogid ,checkPointLoc .xrecoff );
25002505InRecovery = true;/* force recovery even if SHUTDOWNED */
25012506}
@@ -2506,7 +2511,7 @@ StartupXLOG(void)
25062511memcpy (& checkPoint ,XLogRecGetData (record ),sizeof (CheckPoint ));
25072512wasShutdown = (record -> xl_info == XLOG_CHECKPOINT_SHUTDOWN );
25082513
2509- elog (LOG ,"redo record is at(%u, %u) ; undo record is at(%u, %u) ; shutdown %s" ,
2514+ elog (LOG ,"redo record is at%X/%X ; undo record is at%X/%X ; shutdown %s" ,
25102515checkPoint .redo .xlogid ,checkPoint .redo .xrecoff ,
25112516checkPoint .undo .xlogid ,checkPoint .undo .xrecoff ,
25122517wasShutdown ?"TRUE" :"FALSE" );
@@ -2561,7 +2566,7 @@ StartupXLOG(void)
25612566if (record != NULL )
25622567{
25632568InRedo = true;
2564- elog (LOG ,"redo starts at(%u, %u) " ,
2569+ elog (LOG ,"redo starts at%X/%X " ,
25652570ReadRecPtr .xlogid ,ReadRecPtr .xrecoff );
25662571do
25672572{
@@ -2576,7 +2581,7 @@ StartupXLOG(void)
25762581{
25772582char buf [8192 ];
25782583
2579- sprintf (buf ,"REDO @ %u/%u ; LSN %u/%u : " ,
2584+ sprintf (buf ,"REDO @ %X/%X ; LSN %X/%X : " ,
25802585ReadRecPtr .xlogid ,ReadRecPtr .xrecoff ,
25812586EndRecPtr .xlogid ,EndRecPtr .xrecoff );
25822587xlog_outrec (buf ,record );
@@ -2592,7 +2597,7 @@ StartupXLOG(void)
25922597RmgrTable [record -> xl_rmid ].rm_redo (EndRecPtr ,record );
25932598record = ReadRecord (NULL ,LOG ,buffer );
25942599}while (record != NULL );
2595- elog (LOG ,"redo done at(%u, %u) " ,
2600+ elog (LOG ,"redo done at%X/%X " ,
25962601ReadRecPtr .xlogid ,ReadRecPtr .xrecoff );
25972602LastRec = ReadRecPtr ;
25982603InRedo = false;
@@ -2681,7 +2686,7 @@ StartupXLOG(void)
26812686RecPtr = ReadRecPtr ;
26822687if (XLByteLT (checkPoint .undo ,RecPtr ))
26832688{
2684- elog (LOG ,"undo starts at(%u, %u) " ,
2689+ elog (LOG ,"undo starts at%X/%X " ,
26852690RecPtr .xlogid ,RecPtr .xrecoff );
26862691do
26872692{
@@ -2691,7 +2696,7 @@ StartupXLOG(void)
26912696RmgrTable [record -> xl_rmid ].rm_undo (EndRecPtr ,record );
26922697RecPtr = record -> xl_prev ;
26932698}while (XLByteLE (checkPoint .undo ,RecPtr ));
2694- elog (LOG ,"undo done at(%u, %u) " ,
2699+ elog (LOG ,"undo done at%X/%X " ,
26952700ReadRecPtr .xlogid ,ReadRecPtr .xrecoff );
26962701}
26972702else
@@ -3144,7 +3149,7 @@ xlog_desc(char *buf, uint8 xl_info, char *rec)
31443149{
31453150CheckPoint * checkpoint = (CheckPoint * )rec ;
31463151
3147- sprintf (buf + strlen (buf ),"checkpoint: redo %u/%u ; undo %u/%u ; "
3152+ sprintf (buf + strlen (buf ),"checkpoint: redo %X/%X ; undo %X/%X ; "
31483153"sui %u; xid %u; oid %u; %s" ,
31493154checkpoint -> redo .xlogid ,checkpoint -> redo .xrecoff ,
31503155checkpoint -> undo .xlogid ,checkpoint -> undo .xrecoff ,
@@ -3169,7 +3174,7 @@ xlog_outrec(char *buf, XLogRecord *record)
31693174int bkpb ;
31703175int i ;
31713176
3172- sprintf (buf + strlen (buf ),"prev %u/%u ; xprev %u/%u ; xid %u" ,
3177+ sprintf (buf + strlen (buf ),"prev %X/%X ; xprev %X/%X ; xid %u" ,
31733178record -> xl_prev .xlogid ,record -> xl_prev .xrecoff ,
31743179record -> xl_xact_prev .xlogid ,record -> xl_xact_prev .xrecoff ,
31753180record -> xl_xid );