postgresql/contrib/jsonb_plperl/expected/jsonb_plperlu.out
Tom Lane eac93e20af Remove less-portable-than-believed test case.
In commit 331b2369c I added a test to see what jsonb_plperl would do
with a qr{} result.  Turns out the answer is Perl version dependent.
That fact doesn't bother me particularly, but coping with multiple
result possibilities is way more work than this test seems worth.
So remove it again.

Discussion: https://postgr.es/m/E1f3MMJ-0006bf-B0@gemulon.postgresql.org
2018-04-04 11:51:36 -04:00

211 lines
3.4 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)
-- this revealed a bug in the original implementation
CREATE FUNCTION testRegexpResultToJsonb() RETURNS jsonb
LANGUAGE plperlu
TRANSFORM FOR TYPE jsonb
AS $$
return ('1' =~ m(0\t2));
$$;
SELECT testRegexpResultToJsonb();
testregexpresulttojsonb
-------------------------
0
(1 row)
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)
\set VERBOSITY terse \\ -- suppress cascade details
DROP EXTENSION plperlu CASCADE;
NOTICE: drop cascades to 6 other objects