1 /*
2  * src/pl/plpython/plpy_subxactobject.h
3  */
4 
5 #ifndef PLPY_SUBXACTOBJECT
6 #define PLPY_SUBXACTOBJECT
7 
8 #include "nodes/pg_list.h"
9 #include "plpython.h"
10 #include "utils/resowner.h"
11 
12 /* a list of nested explicit subtransactions */
13 extern List *explicit_subtransactions;
14 
15 
16 typedef struct PLySubtransactionObject
17 {
18 	PyObject_HEAD
19 	bool		started;
20 	bool		exited;
21 } PLySubtransactionObject;
22 
23 /* explicit subtransaction data */
24 typedef struct PLySubtransactionData
25 {
26 	MemoryContext oldcontext;
27 	ResourceOwner oldowner;
28 } PLySubtransactionData;
29 
30 extern void PLy_subtransaction_init_type(void);
31 extern PyObject *PLy_subtransaction_new(PyObject *self, PyObject *unused);
32 
33 #endif							/* PLPY_SUBXACTOBJECT */
34