mirror of
https://github.com/postgres/postgres.git
synced 2026-02-11 14:53:31 -05:00
Behaves more or less unchanged compared to Python 2, but the new language variant is called plpython3u. Documentation describing the naming scheme is included.
64 lines
1.8 KiB
Text
64 lines
1.8 KiB
Text
-- first some tests of basic functionality
|
|
CREATE LANGUAGE plpython2u;
|
|
-- really stupid function just to get the module loaded
|
|
CREATE FUNCTION stupid() RETURNS text AS 'return "zarkon"' LANGUAGE plpythonu;
|
|
select stupid();
|
|
stupid
|
|
--------
|
|
zarkon
|
|
(1 row)
|
|
|
|
-- check 2/3 versioning
|
|
CREATE FUNCTION stupidn() RETURNS text AS 'return "zarkon"' LANGUAGE plpython2u;
|
|
select stupidn();
|
|
stupidn
|
|
---------
|
|
zarkon
|
|
(1 row)
|
|
|
|
-- test multiple arguments
|
|
CREATE FUNCTION argument_test_one(u users, a1 text, a2 text) RETURNS text
|
|
AS
|
|
'keys = list(u.keys())
|
|
keys.sort()
|
|
out = []
|
|
for key in keys:
|
|
out.append("%s: %s" % (key, u[key]))
|
|
words = a1 + " " + a2 + " => {" + ", ".join(out) + "}"
|
|
return words'
|
|
LANGUAGE plpythonu;
|
|
select argument_test_one(users, fname, lname) from users where lname = 'doe' order by 1;
|
|
argument_test_one
|
|
-----------------------------------------------------------------------
|
|
jane doe => {fname: jane, lname: doe, userid: 1, username: j_doe}
|
|
john doe => {fname: john, lname: doe, userid: 2, username: johnd}
|
|
willem doe => {fname: willem, lname: doe, userid: 3, username: w_doe}
|
|
(3 rows)
|
|
|
|
CREATE FUNCTION elog_test() RETURNS void
|
|
AS $$
|
|
plpy.debug('debug')
|
|
plpy.log('log')
|
|
plpy.info('info')
|
|
plpy.info(37)
|
|
plpy.info()
|
|
plpy.info('info', 37, [1, 2, 3])
|
|
plpy.notice('notice')
|
|
plpy.warning('warning')
|
|
plpy.error('error')
|
|
$$ LANGUAGE plpythonu;
|
|
SELECT elog_test();
|
|
INFO: info
|
|
CONTEXT: PL/Python function "elog_test"
|
|
INFO: 37
|
|
CONTEXT: PL/Python function "elog_test"
|
|
INFO: ()
|
|
CONTEXT: PL/Python function "elog_test"
|
|
INFO: ('info', 37, [1, 2, 3])
|
|
CONTEXT: PL/Python function "elog_test"
|
|
NOTICE: notice
|
|
CONTEXT: PL/Python function "elog_test"
|
|
WARNING: warning
|
|
CONTEXT: PL/Python function "elog_test"
|
|
ERROR: error
|
|
CONTEXT: PL/Python function "elog_test"
|