1 -- general regression test for transforms
3 DROP EXTENSION IF EXISTS hstore CASCADE;
4 DROP EXTENSION IF EXISTS plperl CASCADE;
5 DROP EXTENSION IF EXISTS hstore_plperl CASCADE;
7 CREATE EXTENSION hstore;
8 CREATE EXTENSION plperl;
10 CREATE FUNCTION hstore_to_plperl(val internal) RETURNS internal
11 LANGUAGE C STRICT IMMUTABLE
12 AS '$libdir/hstore_plperl';
14 CREATE FUNCTION plperl_to_hstore(val internal) RETURNS hstore
15 LANGUAGE C STRICT IMMUTABLE
16 AS '$libdir/hstore_plperl';
18 CREATE TRANSFORM FOR foo LANGUAGE plperl (FROM SQL WITH FUNCTION hstore_to_plperl(internal), TO SQL WITH FUNCTION plperl_to_hstore(internal)); -- fail
19 CREATE TRANSFORM FOR hstore LANGUAGE foo (FROM SQL WITH FUNCTION hstore_to_plperl(internal), TO SQL WITH FUNCTION plperl_to_hstore(internal)); -- fail
20 CREATE TRANSFORM FOR hstore LANGUAGE plperl (FROM SQL WITH FUNCTION hstore_out(hstore), TO SQL WITH FUNCTION plperl_to_hstore(internal)); -- fail
21 CREATE TRANSFORM FOR hstore LANGUAGE plperl (FROM SQL WITH FUNCTION internal_in(cstring), TO SQL WITH FUNCTION plperl_to_hstore(internal)); -- fail
23 CREATE TRANSFORM FOR hstore LANGUAGE plperl (FROM SQL WITH FUNCTION hstore_to_plperl(internal), TO SQL WITH FUNCTION plperl_to_hstore(internal)); -- ok
24 CREATE TRANSFORM FOR hstore LANGUAGE plperl (FROM SQL WITH FUNCTION hstore_to_plperl(internal), TO SQL WITH FUNCTION plperl_to_hstore(internal)); -- fail
25 CREATE OR REPLACE TRANSFORM FOR hstore LANGUAGE plperl (FROM SQL WITH FUNCTION hstore_to_plperl(internal), TO SQL WITH FUNCTION plperl_to_hstore(internal)); -- ok
26 CREATE OR REPLACE TRANSFORM FOR hstore LANGUAGE plperl (FROM SQL WITH FUNCTION hstore_to_plperl(internal)); -- ok
27 CREATE OR REPLACE TRANSFORM FOR hstore LANGUAGE plperl (TO SQL WITH FUNCTION plperl_to_hstore(internal)); -- ok
29 COMMENT ON TRANSFORM FOR hstore LANGUAGE plperl IS 'test';
31 DROP TRANSFORM IF EXISTS FOR fake_type LANGUAGE plperl;
32 DROP TRANSFORM IF EXISTS FOR hstore LANGUAGE fake_lang;
33 DROP TRANSFORM FOR foo LANGUAGE plperl;
34 DROP TRANSFORM FOR hstore LANGUAGE foo;
35 DROP TRANSFORM FOR hstore LANGUAGE plperl;
36 DROP TRANSFORM IF EXISTS FOR hstore LANGUAGE plperl;
38 DROP FUNCTION hstore_to_plperl(val internal);
39 DROP FUNCTION plperl_to_hstore(val internal);
41 CREATE EXTENSION hstore_plperl;
43 ALTER EXTENSION hstore_plperl DROP TRANSFORM FOR hstore LANGUAGE plperl;
45 ALTER EXTENSION hstore_plperl ADD TRANSFORM FOR hstore LANGUAGE plperl;
48 DROP EXTENSION hstore CASCADE;
49 DROP EXTENSION plperl CASCADE;