Thread: Stylistic changes in bufmgr.c

Stylistic changes in bufmgr.c

From
Manfred Koizar
Date:
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;
          }
      }
  }

Re: Stylistic changes in bufmgr.c

From
Bruce Momjian
Date:
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