mirror of
https://github.com/postgres/postgres.git
synced 2025-07-23 03:21:12 +03:00
config
contrib
adminpack
auth_delay
auto_explain
bloom
btree_gin
btree_gist
chkpass
citext
cube
dblink
dict_int
dict_xsyn
earthdistance
file_fdw
fuzzystrmatch
hstore
hstore_plperl
hstore_plpython
intagg
intarray
isn
lo
ltree
ltree_plpython
expected
ltree_plpython.out
sql
.gitignore
Makefile
ltree_plpython.c
ltree_plpython2u--1.0.sql
ltree_plpython2u.control
ltree_plpython3u--1.0.sql
ltree_plpython3u.control
ltree_plpythonu--1.0.sql
ltree_plpythonu.control
oid2name
pageinspect
passwordcheck
pg_buffercache
pg_freespacemap
pg_prewarm
pg_standby
pg_stat_statements
pg_trgm
pg_visibility
pgcrypto
pgrowlocks
pgstattuple
postgres_fdw
seg
sepgsql
spi
sslinfo
start-scripts
tablefunc
tcn
test_decoding
tsearch2
tsm_system_rows
tsm_system_time
unaccent
uuid-ossp
vacuumlo
xml2
Makefile
README
contrib-global.mk
doc
src
.dir-locals.el
.gitattributes
.gitignore
COPYRIGHT
GNUmakefile.in
HISTORY
Makefile
README
README.git
aclocal.m4
configure
configure.in
Without CASCADE, if an extension has an unfullfilled dependency on another extension, CREATE EXTENSION ERRORs out with "required extension ... is not installed". That is annoying, especially when that dependency is an implementation detail of the extension, rather than something the extension's user can make sense of. In addition to CASCADE this also includes a small set of regression tests around CREATE EXTENSION. Author: Petr Jelinek, editorialized by Michael Paquier, Andres Freund Reviewed-By: Michael Paquier, Andres Freund, Jeff Janes Discussion: 557E0520.3040800@2ndquadrant.com
44 lines
933 B
Plaintext
44 lines
933 B
Plaintext
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: syntax error at position 0
|
|
CONTEXT: while creating return value
|
|
PL/Python function "test2"
|