aboutsummaryrefslogtreecommitdiff
path: root/src/pl/plpython/sql/plpython_function.sql
diff options
context:
space:
mode:
authorNeil Conway <neilc@samurai.com>2006-02-28 20:03:52 +0000
committerNeil Conway <neilc@samurai.com>2006-02-28 20:03:52 +0000
commit87daae1143520309da299b78a8e7a68f141a268f (patch)
tree3ad11f9a73ee33a908d877869f88b79c1afaed63 /src/pl/plpython/sql/plpython_function.sql
parentc6b6f7ad6417ea64c4f56507b85287db97ce508c (diff)
downloadpostgresql-87daae1143520309da299b78a8e7a68f141a268f.tar.gz
postgresql-87daae1143520309da299b78a8e7a68f141a268f.zip
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.
Diffstat (limited to 'src/pl/plpython/sql/plpython_function.sql')
-rw-r--r--src/pl/plpython/sql/plpython_function.sql15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/pl/plpython/sql/plpython_function.sql b/src/pl/plpython/sql/plpython_function.sql
index e3ec2afe014..7428a599eea 100644
--- a/src/pl/plpython/sql/plpython_function.sql
+++ b/src/pl/plpython/sql/plpython_function.sql
@@ -341,3 +341,18 @@ plan = plpy.prepare("SELECT $1 AS testvalue1, $2 AS testvalue2", ["text", "text"
rv = plpy.execute(plan, u"\\x80", 1)
return rv[0]["testvalue1"]
' LANGUAGE plpythonu;
+
+-- Tests for functions that return void
+
+CREATE FUNCTION test_void_func1() RETURNS void AS $$
+x = 10
+$$ LANGUAGE plpythonu;
+
+-- illegal: can't return non-None value in void-returning func
+CREATE FUNCTION test_void_func2() RETURNS void AS $$
+return 10
+$$ LANGUAGE plpythonu;
+
+CREATE FUNCTION test_return_none() RETURNS int AS $$
+None
+$$ LANGUAGE plpythonu;