diff --git a/contrib/pageinspect/hashfuncs.c b/contrib/pageinspect/hashfuncs.c
index 49cb12e5189c154c56c50aed7b91c764793b0a5b..08663c109d1fb6838090fbb7d1b6d461d6bdba4d 100644
--- a/contrib/pageinspect/hashfuncs.c
+++ b/contrib/pageinspect/hashfuncs.c
@@ -346,11 +346,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] = UInt64GetDatum((uint64) hashkey);
+		values[j] = Int64GetDatum((int64) hashkey);
 
 		tuple = heap_form_tuple(fctx->attinmeta->tupdesc, values, nulls);
 		result = HeapTupleGetDatum(tuple);
@@ -466,7 +466,7 @@ hash_bitmap_info(PG_FUNCTION_ARGS)
 	MemSet(nulls, 0, sizeof(nulls));
 
 	j = 0;
-	values[j++] = UInt64GetDatum((uint64) bitmapblkno);
+	values[j++] = Int64GetDatum((int64) bitmapblkno);
 	values[j++] = Int32GetDatum(bitmapbit);
 	values[j++] = BoolGetDatum(bit);
 
@@ -515,30 +515,30 @@ hash_metapage_info(PG_FUNCTION_ARGS)
 	MemSet(nulls, 0, sizeof(nulls));
 
 	j = 0;
-	values[j++] = UInt64GetDatum(metad->hashm_magic);
-	values[j++] = UInt64GetDatum(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++] = UInt32GetDatum(metad->hashm_ffactor);
-	values[j++] = UInt32GetDatum(metad->hashm_bsize);
-	values[j++] = UInt32GetDatum(metad->hashm_bmsize);
-	values[j++] = UInt32GetDatum(metad->hashm_bmshift);
-	values[j++] = UInt64GetDatum(metad->hashm_maxbucket);
-	values[j++] = UInt64GetDatum(metad->hashm_highmask);
-	values[j++] = UInt64GetDatum(metad->hashm_lowmask);
-	values[j++] = UInt64GetDatum(metad->hashm_ovflpoint);
-	values[j++] = UInt64GetDatum(metad->hashm_firstfree);
-	values[j++] = UInt64GetDatum(metad->hashm_nmaps);
-	values[j++] = UInt32GetDatum(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] = UInt64GetDatum(metad->hashm_spares[i]);
+		spares[i] = Int64GetDatum((int8) metad->hashm_spares[i]);
 	values[j++] = PointerGetDatum(construct_array(spares,
 												  HASH_MAX_SPLITPOINTS,
 												  INT8OID,
 												  8, FLOAT8PASSBYVAL, 'd'));
 
 	for (i = 0; i < HASH_MAX_BITMAPS; i++)
-		mapp[i] = UInt64GetDatum(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 a22438d3c33613c67f010aa4ccb02c45b66c617c..ac3956882c94c64c7aae36b8c75d9167234b1ac3 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
@@ -70,7 +70,7 @@ CREATE FUNCTION hash_metapage_info(IN page bytea,
     OUT ovflpoint int8,
     OUT firstfree int8,
     OUT nmaps int8,
-    OUT procid int4,
+    OUT procid oid,
     OUT spares int8[],
     OUT mapp int8[])
 AS 'MODULE_PATHNAME', 'hash_metapage_info'