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 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); |