1
-- general regression test for transforms
2
DROP EXTENSION IF EXISTS hstore CASCADE;
3
NOTICE: extension "hstore" does not exist, skipping
4
DROP EXTENSION IF EXISTS plperl CASCADE;
5
NOTICE: extension "plperl" does not exist, skipping
6
DROP EXTENSION IF EXISTS hstore_plperl CASCADE;
7
NOTICE: extension "hstore_plperl" does not exist, skipping
8
CREATE EXTENSION hstore;
9
CREATE EXTENSION plperl;
10
CREATE FUNCTION hstore_to_plperl(val internal) RETURNS internal
11
LANGUAGE C STRICT IMMUTABLE
12
AS '$libdir/hstore_plperl';
13
CREATE FUNCTION plperl_to_hstore(val internal) RETURNS hstore
14
LANGUAGE C STRICT IMMUTABLE
15
AS '$libdir/hstore_plperl';
16
CREATE TRANSFORM FOR foo LANGUAGE plperl (FROM SQL WITH FUNCTION hstore_to_plperl(internal), TO SQL WITH FUNCTION plperl_to_hstore(internal)); -- fail
17
ERROR: type "foo" does not exist
18
CREATE TRANSFORM FOR hstore LANGUAGE foo (FROM SQL WITH FUNCTION hstore_to_plperl(internal), TO SQL WITH FUNCTION plperl_to_hstore(internal)); -- fail
19
ERROR: language "foo" does not exist
20
CREATE TRANSFORM FOR hstore LANGUAGE plperl (FROM SQL WITH FUNCTION hstore_out(hstore), TO SQL WITH FUNCTION plperl_to_hstore(internal)); -- fail
21
ERROR: return data type of FROM SQL function must be internal
22
CREATE TRANSFORM FOR hstore LANGUAGE plperl (FROM SQL WITH FUNCTION internal_in(cstring), TO SQL WITH FUNCTION plperl_to_hstore(internal)); -- fail
23
ERROR: first argument of transform function must be type internal
24
CREATE TRANSFORM FOR hstore LANGUAGE plperl (FROM SQL WITH FUNCTION hstore_to_plperl(internal), TO SQL WITH FUNCTION plperl_to_hstore(internal)); -- ok
25
CREATE TRANSFORM FOR hstore LANGUAGE plperl (FROM SQL WITH FUNCTION hstore_to_plperl(internal), TO SQL WITH FUNCTION plperl_to_hstore(internal)); -- fail
26
ERROR: transform for type hstore language "plperl" already exists
27
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
28
CREATE OR REPLACE TRANSFORM FOR hstore LANGUAGE plperl (FROM SQL WITH FUNCTION hstore_to_plperl(internal)); -- ok
29
CREATE OR REPLACE TRANSFORM FOR hstore LANGUAGE plperl (TO SQL WITH FUNCTION plperl_to_hstore(internal)); -- ok
30
COMMENT ON TRANSFORM FOR hstore LANGUAGE plperl IS 'test';
31
DROP TRANSFORM IF EXISTS FOR fake_type LANGUAGE plperl;
32
NOTICE: type "fake_type" does not exist, skipping
33
DROP TRANSFORM IF EXISTS FOR hstore LANGUAGE fake_lang;
34
NOTICE: transform for type hstore language "fake_lang" does not exist, skipping
35
DROP TRANSFORM FOR foo LANGUAGE plperl;
36
ERROR: type "foo" does not exist
37
DROP TRANSFORM FOR hstore LANGUAGE foo;
38
ERROR: language "foo" does not exist
39
DROP TRANSFORM FOR hstore LANGUAGE plperl;
40
DROP TRANSFORM IF EXISTS FOR hstore LANGUAGE plperl;
41
NOTICE: transform for type hstore language "plperl" does not exist, skipping
42
DROP FUNCTION hstore_to_plperl(val internal);
43
DROP FUNCTION plperl_to_hstore(val internal);
44
CREATE EXTENSION hstore_plperl;
46
Objects in extension "hstore_plperl"
48
--------------------------------------
49
function hstore_to_plperl(internal)
50
function plperl_to_hstore(internal)
51
transform for hstore language plperl
54
ALTER EXTENSION hstore_plperl DROP TRANSFORM FOR hstore LANGUAGE plperl;
56
Objects in extension "hstore_plperl"
58
-------------------------------------
59
function hstore_to_plperl(internal)
60
function plperl_to_hstore(internal)
63
ALTER EXTENSION hstore_plperl ADD TRANSFORM FOR hstore LANGUAGE plperl;
65
Objects in extension "hstore_plperl"
67
--------------------------------------
68
function hstore_to_plperl(internal)
69
function plperl_to_hstore(internal)
70
transform for hstore language plperl
73
DROP EXTENSION hstore CASCADE;
74
NOTICE: drop cascades to extension hstore_plperl
75
DROP EXTENSION plperl CASCADE;