summaryrefslogtreecommitdiff
path: root/src/backend/access/hash/hashinsert.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/access/hash/hashinsert.c')
-rw-r--r--src/backend/access/hash/hashinsert.c23
1 files changed, 9 insertions, 14 deletions
diff --git a/src/backend/access/hash/hashinsert.c b/src/backend/access/hash/hashinsert.c
index 065cbe32c5..e929dc68ee 100644
--- a/src/backend/access/hash/hashinsert.c
+++ b/src/backend/access/hash/hashinsert.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/hash/hashinsert.c,v 1.40 2005/11/06 19:29:00 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/hash/hashinsert.c,v 1.41 2006/01/25 23:26:11 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -20,23 +20,21 @@
static OffsetNumber _hash_pgaddtup(Relation rel, Buffer buf,
- Size itemsize, HashItem hitem);
+ Size itemsize, IndexTuple itup);
/*
- * _hash_doinsert() -- Handle insertion of a single HashItem in the table.
+ * _hash_doinsert() -- Handle insertion of a single index tuple.
*
* This routine is called by the public interface routines, hashbuild
- * and hashinsert. By here, hashitem is completely filled in.
- * The datum to be used as a "key" is in the hashitem.
+ * and hashinsert. By here, itup is completely filled in.
*/
void
-_hash_doinsert(Relation rel, HashItem hitem)
+_hash_doinsert(Relation rel, IndexTuple itup)
{
Buffer buf;
Buffer metabuf;
HashMetaPage metap;
- IndexTuple itup;
BlockNumber blkno;
Page page;
HashPageOpaque pageopaque;
@@ -51,7 +49,6 @@ _hash_doinsert(Relation rel, HashItem hitem)
* Compute the hash key for the item. We do this first so as not to need
* to hold any locks while running the hash function.
*/
- itup = &(hitem->hash_itup);
if (rel->rd_rel->relnatts != 1)
elog(ERROR, "hash indexes support only one index key");
datum = index_getattr(itup, 1, RelationGetDescr(rel), &isnull);
@@ -59,9 +56,7 @@ _hash_doinsert(Relation rel, HashItem hitem)
hashkey = _hash_datum2hashkey(rel, datum);
/* compute item size too */
- itemsz = IndexTupleDSize(hitem->hash_itup)
- + (sizeof(HashItemData) - sizeof(IndexTupleData));
-
+ itemsz = IndexTupleDSize(*itup);
itemsz = MAXALIGN(itemsz); /* be safe, PageAddItem will do this but we
* need to be consistent */
@@ -157,7 +152,7 @@ _hash_doinsert(Relation rel, HashItem hitem)
}
/* found page with enough space, so add the item here */
- (void) _hash_pgaddtup(rel, buf, itemsz, hitem);
+ (void) _hash_pgaddtup(rel, buf, itemsz, itup);
/* write and release the modified page */
_hash_wrtbuf(rel, buf);
@@ -199,7 +194,7 @@ static OffsetNumber
_hash_pgaddtup(Relation rel,
Buffer buf,
Size itemsize,
- HashItem hitem)
+ IndexTuple itup)
{
OffsetNumber itup_off;
Page page;
@@ -208,7 +203,7 @@ _hash_pgaddtup(Relation rel,
page = BufferGetPage(buf);
itup_off = OffsetNumberNext(PageGetMaxOffsetNumber(page));
- if (PageAddItem(page, (Item) hitem, itemsize, itup_off, LP_USED)
+ if (PageAddItem(page, (Item) itup, itemsize, itup_off, LP_USED)
== InvalidOffsetNumber)
elog(ERROR, "failed to add index item to \"%s\"",
RelationGetRelationName(rel));