OSDN Git Service

Report Python errors from iterators with PLy_elog
authorPeter Eisentraut <peter_e@gmx.net>
Mon, 7 Mar 2011 20:53:32 +0000 (22:53 +0200)
committerPeter Eisentraut <peter_e@gmx.net>
Mon, 7 Mar 2011 21:47:43 +0000 (23:47 +0200)
This improves reporting, as the error string now includes the actual
Python exception. As a side effect, this no longer sets the errcode to
ERRCODE_DATA_EXCEPTION, which might be considered a feature, as it's
not documented and not clear why iterator errors should be treated
differently.

Jan Urbański

src/pl/plpython/plpython.c

index 4a9e2a4..43d332d 100644 (file)
@@ -1157,9 +1157,7 @@ PLy_function_handler(FunctionCallInfo fcinfo, PLyProcedure *proc)
                                PLy_function_delete_args(proc);
 
                                if (has_error)
-                                       ereport(ERROR,
-                                                       (errcode(ERRCODE_DATA_EXCEPTION),
-                                                 errmsg("error fetching next item from iterator")));
+                                       PLy_elog(ERROR, "error fetching next item from iterator");
 
                                /* Disconnect from the SPI manager before returning */
                                if (SPI_finish() != SPI_OK_FINISH)