---
name: "SPI_copytuple"
section: "3"
platform: "linux"
package: "postgresql"
version: "18.6-4"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/SPI_copytuple"
---

# SPI\_copytuple(3)

make a copy of a row in the upper executor context

## NAME

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)
