*** pgsql/src/backend/access/heap/heapam.c 2009/08/24 02:18:40 1.277.2.1 --- pgsql/src/backend/access/heap/heapam.c 2010/05/02 22:28:11 1.277.2.2 *************** *** 8,14 **** * * * IDENTIFICATION ! * $PostgreSQL: pgsql/src/backend/access/heap/heapam.c,v 1.277 2009/06/11 14:48:53 momjian Exp $ * * * INTERFACE ROUTINES --- 8,14 ---- * * * IDENTIFICATION ! * $PostgreSQL: pgsql/src/backend/access/heap/heapam.c,v 1.277.2.1 2009/08/24 02:18:40 tgl Exp $ * * * INTERFACE ROUTINES *************** heap_xlog_newpage(XLogRecPtr lsn, XLogRe *** 4195,4202 **** * 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); --- 4195,4204 ---- * 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);