This is an automated email from the ASF dual-hosted git repository.

reshke pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudberry.git


The following commit(s) were added to refs/heads/main by this push:
     new 8da79b3de6 Show pax relation relfilenode in pg_waldump (#1048)
8da79b3de6 is described below

commit 8da79b3de66a4e334bd0c55c02547a378cb727cd
Author: reshke <[email protected]>
AuthorDate: Wed Apr 23 14:14:24 2025 +0500

    Show pax relation relfilenode in pg_waldump (#1048)
    
    * Show pax relation relfilenode in pg_waldump
    
    Currenly, pax_desc prints only pax file numver, not relfilenode
    
    * fix
    
    ---------
    
    Co-authored-by: reshke <[email protected]>
---
 contrib/pax_storage/src/cpp/storage/wal/paxc_desc.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/contrib/pax_storage/src/cpp/storage/wal/paxc_desc.c 
b/contrib/pax_storage/src/cpp/storage/wal/paxc_desc.c
index c1457fc478..8900f0bc8a 100644
--- a/contrib/pax_storage/src/cpp/storage/wal/paxc_desc.c
+++ b/contrib/pax_storage/src/cpp/storage/wal/paxc_desc.c
@@ -30,6 +30,7 @@
 #else
 #include "storage/wal/paxc_desc.h"
 #endif
+#include "common/relpath.h"
 
 void pax_rmgr_desc(StringInfo buf, XLogReaderState *record) {
   char *rec = XLogRecGetData(record);
@@ -38,14 +39,24 @@ void pax_rmgr_desc(StringInfo buf, XLogReaderState *record) 
{
   switch (info) {
     case XLOG_PAX_INSERT: {
       char filename[MAX_PATH_FILE_NAME_LEN];
+      char *relpathPart;
+      size_t relpathPartSz;
 
       char *rec = XLogRecGetData(record);
       xl_pax_insert *xlrec = (xl_pax_insert *)rec;
 
       Assert(xlrec->target.file_name_len < MAX_PATH_FILE_NAME_LEN);
 
-      memcpy(filename, rec + SizeOfPAXInsert, xlrec->target.file_name_len);
-      filename[xlrec->target.file_name_len] = '\0';
+      relpathPart = relpathbackend(xlrec->target.node, InvalidBackendId, 
MAIN_FORKNUM);
+      relpathPartSz = strlen(relpathPart);
+
+      memcpy(filename, relpathPart, relpathPartSz);
+
+#define PAX_DIR_SUFFIX "_pax/"
+
+      memcpy(filename + relpathPartSz, PAX_DIR_SUFFIX, strlen(PAX_DIR_SUFFIX));
+      memcpy(filename + relpathPartSz + strlen(PAX_DIR_SUFFIX), rec + 
SizeOfPAXInsert, xlrec->target.file_name_len);
+      filename[relpathPartSz + xlrec->target.file_name_len + 
strlen(PAX_DIR_SUFFIX)] = '\0';
 
       int32 bufferLen = XLogRecGetDataLen(record) - SizeOfPAXInsert -
                         xlrec->target.file_name_len;


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to