Fix behavior when raising plpy.Fatal()

It should cause a elog(FATAL) error, and it fact it was simply causing
a elog(ERROR).

Jan Urbański
This commit is contained in:
Peter Eisentraut 2011-03-07 23:01:54 +02:00
parent 8f76324352
commit 804d13adfd
1 changed files with 7 additions and 2 deletions

View File

@ -4381,8 +4381,13 @@ PLy_elog(int elevel, const char *fmt,...)
int position = 0;
PyErr_Fetch(&exc, &val, &tb);
if (exc != NULL && PyErr_GivenExceptionMatches(val, PLy_exc_spi_error))
PLy_get_spi_error_data(val, &detail, &hint, &query, &position);
if (exc != NULL)
{
if (PyErr_GivenExceptionMatches(val, PLy_exc_spi_error))
PLy_get_spi_error_data(val, &detail, &hint, &query, &position);
else if (PyErr_GivenExceptionMatches(val, PLy_exc_fatal))
elevel = FATAL;
}
PyErr_Restore(exc, val, tb);
xmsg = PLy_traceback(&xlevel);