Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitd79e7e9

Browse files
committed
Remove redundant IndexTupleDSize macro.
Use IndexTupleSize everywhere, instead. Also, remove IndexTupleSize'sinternal typecast, as that's not really needed and might mask codingerrors. Change some pointer variable datatypes in the call sitesto compensate for that and make it clearer what we're assuming.Ildar Musin, Robert Haas, Stephen FrostDiscussion:https://postgr.es/m/0274288e-9e88-13b6-c61c-7b36928bf221@postgrespro.ru
1 parentd3b851e commitd79e7e9

File tree

9 files changed

+33
-28
lines changed

9 files changed

+33
-28
lines changed

‎src/backend/access/hash/hash_xlog.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -558,7 +558,7 @@ hash_xlog_move_page_contents(XLogReaderState *record)
558558
Sizeitemsz;
559559
OffsetNumberl;
560560

561-
itemsz=IndexTupleDSize(*itup);
561+
itemsz=IndexTupleSize(itup);
562562
itemsz=MAXALIGN(itemsz);
563563

564564
data+=itemsz;
@@ -686,7 +686,7 @@ hash_xlog_squeeze_page(XLogReaderState *record)
686686
Sizeitemsz;
687687
OffsetNumberl;
688688

689-
itemsz=IndexTupleDSize(*itup);
689+
itemsz=IndexTupleSize(itup);
690690
itemsz=MAXALIGN(itemsz);
691691

692692
data+=itemsz;

‎src/backend/access/hash/hashinsert.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ _hash_doinsert(Relation rel, IndexTuple itup, Relation heapRel)
5555
hashkey=_hash_get_indextuple_hashkey(itup);
5656

5757
/* compute item size too */
58-
itemsz=IndexTupleDSize(*itup);
58+
itemsz=IndexTupleSize(itup);
5959
itemsz=MAXALIGN(itemsz);/* be safe, PageAddItem will do this but we
6060
* need to be consistent */
6161

@@ -222,7 +222,7 @@ _hash_doinsert(Relation rel, IndexTuple itup, Relation heapRel)
222222
XLogRegisterBuffer(1,metabuf,REGBUF_STANDARD);
223223

224224
XLogRegisterBuffer(0,buf,REGBUF_STANDARD);
225-
XLogRegisterBufData(0, (char*)itup,IndexTupleDSize(*itup));
225+
XLogRegisterBufData(0, (char*)itup,IndexTupleSize(itup));
226226

227227
recptr=XLogInsert(RM_HASH_ID,XLOG_HASH_INSERT);
228228

@@ -309,7 +309,7 @@ _hash_pgaddmultitup(Relation rel, Buffer buf, IndexTuple *itups,
309309
{
310310
Sizeitemsize;
311311

312-
itemsize=IndexTupleDSize(*itups[i]);
312+
itemsize=IndexTupleSize(itups[i]);
313313
itemsize=MAXALIGN(itemsize);
314314

315315
/* Find where to insert the tuple (preserving page's hashkey ordering) */

‎src/backend/access/hash/hashovfl.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -891,7 +891,7 @@ _hash_squeezebucket(Relation rel,
891891

892892
itup= (IndexTuple)PageGetItem(rpage,
893893
PageGetItemId(rpage,roffnum));
894-
itemsz=IndexTupleDSize(*itup);
894+
itemsz=IndexTupleSize(itup);
895895
itemsz=MAXALIGN(itemsz);
896896

897897
/*

‎src/backend/access/hash/hashpage.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1173,7 +1173,7 @@ _hash_splitbucket(Relation rel,
11731173
* the current page in the new bucket, we must allocate a new
11741174
* overflow page and place the tuple on that page instead.
11751175
*/
1176-
itemsz=IndexTupleDSize(*new_itup);
1176+
itemsz=IndexTupleSize(new_itup);
11771177
itemsz=MAXALIGN(itemsz);
11781178

11791179
if (PageGetFreeSpaceForMultipleTuples(npage,nitups+1)< (all_tups_size+itemsz))

‎src/backend/access/heap/hio.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,9 @@ RelationPutHeapTuple(Relation relation,
6767
if (!token)
6868
{
6969
ItemIditemId=PageGetItemId(pageHeader,offnum);
70-
Itemitem=PageGetItem(pageHeader,itemId);
70+
HeapTupleHeaderitem= (HeapTupleHeader)PageGetItem(pageHeader,itemId);
7171

72-
((HeapTupleHeader)item)->t_ctid=tuple->t_self;
72+
item->t_ctid=tuple->t_self;
7373
}
7474
}
7575

‎src/backend/access/nbtree/nbtinsert.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -558,7 +558,7 @@ _bt_findinsertloc(Relation rel,
558558

559559
lpageop= (BTPageOpaque)PageGetSpecialPointer(page);
560560

561-
itemsz=IndexTupleDSize(*newtup);
561+
itemsz=IndexTupleSize(newtup);
562562
itemsz=MAXALIGN(itemsz);/* be safe, PageAddItem will do this but we
563563
* need to be consistent */
564564

@@ -755,7 +755,7 @@ _bt_insertonpg(Relation rel,
755755
elog(ERROR,"cannot insert to incompletely split page %u",
756756
BufferGetBlockNumber(buf));
757757

758-
itemsz=IndexTupleDSize(*itup);
758+
itemsz=IndexTupleSize(itup);
759759
itemsz=MAXALIGN(itemsz);/* be safe, PageAddItem will do this but we
760760
* need to be consistent */
761761

@@ -914,7 +914,7 @@ _bt_insertonpg(Relation rel,
914914
sizeof(IndexTupleData));
915915
}
916916
else
917-
XLogRegisterBufData(0, (char*)itup,IndexTupleDSize(*itup));
917+
XLogRegisterBufData(0, (char*)itup,IndexTupleSize(itup));
918918

919919
recptr=XLogInsert(RM_BTREE_ID,xlinfo);
920920

‎src/backend/access/nbtree/nbtsort.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -813,7 +813,7 @@ _bt_buildadd(BTWriteState *wstate, BTPageState *state, IndexTuple itup)
813813
last_off=state->btps_lastoff;
814814

815815
pgspc=PageGetFreeSpace(npage);
816-
itupsz=IndexTupleDSize(*itup);
816+
itupsz=IndexTupleSize(itup);
817817
itupsz=MAXALIGN(itupsz);
818818

819819
/*

‎src/backend/access/nbtree/nbtxlog.c

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,15 @@ _bt_restore_page(Page page, char *from, int len)
5151
i=0;
5252
while (from<end)
5353
{
54-
/* Need to copy tuple header due to alignment considerations */
54+
/*
55+
* As we step through the items, 'from' won't always be properly
56+
* aligned, so we need to use memcpy(). Further, we use Item (which
57+
* is just a char*) here for our items array for the same reason;
58+
* wouldn't want the compiler or anyone thinking that an item is
59+
* aligned when it isn't.
60+
*/
5561
memcpy(&itupdata,from,sizeof(IndexTupleData));
56-
itemsz=IndexTupleDSize(itupdata);
62+
itemsz=IndexTupleSize(&itupdata);
5763
itemsz=MAXALIGN(itemsz);
5864

5965
items[i]= (Item)from;
@@ -205,7 +211,7 @@ btree_xlog_split(bool onleft, XLogReaderState *record)
205211
BTPageOpaqueropaque;
206212
char*datapos;
207213
Sizedatalen;
208-
Itemleft_hikey=NULL;
214+
IndexTupleleft_hikey=NULL;
209215
Sizeleft_hikeysz=0;
210216
BlockNumberleftsib;
211217
BlockNumberrightsib;
@@ -248,7 +254,7 @@ btree_xlog_split(bool onleft, XLogReaderState *record)
248254
{
249255
ItemIdhiItemId=PageGetItemId(rpage,P_FIRSTDATAKEY(ropaque));
250256

251-
left_hikey=PageGetItem(rpage,hiItemId);
257+
left_hikey=(IndexTuple)PageGetItem(rpage,hiItemId);
252258
left_hikeysz=ItemIdGetLength(hiItemId);
253259
}
254260

@@ -272,7 +278,7 @@ btree_xlog_split(bool onleft, XLogReaderState *record)
272278
Pagelpage= (Page)BufferGetPage(lbuf);
273279
BTPageOpaquelopaque= (BTPageOpaque)PageGetSpecialPointer(lpage);
274280
OffsetNumberoff;
275-
Itemnewitem=NULL;
281+
IndexTuplenewitem=NULL;
276282
Sizenewitemsz=0;
277283
Pagenewlpage;
278284
OffsetNumberleftoff;
@@ -281,7 +287,7 @@ btree_xlog_split(bool onleft, XLogReaderState *record)
281287

282288
if (onleft)
283289
{
284-
newitem= (Item)datapos;
290+
newitem= (IndexTuple)datapos;
285291
newitemsz=MAXALIGN(IndexTupleSize(newitem));
286292
datapos+=newitemsz;
287293
datalen-=newitemsz;
@@ -290,7 +296,7 @@ btree_xlog_split(bool onleft, XLogReaderState *record)
290296
/* Extract left hikey and its size (assuming 16-bit alignment) */
291297
if (!isleaf)
292298
{
293-
left_hikey= (Item)datapos;
299+
left_hikey= (IndexTuple)datapos;
294300
left_hikeysz=MAXALIGN(IndexTupleSize(left_hikey));
295301
datapos+=left_hikeysz;
296302
datalen-=left_hikeysz;
@@ -301,7 +307,7 @@ btree_xlog_split(bool onleft, XLogReaderState *record)
301307

302308
/* Set high key */
303309
leftoff=P_HIKEY;
304-
if (PageAddItem(newlpage,left_hikey,left_hikeysz,
310+
if (PageAddItem(newlpage,(Item)left_hikey,left_hikeysz,
305311
P_HIKEY, false, false)==InvalidOffsetNumber)
306312
elog(PANIC,"failed to add high key to left page after split");
307313
leftoff=OffsetNumberNext(leftoff);
@@ -310,21 +316,21 @@ btree_xlog_split(bool onleft, XLogReaderState *record)
310316
{
311317
ItemIditemid;
312318
Sizeitemsz;
313-
Itemitem;
319+
IndexTupleitem;
314320

315321
/* add the new item if it was inserted on left page */
316322
if (onleft&&off==xlrec->newitemoff)
317323
{
318-
if (PageAddItem(newlpage,newitem,newitemsz,leftoff,
324+
if (PageAddItem(newlpage,(Item)newitem,newitemsz,leftoff,
319325
false, false)==InvalidOffsetNumber)
320326
elog(ERROR,"failed to add new item to left page after split");
321327
leftoff=OffsetNumberNext(leftoff);
322328
}
323329

324330
itemid=PageGetItemId(lpage,off);
325331
itemsz=ItemIdGetLength(itemid);
326-
item=PageGetItem(lpage,itemid);
327-
if (PageAddItem(newlpage,item,itemsz,leftoff,
332+
item=(IndexTuple)PageGetItem(lpage,itemid);
333+
if (PageAddItem(newlpage,(Item)item,itemsz,leftoff,
328334
false, false)==InvalidOffsetNumber)
329335
elog(ERROR,"failed to add old item to left page after split");
330336
leftoff=OffsetNumberNext(leftoff);
@@ -333,7 +339,7 @@ btree_xlog_split(bool onleft, XLogReaderState *record)
333339
/* cope with possibility that newitem goes at the end */
334340
if (onleft&&off==xlrec->newitemoff)
335341
{
336-
if (PageAddItem(newlpage,newitem,newitemsz,leftoff,
342+
if (PageAddItem(newlpage,(Item)newitem,newitemsz,leftoff,
337343
false, false)==InvalidOffsetNumber)
338344
elog(ERROR,"failed to add new item to left page after split");
339345
leftoff=OffsetNumberNext(leftoff);

‎src/include/access/itup.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,7 @@ typedef IndexAttributeBitMapData * IndexAttributeBitMap;
6767
#defineINDEX_VAR_MASK0x4000
6868
#defineINDEX_NULL_MASK 0x8000
6969

70-
#defineIndexTupleSize(itup)((Size) (((IndexTuple) (itup))->t_info & INDEX_SIZE_MASK))
71-
#defineIndexTupleDSize(itup)((Size) ((itup).t_info & INDEX_SIZE_MASK))
70+
#defineIndexTupleSize(itup)((Size) ((itup)->t_info & INDEX_SIZE_MASK))
7271
#defineIndexTupleHasNulls(itup)((((IndexTuple) (itup))->t_info & INDEX_NULL_MASK))
7372
#defineIndexTupleHasVarwidths(itup) ((((IndexTuple) (itup))->t_info & INDEX_VAR_MASK))
7473

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp