From 4c0ec9ee28279cc6a610cde8470fc8b606267b68 Mon Sep 17 00:00:00 2001 From: Andres Freund Date: Tue, 20 Feb 2018 15:12:52 -0800 Subject: [PATCH] Use platform independent type for TupleTableSlot->tts_off. Previously tts_off was, for unknown reasons, of type long. For one that's unnecessary as tuples are restricted in length, for another long would be a bad choice of type even if that weren't the case, as it's not reliably wider than an int. Also HeapTupleHeader->t_len is a uint32. This is split off from a larger patch implementing JITed tuple deforming. Seems like an independent improvement, as tiny as it is. Author: Andres Freund --- src/backend/access/common/heaptuple.c | 4 ++-- src/include/executor/tuptable.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/access/common/heaptuple.c b/src/backend/access/common/heaptuple.c index 0a13251067f..a2f67f2332c 100644 --- a/src/backend/access/common/heaptuple.c +++ b/src/backend/access/common/heaptuple.c @@ -942,7 +942,7 @@ heap_deform_tuple(HeapTuple tuple, TupleDesc tupleDesc, int natts; /* number of atts to extract */ int attnum; char *tp; /* ptr to tuple data */ - long off; /* offset in tuple data */ + uint32 off; /* offset in tuple data */ bits8 *bp = tup->t_bits; /* ptr to null bitmap in tuple */ bool slow = false; /* can we use/set attcacheoff? */ @@ -1043,7 +1043,7 @@ slot_deform_tuple(TupleTableSlot *slot, int natts) bool hasnulls = HeapTupleHasNulls(tuple); int attnum; char *tp; /* ptr to tuple data */ - long off; /* offset in tuple data */ + uint32 off; /* offset in tuple data */ bits8 *bp = tup->t_bits; /* ptr to null bitmap in tuple */ bool slow; /* can we use/set attcacheoff? */ diff --git a/src/include/executor/tuptable.h b/src/include/executor/tuptable.h index 8be0d5edc29..0642a3ada5e 100644 --- a/src/include/executor/tuptable.h +++ b/src/include/executor/tuptable.h @@ -126,7 +126,7 @@ typedef struct TupleTableSlot bool *tts_isnull; /* current per-attribute isnull flags */ MinimalTuple tts_mintuple; /* minimal tuple, or NULL if none */ HeapTupleData tts_minhdr; /* workspace for minimal-tuple-only case */ - long tts_off; /* saved state for slot_deform_tuple */ + uint32 tts_off; /* saved state for slot_deform_tuple */ bool tts_fixedTupleDescriptor; /* descriptor can't be changed */ } TupleTableSlot;