aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/common/heaptuple.c
diff options
context:
space:
mode:
authorAndres Freund <andres@anarazel.de>2018-10-15 15:24:33 -0700
committerAndres Freund <andres@anarazel.de>2018-10-15 18:23:25 -0700
commitc5257345ef61922468cd9abd887c3cb6c38792cb (patch)
treec510b809c925fba6eb0b778b53b2345ea9168e50 /src/backend/access/common/heaptuple.c
parent9d906f1119de893a4ca533c5e7b97207a3aa963b (diff)
downloadpostgresql-c5257345ef61922468cd9abd887c3cb6c38792cb.tar.gz
postgresql-c5257345ef61922468cd9abd887c3cb6c38792cb.zip
Move TupleTableSlots boolean member into one flag variable.
There's several reasons for this change: 1) It reduces the total size of TupleTableSlot / reduces alignment padding, making the commonly accessed members fit into a single cacheline (but we currently do not force proper alignment, so that's not yet guaranteed to be helpful) 2) Combining the booleans into a flag allows to combine read/writes from memory. 3) With the upcoming slot abstraction changes, it allows to have core and extended flags, in a memory efficient way. Author: Ashutosh Bapat and Andres Freund Discussion: https://postgr.es/m/20180220224318.gw4oe5jadhpmcdnm@alap3.anarazel.de
Diffstat (limited to 'src/backend/access/common/heaptuple.c')
-rw-r--r--src/backend/access/common/heaptuple.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/backend/access/common/heaptuple.c b/src/backend/access/common/heaptuple.c
index 6b4863b33a9..15444cf5824 100644
--- a/src/backend/access/common/heaptuple.c
+++ b/src/backend/access/common/heaptuple.c
@@ -1391,7 +1391,7 @@ slot_deform_tuple(TupleTableSlot *slot, int natts)
{
/* Restore state from previous execution */
off = slot->tts_off;
- slow = slot->tts_slow;
+ slow = TTS_SLOW(slot);
}
tp = (char *) tup + tup->t_hoff;
@@ -1452,7 +1452,10 @@ slot_deform_tuple(TupleTableSlot *slot, int natts)
*/
slot->tts_nvalid = attnum;
slot->tts_off = off;
- slot->tts_slow = slow;
+ if (slow)
+ slot->tts_flags |= TTS_FLAG_SLOW;
+ else
+ slot->tts_flags &= ~TTS_FLAG_SLOW;
}
/*