Revert commit 66c0185a3 and follow-on patches.
[pgsql.git] / contrib / bool_plperl / expected / bool_plperlu.out
blob8337d337e992efaf668989f03498f3d2f95a40a6
1 CREATE EXTENSION bool_plperlu CASCADE;
2 NOTICE:  installing required extension "plperlu"
3 --- test transforming from perl
4 CREATE FUNCTION perl2int(int) RETURNS bool
5 LANGUAGE plperlu
6 TRANSFORM FOR TYPE bool
7 AS $$
8 return shift;
9 $$;
10 CREATE FUNCTION perl2text(text) RETURNS bool
11 LANGUAGE plperlu
12 TRANSFORM FOR TYPE bool
13 AS $$
14 return shift;
15 $$;
16 CREATE FUNCTION perl2undef() RETURNS bool
17 LANGUAGE plperlu
18 TRANSFORM FOR TYPE bool
19 AS $$
20 return undef;
21 $$;
22 SELECT perl2int(1);
23  perl2int 
24 ----------
25  t
26 (1 row)
28 SELECT perl2int(0);
29  perl2int 
30 ----------
31  f
32 (1 row)
34 SELECT perl2text('foo');
35  perl2text 
36 -----------
37  t
38 (1 row)
40 SELECT perl2text('');
41  perl2text 
42 -----------
43  f
44 (1 row)
46 SELECT perl2undef() IS NULL AS p;
47  p 
48 ---
49  t
50 (1 row)
52 --- test transforming to perl
53 CREATE FUNCTION bool2perl(bool, bool, bool) RETURNS void
54 LANGUAGE plperlu
55 TRANSFORM FOR TYPE bool, for type boolean  -- duplicate to test ruleutils
56 AS $$
57 my ($x, $y, $z) = @_;
59 die("NULL mistransformed") if (defined($z));
60 die("TRUE mistransformed to UNDEF") if (!defined($x));
61 die("FALSE mistransformed to UNDEF") if (!defined($y));
62 die("TRUE mistransformed") if (!$x);
63 die("FALSE mistransformed") if ($y);
64 $$;
65 SELECT bool2perl (true, false, NULL);
66  bool2perl 
67 -----------
69 (1 row)
71 --- test ruleutils
72 \sf bool2perl
73 CREATE OR REPLACE FUNCTION public.bool2perl(boolean, boolean, boolean)
74  RETURNS void
75  TRANSFORM FOR TYPE boolean, FOR TYPE boolean
76  LANGUAGE plperlu
77 AS $function$
78 my ($x, $y, $z) = @_;
80 die("NULL mistransformed") if (defined($z));
81 die("TRUE mistransformed to UNDEF") if (!defined($x));
82 die("FALSE mistransformed to UNDEF") if (!defined($y));
83 die("TRUE mistransformed") if (!$x);
84 die("FALSE mistransformed") if ($y);
85 $function$
86 --- test selecting bool through SPI
87 CREATE FUNCTION spi_test()  RETURNS void
88 LANGUAGE plperlu
89 TRANSFORM FOR TYPE bool
90 AS $$
91 my $rv = spi_exec_query('SELECT true t, false f, NULL n')->{rows}->[0];
93 die("TRUE mistransformed to UNDEF in SPI") if (!defined ($rv->{t}));
94 die("FALSE mistransformed to UNDEF in SPI") if (!defined ($rv->{f}));
95 die("NULL mistransformed in SPI") if (defined ($rv->{n}));
96 die("TRUE mistransformed in SPI") if (!$rv->{t});
97 die("FALSE mistransformed in SPI") if ($rv->{f});
98 $$;
99 SELECT spi_test();
100  spi_test 
101 ----------
103 (1 row)
105 DROP EXTENSION plperlu CASCADE;
106 NOTICE:  drop cascades to 6 other objects
107 DETAIL:  drop cascades to function spi_test()
108 drop cascades to extension bool_plperlu
109 drop cascades to function perl2int(integer)
110 drop cascades to function perl2text(text)
111 drop cascades to function perl2undef()
112 drop cascades to function bool2perl(boolean,boolean,boolean)