<div class="WordSection1"><p class="MsoNormal">While reading patch-1 (<b><a
href="http://archives.postgresql.org/pgsql-hackers/2012-06/txtFskHiYakjO.txt"><span
style="color:windowtext;font-weight:normal;text-decoration:none">1-use-uint64-got-segno.patch</span></a></b>)of WAL
FormatChanges(http://archives.postgresql.org/message-id/4FDA5136.6080206@enterprisedb.com), I had few observations
whichare summarized below:<p class="MsoNormal"> <p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">1.Function header for following functions still contains
refereceto log, seg</span><br /><span style="font-size:10.0pt;font-family:"Arial","sans-serif""> a.
InstallXLogFileSegment()</span><br/><span style="font-size:10.0pt;font-family:"Arial","sans-serif""> b.
RemoveOldXlogFiles()</span><br/><span style="font-size:10.0pt;font-family:"Arial","sans-serif""> c. XLogFileCopy()
</span><br/><span style="font-size:10.0pt;font-family:"Arial","sans-serif""> d. XLogGetLastRemoved()</span><br
/><spanstyle="font-size:10.0pt;font-family:"Arial","sans-serif""> e. UpdateLastRemovedPtr()</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif""> f. RemoveOldXlogFiles()</span><br /><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">2.@@ -2680,8 +2645,8 @@ InstallXLogFileSegment(uint32 *log,
uint32*seg, char *tmppath,</span><br /><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">
LWLockRelease(ControlFileLock);</span><br /><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">
ereport(LOG,</span><br /><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">
(errcode_for_file_access(),</span><br /><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">-
errmsg("could not link file \"%s\" to \"%s\" (initialization of log file %u, segment
%u):%m",</span><br /><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">-
tmppath, path, *log, *seg)));</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">+ errmsg("could not link file
\"%s\"to \"%s\" (initialization of log file): %m",</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">+ tmppath,
path)));</span><br/><span style="font-size:10.0pt;font-family:"Arial","sans-serif""> If Changed error message can
containlog file and segment number, it would be more clear. That should be easily</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif""> deducible from segment number.</span><br /><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">3. </span> <span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">-RemoveOldXlogFiles(uint32log, uint32 seg, XLogRecPtr
endptr)</span><br/><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">+RemoveOldXlogFiles(XLogSegNo segno,
XLogRecPtrendptr)</span><br /><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">.</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">.</span><br/><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">.</span><br/><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">@@-4016,8 +3953,9 @@ retry:</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif""> if (!(((XLogPageHeader)
readBuf)->xlp_info& XLP_FIRST_IS_CONTRECORD))</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif""> {</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">
ereport(emode_for_corrupt_record(emode,*RecPtr),</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">-
(errmsg("thereis no contrecord flag in log file %u, segment %u, offset %u",</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">-
readId, readSeg, readOff)));</span><br /><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">+
(errmsg("there is no contrecord flag in log segment %s, offset %u",</span><br
/><spanstyle="font-size:10.0pt;font-family:"Arial","sans-serif"">+
XLogFileNameP(curFileTLI, readSegNo),</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">+
readOff)));</span><br /><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">
goto next_record_is_invalid;</span><br /><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">
}</span><br /><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">
pageHeaderSize= XLogPageHeaderSize((XLogPageHeader) readBuf);</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">@@-4025,10 +3963,13 @@ retry:</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif""> if (contrecord->xl_rem_len == 0
||</span><br/><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">
total_len!= (contrecord->xl_rem_len + gotlen))</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif""> {</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">+ char
fname[MAXFNAMELEN];</span><br/><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">+
XLogFileName(fname, curFileTLI, readSegNo);</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">
ereport(emode_for_corrupt_record(emode,*RecPtr),</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">-
(errmsg("invalidcontrecord length %u in log file %u, segment %u, offset %u",</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">+
(errmsg("invalidcontrecord length %u in log segment %s, offset %u",</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">
contrecord->xl_rem_len,</span><br /><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">-
readId, readSeg, readOff)));</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">+
XLogFileNameP(curFileTLI, readSegNo),</span><br /><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">+
readOff)));</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif""> goto
next_record_is_invalid;</span><br/><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">
}</span><br /><span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif""> For the above 2 changed error messages, 'log segment' is
usedfor filename. </span><br /><span style="font-size:10.0pt;font-family:"Arial","sans-serif""> However all similar
changeshas 'log file' for filename. There are some places</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif""> where 'log segment' is used and other places it is 'log
file'.</span><br /><span style="font-size:10.0pt;font-family:"Arial","sans-serif""> So is there any particular reason
forit?</span><br /><span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">4.</span><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">@@-533,33 +533,17 @@
pg_xlog_location_diff(PG_FUNCTION_ARGS)</span><br/><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">-
/*</span><br /><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">- * Sanity check</span><br
/><spanstyle="font-size:10.0pt;font-family:"Arial","sans-serif"">- */</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">- if (loc1.xrecoff > XLogFileSize)</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">- ereport(ERROR,</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">-
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),</span><br/><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">- errmsg("xrecoff \"%X\" is
outof valid range, 0..%X", loc1.xrecoff, XLogFileSize)));</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">- if (loc2.xrecoff > XLogFileSize)</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">- ereport(ERROR,</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">-
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),</span><br/><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">- errmsg("xrecoff \"%X\" is
outof valid range, 0..%X", loc2.xrecoff, XLogFileSize)));</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">+ bytes1 = (((uint64)loc1.xlogid) << 32L) +
loc1.xrecoff;</span><br/><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">+ bytes2 =
(((uint64)loc2.xlogid)<< 32L) + loc2.xrecoff;</span><br /><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif""> Is there no chance that it can be out of valid range after
newchanges, just a doubt?</span><br /><span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span><br
/><spanstyle="font-size:10.0pt;font-family:"Arial","sans-serif""> </span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">5.</span><br/><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">---a/src/backend/replication/walreceiver.c</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">+++b/src/backend/replication/walreceiver.c</span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">@@-69,11 +69,12 @@ walrcv_disconnect_type walrcv_disconnect =
NULL;</span><br/><span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif""> /*</span><br/><span
style="font-size:10.0pt;font-family:"Arial","sans-serif""> * These variables are used similarly to
openLogFile/Id/Seg/Off,</span><br/><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">- * but for
walreceiverto write the XLOG.</span><br /><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">+ * but for
walreceiverto write the XLOG. recvFileTLI is the TimeLineID</span><br /><br /><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">Inthe above comments, there is still reference to
Id/Seg/Off.</span><pclass="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span><p
class="MsoNormal"><spanstyle="font-size:10.0pt;font-family:"Arial","sans-serif""> </span><p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">WithRegards,</span><p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Arial","sans-serif"">AmitKapila.</span><p class="MsoNormal"> </div>