*** pgsql/src/backend/access/heap/heapam.c 2010/04/22 02:15:45 1.289 --- pgsql/src/backend/access/heap/heapam.c 2010/05/02 22:28:05 1.290 *************** *** 8,14 **** * * * IDENTIFICATION ! * $PostgreSQL: pgsql/src/backend/access/heap/heapam.c,v 1.288 2010/02/26 02:00:33 momjian Exp $ * * * INTERFACE ROUTINES --- 8,14 ---- * * * IDENTIFICATION ! * $PostgreSQL: pgsql/src/backend/access/heap/heapam.c,v 1.289 2010/04/22 02:15:45 sriggs Exp $ * * * INTERFACE ROUTINES *************** heap_xlog_newpage(XLogRecPtr lsn, XLogRe *** 4257,4264 **** * Note: the NEWPAGE log record is used for both heaps and indexes, so do * not do anything that assumes we are touching a heap. */ ! buffer = XLogReadBuffer(xlrec->node, xlrec->blkno, true); Assert(BufferIsValid(buffer)); page = (Page) BufferGetPage(buffer); Assert(record->xl_len == SizeOfHeapNewpage + BLCKSZ); --- 4257,4266 ---- * Note: the NEWPAGE log record is used for both heaps and indexes, so do * not do anything that assumes we are touching a heap. */ ! buffer = XLogReadBufferExtended(xlrec->node, xlrec->forknum, xlrec->blkno, ! RBM_ZERO); Assert(BufferIsValid(buffer)); + LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE); page = (Page) BufferGetPage(buffer); Assert(record->xl_len == SizeOfHeapNewpage + BLCKSZ);