summaryrefslogtreecommitdiff
path: root/src/include/executor
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/executor')
-rw-r--r--src/include/executor/spi.h3
-rw-r--r--src/include/executor/spi_priv.h4
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 */