postgresql/contrib/jsonb_plperl/expected/jsonb_plperlu.out

212 lines
3.6 KiB
Plaintext

CREATE EXTENSION jsonb_plperlu CASCADE;
NOTICE: installing required extension "plperlu"
CREATE FUNCTION testHVToJsonb() RETURNS jsonb
LANGUAGE plperlu
TRANSFORM FOR TYPE jsonb
AS $$
$val = {a => 1, b => 'boo', c => undef};
return $val;
$$;
SELECT testHVToJsonb();
testhvtojsonb
---------------------------------
{"a": 1, "b": "boo", "c": null}
(1 row)
CREATE FUNCTION testAVToJsonb() RETURNS jsonb
LANGUAGE plperlu
TRANSFORM FOR TYPE jsonb
AS $$
$val = [{a => 1, b => 'boo', c => undef}, {d => 2}];
return $val;
$$;
SELECT testAVToJsonb();
testavtojsonb
---------------------------------------------
[{"a": 1, "b": "boo", "c": null}, {"d": 2}]
(1 row)
CREATE FUNCTION testSVToJsonb() RETURNS jsonb
LANGUAGE plperlu
TRANSFORM FOR TYPE jsonb
AS $$
$val = 1;
return $val;
$$;
SELECT testSVToJsonb();
testsvtojsonb
---------------
1
(1 row)
CREATE FUNCTION testRegexpToJsonb() RETURNS jsonb
LANGUAGE plperlu
TRANSFORM FOR TYPE jsonb
AS $$
return ('1' =~ m(0\t2));
$$;
SELECT testRegexpToJsonb();
ERROR: cannot transform this Perl type to jsonb
CONTEXT: PL/Perl function "testregexptojsonb"
CREATE FUNCTION roundtrip(val jsonb) RETURNS jsonb
LANGUAGE plperlu
TRANSFORM FOR TYPE jsonb
AS $$
return $_[0];
$$;
SELECT roundtrip('null');
roundtrip
-----------
null
(1 row)
SELECT roundtrip('1');
roundtrip
-----------
1
(1 row)
SELECT roundtrip('1E+131071');
ERROR: cannot convert infinite value to jsonb
CONTEXT: PL/Perl function "roundtrip"
SELECT roundtrip('-1');
roundtrip
-----------
-1
(1 row)
SELECT roundtrip('1.2');
roundtrip
-----------
1.2
(1 row)
SELECT roundtrip('-1.2');
roundtrip
-----------
-1.2
(1 row)
SELECT roundtrip('"string"');
roundtrip
-----------
"string"
(1 row)
SELECT roundtrip('"NaN"');
roundtrip
-----------
"NaN"
(1 row)
SELECT roundtrip('true');
roundtrip
-----------
1
(1 row)
SELECT roundtrip('false');
roundtrip
-----------
0
(1 row)
SELECT roundtrip('[]');
roundtrip
-----------
[]
(1 row)
SELECT roundtrip('[null, null]');
roundtrip
--------------
[null, null]
(1 row)
SELECT roundtrip('[1, 2, 3]');
roundtrip
-----------
[1, 2, 3]
(1 row)
SELECT roundtrip('[-1, 2, -3]');
roundtrip
-------------
[-1, 2, -3]
(1 row)
SELECT roundtrip('[1.2, 2.3, 3.4]');
roundtrip
-----------------
[1.2, 2.3, 3.4]
(1 row)
SELECT roundtrip('[-1.2, 2.3, -3.4]');
roundtrip
-------------------
[-1.2, 2.3, -3.4]
(1 row)
SELECT roundtrip('["string1", "string2"]');
roundtrip
------------------------
["string1", "string2"]
(1 row)
SELECT roundtrip('{}');
roundtrip
-----------
{}
(1 row)
SELECT roundtrip('{"1": null}');
roundtrip
-------------
{"1": null}
(1 row)
SELECT roundtrip('{"1": 1}');
roundtrip
-----------
{"1": 1}
(1 row)
SELECT roundtrip('{"1": -1}');
roundtrip
-----------
{"1": -1}
(1 row)
SELECT roundtrip('{"1": 1.1}');
roundtrip
------------
{"1": 1.1}
(1 row)
SELECT roundtrip('{"1": -1.1}');
roundtrip
-------------
{"1": -1.1}
(1 row)
SELECT roundtrip('{"1": "string1"}');
roundtrip
------------------
{"1": "string1"}
(1 row)
SELECT roundtrip('{"1": {"2": [3, 4, 5]}, "2": 3}');
roundtrip
---------------------------------
{"1": {"2": [3, 4, 5]}, "2": 3}
(1 row)
DROP EXTENSION plperlu CASCADE;
NOTICE: drop cascades to 6 other objects
DETAIL: drop cascades to extension jsonb_plperlu
drop cascades to function testhvtojsonb()
drop cascades to function testavtojsonb()
drop cascades to function testsvtojsonb()
drop cascades to function testregexptojsonb()
drop cascades to function roundtrip(jsonb)