mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-08-28 23:07:19 +02:00
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
37 lines
671 B
PL/PgSQL
37 lines
671 B
PL/PgSQL
CREATE EXTENSION ltree_plpython2u CASCADE;
|
|
|
|
|
|
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();
|