Skip to content

Commit a3d9903

Browse files
author
Nikita Glukhov
committed
Add heap_form_tuple_compress()
1 parent 9243837 commit a3d9903

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

src/backend/access/common/heaptuple.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -717,9 +717,10 @@ tuple_decompress_attr(TupleDesc tupdesc, int attnum, Datum value)
717717
* The result is allocated in the current memory context.
718718
*/
719719
HeapTuple
720-
heap_form_tuple(TupleDesc tupleDescriptor,
721-
Datum *values,
722-
bool *isnull)
720+
heap_form_tuple_compress(TupleDesc tupleDescriptor,
721+
Datum *values,
722+
bool *isnull,
723+
bool *compress)
723724
{
724725
HeapTuple tuple; /* return tuple */
725726
HeapTupleHeader td; /* tuple data */
@@ -749,7 +750,8 @@ heap_form_tuple(TupleDesc tupleDescriptor,
749750
if (!tupleDescriptor->tdcompression)
750751
break;
751752
}
752-
else if ((OidIsValid(tupleDescriptor->attrs[i]->attcompression) ||
753+
else if (compress ? compress[i] :
754+
(OidIsValid(tupleDescriptor->attrs[i]->attcompression) ||
753755
(tupleDescriptor->attrs[i]->attlen == -1 &&
754756
OidIsValid(tupleDescriptor->attrs[i]->attrelid) &&
755757
tupleDescriptor->tdcompression &&

src/include/access/htup_details.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -798,8 +798,10 @@ extern Datum heap_getsysattr(HeapTuple tup, int attnum, TupleDesc tupleDesc,
798798
extern HeapTuple heap_copytuple(HeapTuple tuple);
799799
extern void heap_copytuple_with_tuple(HeapTuple src, HeapTuple dest);
800800
extern Datum heap_copy_tuple_as_datum(HeapTuple tuple, TupleDesc tupleDesc);
801-
extern HeapTuple heap_form_tuple(TupleDesc tupleDescriptor,
802-
Datum *values, bool *isnull);
801+
extern HeapTuple heap_form_tuple_compress(TupleDesc tupleDescriptor,
802+
Datum *values, bool *isnull, bool *compress);
803+
#define heap_form_tuple(tupdesc, values, isnull) \
804+
heap_form_tuple_compress(tupdesc, values, isnull, NULL)
803805
extern HeapTuple heap_modify_tuple(HeapTuple tuple,
804806
TupleDesc tupleDesc,
805807
Datum *replValues,

0 commit comments

Comments
 (0)