diff options
Diffstat (limited to 'src/backend/executor/spi.c')
-rw-r--r-- | src/backend/executor/spi.c | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/src/backend/executor/spi.c b/src/backend/executor/spi.c index 36dcfcfe0c5..e0325c4a7de 100644 --- a/src/backend/executor/spi.c +++ b/src/backend/executor/spi.c @@ -742,12 +742,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); |