diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2009-04-03 16:59:43 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2009-04-03 16:59:43 +0000 |
commit | cd331e4b845f9206aa89e4f31bb75a040fef87ba (patch) | |
tree | 136ad3b7a0ebfa337e8473372a97f61a3ebdd3ba /src/pl/plpython/sql | |
parent | aa38153d22df190397f851cfbd4506f31f44557e (diff) | |
download | postgresql-cd331e4b845f9206aa89e4f31bb75a040fef87ba.tar.gz postgresql-cd331e4b845f9206aa89e4f31bb75a040fef87ba.zip |
Defend against possible crash if a plpython function does not specify names
for its arguments. Also add a regression test, since someone apparently
changed every single plpython test case to use only named parameters; else
we'd have noticed this sooner.
Euler Taveira de Oliveira, per a report from Alvaro
Diffstat (limited to 'src/pl/plpython/sql')
-rw-r--r-- | src/pl/plpython/sql/plpython_function.sql | 6 | ||||
-rw-r--r-- | src/pl/plpython/sql/plpython_test.sql | 3 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/pl/plpython/sql/plpython_function.sql b/src/pl/plpython/sql/plpython_function.sql index cf01e8e0cdc..a1544f3c422 100644 --- a/src/pl/plpython/sql/plpython_function.sql +++ b/src/pl/plpython/sql/plpython_function.sql @@ -391,8 +391,12 @@ $$ LANGUAGE plpythonu; -- --- Test named parameters +-- Test named and nameless parameters -- +CREATE FUNCTION test_param_names0(integer, integer) RETURNS int AS $$ +return args[0] + args[1] +$$ LANGUAGE plpythonu; + CREATE FUNCTION test_param_names1(a0 integer, a1 text) RETURNS boolean AS $$ assert a0 == args[0] assert a1 == args[1] diff --git a/src/pl/plpython/sql/plpython_test.sql b/src/pl/plpython/sql/plpython_test.sql index f7321ab9e00..633d940e5d4 100644 --- a/src/pl/plpython/sql/plpython_test.sql +++ b/src/pl/plpython/sql/plpython_test.sql @@ -74,7 +74,8 @@ SELECT test_void_func1(), test_void_func1() IS NULL AS "is null"; SELECT test_void_func2(); -- should fail SELECT test_return_none(), test_return_none() IS NULL AS "is null"; --- Test for functions with named parameters +-- Test for functions with named and nameless parameters +SELECT test_param_names0(2,7); SELECT test_param_names1(1,'text'); SELECT test_param_names2(users) from users; SELECT test_param_names3(1); |