mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-08-19 12:03:24 +02:00
46 lines
977 B
Plaintext
46 lines
977 B
Plaintext
|
CREATE EXTENSION plpython2u;
|
||
|
CREATE EXTENSION ltree_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']
|
||
|
CONTEXT: PL/Python function "test1"
|
||
|
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']
|
||
|
CONTEXT: PL/Python function "test1n"
|
||
|
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: syntax error at position 0
|
||
|
CONTEXT: while creating return value
|
||
|
PL/Python function "test2"
|