PolarDB-for-PostgreSQL
43 строки · 933.0 Байт
1CREATE EXTENSION ltree_plpython2u CASCADE;
2NOTICE: installing required extension "plpython2u"
3CREATE FUNCTION test1(val ltree) RETURNS int
4LANGUAGE plpythonu
5TRANSFORM FOR TYPE ltree
6AS $$
7plpy.info(repr(val))
8return len(val)
9$$;
10SELECT test1('aa.bb.cc'::ltree);
11INFO: ['aa', 'bb', 'cc']
12test1
13-------
143
15(1 row)
16
17CREATE FUNCTION test1n(val ltree) RETURNS int
18LANGUAGE plpython2u
19TRANSFORM FOR TYPE ltree
20AS $$
21plpy.info(repr(val))
22return len(val)
23$$;
24SELECT test1n('aa.bb.cc'::ltree);
25INFO: ['aa', 'bb', 'cc']
26test1n
27--------
283
29(1 row)
30
31CREATE FUNCTION test2() RETURNS ltree
32LANGUAGE plpythonu
33TRANSFORM FOR TYPE ltree
34AS $$
35return ['foo', 'bar', 'baz']
36$$;
37-- plpython to ltree is not yet implemented, so this will fail,
38-- because it will try to parse the Python list as an ltree input
39-- string.
40SELECT test2();
41ERROR: syntax error at position 0
42CONTEXT: while creating return value
43PL/Python function "test2"
44