summaryrefslogtreecommitdiff
path: root/src/backend/executor/spi.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/executor/spi.c')
-rw-r--r--src/backend/executor/spi.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/src/backend/executor/spi.c b/src/backend/executor/spi.c
index 3cffc2ad72..0f8f742caa 100644
--- a/src/backend/executor/spi.c
+++ b/src/backend/executor/spi.c
@@ -639,12 +639,7 @@ SPI_returntuple(HeapTuple tuple, TupleDesc tupdesc)
oldcxt = MemoryContextSwitchTo(_SPI_current->savedcxt);
}
- dtup = (HeapTupleHeader) palloc(tuple->t_len);
- memcpy((char *) dtup, (char *) tuple->t_data, tuple->t_len);
-
- HeapTupleHeaderSetDatumLength(dtup, tuple->t_len);
- HeapTupleHeaderSetTypeId(dtup, tupdesc->tdtypeid);
- HeapTupleHeaderSetTypMod(dtup, tupdesc->tdtypmod);
+ dtup = DatumGetHeapTupleHeader(heap_copy_tuple_as_datum(tuple, tupdesc));
if (oldcxt)
MemoryContextSwitchTo(oldcxt);