| CREATE EXTENSION ltree_plpython2u CASCADE; |
| NOTICE: installing required extension "plpython2u" |
| CREATE FUNCTION test1(val ltree) RETURNS int |
| LANGUAGE plpythonu |
| TRANSFORM FOR TYPE ltree |
| AS $$ |
| plpy.info(repr(val)) |
| return len(val) |
| $$; |
| SELECT test1('aa.bb.cc'::ltree); |
| INFO: ['aa', 'bb', 'cc'] |
| test1 |
| ------- |
| 3 |
| (1 row) |
| |
| CREATE FUNCTION test1n(val ltree) RETURNS int |
| LANGUAGE plpython2u |
| TRANSFORM FOR TYPE ltree |
| AS $$ |
| plpy.info(repr(val)) |
| return len(val) |
| $$; |
| SELECT test1n('aa.bb.cc'::ltree); |
| INFO: ['aa', 'bb', 'cc'] |
| test1n |
| -------- |
| 3 |
| (1 row) |
| |
| CREATE FUNCTION test2() RETURNS ltree |
| LANGUAGE plpythonu |
| TRANSFORM FOR TYPE ltree |
| AS $$ |
| return ['foo', 'bar', 'baz'] |
| $$; |
| -- plpython to ltree is not yet implemented, so this will fail, |
| -- because it will try to parse the Python list as an ltree input |
| -- string. |
| SELECT test2(); |
| ERROR: ltree syntax error at character 1 |
| CONTEXT: while creating return value |
| PL/Python function "test2" |