brin_can_do_samepage_update(oldbuf, origsz, newsz))
{
START_CRIT_SECTION();
- if (!PageIndexTupleOverwrite(oldpage, oldoff, (Item) unconstify(BrinTuple *, newtup), newsz))
+ if (!PageIndexTupleOverwrite(oldpage, oldoff, newtup, newsz))
elog(ERROR, "failed to replace BRIN tuple");
MarkBufferDirty(oldbuf);
brin_page_init(newpage, BRIN_PAGETYPE_REGULAR);
PageIndexTupleDeleteNoCompact(oldpage, oldoff);
- newoff = PageAddItem(newpage, (Item) unconstify(BrinTuple *, newtup), newsz,
- InvalidOffsetNumber, false, false);
+ newoff = PageAddItem(newpage, newtup, newsz, InvalidOffsetNumber, false, false);
if (newoff == InvalidOffsetNumber)
elog(ERROR, "failed to add BRIN tuple to new page");
MarkBufferDirty(oldbuf);
START_CRIT_SECTION();
if (extended)
brin_page_init(page, BRIN_PAGETYPE_REGULAR);
- off = PageAddItem(page, (Item) tup, itemsz, InvalidOffsetNumber,
- false, false);
+ off = PageAddItem(page, tup, itemsz, InvalidOffsetNumber, false, false);
if (off == InvalidOffsetNumber)
elog(ERROR, "failed to add BRIN tuple to new page");
MarkBufferDirty(*buffer);
if (PageGetMaxOffsetNumber(page) + 1 < offnum)
elog(PANIC, "brin_xlog_insert_update: invalid max offset number");
- offnum = PageAddItem(page, (Item) tuple, tuplen, offnum, true, false);
+ offnum = PageAddItem(page, tuple, tuplen, offnum, true, false);
if (offnum == InvalidOffsetNumber)
elog(PANIC, "brin_xlog_insert_update: failed to add tuple");
offnum = xlrec->offnum;
- if (!PageIndexTupleOverwrite(page, offnum, (Item) brintuple, tuplen))
+ if (!PageIndexTupleOverwrite(page, offnum, brintuple, tuplen))
elog(PANIC, "brin_xlog_samepage_update: failed to replace tuple");
PageSetLSN(page, lsn);
entryPreparePage(btree, page, off, insertData, updateblkno);
placed = PageAddItem(page,
- (Item) insertData->entry,
+ insertData->entry,
IndexTupleSize(insertData->entry),
off, false, false);
if (placed != off)
lsize += MAXALIGN(IndexTupleSize(itup)) + sizeof(ItemIdData);
}
- if (PageAddItem(page, (Item) itup, IndexTupleSize(itup), InvalidOffsetNumber, false, false) == InvalidOffsetNumber)
+ if (PageAddItem(page, itup, IndexTupleSize(itup), InvalidOffsetNumber, false, false) == InvalidOffsetNumber)
elog(ERROR, "failed to add item to index page in \"%s\"",
RelationGetRelationName(btree->index));
ptr += MAXALIGN(IndexTupleSize(itup));
IndexTuple itup;
itup = GinFormInteriorTuple(getRightMostTuple(lpage), lpage, lblkno);
- if (PageAddItem(root, (Item) itup, IndexTupleSize(itup), InvalidOffsetNumber, false, false) == InvalidOffsetNumber)
+ if (PageAddItem(root, itup, IndexTupleSize(itup), InvalidOffsetNumber, false, false) == InvalidOffsetNumber)
elog(ERROR, "failed to add item to index root page");
pfree(itup);
itup = GinFormInteriorTuple(getRightMostTuple(rpage), rpage, rblkno);
- if (PageAddItem(root, (Item) itup, IndexTupleSize(itup), InvalidOffsetNumber, false, false) == InvalidOffsetNumber)
+ if (PageAddItem(root, itup, IndexTupleSize(itup), InvalidOffsetNumber, false, false) == InvalidOffsetNumber)
elog(ERROR, "failed to add item to index root page");
pfree(itup);
}
ptr += this_size;
size += this_size;
- l = PageAddItem(page, (Item) tuples[i], this_size, off, false, false);
+ l = PageAddItem(page, tuples[i], this_size, off, false, false);
if (l == InvalidOffsetNumber)
elog(ERROR, "failed to add item to index page in \"%s\"",
for (i = 0; i < collector->ntuples; i++)
{
tupsize = IndexTupleSize(collector->tuples[i]);
- l = PageAddItem(page, (Item) collector->tuples[i], tupsize, off, false, false);
+ l = PageAddItem(page, collector->tuples[i], tupsize, off, false, false);
if (l == InvalidOffsetNumber)
elog(ERROR, "failed to add item to index page in \"%s\"",
pfree(plist);
PageIndexTupleDelete(tmppage, i);
- if (PageAddItem(tmppage, (Item) itup, IndexTupleSize(itup), i, false, false) != i)
+ if (PageAddItem(tmppage, itup, IndexTupleSize(itup), i, false, false) != i)
elog(ERROR, "failed to add item to index page in \"%s\"",
RelationGetRelationName(gvs->index));
itup = &data->tuple;
- if (PageAddItem(page, (Item) itup, IndexTupleSize(itup), offset, false, false) == InvalidOffsetNumber)
+ if (PageAddItem(page, itup, IndexTupleSize(itup), offset, false, false) == InvalidOffsetNumber)
{
RelFileLocator locator;
ForkNumber forknum;
{
tupsize = IndexTupleSize(tuples);
- if (PageAddItem(page, (Item) tuples, tupsize, off,
- false, false) == InvalidOffsetNumber)
+ if (PageAddItem(page, tuples, tupsize, off, false, false) == InvalidOffsetNumber)
elog(ERROR, "failed to add item to index page");
tuples = (IndexTuple) (((char *) tuples) + tupsize);
{
tupsize = IndexTupleSize(tuples);
- l = PageAddItem(page, (Item) tuples, tupsize, off, false, false);
+ l = PageAddItem(page, tuples, tupsize, off, false, false);
if (l == InvalidOffsetNumber)
elog(ERROR, "failed to add item to index page");
{
IndexTuple thistup = (IndexTuple) data;
- if (PageAddItem(ptr->page, (Item) data, IndexTupleSize(thistup), i + FirstOffsetNumber, false, false) == InvalidOffsetNumber)
+ if (PageAddItem(ptr->page, data, IndexTupleSize(thistup), i + FirstOffsetNumber, false, false) == InvalidOffsetNumber)
elog(ERROR, "failed to add item to index page in \"%s\"", RelationGetRelationName(rel));
/*
if (ntup == 1)
{
/* One-for-one replacement, so use PageIndexTupleOverwrite */
- if (!PageIndexTupleOverwrite(page, oldoffnum, (Item) *itup,
- IndexTupleSize(*itup)))
+ if (!PageIndexTupleOverwrite(page, oldoffnum, *itup, IndexTupleSize(*itup)))
elog(ERROR, "failed to add item to index page in \"%s\"",
RelationGetRelationName(rel));
}
{
IndexTuple thistup = (IndexTuple) data;
- if (PageAddItem(target, (Item) data, IndexTupleSize(thistup), i + FirstOffsetNumber, false, false) == InvalidOffsetNumber)
+ if (PageAddItem(target, data, IndexTupleSize(thistup), i + FirstOffsetNumber, false, false) == InvalidOffsetNumber)
elog(ERROR, "failed to add item to index page in \"%s\"", RelationGetRelationName(state->indexrel));
data += IndexTupleSize(thistup);
Size sz = IndexTupleSize(itup[i]);
OffsetNumber l;
- l = PageAddItem(page, (Item) itup[i], sz, off, false, false);
+ l = PageAddItem(page, itup[i], sz, off, false, false);
if (l == InvalidOffsetNumber)
elog(ERROR, "failed to add item to GiST index page, item %d out of %d, size %d bytes",
i, len, (int) sz);
data += sizeof(OffsetNumber);
itup = (IndexTuple) data;
itupsize = IndexTupleSize(itup);
- if (!PageIndexTupleOverwrite(page, offnum, (Item) itup, itupsize))
+ if (!PageIndexTupleOverwrite(page, offnum, itup, itupsize))
elog(ERROR, "failed to add item to GiST index page, size %d bytes",
(int) itupsize);
data += itupsize;
data += sz;
- l = PageAddItem(page, (Item) itup, sz, off, false, false);
+ l = PageAddItem(page, itup, sz, off, false, false);
if (l == InvalidOffsetNumber)
elog(ERROR, "failed to add item to GiST index page, size %d bytes",
(int) sz);
page = BufferGetPage(buffer);
- if (PageAddItem(page, (Item) datapos, datalen, xlrec->offnum,
- false, false) == InvalidOffsetNumber)
+ if (PageAddItem(page, datapos, datalen, xlrec->offnum, false, false) == InvalidOffsetNumber)
elog(PANIC, "hash_xlog_insert: failed to add item");
PageSetLSN(page, lsn);
data += itemsz;
- l = PageAddItem(writepage, (Item) itup, itemsz, towrite[ninserted], false, false);
+ l = PageAddItem(writepage, itup, itemsz, towrite[ninserted], false, false);
if (l == InvalidOffsetNumber)
elog(ERROR, "hash_xlog_move_page_contents: failed to add item to hash index page, size %d bytes",
(int) itemsz);
data += itemsz;
- l = PageAddItem(writepage, (Item) itup, itemsz, towrite[ninserted], false, false);
+ l = PageAddItem(writepage, itup, itemsz, towrite[ninserted], false, false);
if (l == InvalidOffsetNumber)
elog(ERROR, "hash_xlog_squeeze_page: failed to add item to hash index page, size %d bytes",
(int) itemsz);
itup_off = _hash_binsearch(page, hashkey);
}
- if (PageAddItem(page, (Item) itup, itemsize, itup_off, false, false)
- == InvalidOffsetNumber)
- elog(ERROR, "failed to add index item to \"%s\"",
- RelationGetRelationName(rel));
+ if (PageAddItem(page, itup, itemsize, itup_off, false, false) == InvalidOffsetNumber)
+ elog(ERROR, "failed to add index item to \"%s\"", RelationGetRelationName(rel));
return itup_off;
}
itup_offsets[i] = itup_off;
- if (PageAddItem(page, (Item) itups[i], itemsize, itup_off, false, false)
- == InvalidOffsetNumber)
- elog(ERROR, "failed to add index item to \"%s\"",
- RelationGetRelationName(rel));
+ if (PageAddItem(page, itups[i], itemsize, itup_off, false, false) == InvalidOffsetNumber)
+ elog(ERROR, "failed to add index item to \"%s\"", RelationGetRelationName(rel));
}
}
HeapTupleHeaderSetCmin(htup, FirstCommandId);
htup->t_ctid = target_tid;
- if (PageAddItem(page, (Item) htup, newlen, xlrec->offnum,
- true, true) == InvalidOffsetNumber)
+ if (PageAddItem(page, htup, newlen, xlrec->offnum, true, true) == InvalidOffsetNumber)
elog(PANIC, "failed to add tuple");
freespace = PageGetHeapFreeSpace(page); /* needed to update FSM below */
ItemPointerSetBlockNumber(&htup->t_ctid, blkno);
ItemPointerSetOffsetNumber(&htup->t_ctid, offnum);
- offnum = PageAddItem(page, (Item) htup, newlen, offnum, true, true);
+ offnum = PageAddItem(page, htup, newlen, offnum, true, true);
if (offnum == InvalidOffsetNumber)
elog(PANIC, "failed to add tuple");
}
/* Make sure there is no forward chain link in t_ctid */
htup->t_ctid = newtid;
- offnum = PageAddItem(page, (Item) htup, newlen, offnum, true, true);
+ offnum = PageAddItem(page, htup, newlen, offnum, true, true);
if (offnum == InvalidOffsetNumber)
elog(PANIC, "failed to add tuple");
/* Add the tuple to the page */
pageHeader = BufferGetPage(buffer);
- offnum = PageAddItem(pageHeader, (Item) tuple->t_data,
- tuple->t_len, InvalidOffsetNumber, false, true);
-
+ offnum = PageAddItem(pageHeader, tuple->t_data, tuple->t_len, InvalidOffsetNumber, false, true);
if (offnum == InvalidOffsetNumber)
elog(PANIC, "failed to add tuple to page");
}
/* And now we can insert the tuple into the page */
- newoff = PageAddItem(page, (Item) heaptup->t_data, heaptup->t_len,
- InvalidOffsetNumber, false, true);
+ newoff = PageAddItem(page, heaptup->t_data, heaptup->t_len, InvalidOffsetNumber, false, true);
if (newoff == InvalidOffsetNumber)
elog(ERROR, "failed to add tuple");
Size hitemsz = ItemIdGetLength(hitemid);
IndexTuple hitem = (IndexTuple) PageGetItem(page, hitemid);
- if (PageAddItem(newpage, (Item) hitem, hitemsz, P_HIKEY,
- false, false) == InvalidOffsetNumber)
+ if (PageAddItem(newpage, hitem, hitemsz, P_HIKEY, false, false) == InvalidOffsetNumber)
elog(ERROR, "deduplication failed to add highkey");
}
tuplesz = IndexTupleSize(state->base);
Assert(tuplesz == MAXALIGN(IndexTupleSize(state->base)));
Assert(tuplesz <= BTMaxItemSize);
- if (PageAddItem(newpage, (Item) state->base, tuplesz, tupoff,
- false, false) == InvalidOffsetNumber)
+ if (PageAddItem(newpage, state->base, tuplesz, tupoff, false, false) == InvalidOffsetNumber)
elog(ERROR, "deduplication failed to add tuple to page");
spacesaving = 0;
Assert(tuplesz == MAXALIGN(IndexTupleSize(final)));
Assert(tuplesz <= BTMaxItemSize);
- if (PageAddItem(newpage, (Item) final, tuplesz, tupoff, false,
- false) == InvalidOffsetNumber)
+ if (PageAddItem(newpage, final, tuplesz, tupoff, false, false) == InvalidOffsetNumber)
elog(ERROR, "deduplication failed to add tuple to page");
pfree(final);
if (postingoff != 0)
memcpy(oposting, nposting, MAXALIGN(IndexTupleSize(nposting)));
- if (PageAddItem(page, (Item) itup, itemsz, newitemoff, false,
- false) == InvalidOffsetNumber)
+ if (PageAddItem(page, itup, itemsz, newitemoff, false, false) == InvalidOffsetNumber)
elog(PANIC, "failed to add new item to block %u in index \"%s\"",
BufferGetBlockNumber(buf), RelationGetRelationName(rel));
Assert(BTreeTupleGetNAtts(lefthighkey, rel) <=
IndexRelationGetNumberOfKeyAttributes(rel));
Assert(itemsz == MAXALIGN(IndexTupleSize(lefthighkey)));
- if (PageAddItem(leftpage, (Item) lefthighkey, itemsz, afterleftoff, false,
- false) == InvalidOffsetNumber)
+ if (PageAddItem(leftpage, lefthighkey, itemsz, afterleftoff, false, false) == InvalidOffsetNumber)
elog(ERROR, "failed to add high key to the left sibling"
" while splitting block %u of index \"%s\"",
origpagenumber, RelationGetRelationName(rel));
Assert(BTreeTupleGetNAtts(righthighkey, rel) > 0);
Assert(BTreeTupleGetNAtts(righthighkey, rel) <=
IndexRelationGetNumberOfKeyAttributes(rel));
- if (PageAddItem(rightpage, (Item) righthighkey, itemsz, afterrightoff,
- false, false) == InvalidOffsetNumber)
+ if (PageAddItem(rightpage, righthighkey, itemsz, afterrightoff, false, false) == InvalidOffsetNumber)
{
elog(ERROR, "failed to add high key to the right sibling"
" while splitting block %u of index \"%s\"",
* benefit of _bt_restore_page().
*/
Assert(BTreeTupleGetNAtts(left_item, rel) == 0);
- if (PageAddItem(rootpage, (Item) left_item, left_item_sz, P_HIKEY,
- false, false) == InvalidOffsetNumber)
+ if (PageAddItem(rootpage, left_item, left_item_sz, P_HIKEY, false, false) == InvalidOffsetNumber)
elog(PANIC, "failed to add leftkey to new root page"
" while splitting block %u of index \"%s\"",
BufferGetBlockNumber(lbuf), RelationGetRelationName(rel));
Assert(BTreeTupleGetNAtts(right_item, rel) > 0);
Assert(BTreeTupleGetNAtts(right_item, rel) <=
IndexRelationGetNumberOfKeyAttributes(rel));
- if (PageAddItem(rootpage, (Item) right_item, right_item_sz, P_FIRSTKEY,
- false, false) == InvalidOffsetNumber)
+ if (PageAddItem(rootpage, right_item, right_item_sz, P_FIRSTKEY, false, false) == InvalidOffsetNumber)
elog(PANIC, "failed to add rightkey to new root page"
" while splitting block %u of index \"%s\"",
BufferGetBlockNumber(lbuf), RelationGetRelationName(rel));
itemsize = sizeof(IndexTupleData);
}
- if (unlikely(PageAddItem(page, (Item) itup, itemsize, itup_off, false,
- false) == InvalidOffsetNumber))
+ if (unlikely(PageAddItem(page, itup, itemsize, itup_off, false, false) == InvalidOffsetNumber))
return false;
return true;
itup = updatable[i]->itup;
itemsz = MAXALIGN(IndexTupleSize(itup));
- if (!PageIndexTupleOverwrite(page, updatedoffset, (Item) itup,
- itemsz))
+ if (!PageIndexTupleOverwrite(page, updatedoffset, itup, itemsz))
elog(PANIC, "failed to update partially dead item in block %u of index \"%s\"",
BufferGetBlockNumber(buf), RelationGetRelationName(rel));
}
itup = updatable[i]->itup;
itemsz = MAXALIGN(IndexTupleSize(itup));
- if (!PageIndexTupleOverwrite(page, updatedoffset, (Item) itup,
- itemsz))
+ if (!PageIndexTupleOverwrite(page, updatedoffset, itup, itemsz))
elog(PANIC, "failed to update partially dead item in block %u of index \"%s\"",
BufferGetBlockNumber(buf), RelationGetRelationName(rel));
}
else
BTreeTupleSetTopParent(&trunctuple, InvalidBlockNumber);
- if (!PageIndexTupleOverwrite(page, P_HIKEY, (Item) &trunctuple,
- IndexTupleSize(&trunctuple)))
+ if (!PageIndexTupleOverwrite(page, P_HIKEY, &trunctuple, IndexTupleSize(&trunctuple)))
elog(ERROR, "could not overwrite high key in half-dead page");
/* Must mark buffers dirty before XLogInsert */
itemsize = sizeof(IndexTupleData);
}
- if (PageAddItem(page, (Item) itup, itemsize, itup_off,
- false, false) == InvalidOffsetNumber)
+ if (PageAddItem(page, itup, itemsize, itup_off, false, false) == InvalidOffsetNumber)
elog(ERROR, "failed to add item to the index page");
}
Assert(IndexTupleSize(oitup) > last_truncextra);
truncated = _bt_truncate(wstate->index, lastleft, oitup,
wstate->inskey);
- if (!PageIndexTupleOverwrite(opage, P_HIKEY, (Item) truncated,
- IndexTupleSize(truncated)))
+ if (!PageIndexTupleOverwrite(opage, P_HIKEY, truncated, IndexTupleSize(truncated)))
elog(ERROR, "failed to add high key to the index page");
pfree(truncated);
IndexTupleData itupdata;
Size itemsz;
char *end = from + len;
- Item items[MaxIndexTuplesPerPage];
+ void *items[MaxIndexTuplesPerPage];
uint16 itemsizes[MaxIndexTuplesPerPage];
int i;
int nitems;
{
/*
* As we step through the items, 'from' won't always be properly
- * aligned, so we need to use memcpy(). Further, we use Item (which
- * is just a char*) here for our items array for the same reason;
- * wouldn't want the compiler or anyone thinking that an item is
- * aligned when it isn't.
+ * aligned, so we need to use memcpy(). Further, we use void * here
+ * for our items array for the same reason; wouldn't want the compiler
+ * or anyone thinking that an item is aligned when it isn't.
*/
memcpy(&itupdata, from, sizeof(IndexTupleData));
itemsz = IndexTupleSize(&itupdata);
itemsz = MAXALIGN(itemsz);
- items[i] = (Item) from;
+ items[i] = from;
itemsizes[i] = itemsz;
i++;
for (i = nitems - 1; i >= 0; i--)
{
- if (PageAddItem(page, items[i], itemsizes[i], nitems - i,
- false, false) == InvalidOffsetNumber)
+ if (PageAddItem(page, items[i], itemsizes[i], nitems - i, false, false) == InvalidOffsetNumber)
elog(PANIC, "_bt_restore_page: cannot add item to page");
}
}
if (!posting)
{
/* Simple retail insertion */
- if (PageAddItem(page, (Item) datapos, datalen, xlrec->offnum,
- false, false) == InvalidOffsetNumber)
+ if (PageAddItem(page, datapos, datalen, xlrec->offnum, false, false) == InvalidOffsetNumber)
elog(PANIC, "failed to add new item");
}
else
/* Insert "final" new item (not orignewitem from WAL stream) */
Assert(IndexTupleSize(newitem) == datalen);
- if (PageAddItem(page, (Item) newitem, datalen, xlrec->offnum,
- false, false) == InvalidOffsetNumber)
+ if (PageAddItem(page, newitem, datalen, xlrec->offnum, false, false) == InvalidOffsetNumber)
elog(PANIC, "failed to add posting split new item");
}
/* Add high key tuple from WAL record to temp page */
leftoff = P_HIKEY;
- if (PageAddItem(leftpage, (Item) left_hikey, left_hikeysz, P_HIKEY,
- false, false) == InvalidOffsetNumber)
+ if (PageAddItem(leftpage, left_hikey, left_hikeysz, P_HIKEY, false, false) == InvalidOffsetNumber)
elog(ERROR, "failed to add high key to left page after split");
leftoff = OffsetNumberNext(leftoff);
{
Assert(newitemonleft ||
xlrec->firstrightoff == xlrec->newitemoff);
- if (PageAddItem(leftpage, (Item) nposting,
- MAXALIGN(IndexTupleSize(nposting)), leftoff,
- false, false) == InvalidOffsetNumber)
+ if (PageAddItem(leftpage, nposting, MAXALIGN(IndexTupleSize(nposting)), leftoff, false, false) == InvalidOffsetNumber)
elog(ERROR, "failed to add new posting list item to left page after split");
leftoff = OffsetNumberNext(leftoff);
continue; /* don't insert oposting */
/* add the new item if it was inserted on left page */
else if (newitemonleft && off == xlrec->newitemoff)
{
- if (PageAddItem(leftpage, (Item) newitem, newitemsz, leftoff,
- false, false) == InvalidOffsetNumber)
+ if (PageAddItem(leftpage, newitem, newitemsz, leftoff, false, false) == InvalidOffsetNumber)
elog(ERROR, "failed to add new item to left page after split");
leftoff = OffsetNumberNext(leftoff);
}
itemid = PageGetItemId(origpage, off);
itemsz = ItemIdGetLength(itemid);
item = (IndexTuple) PageGetItem(origpage, itemid);
- if (PageAddItem(leftpage, (Item) item, itemsz, leftoff,
- false, false) == InvalidOffsetNumber)
+ if (PageAddItem(leftpage, item, itemsz, leftoff, false, false) == InvalidOffsetNumber)
elog(ERROR, "failed to add old item to left page after split");
leftoff = OffsetNumberNext(leftoff);
}
/* cope with possibility that newitem goes at the end */
if (newitemonleft && off == xlrec->newitemoff)
{
- if (PageAddItem(leftpage, (Item) newitem, newitemsz, leftoff,
- false, false) == InvalidOffsetNumber)
+ if (PageAddItem(leftpage, newitem, newitemsz, leftoff, false, false) == InvalidOffsetNumber)
elog(ERROR, "failed to add new item to left page after split");
leftoff = OffsetNumberNext(leftoff);
}
Size itemsz = ItemIdGetLength(itemid);
IndexTuple item = (IndexTuple) PageGetItem(page, itemid);
- if (PageAddItem(newpage, (Item) item, itemsz, P_HIKEY,
- false, false) == InvalidOffsetNumber)
+ if (PageAddItem(newpage, item, itemsz, P_HIKEY, false, false) == InvalidOffsetNumber)
elog(ERROR, "deduplication failed to add highkey");
}
/* Overwrite updated version of tuple */
itemsz = MAXALIGN(IndexTupleSize(vacposting->itup));
- if (!PageIndexTupleOverwrite(page, updatedoffsets[i],
- (Item) vacposting->itup, itemsz))
+ if (!PageIndexTupleOverwrite(page, updatedoffsets[i], vacposting->itup, itemsz))
elog(PANIC, "failed to update partially dead item");
pfree(vacposting->itup);
trunctuple.t_info = sizeof(IndexTupleData);
BTreeTupleSetTopParent(&trunctuple, xlrec->topparent);
- if (PageAddItem(page, (Item) &trunctuple, sizeof(IndexTupleData), P_HIKEY,
- false, false) == InvalidOffsetNumber)
+ if (PageAddItem(page, &trunctuple, sizeof(IndexTupleData), P_HIKEY, false, false) == InvalidOffsetNumber)
elog(ERROR, "could not add dummy high key to half-dead page");
PageSetLSN(page, lsn);
trunctuple.t_info = sizeof(IndexTupleData);
BTreeTupleSetTopParent(&trunctuple, xlrec->leaftopparent);
- if (PageAddItem(page, (Item) &trunctuple, sizeof(IndexTupleData), P_HIKEY,
- false, false) == InvalidOffsetNumber)
+ if (PageAddItem(page, &trunctuple, sizeof(IndexTupleData), P_HIKEY, false, false) == InvalidOffsetNumber)
elog(ERROR, "could not add dummy high key to half-dead page");
PageSetLSN(page, lsn);
if (tuple == NULL || tuple->tupstate != tupstate)
tuple = spgFormDeadTuple(state, tupstate, blkno, offnum);
- if (PageAddItem(page, (Item) tuple, tuple->size,
- itemno, false, false) != itemno)
+ if (PageAddItem(page, tuple, tuple->size, itemno, false, false) != itemno)
elog(ERROR, "failed to add item of size %u to SPGiST index page",
tuple->size);
/* Tuple is not part of a chain */
SGLT_SET_NEXTOFFSET(leafTuple, InvalidOffsetNumber);
current->offnum = SpGistPageAddNewItem(state, current->page,
- (Item) leafTuple, leafTuple->size,
+ leafTuple, leafTuple->size,
NULL, false);
xlrec.offnumLeaf = current->offnum;
{
SGLT_SET_NEXTOFFSET(leafTuple, SGLT_GET_NEXTOFFSET(head));
offnum = SpGistPageAddNewItem(state, current->page,
- (Item) leafTuple, leafTuple->size,
+ leafTuple, leafTuple->size,
NULL, false);
/*
SGLT_SET_NEXTOFFSET(leafTuple, InvalidOffsetNumber);
PageIndexTupleDelete(current->page, current->offnum);
if (PageAddItem(current->page,
- (Item) leafTuple, leafTuple->size,
+ leafTuple, leafTuple->size,
current->offnum, false, false) != current->offnum)
elog(ERROR, "failed to add item of size %u to SPGiST index page",
leafTuple->size);
*/
SGLT_SET_NEXTOFFSET(it, r);
- r = SpGistPageAddNewItem(state, npage, (Item) it, it->size,
- &startOffset, false);
+ r = SpGistPageAddNewItem(state, npage, it, it->size, &startOffset, false);
toInsert[nInsert] = r;
nInsert++;
/* add the new tuple as well */
SGLT_SET_NEXTOFFSET(newLeafTuple, r);
- r = SpGistPageAddNewItem(state, npage,
- (Item) newLeafTuple, newLeafTuple->size,
- &startOffset, false);
+ r = SpGistPageAddNewItem(state, npage, newLeafTuple, newLeafTuple->size, &startOffset, false);
toInsert[nInsert] = r;
nInsert++;
memcpy(leafptr, newLeafTuple, newLeafTuple->size);
/* Insert it on page */
newoffset = SpGistPageAddNewItem(state, BufferGetPage(leafBuffer),
- (Item) it, it->size,
+ it, it->size,
&startOffsets[leafPageSelect[i]],
false);
toInsert[i] = newoffset;
current->page = parent->page;
xlrec.offnumInner = current->offnum =
SpGistPageAddNewItem(state, current->page,
- (Item) innerTuple, innerTuple->size,
+ innerTuple, innerTuple->size,
NULL, false);
/*
current->page = BufferGetPage(current->buffer);
xlrec.offnumInner = current->offnum =
SpGistPageAddNewItem(state, current->page,
- (Item) innerTuple, innerTuple->size,
+ innerTuple, innerTuple->size,
NULL, false);
/* Done modifying new current buffer, mark it dirty */
xlrec.innerIsParent = false;
xlrec.offnumInner = current->offnum =
- PageAddItem(current->page, (Item) innerTuple, innerTuple->size,
+ PageAddItem(current->page, innerTuple, innerTuple->size,
InvalidOffsetNumber, false, false);
if (current->offnum != FirstOffsetNumber)
elog(ERROR, "failed to add item of size %u to SPGiST index page",
PageIndexTupleDelete(current->page, current->offnum);
if (PageAddItem(current->page,
- (Item) newInnerTuple, newInnerTuple->size,
+ newInnerTuple, newInnerTuple->size,
current->offnum, false, false) != current->offnum)
elog(ERROR, "failed to add item of size %u to SPGiST index page",
newInnerTuple->size);
/* insert new ... */
xlrec.offnumNew = current->offnum =
SpGistPageAddNewItem(state, current->page,
- (Item) newInnerTuple, newInnerTuple->size,
+ newInnerTuple, newInnerTuple->size,
NULL, false);
MarkBufferDirty(current->buffer);
current->blkno, current->offnum);
PageIndexTupleDelete(saveCurrent.page, saveCurrent.offnum);
- if (PageAddItem(saveCurrent.page, (Item) dt, dt->size,
+ if (PageAddItem(saveCurrent.page, dt, dt->size,
saveCurrent.offnum,
false, false) != saveCurrent.offnum)
elog(ERROR, "failed to add item of size %u to SPGiST index page",
*/
PageIndexTupleDelete(current->page, current->offnum);
xlrec.offnumPrefix = PageAddItem(current->page,
- (Item) prefixTuple, prefixTuple->size,
+ prefixTuple, prefixTuple->size,
current->offnum, false, false);
if (xlrec.offnumPrefix != current->offnum)
elog(ERROR, "failed to add item of size %u to SPGiST index page",
postfixBlkno = current->blkno;
xlrec.offnumPostfix = postfixOffset =
SpGistPageAddNewItem(state, current->page,
- (Item) postfixTuple, postfixTuple->size,
+ postfixTuple, postfixTuple->size,
NULL, false);
xlrec.postfixBlkSame = true;
}
postfixBlkno = BufferGetBlockNumber(newBuffer);
xlrec.offnumPostfix = postfixOffset =
SpGistPageAddNewItem(state, BufferGetPage(newBuffer),
- (Item) postfixTuple, postfixTuple->size,
+ postfixTuple, postfixTuple->size,
NULL, false);
MarkBufferDirty(newBuffer);
xlrec.postfixBlkSame = false;
* rather than returning InvalidOffsetNumber.
*/
OffsetNumber
-SpGistPageAddNewItem(SpGistState *state, Page page, Item item, Size size,
+SpGistPageAddNewItem(SpGistState *state, Page page, const void *item, Size size,
OffsetNumber *startOffset, bool errorOK)
{
SpGistPageOpaque opaque = SpGistPageGetOpaque(page);
* existing tuple, it had better be a placeholder tuple.
*/
static void
-addOrReplaceTuple(Page page, Item tuple, int size, OffsetNumber offset)
+addOrReplaceTuple(Page page, const void *tuple, int size, OffsetNumber offset)
{
if (offset <= PageGetMaxOffsetNumber(page))
{
if (xldata->offnumLeaf != xldata->offnumHeadLeaf)
{
/* normal cases, tuple was added by SpGistPageAddNewItem */
- addOrReplaceTuple(page, (Item) leafTuple, leafTupleHdr.size,
- xldata->offnumLeaf);
+ addOrReplaceTuple(page, leafTuple, leafTupleHdr.size, xldata->offnumLeaf);
/* update head tuple's chain link if needed */
if (xldata->offnumHeadLeaf != InvalidOffsetNumber)
/* replacing a DEAD tuple */
PageIndexTupleDelete(page, xldata->offnumLeaf);
if (PageAddItem(page,
- (Item) leafTuple, leafTupleHdr.size,
+ leafTuple, leafTupleHdr.size,
xldata->offnumLeaf, false, false) != xldata->offnumLeaf)
elog(ERROR, "failed to add item of size %u to SPGiST index page",
leafTupleHdr.size);
memcpy(&leafTupleHdr, leafTuple,
sizeof(SpGistLeafTupleData));
- addOrReplaceTuple(page, (Item) leafTuple,
- leafTupleHdr.size, toInsert[i]);
+ addOrReplaceTuple(page, leafTuple, leafTupleHdr.size, toInsert[i]);
ptr += leafTupleHdr.size;
}
page = BufferGetPage(buffer);
PageIndexTupleDelete(page, xldata->offnum);
- if (PageAddItem(page, (Item) innerTuple, innerTupleHdr.size,
+ if (PageAddItem(page, innerTuple, innerTupleHdr.size,
xldata->offnum,
false, false) != xldata->offnum)
elog(ERROR, "failed to add item of size %u to SPGiST index page",
{
page = BufferGetPage(buffer);
- addOrReplaceTuple(page, (Item) innerTuple,
- innerTupleHdr.size, xldata->offnumNew);
+ addOrReplaceTuple(page, innerTuple, innerTupleHdr.size, xldata->offnumNew);
/*
* If parent is in this same page, update it now.
xldata->offnumNew);
PageIndexTupleDelete(page, xldata->offnum);
- if (PageAddItem(page, (Item) dt, dt->size,
+ if (PageAddItem(page, dt, dt->size,
xldata->offnum,
false, false) != xldata->offnum)
elog(ERROR, "failed to add item of size %u to SPGiST index page",
{
page = BufferGetPage(buffer);
- addOrReplaceTuple(page, (Item) postfixTuple,
- postfixTupleHdr.size, xldata->offnumPostfix);
+ addOrReplaceTuple(page, postfixTuple, postfixTupleHdr.size, xldata->offnumPostfix);
PageSetLSN(page, lsn);
MarkBufferDirty(buffer);
page = BufferGetPage(buffer);
PageIndexTupleDelete(page, xldata->offnumPrefix);
- if (PageAddItem(page, (Item) prefixTuple, prefixTupleHdr.size,
+ if (PageAddItem(page, prefixTuple, prefixTupleHdr.size,
xldata->offnumPrefix, false, false) != xldata->offnumPrefix)
elog(ERROR, "failed to add item of size %u to SPGiST index page",
prefixTupleHdr.size);
if (xldata->postfixBlkSame)
- addOrReplaceTuple(page, (Item) postfixTuple,
- postfixTupleHdr.size,
- xldata->offnumPostfix);
+ addOrReplaceTuple(page, postfixTuple, postfixTupleHdr.size, xldata->offnumPostfix);
PageSetLSN(page, lsn);
MarkBufferDirty(buffer);
if (page == NULL)
continue; /* no need to touch this page */
- addOrReplaceTuple(page, (Item) leafTuple, leafTupleHdr.size,
- toInsert[i]);
+ addOrReplaceTuple(page, leafTuple, leafTupleHdr.size, toInsert[i]);
}
/* Now update src and dest page LSNs if needed */
{
page = BufferGetPage(innerBuffer);
- addOrReplaceTuple(page, (Item) innerTuple, innerTupleHdr.size,
- xldata->offnumInner);
+ addOrReplaceTuple(page, innerTuple, innerTupleHdr.size, xldata->offnumInner);
/* if inner is also parent, update link while we're here */
if (xldata->innerIsParent)
MarkBufferDirty(buf);
- offnum = PageAddItem(page, (Item) tuple->t_data, tuple->t_len,
- InvalidOffsetNumber, false, false);
+ offnum = PageAddItem(page, tuple->t_data, tuple->t_len, InvalidOffsetNumber, false, false);
if (offnum != FirstOffsetNumber)
elog(ERROR, "failed to add sequence tuple to page");
item = (char *) xlrec + sizeof(xl_seq_rec);
itemsz = XLogRecGetDataLen(record) - sizeof(xl_seq_rec);
- if (PageAddItem(localpage, (Item) item, itemsz,
- FirstOffsetNumber, false, false) == InvalidOffsetNumber)
+ if (PageAddItem(localpage, item, itemsz, FirstOffsetNumber, false, false) == InvalidOffsetNumber)
elog(PANIC, "seq_redo: failed to add item to page");
PageSetLSN(localpage, lsn);
*/
OffsetNumber
PageAddItemExtended(Page page,
- Item item,
+ const void *item,
Size size,
OffsetNumber offsetNumber,
int flags)
*/
bool
PageIndexTupleOverwrite(Page page, OffsetNumber offnum,
- Item newtup, Size newsize)
+ const void *newtup, Size newsize)
{
PageHeader phdr = (PageHeader) page;
ItemId tupid;
extern Datum *spgExtractNodeLabels(SpGistState *state,
SpGistInnerTuple innerTuple);
extern OffsetNumber SpGistPageAddNewItem(SpGistState *state, Page page,
- Item item, Size size,
+ const void *item, Size size,
OffsetNumber *startOffset,
bool errorOK);
extern bool spgproperty(Oid index_oid, int attno,
#include "access/xlogdefs.h"
#include "storage/block.h"
-#include "storage/item.h"
#include "storage/off.h"
/* GUC variable */
* This does not change the status of any of the resources passed.
* The semantics may change in the future.
*/
-static inline Item
+static inline void *
PageGetItem(const PageData *page, const ItemIdData *itemId)
{
Assert(page);
Assert(ItemIdHasStorage(itemId));
- return (Item) (((const char *) page) + ItemIdGetOffset(itemId));
+ return (void *) (((const char *) page) + ItemIdGetOffset(itemId));
}
/*
extern void PageInit(Page page, Size pageSize, Size specialSize);
extern bool PageIsVerified(PageData *page, BlockNumber blkno, int flags,
bool *checksum_failure_p);
-extern OffsetNumber PageAddItemExtended(Page page, Item item, Size size,
+extern OffsetNumber PageAddItemExtended(Page page, const void *item, Size size,
OffsetNumber offsetNumber, int flags);
extern Page PageGetTempPage(const PageData *page);
extern Page PageGetTempPageCopy(const PageData *page);
extern void PageIndexMultiDelete(Page page, OffsetNumber *itemnos, int nitems);
extern void PageIndexTupleDeleteNoCompact(Page page, OffsetNumber offnum);
extern bool PageIndexTupleOverwrite(Page page, OffsetNumber offnum,
- Item newtup, Size newsize);
+ const void *newtup, Size newsize);
extern char *PageSetChecksumCopy(Page page, BlockNumber blkno);
extern void PageSetChecksumInplace(Page page, BlockNumber blkno);
+++ /dev/null
-/*-------------------------------------------------------------------------
- *
- * item.h
- * POSTGRES disk item definitions.
- *
- *
- * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- * src/include/storage/item.h
- *
- *-------------------------------------------------------------------------
- */
-#ifndef ITEM_H
-#define ITEM_H
-
-typedef Pointer Item;
-
-#endif /* ITEM_H */
IsForeignScanParallelSafe_function
IsoConnInfo
IspellDict
-Item
ItemArray
ItemId
ItemIdData