|
30 | 30 | *
|
31 | 31 | *
|
32 | 32 | * IDENTIFICATION
|
33 |
| - * $PostgreSQL: pgsql/src/backend/replication/walsender.c,v 1.15 2010/04/1209:52:29 heikki Exp $ |
| 33 | + * $PostgreSQL: pgsql/src/backend/replication/walsender.c,v 1.16 2010/04/1210:18:50 heikki Exp $ |
34 | 34 | *
|
35 | 35 | *-------------------------------------------------------------------------
|
36 | 36 | */
|
@@ -506,15 +506,16 @@ WalSndKill(int code, Datum arg)
|
506 | 506 | void
|
507 | 507 | XLogRead(char*buf,XLogRecPtrrecptr,Sizenbytes)
|
508 | 508 | {
|
| 509 | +XLogRecPtrstartRecPtr=recptr; |
509 | 510 | charpath[MAXPGPATH];
|
510 |
| -uint32startoff; |
511 | 511 | uint32lastRemovedLog;
|
512 | 512 | uint32lastRemovedSeg;
|
513 | 513 | uint32log;
|
514 | 514 | uint32seg;
|
515 | 515 |
|
516 | 516 | while (nbytes>0)
|
517 | 517 | {
|
| 518 | +uint32startoff; |
518 | 519 | intsegbytes;
|
519 | 520 | intreadbytes;
|
520 | 521 |
|
@@ -596,7 +597,7 @@ XLogRead(char *buf, XLogRecPtr recptr, Size nbytes)
|
596 | 597 | * already have been overwritten with new WAL records.
|
597 | 598 | */
|
598 | 599 | XLogGetLastRemoved(&lastRemovedLog,&lastRemovedSeg);
|
599 |
| -XLByteToPrevSeg(recptr,log,seg); |
| 600 | +XLByteToSeg(startRecPtr,log,seg); |
600 | 601 | if (log<lastRemovedLog||
|
601 | 602 | (log==lastRemovedLog&&seg <=lastRemovedSeg))
|
602 | 603 | {
|
|