Allow PL/Python functions to return void, per gripe from James Robinson

(I didn't use his patch, however). A void-returning PL/Python function
must return None (from Python), which is translated into a void datum
(and *not* NULL) for Postgres. I also added some regression tests for
this functionality.
This commit is contained in:
Neil Conway
2006-02-28 20:03:52 +00:00
parent c6b6f7ad64
commit 87daae1143
5 changed files with 72 additions and 7 deletions

View File

@ -182,3 +182,19 @@ SELECT newline_crlf();
123
(1 row)
-- Tests for functions returning void
SELECT test_void_func1(), test_void_func1() IS NULL AS "is null";
test_void_func1 | is null
-----------------+---------
| f
(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
------------------+---------
| t
(1 row)