diff options
Diffstat (limited to 'src/pl/plpython/plpy_plpymodule.c')
-rw-r--r-- | src/pl/plpython/plpy_plpymodule.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/src/pl/plpython/plpy_plpymodule.c b/src/pl/plpython/plpy_plpymodule.c index 3d7dd13f0cf..c55cd959c29 100644 --- a/src/pl/plpython/plpy_plpymodule.c +++ b/src/pl/plpython/plpy_plpymodule.c @@ -594,10 +594,7 @@ PLy_commit(PyObject *self, PyObject *args) { PLyExecutionContext *exec_ctx = PLy_current_execution_context(); - if (ThereArePinnedPortals()) - ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("cannot commit transaction while a cursor is open"))); + HoldPinnedPortals(); SPI_commit(); SPI_start_transaction(); @@ -613,10 +610,7 @@ PLy_rollback(PyObject *self, PyObject *args) { PLyExecutionContext *exec_ctx = PLy_current_execution_context(); - if (ThereArePinnedPortals()) - ereport(ERROR, - (errcode(ERRCODE_INVALID_TRANSACTION_TERMINATION), - errmsg("cannot abort transaction while a cursor is open"))); + HoldPinnedPortals(); SPI_rollback(); SPI_start_transaction(); |