> > /* Check for crossing of xlog segment boundary */ > > if (RecPtr->xrecoff>= XLogFileSize) > > { > > (RecPtr->xlogid)++; > > RecPtr->xrecoff = 0; > > } > > > > Is that xlog "file" boundary or am I missing something? > > The WAL space is divided into 4GB "log files", which are not physical > files but purely logical constructs. The XLogRecPtr.xlogid field > indicates the logical log file, and xrecoff is the offset within the > file. Each logical log file is divided into "log segments", which are > the physical files you see in pg_xlog. See also the comment above the > definition of XLogRecPtr. > > This split was necessary to deal with more than 4 GB of WAL, using only > 32-bit integers. In 9.3, that's changed, and XLogRecPtr is a 64-bit > integer. The whole concept of "logical log files" is gone, so it's a lot > less confusing now. > > - Heikki
I see. However, although in 9.3 XLogRecPtr is a 64bit integer, in 9.2 branch, it is still a struct with xlogid and xrecoff (both uint32) as its members. In that case, should the comment be "/* Check for crossing of xlog file boundary */" instead of /* Check for crossing of xlog segment boundary */, since ( RecPtr->xrecoff >= XLogFileSize ) would mean crossing the xlog "file" (not segment) boundary, right? Am I still missing something as in 9.2? Amit Langote -- View this message in context: http://postgresql.1045698.n5.nabble.com/Confusing-comment-in-xlog-c-or-am-I-missing-something-tp5754010p5754014.html Sent from the PostgreSQL - hackers mailing list archive at Nabble.com.