Skip to content

Commit 50cb694

Browse files
petereCommitfest Bot
authored andcommitted
Remove Item type
This type is just char * underneath, it provides no real value, no type safety, and just makes the code one level more mysterious. It is more idiomatic to refer to blobs of memory by a combination of void * and size_t, so change it to that. Also, since this type hides the pointerness, we can't apply qualifiers to what is pointed to, which requires some unconstify nonsense. This change allows fixing that. Extension code that uses the Item type can change its code to use void * to be backward compatible.
1 parent 39dcfda commit 50cb694

File tree

28 files changed

+102
-177
lines changed

28 files changed

+102
-177
lines changed

src/backend/access/brin/brin_pageops.c

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ brin_doupdate(Relation idxrel, BlockNumber pagesPerRange,
176176
brin_can_do_samepage_update(oldbuf, origsz, newsz))
177177
{
178178
START_CRIT_SECTION();
179-
if (!PageIndexTupleOverwrite(oldpage, oldoff, (Item) unconstify(BrinTuple *, newtup), newsz))
179+
if (!PageIndexTupleOverwrite(oldpage, oldoff, newtup, newsz))
180180
elog(ERROR, "failed to replace BRIN tuple");
181181
MarkBufferDirty(oldbuf);
182182

@@ -250,8 +250,7 @@ brin_doupdate(Relation idxrel, BlockNumber pagesPerRange,
250250
brin_page_init(newpage, BRIN_PAGETYPE_REGULAR);
251251

252252
PageIndexTupleDeleteNoCompact(oldpage, oldoff);
253-
newoff = PageAddItem(newpage, (Item) unconstify(BrinTuple *, newtup), newsz,
254-
InvalidOffsetNumber, false, false);
253+
newoff = PageAddItem(newpage, newtup, newsz, InvalidOffsetNumber, false, false);
255254
if (newoff == InvalidOffsetNumber)
256255
elog(ERROR, "failed to add BRIN tuple to new page");
257256
MarkBufferDirty(oldbuf);
@@ -408,8 +407,7 @@ brin_doinsert(Relation idxrel, BlockNumber pagesPerRange,
408407
START_CRIT_SECTION();
409408
if (extended)
410409
brin_page_init(page, BRIN_PAGETYPE_REGULAR);
411-
off = PageAddItem(page, (Item) tup, itemsz, InvalidOffsetNumber,
412-
false, false);
410+
off = PageAddItem(page, tup, itemsz, InvalidOffsetNumber, false, false);
413411
if (off == InvalidOffsetNumber)
414412
elog(ERROR, "failed to add BRIN tuple to new page");
415413
MarkBufferDirty(*buffer);

src/backend/access/brin/brin_xlog.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ brin_xlog_insert_update(XLogReaderState *record,
8787
if (PageGetMaxOffsetNumber(page) + 1 < offnum)
8888
elog(PANIC, "brin_xlog_insert_update: invalid max offset number");
8989

90-
offnum = PageAddItem(page, (Item) tuple, tuplen, offnum, true, false);
90+
offnum = PageAddItem(page, tuple, tuplen, offnum, true, false);
9191
if (offnum == InvalidOffsetNumber)
9292
elog(PANIC, "brin_xlog_insert_update: failed to add tuple");
9393

@@ -189,7 +189,7 @@ brin_xlog_samepage_update(XLogReaderState *record)
189189

190190
offnum = xlrec->offnum;
191191

192-
if (!PageIndexTupleOverwrite(page, offnum, (Item) brintuple, tuplen))
192+
if (!PageIndexTupleOverwrite(page, offnum, brintuple, tuplen))
193193
elog(PANIC, "brin_xlog_samepage_update: failed to replace tuple");
194194

195195
PageSetLSN(page, lsn);

src/backend/access/gin/ginentrypage.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -563,7 +563,7 @@ entryExecPlaceToPage(GinBtree btree, Buffer buf, GinBtreeStack *stack,
563563
entryPreparePage(btree, page, off, insertData, updateblkno);
564564

565565
placed = PageAddItem(page,
566-
(Item) insertData->entry,
566+
insertData->entry,
567567
IndexTupleSize(insertData->entry),
568568
off, false, false);
569569
if (placed != off)
@@ -684,7 +684,7 @@ entrySplitPage(GinBtree btree, Buffer origbuf,
684684
lsize += MAXALIGN(IndexTupleSize(itup)) + sizeof(ItemIdData);
685685
}
686686

687-
if (PageAddItem(page, (Item) itup, IndexTupleSize(itup), InvalidOffsetNumber, false, false) == InvalidOffsetNumber)
687+
if (PageAddItem(page, itup, IndexTupleSize(itup), InvalidOffsetNumber, false, false) == InvalidOffsetNumber)
688688
elog(ERROR, "failed to add item to index page in \"%s\"",
689689
RelationGetRelationName(btree->index));
690690
ptr += MAXALIGN(IndexTupleSize(itup));
@@ -727,12 +727,12 @@ ginEntryFillRoot(GinBtree btree, Page root,
727727
IndexTuple itup;
728728

729729
itup = GinFormInteriorTuple(getRightMostTuple(lpage), lpage, lblkno);
730-
if (PageAddItem(root, (Item) itup, IndexTupleSize(itup), InvalidOffsetNumber, false, false) == InvalidOffsetNumber)
730+
if (PageAddItem(root, itup, IndexTupleSize(itup), InvalidOffsetNumber, false, false) == InvalidOffsetNumber)
731731
elog(ERROR, "failed to add item to index root page");
732732
pfree(itup);
733733

734734
itup = GinFormInteriorTuple(getRightMostTuple(rpage), rpage, rblkno);
735-
if (PageAddItem(root, (Item) itup, IndexTupleSize(itup), InvalidOffsetNumber, false, false) == InvalidOffsetNumber)
735+
if (PageAddItem(root, itup, IndexTupleSize(itup), InvalidOffsetNumber, false, false) == InvalidOffsetNumber)
736736
elog(ERROR, "failed to add item to index root page");
737737
pfree(itup);
738738
}

src/backend/access/gin/ginfast.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ writeListPage(Relation index, Buffer buffer,
8383
ptr += this_size;
8484
size += this_size;
8585

86-
l = PageAddItem(page, (Item) tuples[i], this_size, off, false, false);
86+
l = PageAddItem(page, tuples[i], this_size, off, false, false);
8787

8888
if (l == InvalidOffsetNumber)
8989
elog(ERROR, "failed to add item to index page in \"%s\"",
@@ -384,7 +384,7 @@ ginHeapTupleFastInsert(GinState *ginstate, GinTupleCollector *collector)
384384
for (i = 0; i < collector->ntuples; i++)
385385
{
386386
tupsize = IndexTupleSize(collector->tuples[i]);
387-
l = PageAddItem(page, (Item) collector->tuples[i], tupsize, off, false, false);
387+
l = PageAddItem(page, collector->tuples[i], tupsize, off, false, false);
388388

389389
if (l == InvalidOffsetNumber)
390390
elog(ERROR, "failed to add item to index page in \"%s\"",

src/backend/access/gin/ginvacuum.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -547,7 +547,7 @@ ginVacuumEntryPage(GinVacuumState *gvs, Buffer buffer, BlockNumber *roots, uint3
547547
pfree(plist);
548548
PageIndexTupleDelete(tmppage, i);
549549

550-
if (PageAddItem(tmppage, (Item) itup, IndexTupleSize(itup), i, false, false) != i)
550+
if (PageAddItem(tmppage, itup, IndexTupleSize(itup), i, false, false) != i)
551551
elog(ERROR, "failed to add item to index page in \"%s\"",
552552
RelationGetRelationName(gvs->index));
553553

src/backend/access/gin/ginxlog.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ ginRedoInsertEntry(Buffer buffer, bool isLeaf, BlockNumber rightblkno, void *rda
9393

9494
itup = &data->tuple;
9595

96-
if (PageAddItem(page, (Item) itup, IndexTupleSize(itup), offset, false, false) == InvalidOffsetNumber)
96+
if (PageAddItem(page, itup, IndexTupleSize(itup), offset, false, false) == InvalidOffsetNumber)
9797
{
9898
RelFileLocator locator;
9999
ForkNumber forknum;
@@ -573,8 +573,7 @@ ginRedoUpdateMetapage(XLogReaderState *record)
573573
{
574574
tupsize = IndexTupleSize(tuples);
575575

576-
if (PageAddItem(page, (Item) tuples, tupsize, off,
577-
false, false) == InvalidOffsetNumber)
576+
if (PageAddItem(page, tuples, tupsize, off, false, false) == InvalidOffsetNumber)
578577
elog(ERROR, "failed to add item to index page");
579578

580579
tuples = (IndexTuple) (((char *) tuples) + tupsize);
@@ -654,7 +653,7 @@ ginRedoInsertListPage(XLogReaderState *record)
654653
{
655654
tupsize = IndexTupleSize(tuples);
656655

657-
l = PageAddItem(page, (Item) tuples, tupsize, off, false, false);
656+
l = PageAddItem(page, tuples, tupsize, off, false, false);
658657

659658
if (l == InvalidOffsetNumber)
660659
elog(ERROR, "failed to add item to index page");

src/backend/access/gist/gist.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,7 @@ gistplacetopage(Relation rel, Size freespace, GISTSTATE *giststate,
430430
{
431431
IndexTuple thistup = (IndexTuple) data;
432432

433-
if (PageAddItem(ptr->page, (Item) data, IndexTupleSize(thistup), i + FirstOffsetNumber, false, false) == InvalidOffsetNumber)
433+
if (PageAddItem(ptr->page, data, IndexTupleSize(thistup), i + FirstOffsetNumber, false, false) == InvalidOffsetNumber)
434434
elog(ERROR, "failed to add item to index page in \"%s\"", RelationGetRelationName(rel));
435435

436436
/*
@@ -551,8 +551,7 @@ gistplacetopage(Relation rel, Size freespace, GISTSTATE *giststate,
551551
if (ntup == 1)
552552
{
553553
/* One-for-one replacement, so use PageIndexTupleOverwrite */
554-
if (!PageIndexTupleOverwrite(page, oldoffnum, (Item) *itup,
555-
IndexTupleSize(*itup)))
554+
if (!PageIndexTupleOverwrite(page, oldoffnum, *itup, IndexTupleSize(*itup)))
556555
elog(ERROR, "failed to add item to index page in \"%s\"",
557556
RelationGetRelationName(rel));
558557
}

src/backend/access/gist/gistbuild.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -558,7 +558,7 @@ gist_indexsortbuild_levelstate_flush(GISTBuildState *state,
558558
{
559559
IndexTuple thistup = (IndexTuple) data;
560560

561-
if (PageAddItem(target, (Item) data, IndexTupleSize(thistup), i + FirstOffsetNumber, false, false) == InvalidOffsetNumber)
561+
if (PageAddItem(target, data, IndexTupleSize(thistup), i + FirstOffsetNumber, false, false) == InvalidOffsetNumber)
562562
elog(ERROR, "failed to add item to index page in \"%s\"", RelationGetRelationName(state->indexrel));
563563

564564
data += IndexTupleSize(thistup);

src/backend/access/gist/gistutil.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ gistfillbuffer(Page page, IndexTuple *itup, int len, OffsetNumber off)
4444
Size sz = IndexTupleSize(itup[i]);
4545
OffsetNumber l;
4646

47-
l = PageAddItem(page, (Item) itup[i], sz, off, false, false);
47+
l = PageAddItem(page, itup[i], sz, off, false, false);
4848
if (l == InvalidOffsetNumber)
4949
elog(ERROR, "failed to add item to GiST index page, item %d out of %d, size %d bytes",
5050
i, len, (int) sz);

src/backend/access/gist/gistxlog.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ gistRedoPageUpdateRecord(XLogReaderState *record)
9898
data += sizeof(OffsetNumber);
9999
itup = (IndexTuple) data;
100100
itupsize = IndexTupleSize(itup);
101-
if (!PageIndexTupleOverwrite(page, offnum, (Item) itup, itupsize))
101+
if (!PageIndexTupleOverwrite(page, offnum, itup, itupsize))
102102
elog(ERROR, "failed to add item to GiST index page, size %d bytes",
103103
(int) itupsize);
104104
data += itupsize;
@@ -133,7 +133,7 @@ gistRedoPageUpdateRecord(XLogReaderState *record)
133133

134134
data += sz;
135135

136-
l = PageAddItem(page, (Item) itup, sz, off, false, false);
136+
l = PageAddItem(page, itup, sz, off, false, false);
137137
if (l == InvalidOffsetNumber)
138138
elog(ERROR, "failed to add item to GiST index page, size %d bytes",
139139
(int) sz);

0 commit comments

Comments
 (0)