diff options
Diffstat (limited to 'src/pl/plpython/expected/plpython_params.out')
-rw-r--r-- | src/pl/plpython/expected/plpython_params.out | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/pl/plpython/expected/plpython_params.out b/src/pl/plpython/expected/plpython_params.out new file mode 100644 index 0000000..46ea7df --- /dev/null +++ b/src/pl/plpython/expected/plpython_params.out @@ -0,0 +1,64 @@ +-- +-- 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] +return True +$$ LANGUAGE plpythonu; +CREATE FUNCTION test_param_names2(u users) RETURNS text AS $$ +assert u == args[0] +if isinstance(u, dict): + # stringify dict the hard way because otherwise the order is implementation-dependent + u_keys = list(u.keys()) + u_keys.sort() + s = '{' + ', '.join([repr(k) + ': ' + repr(u[k]) for k in u_keys]) + '}' +else: + s = str(u) +return s +$$ LANGUAGE plpythonu; +-- use deliberately wrong parameter names +CREATE FUNCTION test_param_names3(a0 integer) RETURNS boolean AS $$ +try: + assert a1 == args[0] + return False +except NameError as e: + assert e.args[0].find("a1") > -1 + return True +$$ LANGUAGE plpythonu; +SELECT test_param_names0(2,7); + test_param_names0 +------------------- + 9 +(1 row) + +SELECT test_param_names1(1,'text'); + test_param_names1 +------------------- + t +(1 row) + +SELECT test_param_names2(users) from users; + test_param_names2 +----------------------------------------------------------------------- + {'fname': 'jane', 'lname': 'doe', 'userid': 1, 'username': 'j_doe'} + {'fname': 'john', 'lname': 'doe', 'userid': 2, 'username': 'johnd'} + {'fname': 'willem', 'lname': 'doe', 'userid': 3, 'username': 'w_doe'} + {'fname': 'rick', 'lname': 'smith', 'userid': 4, 'username': 'slash'} +(4 rows) + +SELECT test_param_names2(NULL); + test_param_names2 +------------------- + None +(1 row) + +SELECT test_param_names3(1); + test_param_names3 +------------------- + t +(1 row) + |