diff --git a/contrib/pageinspect/hashfuncs.c b/contrib/pageinspect/hashfuncs.c
index fd0ef08..8538fa3 100644
--- a/contrib/pageinspect/hashfuncs.c
+++ b/contrib/pageinspect/hashfuncs.c
@@ -356,11 +356,11 @@ hash_page_items(PG_FUNCTION_ARGS)
 		MemSet(nulls, 0, sizeof(nulls));
 
 		j = 0;
-		values[j++] = UInt16GetDatum(uargs->offset);
+		values[j++] = Int32GetDatum((int32) uargs->offset);
 		values[j++] = PointerGetDatum(&itup->t_tid);
 
 		hashkey = _hash_get_indextuple_hashkey(itup);
-		values[j] = UInt32GetDatum(hashkey);
+		values[j] = Int64GetDatum((int64) hashkey);
 
 		tuple = heap_form_tuple(fctx->attinmeta->tupdesc, values, nulls);
 		result = HeapTupleGetDatum(tuple);
@@ -475,7 +475,7 @@ hash_bitmap_info(PG_FUNCTION_ARGS)
 	MemSet(nulls, 0, sizeof(nulls));
 
 	j = 0;
-	values[j++] = UInt32GetDatum(bitmapblkno);
+	values[j++] = Int64GetDatum((int64) bitmapblkno);
 	values[j++] = Int32GetDatum(bitmapbit);
 	values[j++] = BoolGetDatum(bit);
 
@@ -524,30 +524,30 @@ hash_metapage_info(PG_FUNCTION_ARGS)
 	MemSet(nulls, 0, sizeof(nulls));
 
 	j = 0;
-	values[j++] = UInt32GetDatum(metad->hashm_magic);
-	values[j++] = UInt32GetDatum(metad->hashm_version);
+	values[j++] = Int64GetDatum((int64) metad->hashm_magic);
+	values[j++] = Int64GetDatum((int64) metad->hashm_version);
 	values[j++] = Float8GetDatum(metad->hashm_ntuples);
-	values[j++] = UInt16GetDatum(metad->hashm_ffactor);
-	values[j++] = UInt16GetDatum(metad->hashm_bsize);
-	values[j++] = UInt16GetDatum(metad->hashm_bmsize);
-	values[j++] = UInt16GetDatum(metad->hashm_bmshift);
-	values[j++] = UInt32GetDatum(metad->hashm_maxbucket);
-	values[j++] = UInt32GetDatum(metad->hashm_highmask);
-	values[j++] = UInt32GetDatum(metad->hashm_lowmask);
-	values[j++] = UInt32GetDatum(metad->hashm_ovflpoint);
-	values[j++] = UInt32GetDatum(metad->hashm_firstfree);
-	values[j++] = UInt32GetDatum(metad->hashm_nmaps);
-	values[j++] = UInt16GetDatum(metad->hashm_procid);
+	values[j++] = Int32GetDatum((int32) metad->hashm_ffactor);
+	values[j++] = Int32GetDatum((int32) metad->hashm_bsize);
+	values[j++] = Int32GetDatum((int32) metad->hashm_bmsize);
+	values[j++] = Int32GetDatum((int32) metad->hashm_bmshift);
+	values[j++] = Int64GetDatum((int64) metad->hashm_maxbucket);
+	values[j++] = Int64GetDatum((int64) metad->hashm_highmask);
+	values[j++] = Int64GetDatum((int64) metad->hashm_lowmask);
+	values[j++] = Int64GetDatum((int64) metad->hashm_ovflpoint);
+	values[j++] = Int64GetDatum((int64) metad->hashm_firstfree);
+	values[j++] = Int64GetDatum((int64) metad->hashm_nmaps);
+	values[j++] = ObjectIdGetDatum((Oid) metad->hashm_procid);
 
 	for (i = 0; i < HASH_MAX_SPLITPOINTS; i++)
-		spares[i] = UInt32GetDatum(metad->hashm_spares[i]);
+		spares[i] = Int64GetDatum((int8) metad->hashm_spares[i]);
 	values[j++] = PointerGetDatum(construct_array(spares,
 												  HASH_MAX_SPLITPOINTS,
 												  INT8OID,
 												  8, true, 'd'));
 
 	for (i = 0; i < HASH_MAX_BITMAPS; i++)
-		mapp[i] = UInt32GetDatum(metad->hashm_mapp[i]);
+		mapp[i] = Int64GetDatum((int64) metad->hashm_mapp[i]);
 	values[j++] = PointerGetDatum(construct_array(mapp,
 												  HASH_MAX_BITMAPS,
 												  INT8OID,
diff --git a/contrib/pageinspect/pageinspect--1.5--1.6.sql b/contrib/pageinspect/pageinspect--1.5--1.6.sql
index a22438d..8199682 100644
--- a/contrib/pageinspect/pageinspect--1.5--1.6.sql
+++ b/contrib/pageinspect/pageinspect--1.5--1.6.sql
@@ -35,7 +35,7 @@ LANGUAGE C STRICT PARALLEL SAFE;
 -- hash_page_items()
 --
 CREATE FUNCTION hash_page_items(IN page bytea,
-	OUT itemoffset smallint,
+	OUT itemoffset int4,
 	OUT ctid tid,
 	OUT data int8)
 RETURNS SETOF record
