func: void heap_redo(XLogRecPtr lsn,XLogRecord *record) uint8 info = ( ( record -> xl_info ) & ~0x0F ) ; switch ( info & 0x70 )  heap_xlog_inplace ( lsn , record ); static void heap_xlog_inplace(XLogRecPtr lsn,XLogRecord *record) xl_heap_inplace * xlrec = ( xl_heap_inplace * ) ( ( ( char * ) record ) + ( ( ( intptr_t ) ( sizeof ( XLogRecord ) ) ) + ( 8 - 1 ) & ~ ( ( intptr_t ) ( 8 - 1 ) ) ) ) ; Buffer buffer ; Page page ; OffsetNumber offnum ; ItemId lp = ( ( void * ) 0 ) ; HeapTupleHeader htup ; uint32 newlen ; if ( ( record -> xl_info ) & 0x0008 >> 0 )  buffer = XLogReadBuffer ( xlrec -> target . node , ( ( ( ( void ) ( ( bool ) 1 ) ) , ( ( ( ( void ) ( ( bool ) 1 ) ) , ( ( BlockNumber ) ( ( ( & ( & xlrec -> target . tid ) -> ip_blkid ) -> bi_hi ) << 16 | ( ( uint16 ) ( ( & ( & xlrec -> target . tid ) -> ip_blkid ) -> bi_lo ) ) ) ) ) ) ) ) , ( ( bool ) 0 ) ); if ( ! ( ( ( ( void ) ( ( bool ) 1 ) ) , buffer != 0 ) ) )  page = ( ( Page ) ( ( Page ) ( ( ( ( void ) ( ( bool ) 1 ) ) , ( buffer < 0 ? LocalBufferBlockPointers [ - buffer - 1 ] : ( ( Block ) ( BufferBlocks + ( ( Size ) ( buffer - 1 ) ) * 8192 ) ) ) ) ) ) ); if ( lsn . xlogid < ( ( PageHeader ) page ) -> pd_lsn . xlogid || lsn . xlogid == ( ( PageHeader ) page ) -> pd_lsn . xlogid && lsn . xrecoff <= ( ( PageHeader ) page ) -> pd_lsn . xrecoff )  offnum = ( ( ( ( void ) ( ( bool ) 1 ) ) , ( & xlrec -> target . tid ) -> ip_posid ) ); if ( ( ( ( ( ( PageHeader ) page ) -> pd_lower ) <= ( ( size_t ) ( & ( ( PageHeaderData * ) 0 ) -> pd_linp ) ) ? 0 : ( ( ( ( PageHeader ) page ) -> pd_lower ) - ( ( size_t ) ( & ( ( PageHeaderData * ) 0 ) -> pd_linp ) ) ) / sizeof ( ItemIdData ) ) ) >= offnum )  lp = ( ( ItemId ) ( & ( ( PageHeader ) page ) -> pd_linp [ offnum - 1 ] ) ); htup = ( ( HeapTupleHeader ) ( ( ( ( ( void ) ( ( bool ) 1 ) ) , ( ( void ) ( ( bool ) 1 ) ) ) , ( ( Item ) ( ( ( char * ) page ) + lp -> lp_off ) ) ) ) ); newlen = ( ( record -> xl_len ) - ( ( ( size_t ) ( & ( ( xl_heap_inplace * ) 0 ) -> target ) ) + ( ( ( size_t ) ( & ( ( xl_heaptid * ) 0 ) -> tid ) ) + ( ( ( size_t ) ( & ( ( ItemPointerData * ) 0 ) -> ip_posid ) ) + sizeof ( OffsetNumber ) ) ) ) ); memcpy ( ( ( ( char * ) htup ) + htup -> t_hoff ) , ( ( ( char * ) xlrec ) + ( ( ( size_t ) ( & ( ( xl_heap_inplace * ) 0 ) -> target ) ) + ( ( ( size_t ) ( & ( ( xl_heaptid * ) 0 ) -> tid ) ) + ( ( ( size_t ) ( & ( ( ItemPointerData * ) 0 ) -> ip_posid ) ) + sizeof ( OffsetNumber ) ) ) ) ) , newlen ); 