diff options
author | Peter Eisentraut | 2015-04-26 14:33:14 +0000 |
---|---|---|
committer | Peter Eisentraut | 2015-04-26 14:33:14 +0000 |
commit | cac76582053ef8ea07df65fed0757f352da23705 (patch) | |
tree | 6ae01041aa61db9d686638b9d4c3ccd30d7c6487 /contrib/ltree_plpython/sql | |
parent | f320cbb615e0374b18836337713239da58705cf3 (diff) |
Add transforms feature
This provides a mechanism for specifying conversions between SQL data
types and procedural languages. As examples, there are transforms
for hstore and ltree for PL/Perl and PL/Python.
reviews by Pavel Stěhule and Andres Freund
Diffstat (limited to 'contrib/ltree_plpython/sql')
-rw-r--r-- | contrib/ltree_plpython/sql/ltree_plpython.sql | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/contrib/ltree_plpython/sql/ltree_plpython.sql b/contrib/ltree_plpython/sql/ltree_plpython.sql new file mode 100644 index 00000000000..f08ff6a3f06 --- /dev/null +++ b/contrib/ltree_plpython/sql/ltree_plpython.sql @@ -0,0 +1,37 @@ +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); + + +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); + + +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(); |