Stylistic changes in bufmgr.c
Patch applied. Thanks.
---------------------------------------------------------------------------
Manfred Koizar wrote:
Basically replaces (*a).b with a->b as it is everywhere else in
Postgres.Servus
Manfred
diff -Ncr ../base/src/backend/storage/page/bufpage.c src/backend/storage/page/bufpage.c *** ../base/src/backend/storage/page/bufpage.c Sat Nov 29 20:51:57 2003 --- src/backend/storage/page/bufpage.c Wed Jun 2 22:26:12 2004 *************** *** 151,158 **** if (offsetNumber < limit) { itemId = PageGetItemId(phdr, offsetNumber); ! if (((*itemId).lp_flags & LP_USED) || ! ((*itemId).lp_len != 0)) { elog(WARNING, "will not overwrite a used ItemId"); return InvalidOffsetNumber; --- 151,158 ---- if (offsetNumber < limit) { itemId = PageGetItemId(phdr, offsetNumber); ! if ((itemId->lp_flags & LP_USED) || ! (itemId->lp_len != 0)) { elog(WARNING, "will not overwrite a used ItemId"); return InvalidOffsetNumber; *************** *** 172,179 **** for (offsetNumber = 1; offsetNumber < limit; offsetNumber++) { itemId = PageGetItemId(phdr, offsetNumber); ! if ((((*itemId).lp_flags & LP_USED) == 0) && ! ((*itemId).lp_len == 0)) break; } /* if no free slot, we'll put it at limit (1st open slot) */ --- 172,179 ---- for (offsetNumber = 1; offsetNumber < limit; offsetNumber++) { itemId = PageGetItemId(phdr, offsetNumber); ! if (((itemId->lp_flags & LP_USED) == 0) && ! (itemId->lp_len == 0)) break; } /* if no free slot, we'll put it at limit (1st open slot) */ *************** *** 214,222 **** (limit - offsetNumber) * sizeof(ItemIdData));/* set the item pointer */
! (*itemId).lp_off = upper;
! (*itemId).lp_len = size;
! (*itemId).lp_flags = flags;/* copy the item's data onto the page */ memcpy((char *) page + upper, item, size); --- 214,222 ---- (limit - offsetNumber) * sizeof(ItemIdData));/* set the item pointer */
! itemId->lp_off = upper;
! itemId->lp_len = size;
! itemId->lp_flags = flags;/* copy the item's data onto the page */
memcpy((char *) page + upper, item, size);
***************
*** 278,296 ****
/*
* sorting support for PageRepairFragmentation
*/
! struct itemIdSortData
{
int offsetindex; /* linp array index */
int itemoff; /* page offset of item data */
Size alignedlen; /* MAXALIGN(item data len) */
! };static int
itemoffcompare(const void *itemidp1, const void *itemidp2)
{
/* Sort in decreasing itemoff order */
! return ((struct itemIdSortData *) itemidp2)->itemoff -
! ((struct itemIdSortData *) itemidp1)->itemoff;
}/* --- 278,297 ---- /* * sorting support for PageRepairFragmentation */ ! typedef struct itemIdSortData { int offsetindex; /* linp array index */ int itemoff; /* page offset of item data */ Size alignedlen; /* MAXALIGN(item data len) */ ! } itemIdSortData; ! typedef itemIdSortData *itemIdSort;static int
itemoffcompare(const void *itemidp1, const void *itemidp2)
{
/* Sort in decreasing itemoff order */
! return ((itemIdSort) itemidp2)->itemoff -
! ((itemIdSort) itemidp1)->itemoff;
}/* *************** *** 309,316 **** Offset pd_lower = ((PageHeader) page)->pd_lower; Offset pd_upper = ((PageHeader) page)->pd_upper; Offset pd_special = ((PageHeader) page)->pd_special; ! struct itemIdSortData *itemidbase, ! *itemidptr; ItemId lp; int nline, nused; --- 310,317 ---- Offset pd_lower = ((PageHeader) page)->pd_lower; Offset pd_upper = ((PageHeader) page)->pd_upper; Offset pd_special = ((PageHeader) page)->pd_special; ! itemIdSort itemidbase, ! itemidptr; ItemId lp; int nline, nused; *************** *** 340,348 **** for (i = 0; i < nline; i++) { lp = PageGetItemId(page, i + 1); ! if ((*lp).lp_flags & LP_DELETE) /* marked for deletion */ ! (*lp).lp_flags &= ~(LP_USED | LP_DELETE); ! if ((*lp).lp_flags & LP_USED) nused++; else if (unused) unused[i - nused] = (OffsetNumber) i; --- 341,349 ---- for (i = 0; i < nline; i++) { lp = PageGetItemId(page, i + 1); ! if (lp->lp_flags & LP_DELETE) /* marked for deletion */ ! lp->lp_flags &= ~(LP_USED | LP_DELETE); ! if (lp->lp_flags & LP_USED) nused++; else if (unused) unused[i - nused] = (OffsetNumber) i; *************** *** 354,390 **** for (i = 0; i < nline; i++) { lp = PageGetItemId(page, i + 1); ! (*lp).lp_len = 0; /* indicate unused & deallocated */ } ((PageHeader) page)->pd_upper = pd_special; } else { /* nused != 0 */ /* Need to compact the page the hard way */ ! itemidbase = (struct itemIdSortData *) ! palloc(sizeof(struct itemIdSortData) * nused); itemidptr = itemidbase; totallen = 0; for (i = 0; i < nline; i++) { lp = PageGetItemId(page, i + 1); ! if ((*lp).lp_flags & LP_USED) { itemidptr->offsetindex = i; ! itemidptr->itemoff = (*lp).lp_off; if (itemidptr->itemoff < (int) pd_upper || itemidptr->itemoff >= (int) pd_special) ereport(ERROR, (errcode(ERRCODE_DATA_CORRUPTED), errmsg("corrupted item pointer: %u", itemidptr->itemoff))); ! itemidptr->alignedlen = MAXALIGN((*lp).lp_len); totallen += itemidptr->alignedlen; itemidptr++; } else { ! (*lp).lp_len = 0; /* indicate unused & deallocated */ } }--- 355,390 ---- for (i = 0; i < nline; i++) { lp = PageGetItemId(page, i + 1); ! lp->lp_len = 0; /* indicate unused & deallocated */ } ((PageHeader) page)->pd_upper = pd_special; } else { /* nused != 0 */ /* Need to compact the page the hard way */ ! itemidbase = (itemIdSort) palloc(sizeof(itemIdSortData) * nused); itemidptr = itemidbase; totallen = 0; for (i = 0; i < nline; i++) { lp = PageGetItemId(page, i + 1); ! if (lp->lp_flags & LP_USED) { itemidptr->offsetindex = i; ! itemidptr->itemoff = lp->lp_off; if (itemidptr->itemoff < (int) pd_upper || itemidptr->itemoff >= (int) pd_special) ereport(ERROR, (errcode(ERRCODE_DATA_CORRUPTED), errmsg("corrupted item pointer: %u", itemidptr->itemoff))); ! itemidptr->alignedlen = MAXALIGN(lp->lp_len); totallen += itemidptr->alignedlen; itemidptr++; } else { ! lp->lp_len = 0; /* indicate unused & deallocated */ } }***************
*** 395,401 ****
(unsigned int) totallen, pd_special - pd_lower)));/* sort itemIdSortData array into decreasing itemoff order */
! qsort((char *) itemidbase, nused, sizeof(struct itemIdSortData),
itemoffcompare);/* compactify page */ --- 395,401 ---- (unsigned int) totallen, pd_special - pd_lower)));/* sort itemIdSortData array into decreasing itemoff order */
! qsort((char *) itemidbase, nused, sizeof(itemIdSortData),
itemoffcompare);/* compactify page */
***************
*** 408,414 ****
memmove((char *) page + upper,
(char *) page + itemidptr->itemoff,
itemidptr->alignedlen);
! (*lp).lp_off = upper;
}((PageHeader) page)->pd_upper = upper; --- 408,414 ---- memmove((char *) page + upper, (char *) page + itemidptr->itemoff, itemidptr->alignedlen); ! lp->lp_off = upper; }((PageHeader) page)->pd_upper = upper; *************** *** 538,545 **** nline--; /* there's one less than when we started */ for (i = 1; i <= nline; i++) { ! if (PageGetItemId(phdr, i)->lp_off <= offset) ! PageGetItemId(phdr, i)->lp_off += size; } } } --- 538,546 ---- nline--; /* there's one less than when we started */ for (i = 1; i <= nline; i++) { ! ItemId ii = PageGetItemId(phdr, i); ! if (ii->lp_off <= offset) ! ii->lp_off += size; } } }
---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073