RelFileLocator rlocator; /* identifies the relation and block */
ForkNumber forkno;
BlockNumber block;
- const char *page; /* page content */
+ const PageData *page; /* page content */
uint32 rdata_len; /* total length of data in rdata chain */
XLogRecData *rdata_head; /* head of the chain of data registered with
* this block */
XLogRecPtr RedoRecPtr, bool doPageWrites,
XLogRecPtr *fpw_lsn, int *num_fpi,
bool *topxid_included);
-static bool XLogCompressBackupBlock(const char *page, uint16 hole_offset,
- uint16 hole_length, char *dest, uint16 *dlen);
+static bool XLogCompressBackupBlock(const PageData *page, uint16 hole_offset,
+ uint16 hole_length, void *dest, uint16 *dlen);
/*
* Begin constructing a WAL record. This must be called before the
*/
void
XLogRegisterBlock(uint8 block_id, RelFileLocator *rlocator, ForkNumber forknum,
- BlockNumber blknum, const char *page, uint8 flags)
+ BlockNumber blknum, const PageData *page, uint8 flags)
{
registered_buffer *regbuf;
if (include_image)
{
- const char *page = regbuf->page;
+ const PageData *page = regbuf->page;
uint16 compressed_len = 0;
/*
* the length of compressed block image.
*/
static bool
-XLogCompressBackupBlock(const char *page, uint16 hole_offset, uint16 hole_length,
- char *dest, uint16 *dlen)
+XLogCompressBackupBlock(const PageData *page, uint16 hole_offset, uint16 hole_length,
+ void *dest, uint16 *dlen)
{
int32 orig_len = BLCKSZ - hole_length;
int32 len = -1;
int32 extra_bytes = 0;
- const char *source;
+ const void *source;
PGAlignedBlock tmp;
if (hole_length != 0)
#include "access/xlogdefs.h"
#include "storage/block.h"
#include "storage/buf.h"
+#include "storage/bufpage.h"
#include "storage/relfilelocator.h"
#include "utils/relcache.h"
extern void XLogRegisterData(const char *data, uint32 len);
extern void XLogRegisterBuffer(uint8 block_id, Buffer buffer, uint8 flags);
extern void XLogRegisterBlock(uint8 block_id, RelFileLocator *rlocator,
- ForkNumber forknum, BlockNumber blknum, const char *page,
+ ForkNumber forknum, BlockNumber blknum, const PageData *page,
uint8 flags);
extern void XLogRegisterBufData(uint8 block_id, const char *data, uint32 len);
extern void XLogResetInsertion(void);
extern bool XLogCheckBufferNeedsBackup(Buffer buffer);
extern XLogRecPtr log_newpage(RelFileLocator *rlocator, ForkNumber forknum,
- BlockNumber blkno, char *page, bool page_std);
+ BlockNumber blkno, Page page, bool page_std);
extern void log_newpages(RelFileLocator *rlocator, ForkNumber forknum, int num_pages,
- BlockNumber *blknos, char **pages, bool page_std);
+ BlockNumber *blknos, Page *pages, bool page_std);
extern XLogRecPtr log_newpage_buffer(Buffer buffer, bool page_std);
extern void log_newpage_range(Relation rel, ForkNumber forknum,
BlockNumber startblk, BlockNumber endblk, bool page_std);