@ -658,11 +658,15 @@ _hash_freeovflpage(Relation rel, Buffer bucketbuf, Buffer ovflbuf,
XLogRegisterData ( ( char * ) & xlrec , SizeOfHashSqueezePage ) ;
XLogRegisterData ( ( char * ) & xlrec , SizeOfHashSqueezePage ) ;
/*
/*
* bucket buffer needs to be registered to ensure that we can acquire
* bucket buffer was not changed , but still needs to be registered to
* a cleanup lock on it during replay .
* ensure that we can acquire a cleanup lock on it during replay .
*/
*/
if ( ! xlrec . is_prim_bucket_same_wrt )
if ( ! xlrec . is_prim_bucket_same_wrt )
XLogRegisterBuffer ( 0 , bucketbuf , REGBUF_STANDARD | REGBUF_NO_IMAGE ) ;
{
uint8 flags = REGBUF_STANDARD | REGBUF_NO_IMAGE | REGBUF_NO_CHANGE ;
XLogRegisterBuffer ( 0 , bucketbuf , flags ) ;
}
XLogRegisterBuffer ( 1 , wbuf , REGBUF_STANDARD ) ;
XLogRegisterBuffer ( 1 , wbuf , REGBUF_STANDARD ) ;
if ( xlrec . ntups > 0 )
if ( xlrec . ntups > 0 )
@ -960,11 +964,16 @@ readpage:
XLogRegisterData ( ( char * ) & xlrec , SizeOfHashMovePageContents ) ;
XLogRegisterData ( ( char * ) & xlrec , SizeOfHashMovePageContents ) ;
/*
/*
* bucket buffer needs to be registered to ensure that
* bucket buffer was not changed , but still needs to
* we can acquire a cleanup lock on it during replay .
* be registered to ensure that we can acquire a
* cleanup lock on it during replay .
*/
*/
if ( ! xlrec . is_prim_bucket_same_wrt )
if ( ! xlrec . is_prim_bucket_same_wrt )
XLogRegisterBuffer ( 0 , bucket_buf , REGBUF_STANDARD | REGBUF_NO_IMAGE ) ;
{
int flags = REGBUF_STANDARD | REGBUF_NO_IMAGE | REGBUF_NO_CHANGE ;
XLogRegisterBuffer ( 0 , bucket_buf , flags ) ;
}
XLogRegisterBuffer ( 1 , wbuf , REGBUF_STANDARD ) ;
XLogRegisterBuffer ( 1 , wbuf , REGBUF_STANDARD ) ;
XLogRegisterBufData ( 1 , ( char * ) itup_offsets ,
XLogRegisterBufData ( 1 , ( char * ) itup_offsets ,