1
0
mirror of https://github.com/postgres/postgres.git synced 2025-10-15 05:46:52 +03:00

Improve description of some WAL records for GIN

The following information is added in the description of some GIN
records:
- In INSERT_LISTPAGE, the number of tuples and the right link block.
- In UPDATE_META_PAGE, the number of tuples, the previous tail block,
and the right link block.
- In SPLIT, the left and right children blocks.

Author: Kirill Reshke <reshkekirill@gmail.com>
Reviewed-by: Michael Paquier <michael@paquier.xyz>
Reviewed-by: Andrey Borodin <x4mmm@yandex-team.ru>
Discussion: https://postgr.es/m/CALdSSPgnAt5L=D_xGXRXLYO5FK1H31_eYEESxdU1n-r4g+6GqA@mail.gmail.com
This commit is contained in:
Michael Paquier
2025-10-08 13:57:04 +09:00
parent b71bae41a0
commit 138da727a1

View File

@@ -130,6 +130,9 @@ gin_desc(StringInfo buf, XLogReaderState *record)
appendStringInfo(buf, " isdata: %c isleaf: %c", appendStringInfo(buf, " isdata: %c isleaf: %c",
(xlrec->flags & GIN_INSERT_ISDATA) ? 'T' : 'F', (xlrec->flags & GIN_INSERT_ISDATA) ? 'T' : 'F',
(xlrec->flags & GIN_INSERT_ISLEAF) ? 'T' : 'F'); (xlrec->flags & GIN_INSERT_ISLEAF) ? 'T' : 'F');
if (xlrec->leftChildBlkno != InvalidBlockNumber)
appendStringInfo(buf, " children: %u/%u",
xlrec->leftChildBlkno, xlrec->rightChildBlkno);
} }
break; break;
case XLOG_GIN_VACUUM_PAGE: case XLOG_GIN_VACUUM_PAGE:
@@ -150,10 +153,27 @@ gin_desc(StringInfo buf, XLogReaderState *record)
/* no further information */ /* no further information */
break; break;
case XLOG_GIN_UPDATE_META_PAGE: case XLOG_GIN_UPDATE_META_PAGE:
/* no further information */ {
ginxlogUpdateMeta *xlrec = (ginxlogUpdateMeta *) rec;
appendStringInfo(buf, "ntuples: %d", xlrec->ntuples);
if (xlrec->prevTail != InvalidBlockNumber)
appendStringInfo(buf, " prevTail: %u",
xlrec->prevTail);
if (xlrec->newRightlink != InvalidBlockNumber)
appendStringInfo(buf, " newRightLink: %u",
xlrec->newRightlink);
}
break; break;
case XLOG_GIN_INSERT_LISTPAGE: case XLOG_GIN_INSERT_LISTPAGE:
/* no further information */ {
ginxlogInsertListPage *xlrec = (ginxlogInsertListPage *) rec;
appendStringInfo(buf, "ntuples: %d", xlrec->ntuples);
if (xlrec->rightlink != InvalidBlockNumber)
appendStringInfo(buf, " rightlink: %u",
xlrec->rightlink);
}
break; break;
case XLOG_GIN_DELETE_LISTPAGE: case XLOG_GIN_DELETE_LISTPAGE:
appendStringInfo(buf, "ndeleted: %d", appendStringInfo(buf, "ndeleted: %d",