Replace offnum++ by OffsetNumberNext
This is the patch replace offnum++ by OffsetNumberNext.
According to off.h, OffsetNumberNext is the macro prepared to
disambiguate the different manipulations on OffsetNumbers.
But, increment operator was used in some places instead of the macro.
--
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center
TEL (03)5860-5115
FAX (03)5463-5490
Attachments:
offnum.patchtext/plain; name=offnum.patchDownload+8-8
Fujii Masao <fujii.masao@oss.ntt.co.jp> writes:
This is the patch replace offnum++ by OffsetNumberNext.
According to off.h, OffsetNumberNext is the macro prepared to
disambiguate the different manipulations on OffsetNumbers.
But, increment operator was used in some places instead of the macro.
I wonder if we shouldn't go the other way, ie, use ++ everywhere.
OffsetNumberNext seems like just useless obscurantism ...
regards, tom lane
Tom Lane wrote:
Fujii Masao <fujii.masao@oss.ntt.co.jp> writes:
This is the patch replace offnum++ by OffsetNumberNext.
According to off.h, OffsetNumberNext is the macro prepared to
disambiguate the different manipulations on OffsetNumbers.
But, increment operator was used in some places instead of the macro.I wonder if we shouldn't go the other way, ie, use ++ everywhere.
OffsetNumberNext seems like just useless obscurantism ...
The only value I saw to OffsetNumberNext was the fact is does int16
increment, with casting. There is also the comment:
* Increments/decrements the argument. These macros look pointless
* but they help us disambiguate the different manipulations on
* OffsetNumbers (e.g., sometimes we subtract one from an
* OffsetNumber to move back, and sometimes we do so to form a
* real C array index).
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +
Patch applied. Thanks.
---------------------------------------------------------------------------
Fujii Masao wrote:
This is the patch replace offnum++ by OffsetNumberNext.
According to off.h, OffsetNumberNext is the macro prepared to
disambiguate the different manipulations on OffsetNumbers.
But, increment operator was used in some places instead of the macro.--
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center
TEL (03)5860-5115
FAX (03)5463-5490
? patch.diff Index: src/backend/access/heap/pruneheap.c =================================================================== RCS file: /projects/cvsroot/pgsql/src/backend/access/heap/pruneheap.c,v retrieving revision 1.9 diff -c -r1.9 pruneheap.c *** src/backend/access/heap/pruneheap.c 26 Mar 2008 21:10:37 -0000 1.9 --- src/backend/access/heap/pruneheap.c 4 Apr 2008 14:34:19 -0000 *************** *** 789,795 **** MemSet(root_offsets, 0, MaxHeapTuplesPerPage * sizeof(OffsetNumber));maxoff = PageGetMaxOffsetNumber(page); ! for (offnum = FirstOffsetNumber; offnum <= maxoff; offnum++) { ItemId lp = PageGetItemId(page, offnum); HeapTupleHeader htup; --- 789,795 ---- MemSet(root_offsets, 0, MaxHeapTuplesPerPage * sizeof(OffsetNumber));maxoff = PageGetMaxOffsetNumber(page); ! for (offnum = FirstOffsetNumber; offnum <= maxoff; offnum = OffsetNumberNext(offnum)) { ItemId lp = PageGetItemId(page, offnum); HeapTupleHeader htup; Index: src/backend/executor/nodeBitmapHeapscan.c =================================================================== RCS file: /projects/cvsroot/pgsql/src/backend/executor/nodeBitmapHeapscan.c,v retrieving revision 1.25 diff -c -r1.25 nodeBitmapHeapscan.c *** src/backend/executor/nodeBitmapHeapscan.c 26 Mar 2008 21:10:38 -0000 1.25 --- src/backend/executor/nodeBitmapHeapscan.c 4 Apr 2008 14:34:19 -0000 *************** *** 301,307 **** OffsetNumber maxoff = PageGetMaxOffsetNumber(dp); OffsetNumber offnum;! for (offnum = FirstOffsetNumber; offnum <= maxoff; offnum++) { ItemId lp; HeapTupleData loctup; --- 301,307 ---- OffsetNumber maxoff = PageGetMaxOffsetNumber(dp); OffsetNumber offnum;! for (offnum = FirstOffsetNumber; offnum <= maxoff; offnum = OffsetNumberNext(offnum)) { ItemId lp; HeapTupleData loctup; Index: src/backend/storage/page/bufpage.c =================================================================== RCS file: /projects/cvsroot/pgsql/src/backend/storage/page/bufpage.c,v retrieving revision 1.78 diff -c -r1.78 bufpage.c *** src/backend/storage/page/bufpage.c 10 Feb 2008 20:39:08 -0000 1.78 --- src/backend/storage/page/bufpage.c 4 Apr 2008 14:34:19 -0000 *************** *** 533,539 **** * Since this is just a hint, we must confirm that there is * indeed a free line pointer */ ! for (offnum = FirstOffsetNumber; offnum <= nline; offnum++) { ItemId lp = PageGetItemId(page, offnum);--- 533,539 ---- * Since this is just a hint, we must confirm that there is * indeed a free line pointer */ ! for (offnum = FirstOffsetNumber; offnum <= nline; offnum = OffsetNumberNext(offnum)) { ItemId lp = PageGetItemId(page, offnum);*************** *** 736,742 **** totallen = 0; nused = 0; nextitm = 0; ! for (offnum = 1; offnum <= nline; offnum++) { lp = PageGetItemId(page, offnum); Assert(ItemIdHasStorage(lp)); --- 736,742 ---- totallen = 0; nused = 0; nextitm = 0; ! for (offnum = FirstOffsetNumber; offnum <= nline; offnum = OffsetNumberNext(offnum)) { lp = PageGetItemId(page, offnum); Assert(ItemIdHasStorage(lp));--
Sent via pgsql-patches mailing list (pgsql-patches@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-patches
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +