diff options
Diffstat (limited to 'src/include/executor')
-rw-r--r-- | src/include/executor/spi.h | 3 | ||||
-rw-r--r-- | src/include/executor/spi_priv.h | 4 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/include/executor/spi.h b/src/include/executor/spi.h index d4f1272cd81..81310e377f6 100644 --- a/src/include/executor/spi.h +++ b/src/include/executor/spi.h @@ -13,6 +13,7 @@ #ifndef SPI_H #define SPI_H +#include "lib/ilist.h" #include "nodes/parsenodes.h" #include "utils/portal.h" @@ -24,6 +25,8 @@ typedef struct SPITupleTable uint32 free; /* # of free vals */ TupleDesc tupdesc; /* tuple descriptor */ HeapTuple *vals; /* tuples */ + slist_node next; /* link for internal bookkeeping */ + SubTransactionId subid; /* subxact in which tuptable was created */ } SPITupleTable; /* Plans are opaque structs for standard users of SPI */ diff --git a/src/include/executor/spi_priv.h b/src/include/executor/spi_priv.h index ef7903abd09..7d4c9e96393 100644 --- a/src/include/executor/spi_priv.h +++ b/src/include/executor/spi_priv.h @@ -23,8 +23,10 @@ typedef struct /* current results */ uint32 processed; /* by Executor */ Oid lastoid; - SPITupleTable *tuptable; + SPITupleTable *tuptable; /* tuptable currently being built */ + /* resources of this execution context */ + slist_head tuptables; /* list of all live SPITupleTables */ MemoryContext procCxt; /* procedure context */ MemoryContext execCxt; /* executor context */ MemoryContext savedcxt; /* context of SPI_connect's caller */ |