---
title: "SPI_copytuple"
id: spi-spi-copytuple
pg_version: "20devel"
---
# SPI_copytuple — make a copy of a row in the upper executor context
## Synopsis
```
HeapTuple SPI_copytuple(HeapTuple row)
```
## Description
`SPI_copytuple` makes a copy of a row in the upper executor context. This is normally used to return a modified row from a trigger. In a function declared to return a composite type, use `SPI_returntuple` instead.
This function can only be used while connected to SPI. Otherwise, it returns NULL and sets `SPI_result` to `SPI_ERROR_UNCONNECTED`.
## Arguments
**`HeapTuple row`**
row to be copied
## Return Value
the copied row, or `NULL` on error (see `SPI_result` for an error indication)