1
0
mirror of https://github.com/postgres/postgres.git synced 2025-04-20 00:42:27 +03:00
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_plperl CASCADE;
NOTICE: installing required extension "plperl"
CREATE FUNCTION testHVToJsonb() RETURNS jsonb
LANGUAGE plperl
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 plperl
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 plperl
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 plperl
TRANSFORM FOR TYPE jsonb
AS $$
return ('1' =~ m(0\t2));
$$;
SELECT testRegexpResultToJsonb();
testregexpresulttojsonb
-------------------------
0
(1 row)
CREATE FUNCTION roundtrip(val jsonb) RETURNS jsonb
LANGUAGE plperl
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 plperl CASCADE;
NOTICE: drop cascades to 6 other objects