]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Add some more use of Page/PageData rather than char *
authorPeter Eisentraut <peter@eisentraut.org>
Mon, 20 Jan 2025 12:05:50 +0000 (13:05 +0100)
committerPeter Eisentraut <peter@eisentraut.org>
Mon, 20 Jan 2025 12:05:50 +0000 (13:05 +0100)
Discussion: https://www.postgresql.org/message-id/flat/692ee0da-49da-4d32-8dca-da224cc2800e@eisentraut.org

src/backend/access/transam/xloginsert.c
src/include/access/xloginsert.h

index efed0970924d26b8ba6b7928c79d329171396db2..c66012c3a8b3f38dda5d923b40861630ed34bc1e 100644 (file)
@@ -72,7 +72,7 @@ typedef struct
        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 */
@@ -138,8 +138,8 @@ static XLogRecData *XLogRecordAssemble(RmgrId rmid, uint8 info,
                                                                           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
@@ -307,7 +307,7 @@ XLogRegisterBuffer(uint8 block_id, Buffer buffer, uint8 flags)
  */
 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;
 
@@ -648,7 +648,7 @@ XLogRecordAssemble(RmgrId rmid, uint8 info,
 
                if (include_image)
                {
-                       const char *page = regbuf->page;
+                       const PageData *page = regbuf->page;
                        uint16          compressed_len = 0;
 
                        /*
@@ -941,13 +941,13 @@ XLogRecordAssemble(RmgrId rmid, uint8 info,
  * 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)
index 71894262fb4ea32d7622bc04bea3e54cf5d4a90c..3f6b35105271315094d788b60babb446e064c3cc 100644 (file)
@@ -15,6 +15,7 @@
 #include "access/xlogdefs.h"
 #include "storage/block.h"
 #include "storage/buf.h"
+#include "storage/bufpage.h"
 #include "storage/relfilelocator.h"
 #include "utils/relcache.h"
 
@@ -47,16 +48,16 @@ extern void XLogEnsureRecordSpace(int max_block_id, int ndatas);
 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);