diff options
Diffstat (limited to 'src/pl/plpython/plpy_spi.h')
-rw-r--r-- | src/pl/plpython/plpy_spi.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/pl/plpython/plpy_spi.h b/src/pl/plpython/plpy_spi.h new file mode 100644 index 0000000..a5e2e60 --- /dev/null +++ b/src/pl/plpython/plpy_spi.h @@ -0,0 +1,26 @@ +/* + * src/pl/plpython/plpy_spi.h + */ + +#ifndef PLPY_SPI_H +#define PLPY_SPI_H + +#include "plpython.h" +#include "utils/resowner.h" + +extern PyObject *PLy_spi_prepare(PyObject *self, PyObject *args); +extern PyObject *PLy_spi_execute(PyObject *self, PyObject *args); +extern PyObject *PLy_spi_execute_plan(PyObject *ob, PyObject *list, long limit); + +typedef struct PLyExceptionEntry +{ + int sqlstate; /* hash key, must be first */ + PyObject *exc; /* corresponding exception */ +} PLyExceptionEntry; + +/* handling of SPI operations inside subtransactions */ +extern void PLy_spi_subtransaction_begin(MemoryContext oldcontext, ResourceOwner oldowner); +extern void PLy_spi_subtransaction_commit(MemoryContext oldcontext, ResourceOwner oldowner); +extern void PLy_spi_subtransaction_abort(MemoryContext oldcontext, ResourceOwner oldowner); + +#endif /* PLPY_SPI_H */ |