diff options
| author | Andres Freund <andres@anarazel.de> | 2018-08-23 16:58:53 -0700 |
|---|---|---|
| committer | Andres Freund <andres@anarazel.de> | 2018-08-23 16:58:53 -0700 |
| commit | 88ebd62fcc2ea7c55c0858f6dd4800d51383529f (patch) | |
| tree | 652d1428bd6aeae154408c27e8725ff229162035 /src/include/executor | |
| parent | a40631a920accbcca1a49a909d380308d95b4674 (diff) | |
Deduplicate code between slot_getallattrs() and slot_getsomeattrs().
Code in slot_getallattrs() is the same as if slot_getsomeattrs() is
called with number of attributes specified in the tuple
descriptor. Implement it that way instead of duplicating the code
between those two functions.
This is part of a patchseries abstracting TupleTableSlots so they can
store arbitrary forms of tuples, but is a nice enough cleanup on its
own.
Author: Ashutosh Bapat
Reviewed-By: Andres Freund
Discussion: https://postgr.es/m/20180220224318.gw4oe5jadhpmcdnm@alap3.anarazel.de
Diffstat (limited to 'src/include/executor')
| -rw-r--r-- | src/include/executor/tuptable.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/include/executor/tuptable.h b/src/include/executor/tuptable.h index 0b874d97638..bb38aa655c0 100644 --- a/src/include/executor/tuptable.h +++ b/src/include/executor/tuptable.h @@ -174,11 +174,22 @@ extern TupleTableSlot *ExecCopySlot(TupleTableSlot *dstslot, /* in access/common/heaptuple.c */ extern Datum slot_getattr(TupleTableSlot *slot, int attnum, bool *isnull); -extern void slot_getallattrs(TupleTableSlot *slot); extern void slot_getsomeattrs(TupleTableSlot *slot, int attnum); extern bool slot_attisnull(TupleTableSlot *slot, int attnum); extern bool slot_getsysattr(TupleTableSlot *slot, int attnum, Datum *value, bool *isnull); extern void slot_getmissingattrs(TupleTableSlot *slot, int startAttNum, int lastAttNum); +/* + * slot_getallattrs + * This function forces all the entries of the slot's Datum/isnull + * arrays to be valid. The caller may then extract data directly + * from those arrays instead of using slot_getattr. + */ +static inline void +slot_getallattrs(TupleTableSlot *slot) +{ + slot_getsomeattrs(slot, slot->tts_tupleDescriptor->natts); +} + #endif /* TUPTABLE_H */ |
