Skip to content

Commit 827eb43

Browse files
committed
Tweak new jsonb_plperl test cases to work with old Perl versions.
The previous coding here didn't actually produce Inf or NaN double values in Perl versions 5.8.x. Adopt a suggestion from stackoverflow. Discussion: https://postgr.es/m/[email protected]
1 parent 2307868 commit 827eb43

File tree

4 files changed

+8
-8
lines changed

4 files changed

+8
-8
lines changed

contrib/jsonb_plperl/expected/jsonb_plperl.out

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ CREATE FUNCTION testInf() RETURNS jsonb
4343
LANGUAGE plperl
4444
TRANSFORM FOR TYPE jsonb
4545
AS $$
46-
$val = 0 + 'Inf';
46+
$val = 9**9**9; # we assume this will overflow to +Inf
4747
return $val;
4848
$$;
4949
SELECT testInf();
@@ -53,7 +53,7 @@ CREATE FUNCTION testNaN() RETURNS jsonb
5353
LANGUAGE plperl
5454
TRANSFORM FOR TYPE jsonb
5555
AS $$
56-
$val = 0 + 'NaN';
56+
$val = sin(9**9**9); # we assume sin(inf) will yield NaN
5757
return $val;
5858
$$;
5959
SELECT testNaN();

contrib/jsonb_plperl/expected/jsonb_plperlu.out

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ CREATE FUNCTION testInf() RETURNS jsonb
4343
LANGUAGE plperlu
4444
TRANSFORM FOR TYPE jsonb
4545
AS $$
46-
$val = 0 + 'Inf';
46+
$val = 9**9**9; # we assume this will overflow to +Inf
4747
return $val;
4848
$$;
4949
SELECT testInf();
@@ -53,7 +53,7 @@ CREATE FUNCTION testNaN() RETURNS jsonb
5353
LANGUAGE plperlu
5454
TRANSFORM FOR TYPE jsonb
5555
AS $$
56-
$val = 0 + 'NaN';
56+
$val = sin(9**9**9); # we assume sin(inf) will yield NaN
5757
return $val;
5858
$$;
5959
SELECT testNaN();

contrib/jsonb_plperl/sql/jsonb_plperl.sql

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ CREATE FUNCTION testInf() RETURNS jsonb
3838
LANGUAGE plperl
3939
TRANSFORM FOR TYPE jsonb
4040
AS $$
41-
$val = 0 + 'Inf';
41+
$val = 9**9**9; # we assume this will overflow to +Inf
4242
return $val;
4343
$$;
4444

@@ -49,7 +49,7 @@ CREATE FUNCTION testNaN() RETURNS jsonb
4949
LANGUAGE plperl
5050
TRANSFORM FOR TYPE jsonb
5151
AS $$
52-
$val = 0 + 'NaN';
52+
$val = sin(9**9**9); # we assume sin(inf) will yield NaN
5353
return $val;
5454
$$;
5555

contrib/jsonb_plperl/sql/jsonb_plperlu.sql

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ CREATE FUNCTION testInf() RETURNS jsonb
3838
LANGUAGE plperlu
3939
TRANSFORM FOR TYPE jsonb
4040
AS $$
41-
$val = 0 + 'Inf';
41+
$val = 9**9**9; # we assume this will overflow to +Inf
4242
return $val;
4343
$$;
4444

@@ -49,7 +49,7 @@ CREATE FUNCTION testNaN() RETURNS jsonb
4949
LANGUAGE plperlu
5050
TRANSFORM FOR TYPE jsonb
5151
AS $$
52-
$val = 0 + 'NaN';
52+
$val = sin(9**9**9); # we assume sin(inf) will yield NaN
5353
return $val;
5454
$$;
5555

0 commit comments

Comments
 (0)