Header And Logo

PostgreSQL
| The world's most advanced open source database.

Functions

mxactdesc.c File Reference

#include "postgres.h"
#include "access/multixact.h"
Include dependency graph for mxactdesc.c:

Go to the source code of this file.

Functions

static void out_member (StringInfo buf, MultiXactMember *member)
void multixact_desc (StringInfo buf, uint8 xl_info, char *rec)

Function Documentation

void multixact_desc ( StringInfo  buf,
uint8  xl_info,
char *  rec 
)

Definition at line 50 of file mxactdesc.c.

References appendStringInfo(), i, xl_multixact_create::members, xl_multixact_create::mid, xl_multixact_create::moff, xl_multixact_create::nmembers, out_member(), XLOG_MULTIXACT_CREATE_ID, XLOG_MULTIXACT_ZERO_MEM_PAGE, and XLOG_MULTIXACT_ZERO_OFF_PAGE.

{
    uint8       info = xl_info & ~XLR_INFO_MASK;

    if (info == XLOG_MULTIXACT_ZERO_OFF_PAGE)
    {
        int         pageno;

        memcpy(&pageno, rec, sizeof(int));
        appendStringInfo(buf, "zero offsets page: %d", pageno);
    }
    else if (info == XLOG_MULTIXACT_ZERO_MEM_PAGE)
    {
        int         pageno;

        memcpy(&pageno, rec, sizeof(int));
        appendStringInfo(buf, "zero members page: %d", pageno);
    }
    else if (info == XLOG_MULTIXACT_CREATE_ID)
    {
        xl_multixact_create *xlrec = (xl_multixact_create *) rec;
        int         i;

        appendStringInfo(buf, "create mxid %u offset %u nmembers %d: ", xlrec->mid,
                         xlrec->moff, xlrec->nmembers);
        for (i = 0; i < xlrec->nmembers; i++)
            out_member(buf, &xlrec->members[i]);
    }
    else
        appendStringInfo(buf, "UNKNOWN");
}

static void out_member ( StringInfo  buf,
MultiXactMember member 
) [static]