XLogRegisterData, XLogRegisterBufData void * argument for binary data
authorPeter Eisentraut <peter@eisentraut.org>
Thu, 13 Feb 2025 09:33:14 +0000 (10:33 +0100)
committerPeter Eisentraut <peter@eisentraut.org>
Thu, 13 Feb 2025 09:33:14 +0000 (10:33 +0100)
Change XLogRegisterData() and XLogRegisterBufData() functions to take
void * for binary data instead of char *.  This will remove the need
for numerous casts (done in a separate commit for clarity).

Reviewed-by: Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
Discussion: https://www.postgresql.org/message-id/flat/fd1fcedb-3492-4fc8-9e3e-74b97f2db6c7%40eisentraut.org

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

index 6e4711dace70cdb6689fbb744e9b6b24a5aaa11c..231106270fd400caa597e0b2f32a92b65b1cdbda 100644 (file)
@@ -586,13 +586,13 @@ void XLogRegisterBuffer(uint8 block_id, Buffer buf, uint8 flags);
     XLogRegisterBufData() is included in the WAL record even if a full-page
     image is taken.
 
-void XLogRegisterData(const char *data, int len);
+void XLogRegisterData(const void *data, int len);
 
     XLogRegisterData is used to include arbitrary data in the WAL record.  If
     XLogRegisterData() is called multiple times, the data are appended, and
     will be made available to the redo routine as one contiguous chunk.
 
-void XLogRegisterBufData(uint8 block_id, const char *data, int len);
+void XLogRegisterBufData(uint8 block_id, const void *data, int len);
 
     XLogRegisterBufData is used to include data associated with a particular
     buffer that was registered earlier with XLogRegisterBuffer().  If
index c66012c3a8b3f38dda5d923b40861630ed34bc1e..14d583ae7ae21f9fcb90e9c7e6c16ac65f9393e4 100644 (file)
@@ -361,7 +361,7 @@ XLogRegisterBlock(uint8 block_id, RelFileLocator *rlocator, ForkNumber forknum,
  * XLogRecGetData().
  */
 void
-XLogRegisterData(const char *data, uint32 len)
+XLogRegisterData(const void *data, uint32 len)
 {
    XLogRecData *rdata;
 
@@ -402,7 +402,7 @@ XLogRegisterData(const char *data, uint32 len)
  * limited)
  */
 void
-XLogRegisterBufData(uint8 block_id, const char *data, uint32 len)
+XLogRegisterBufData(uint8 block_id, const void *data, uint32 len)
 {
    registered_buffer *regbuf;
    XLogRecData *rdata;
index 0b7c56332b527bbd21ccd6c17bd2c5909cbfc88e..2cf8d55d706d19627e4ecd7179c056e5e940038e 100644 (file)
@@ -312,7 +312,7 @@ typedef struct xl_end_of_recovery
 typedef struct XLogRecData
 {
    struct XLogRecData *next;   /* next struct in chain, or NULL */
-   const char *data;           /* start of rmgr data to include */
+   const void *data;           /* start of rmgr data to include */
    uint32      len;            /* length of rmgr data to include */
 } XLogRecData;
 
index 3f6b35105271315094d788b60babb446e064c3cc..cf057f033a281d6cdea0dbf3f368fa1d4af955df 100644 (file)
@@ -45,12 +45,12 @@ extern void XLogBeginInsert(void);
 extern void XLogSetRecordFlags(uint8 flags);
 extern XLogRecPtr XLogInsert(RmgrId rmid, uint8 info);
 extern void XLogEnsureRecordSpace(int max_block_id, int ndatas);
-extern void XLogRegisterData(const char *data, uint32 len);
+extern void XLogRegisterData(const void *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 PageData *page,
                              uint8 flags);
-extern void XLogRegisterBufData(uint8 block_id, const char *data, uint32 len);
+extern void XLogRegisterBufData(uint8 block_id, const void *data, uint32 len);
 extern void XLogResetInsertion(void);
 extern bool XLogCheckBufferNeedsBackup(Buffer buffer);