#include "postgres.h"#include "funcapi.h"#include "lib/stringinfo.h"#include "miscadmin.h"#include "storage/fsm_internals.h"#include "utils/builtins.h"
Go to the source code of this file.
Functions | |
| Datum | fsm_page_contents (PG_FUNCTION_ARGS) |
| PG_FUNCTION_INFO_V1 (fsm_page_contents) | |
| Datum fsm_page_contents | ( | PG_FUNCTION_ARGS | ) |
Definition at line 36 of file fsmfuncs.c.
References appendStringInfo(), cstring_to_text(), StringInfoData::data, ereport, errcode(), errmsg(), ERROR, FSMPageData::fp_next_slot, FSMPageData::fp_nodes, i, initStringInfo(), PageGetContents, PG_GETARG_BYTEA_P, PG_RETURN_TEXT_P, superuser(), and VARDATA.
{
bytea *raw_page = PG_GETARG_BYTEA_P(0);
StringInfoData sinfo;
FSMPage fsmpage;
int i;
if (!superuser())
ereport(ERROR,
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
(errmsg("must be superuser to use raw page functions"))));
fsmpage = (FSMPage) PageGetContents(VARDATA(raw_page));
initStringInfo(&sinfo);
for (i = 0; i < NodesPerPage; i++)
{
if (fsmpage->fp_nodes[i] != 0)
appendStringInfo(&sinfo, "%d: %d\n", i, fsmpage->fp_nodes[i]);
}
appendStringInfo(&sinfo, "fp_next_slot: %d\n", fsmpage->fp_next_slot);
PG_RETURN_TEXT_P(cstring_to_text(sinfo.data));
}
| PG_FUNCTION_INFO_V1 | ( | fsm_page_contents | ) |
1.7.1