On Sun, Jun 10, 2012 at 4:02 PM, Fujii Masao <masao.fu...@gmail.com> wrote: > On Sun, Jun 10, 2012 at 7:55 PM, Magnus Hagander <mag...@hagander.net> wrote: >> How about this? > > + /* > + * Set flushed position to the last byte in > the previous > + * file. Per above we know that > xrecoff%XLOG_SEG_SIZE=0 > + */ > + flushedpos = blockpos; > + if (flushedpos.xrecoff == 0) > + { > + flushedpos.xlogid--; > + flushedpos.xrecoff = XLogFileSize-1; > + } > + else > + flushedpos.xrecoff--; > > flushedpos.xrecoff doesn't need to be decremented by one. > If xrecoff % XLOG_SEG_SIZE = 0, the position should be the last > byte of previous (i.e., flushed) WAL file.
Hmm. I thikn I confused myself with "last byte written" vs "current position". And we're dealing with current position here... So it should just be flushedpos = blockpos and be done with it, right? Though before I commit anything with this, we need to decide what to wrt syncrep on that, per the other thread. -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/ -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers