On Tue, 2006-02-28 at 15:26 -0500, Tom Lane wrote:
> Yeah, "unexpected" doesn't seem the mot juste here. [...]

All good points -- thanks for the suggestions. I've applied the attached
patch to HEAD.

-Neil

============================================================
*** src/pl/plpython/expected/plpython_test.out	0f691c1fda20c66e8795d2f953fb79fc92fdd02c
--- src/pl/plpython/expected/plpython_test.out	40eb5c736cf022165076b07299e5fad0fd8f841b
***************
*** 190,197 ****
  (1 row)
  
  SELECT test_void_func2(); -- should fail
! ERROR:  unexpected return value from plpython procedure
! DETAIL:  void-returning functions must return "None"
  SELECT test_return_none(), test_return_none() IS NULL AS "is null";
   test_return_none | is null 
  ------------------+---------
--- 190,197 ----
  (1 row)
  
  SELECT test_void_func2(); -- should fail
! ERROR:  invalid return value from plpython function
! DETAIL:  Functions returning type "void" must return "None".
  SELECT test_return_none(), test_return_none() IS NULL AS "is null";
   test_return_none | is null 
  ------------------+---------
============================================================
*** src/pl/plpython/plpython.c	bb0fdc6a4bfc35b18b98e3c92f421c41c2898052
--- src/pl/plpython/plpython.c	4cce33c125fbf2a9102cc34e94d0cc1d3d47ea01
***************
*** 769,776 ****
  			if (plrv != Py_None)
  				ereport(ERROR,
  						(errcode(ERRCODE_DATATYPE_MISMATCH),
! 						 errmsg("unexpected return value from plpython procedure"),
! 						 errdetail("void-returning functions must return \"None\"")));
  
  			fcinfo->isnull = false;
  			rv = (Datum) 0;
--- 769,776 ----
  			if (plrv != Py_None)
  				ereport(ERROR,
  						(errcode(ERRCODE_DATATYPE_MISMATCH),
! 						 errmsg("invalid return value from plpython function"),
! 						 errdetail("Functions returning type \"void\" must return \"None\".")));
  
  			fcinfo->isnull = false;
  			rv = (Datum) 0;
---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to