summaryrefslogtreecommitdiff
path: root/contrib/pageinspect/hashfuncs.c
diff options
context:
space:
mode:
authorRobert Haas2017-02-03 21:28:13 +0000
committerRobert Haas2017-02-03 21:28:13 +0000
commit871ec0e33673ad9719760131b71a02ecbda82e12 (patch)
treed003555ea0a4a0df81998a7fe26ffbf672ad8d79 /contrib/pageinspect/hashfuncs.c
parente759854a09d49725a9519c48a0d71a32bab05a01 (diff)
pageinspect: More type-sanity surgery on the new hash index code.
Uniformly expose unsigned quantities using the next-wider signed integer type (since we have no unsigned types at the SQL level). At the SQL level, this results a change to report itemoffset as int4 rather than int2. Also at the SQL level, report one value that is an OID as type oid. Under the hood, uniformly use macros that match the SQL output type as to both width and signedness.
Diffstat (limited to 'contrib/pageinspect/hashfuncs.c')
-rw-r--r--contrib/pageinspect/hashfuncs.c36
1 files changed, 18 insertions, 18 deletions
diff --git a/contrib/pageinspect/hashfuncs.c b/contrib/pageinspect/hashfuncs.c
index 49cb12e5189..08663c109d1 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,