Replace offnum++ by OffsetNumberNext

Started by Fujii Masaoover 18 years ago4 messagespatches
Jump to latest
#1Fujii Masao
masao.fujii@gmail.com

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
#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Fujii Masao (#1)
Re: Replace offnum++ by OffsetNumberNext

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

#3Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#2)
Re: Replace offnum++ by OffsetNumberNext

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. +

#4Bruce Momjian
bruce@momjian.us
In reply to: Fujii Masao (#1)
Re: Replace offnum++ by OffsetNumberNext

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. +