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]