163 errmsg(
"page verification failed, calculated checksum %u but expected %u%s",
226 errmsg(
"corrupted page pointers: lower = %u, upper = %u, special = %u",
302 elog(
WARNING,
"specified item offset is too large");
309 elog(
WARNING,
"can't put more than MaxHeapTuplesPerPage items in a heap page");
498#ifdef USE_ASSERT_CHECKING
733 pd_lower > pd_upper ||
734 pd_upper > pd_special ||
739 errmsg(
"corrupted page pointers: lower = %u, upper = %u, special = %u",
740 pd_lower, pd_upper, pd_special)));
747 nunused = totallen = 0;
768 errmsg(
"corrupted line pointer: %u",
795 if (totallen > (
Size) (pd_special - pd_lower))
798 errmsg(
"corrupted item lengths: total %zu, available space %u",
799 totallen, pd_special - pd_lower)));
892#ifdef CLOBBER_FREED_MEMORY
954 if (space < (
int) (ntups *
sizeof(
ItemIdData)))
1082 errmsg(
"corrupted page pointers: lower = %u, upper = %u, special = %u",
1086 if ((
int) offnum <= 0 || (
int) offnum >
nline)
1087 elog(
ERROR,
"invalid index offnum: %u", offnum);
1101 errmsg(
"corrupted line pointer: offset = %u, size = %zu",
1129 addr = (
char *) page + phdr->
pd_upper;
1211 pd_lower > pd_upper ||
1212 pd_upper > pd_special ||
1214 pd_special !=
MAXALIGN(pd_special))
1217 errmsg(
"corrupted page pointers: lower = %u, upper = %u, special = %u",
1218 pd_lower, pd_upper, pd_special)));
1237 if (offset < pd_upper ||
1238 (offset + size) > pd_special ||
1242 errmsg(
"corrupted line pointer: offset = %u, size = %zu",
1270 elog(
ERROR,
"incorrect index offsets supplied");
1272 if (totallen > (
Size) (pd_special - pd_lower))
1275 errmsg(
"corrupted item lengths: total %zu, available space %u",
1276 totallen, pd_special - pd_lower)));
1323 errmsg(
"corrupted page pointers: lower = %u, upper = %u, special = %u",
1327 if ((
int) offnum <= 0 || (
int) offnum >
nline)
1328 elog(
ERROR,
"invalid index offnum: %u", offnum);
1339 errmsg(
"corrupted line pointer: offset = %u, size = %zu",
1350 if ((
int) offnum <
nline)
1366 addr = (
char *) page + phdr->
pd_upper;
1435 errmsg(
"corrupted page pointers: lower = %u, upper = %u, special = %u",
1439 if ((
int) offnum <= 0 || (
int) offnum >
itemcount)
1440 elog(
ERROR,
"invalid index offnum: %u", offnum);
1451 errmsg(
"corrupted line pointer: offset = %u, size = %d",
1473 char *addr = (
char *) page + phdr->
pd_upper;
Size PageGetFreeSpace(const PageData *page)
static void compactify_tuples(itemIdCompact itemidbase, int nitems, Page page, bool presorted)
bool ignore_checksum_failure
void PageRestoreTempPage(Page tempPage, Page oldPage)
Size PageGetFreeSpaceForMultipleTuples(const PageData *page, int ntups)
Size PageGetHeapFreeSpace(const PageData *page)
void PageSetChecksum(Page page, BlockNumber blkno)
itemIdCompactData * itemIdCompact
Page PageGetTempPage(const PageData *page)
Page PageGetTempPageCopy(const PageData *page)
void PageIndexMultiDelete(Page page, OffsetNumber *itemnos, int nitems)
bool PageIndexTupleOverwrite(Page page, OffsetNumber offnum, const void *newtup, Size newsize)
OffsetNumber PageAddItemExtended(Page page, const void *item, Size size, OffsetNumber offsetNumber, int flags)
void PageIndexTupleDelete(Page page, OffsetNumber offnum)
void PageRepairFragmentation(Page page)
Size PageGetExactFreeSpace(const PageData *page)
void PageTruncateLinePointerArray(Page page)
void PageInit(Page page, Size pageSize, Size specialSize)
bool PageIsVerified(PageData *page, BlockNumber blkno, int flags, bool *checksum_failure_p)
Page PageGetTempPageCopySpecial(const PageData *page)
void PageIndexTupleDeleteNoCompact(Page page, OffsetNumber offnum)
#define PD_VALID_FLAG_BITS
static bool PageIsEmpty(const PageData *page)
PageHeaderData * PageHeader
static void PageSetHasFreeLinePointers(Page page)
static uint16 PageGetSpecialSize(const PageData *page)
#define PageGetSpecialPointer(page)
#define PIV_ZERO_BUFFERS_ON_ERROR
static Size PageGetPageSize(const PageData *page)
static bool PageIsNew(const PageData *page)
#define SizeOfPageHeaderData
static ItemId PageGetItemId(Page page, OffsetNumber offsetNumber)
static void * PageGetItem(PageData *page, const ItemIdData *itemId)
static bool PageHasFreeLinePointers(const PageData *page)
#define PG_PAGE_LAYOUT_VERSION
static void PageClearHasFreeLinePointers(Page page)
static void PageSetPageSizeAndVersion(Page page, Size size, uint8 version)
#define PIV_IGNORE_CHECKSUM_FAILURE
static OffsetNumber PageGetMaxOffsetNumber(const PageData *page)
#define unconstify(underlying_type, expr)
#define Assert(condition)
#define MemSet(start, val, len)
uint16 pg_checksum_page(char *page, BlockNumber blkno)
memcpy(sums, checksumBaseOffsets, sizeof(checksumBaseOffsets))
int errcode(int sqlerrcode)
#define ereport(elevel,...)
#define MaxHeapTuplesPerPage
#define ItemIdGetLength(itemId)
#define ItemIdGetOffset(itemId)
#define ItemIdSetNormal(itemId, off, len)
#define ItemIdIsUsed(itemId)
#define ItemIdSetUnused(itemId)
#define ItemIdHasStorage(itemId)
#define MaxIndexTuplesPerPage
void pfree(void *pointer)
#define VALGRIND_CHECK_MEM_IS_DEFINED(addr, size)
static bool pg_memory_is_all_zeros(const void *ptr, size_t len)
#define RESUME_INTERRUPTS()
#define HOLD_INTERRUPTS()
#define InvalidOffsetNumber
#define OffsetNumberIsValid(offsetNumber)
#define OffsetNumberNext(offsetNumber)
#define FirstOffsetNumber
Datum lower(PG_FUNCTION_ARGS)
Datum upper(PG_FUNCTION_ARGS)
static bool checksum_failure
#define ERRCODE_DATA_CORRUPTED
bool DataChecksumsNeedVerify(void)
bool DataChecksumsNeedWrite(void)