Re: Stylistic changes in bufmgr.c

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: Stylistic changes in bufmgr.c
Дата
Msg-id 200406081400.i58E0gl01348@candle.pha.pa.us
обсуждение исходный текст
Ответ на Stylistic changes in bufmgr.c  (Manfred Koizar <mkoi-pg@aon.at>)
Список pgsql-patches
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

В списке pgsql-patches по дате отправления:

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: Relocatable locale
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: vacuum.c refactoring